diff --git a/htroot/Bookmarks_p.html b/htroot/Bookmarks_p.html index 8b89cd03e..8c8d91fc5 100644 --- a/htroot/Bookmarks_p.html +++ b/htroot/Bookmarks_p.html @@ -49,7 +49,7 @@ Tagged with #[tags]#.
All
#{taglist}# -#[name]#
+#[name]#
#{/taglist}#   diff --git a/htroot/Bookmarks_p.java b/htroot/Bookmarks_p.java index d5484b1c5..64f36b56e 100644 --- a/htroot/Bookmarks_p.java +++ b/htroot/Bookmarks_p.java @@ -49,6 +49,7 @@ import java.util.Iterator; import java.util.Vector; import de.anomic.data.bookmarksDB; +import de.anomic.data.bookmarksDB.Tag; import de.anomic.http.httpHeader; import de.anomic.plasma.plasmaSwitchboard; import de.anomic.server.serverObjects; @@ -59,7 +60,7 @@ public class Bookmarks_p { serverObjects prop = new serverObjects(); plasmaSwitchboard switchboard = (plasmaSwitchboard) env; int MAX_COUNT=10; //TODO: Changeable per Interface - String tag=""; + String tagName=""; int start=0; //defaultvalues @@ -114,7 +115,7 @@ public class Bookmarks_p { switchboard.bookmarksDB.removeBookmark(urlHash); } if(post.containsKey("tag")){ - tag=(String) post.get("tag"); + tagName=(String) post.get("tag"); } if(post.containsKey("start")){ start=Integer.parseInt((String) post.get("start")); @@ -122,14 +123,17 @@ public class Bookmarks_p { } Iterator it=switchboard.bookmarksDB.tagIterator(true); int count=0; + bookmarksDB.Tag tag; while(it.hasNext()){ - prop.put("taglist_"+count+"_name", ((bookmarksDB.Tag)it.next()).getTagName()); + tag=(Tag) it.next(); + prop.put("taglist_"+count+"_name", tag.getFriendlyName()); + prop.put("taglist_"+count+"_tag", tag.getTagName()); count++; } prop.put("taglist", count); count=0; - if(!tag.equals("")){ - it=switchboard.bookmarksDB.getBookmarksIterator(tag); + if(!tagName.equals("")){ + it=switchboard.bookmarksDB.getBookmarksIterator(tagName); }else{ it=switchboard.bookmarksDB.getBookmarksIterator(); } @@ -155,7 +159,7 @@ public class Bookmarks_p { if(it.hasNext()){ prop.put("next-page", 1); prop.put("next-page_start", start+10); - prop.put("next-page_tag", tag); + prop.put("next-page_tag", tagName); } prop.put("bookmarks", count); return prop; diff --git a/source/de/anomic/data/bookmarksDB.java b/source/de/anomic/data/bookmarksDB.java index 15c44b39a..179bcaeaa 100644 --- a/source/de/anomic/data/bookmarksDB.java +++ b/source/de/anomic/data/bookmarksDB.java @@ -192,7 +192,7 @@ public class bookmarksDB { public Tag getTag(String tagName){ Map map; try { - map = tagsTable.get(tagName); + map = tagsTable.get(tagName.toLowerCase()); if(map==null) return null; return new Tag(tagName, map); } catch (IOException e) { @@ -268,9 +268,13 @@ public class bookmarksDB { } return set.iterator(); } - public Iterator getBookmarksIterator(String tag){ + public Iterator getBookmarksIterator(String tagName){ TreeSet set=new TreeSet(new bookmarkComparator()); - Vector hashes=getTag(tag).getUrlHashes(); + Tag tag=getTag(tagName); + Vector hashes=new Vector(); + if(tag != null){ + hashes=getTag(tagName).getUrlHashes(); + } set.addAll(hashes); return set.iterator(); } @@ -317,25 +321,41 @@ public class bookmarksDB { */ public class Tag{ public static final String URL_HASHES="urlHashes"; + public static final String TAG_FRIENDLY_NAME="friendlyName"; private String tagName; private Map mem; public Tag(String name, Map map){ - tagName=name.toLowerCase(); + tagName=name.toLowerCase(); mem=map; + if(!name.equals(tagName)){ + mem.put(TAG_FRIENDLY_NAME, name); + } } public Tag(String name, Vector entries){ tagName=name.toLowerCase(); mem=new HashMap(); mem.put(URL_HASHES, listManager.vector2string(entries)); + if(!name.equals(tagName)){ + mem.put(TAG_FRIENDLY_NAME, name); + } } public Tag(String name){ tagName=name.toLowerCase(); mem=new HashMap(); mem.put(URL_HASHES, ""); + if(!name.equals(tagName)){ + mem.put(TAG_FRIENDLY_NAME, name); + } } public String getTagName(){ return tagName; } + public String getFriendlyName(){ + if(this.mem.containsKey(TAG_FRIENDLY_NAME)){ + return (String) this.mem.get(TAG_FRIENDLY_NAME); + } + return this.tagName; + } public Vector getUrlHashes(){ return listManager.string2vector((String)this.mem.get(URL_HASHES)); } @@ -379,7 +399,7 @@ public class bookmarksDB { return listManager.string2vector(((String)this.mem.get(URL_HASHES))).size(); } } - class bookmarksDate{ + public class bookmarksDate{ public static final String URL_HASHES="urlHashes"; private Map mem; String date;