From db586f633f5f904bf39c2ae052011a3e5def1962 Mon Sep 17 00:00:00 2001 From: dakkar Date: Thu, 16 Apr 2009 20:46:49 +0200 Subject: first version --- folder-closed.png | Bin 0 -> 587 bytes folder-item.png | Bin 0 -> 725 bytes folder-open.png | Bin 0 -> 668 bytes foxmarks.css | 39 ++++++++++++++++++++++++++++++++ my-foxmarks.js | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 104 insertions(+) create mode 100644 folder-closed.png create mode 100644 folder-item.png create mode 100644 folder-open.png create mode 100644 foxmarks.css create mode 100644 my-foxmarks.js diff --git a/folder-closed.png b/folder-closed.png new file mode 100644 index 0000000..de27140 Binary files /dev/null and b/folder-closed.png differ diff --git a/folder-item.png b/folder-item.png new file mode 100644 index 0000000..edfc325 Binary files /dev/null and b/folder-item.png differ diff --git a/folder-open.png b/folder-open.png new file mode 100644 index 0000000..2519d3f Binary files /dev/null and b/folder-open.png differ diff --git a/foxmarks.css b/foxmarks.css new file mode 100644 index 0000000..9fd6cb3 --- /dev/null +++ b/foxmarks.css @@ -0,0 +1,39 @@ +ul { + border: none; + margin: 0; + padding: 0; + margin-left: 1em; +} +ul.collapsed { + display: none; +} + +li { + list-style-type: none; + list-style-image: none; + list-style-position: inside; + margin: 0; + padding: 0; + border: none; +} + +li.folder { + list-style-image: url(folder-open.png); +} +li.collapsed { + list-style-image: url(folder-closed.png); +} + +li > p { + margin: 0; + padding: 0; + border: none; + display: inline; +} + +li > a { + margin-left: 0.5em; +} + +li > hr { +} \ No newline at end of file diff --git a/my-foxmarks.js b/my-foxmarks.js new file mode 100644 index 0000000..1b085bd --- /dev/null +++ b/my-foxmarks.js @@ -0,0 +1,65 @@ +function setup_foxmarks() { + $.getJSON("bookmarks.json", + create_html_display + ); +}; + +var default_icon={'src':'folder-item.png'}; + +var templates={ + "separator": function() { + return [ + 'li',{},['hr',{}] + ]; + }, + "folder" : function() { + if (this.args.pnid!=null) { + return [ + 'li',{"class":"folder"},[ + 'p',{"class":"folder-name"},this.args.name, + 'ul',{ "id":this.nid, "class":"folder" },'' + ] + ]; + } + else { + return [ + 'h1',{},this.args.name, + 'ul',{ "id":this.nid },'' + ]; + } + }, + "bookmark" : function() { + return [ + 'li',{},[ + 'img',(this.args.icon ? {"src": this.args.icon} : default_icon),[], + 'a',{"href":this.args.url},this.args.name + ] + ]; + } +}; + +function create_html_display(marks) { + jQuery.each(marks["commands"],function() { + if (this.action == "insert" && this.nid != undefined) { + if (templates.hasOwnProperty(this.args.ntype)) { + var parent; + if (this.args.pnid!=null) { + parent=$("#"+this.args.pnid); + } + else { + parent=$("body"); + } + //console.debug("applying template for %s to %o on %o",this.args.ntype,this,parent); + parent.tplAppend(this,templates[this.args.ntype]); + } + } + }); + $('li.folder').children('p,ul').andSelf().addClass('collapsed'); + $('li.folder').click(function(event){ + event.preventDefault(); + event.stopPropagation(); + $(this).children('p,ul').andSelf().toggleClass('collapsed'); + }); +}; + +$(document).ready(setup_foxmarks); -- cgit v1.2.3