Index: openacs-4/packages/bookmarks/tcl/bookmarks-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/tcl/bookmarks-procs.tcl,v diff -u -r1.4.8.1 -r1.4.8.2 --- openacs-4/packages/bookmarks/tcl/bookmarks-procs.tcl 22 May 2004 05:32:14 -0000 1.4.8.1 +++ openacs-4/packages/bookmarks/tcl/bookmarks-procs.tcl 12 Jun 2004 07:24:20 -0000 1.4.8.2 @@ -256,3 +256,24 @@ end; } } + +ad_proc -private bm_close_js_brackets {prev_folder_p prev_lev lev} { + This helper function is used by the tree-dynamic.tcl page in + constructing the bookmark tree for the javascript page. +} { + set result "" + if {$prev_folder_p && ($prev_lev >= $lev)} { + # Empty folder. We need to add a fake bookmark to the folder or else + # it will not have a folder icon attached to it. + set i_str [string repeat "\t" $prev_lev] + append result "$i_str\t\['Empty folder']\n" + append result "$i_str],\n" + } + while {$prev_lev > $lev} { + set i_str [string repeat "\t" [expr $prev_lev - 1]] + append result "$i_str],\n" + incr prev_lev -1 + } + + return $result +} Index: openacs-4/packages/bookmarks/www/bookmark-header.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/bookmark-header.adp,v diff -u -r1.1 -r1.1.2.1 --- openacs-4/packages/bookmarks/www/bookmark-header.adp 6 Feb 2004 08:11:49 -0000 1.1 +++ openacs-4/packages/bookmarks/www/bookmark-header.adp 12 Jun 2004 07:24:22 -0000 1.1.2.1 @@ -22,10 +22,10 @@
Check Links
+
Javascript
-
Other users
Index: openacs-4/packages/bookmarks/www/tree-dynamic-oracle.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/tree-dynamic-oracle.xql,v diff -u -r1.1 -r1.1.10.1 --- openacs-4/packages/bookmarks/www/tree-dynamic-oracle.xql 18 Aug 2001 02:56:52 -0000 1.1 +++ openacs-4/packages/bookmarks/www/tree-dynamic-oracle.xql 12 Jun 2004 07:24:22 -0000 1.1.10.1 @@ -13,7 +13,8 @@ last_checked_date, b.parent_id, complete_url, - b.folder_p + b.folder_p, + lev from (select /*+INDEX(bm_bookmarks bm_bookmarks_local_title_idx)*/ bookmark_id, url_id, local_title, folder_p, level lev, parent_id, owner_id, rownum as ord_num Index: openacs-4/packages/bookmarks/www/tree-dynamic.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/tree-dynamic.tcl,v diff -u -r1.2 -r1.2.8.1 --- openacs-4/packages/bookmarks/www/tree-dynamic.tcl 10 Sep 2002 22:22:26 -0000 1.2 +++ openacs-4/packages/bookmarks/www/tree-dynamic.tcl 12 Jun 2004 07:24:22 -0000 1.2.8.1 @@ -33,62 +33,55 @@ set name [db_string name_query " select first_names||' '||last_name as name from cc_users -where user_id = :user_id"] +where user_id = :viewed_user_id"] +set name [regsub -all {'} $name {\'}] + append js " -USETEXTLINKS = 1 -aux0 = gFld(\"Bookmarks for $name\",\"\") +var TREE_ITEMS = \[ + \['Bookmarks for $name', null, " set root_id [bm_get_root_folder_id [ad_conn package_id] $viewed_user_id] +set prev_lev 1 +set prev_folder_p "f" -db_foreach bookmark_items { - select b.bookmark_id, - b.url_id, - b.local_title, - last_live_date, - last_checked_date, - b.parent_id, - complete_url, - b.folder_p - from (select /*+INDEX(bm_bookmarks bm_bookmarks_local_title_idx)*/ - bookmark_id, url_id, local_title, folder_p, - level lev, parent_id, owner_id, rownum as ord_num - from bm_bookmarks start with bookmark_id = :root_id - connect by prior bookmark_id = parent_id) b, - bm_urls - where exists (select 1 from bm_bookmarks where acs_permission.permission_p(bookmark_id, :user_id, 'read') = 't' - start with bookmark_id = b.bookmark_id connect by prior bookmark_id = parent_id) - and b.bookmark_id <> :root_id - and b.url_id = bm_urls.url_id(+) - order by ord_num -} { - # In the ACS3 version parent_id empty meant root - I am setting parent_id - # to empty string here to make the old code work (pmarklun@arsdigita.com) - if { [string equal $parent_id $root_id] } { - set parent_id "0" - } +db_foreach bookmark_items {} { - # decoration refers to color and font of the associated text - set decoration "" + append js [bm_close_js_brackets $prev_folder_p $prev_lev $lev] + set i_str [string repeat "\t" $lev] + set local_title [regsub -all {'} $local_title {\'}] + set complete_url [regsub -all {'} $complete_url {\'}] - # make dead links appear as definied in the .ini file - if {$last_checked_date != $last_live_date} { - append decoration $dead_decoration - } - - # make folder titles appear as definied in the .ini file - if {$folder_p == "t"} { - append decoration $folder_decoration - } +# # decoration refers to color and font of the associated text +# set decoration "" +# +# # make dead links appear as definied in the .ini file +# if {$last_checked_date != $last_live_date} { +# append decoration $dead_decoration +# } +# +# # make folder titles appear as definied in the .ini file +# if {$folder_p == "t"} { +# append decoration $folder_decoration +# } - + if {$folder_p == "t"} { - append js "aux$bookmark_id = insFld(aux$parent_id, gFld(\"[philg_quote_double_quotes [string trim $local_title]]\", \"$decoration\", $bookmark_id))\n" + append js "$i_str\['[ad_quotehtml [string trim $local_title]]', null,\n" } else { - append js "aux$bookmark_id = insDoc(aux$parent_id, gLnk(1, \"[philg_quote_double_quotes [string trim $local_title]]\",\"[string trim [philg_quote_double_quotes $complete_url]]\",\"$decoration\", $bookmark_id))\n" + append js "$i_str\['[ad_quotehtml [string trim $local_title]]', '[string trim [ad_quotehtml $complete_url]]'],\n" } + set prev_lev $lev + set prev_folder_p $folder_p + +} if_no_rows { + append js "\t\t\['No bookmarks found'],\n\t],\n" } +append js [bm_close_js_brackets $prev_folder_p $prev_lev 1] +append js "];\n" + + doc_return 200 text/html "$js" Index: openacs-4/packages/bookmarks/www/tree-dynamic.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/tree-dynamic.xql,v diff -u -r1.1 -r1.1.10.1 --- openacs-4/packages/bookmarks/www/tree-dynamic.xql 18 Aug 2001 02:56:52 -0000 1.1 +++ openacs-4/packages/bookmarks/www/tree-dynamic.xql 12 Jun 2004 07:24:22 -0000 1.1.10.1 @@ -6,7 +6,7 @@ select first_names||' '||last_name as name from cc_users -where user_id = :user_id +where user_id = :viewed_user_id Index: openacs-4/packages/bookmarks/www/tree-frame.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/tree-frame.tcl,v diff -u -r1.2 -r1.2.8.1 --- openacs-4/packages/bookmarks/www/tree-frame.tcl 10 Sep 2002 22:22:26 -0000 1.2 +++ openacs-4/packages/bookmarks/www/tree-frame.tcl 12 Jun 2004 07:24:22 -0000 1.2.8.1 @@ -18,32 +18,21 @@ set page_content " - - - - - + + + + + + - - " doc_return 200 text/html "$page_content" - - - - - - - - - - Index: openacs-4/packages/bookmarks/www/tree-static.js =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/tree-static.js,v diff -u -r1.1.1.1 -r1.1.1.1.10.1 --- openacs-4/packages/bookmarks/www/tree-static.js 20 Apr 2001 20:51:09 -0000 1.1.1.1 +++ openacs-4/packages/bookmarks/www/tree-static.js 12 Jun 2004 07:24:22 -0000 1.1.1.1.10.1 @@ -1,474 +1,132 @@ -// You are free to copy the "Folder-Tree" script as long as you -// keep this copyright notice: -// Script found in: http://www.geocities.com/Paris/LeftBank/2178/ -// Author: Marcelino Alves Martins (martins@hks.com) December '97. -//**************************************************************** - -//Log of changes: -// 17 Feb 98 - Fix initialization flashing problem with Netscape -// -// 27 Jan 98 - Root folder starts open; support for USETEXTLINKS; -// make the ftien4 a js file -// - - -// Definition of class Folder -// ***************************************************************** - -function Folder(folderDescription, hreference, decoration, key) //constructor -{ - //constant data - this.desc = folderDescription - this.hreference = hreference - this.decoration = decoration - this.key = key - this.id = -1 - this.navObj = 0 - this.iconImg = 0 - this.nodeImg = 0 - this.isLastNode = 0 - - //dynamic data - this.isOpen = true - this.iconSrc = "pics/ftv2folderopen.gif" - this.children = new Array - this.nChildren = 0 - - //methods - this.initialize = initializeFolder - this.setState = setStateFolder - this.addChild = addChild - this.createIndex = createEntryIndex - this.hide = hideFolder - this.display = display - this.renderOb = drawFolder - this.totalHeight = totalHeight - this.subEntries = folderSubEntries - this.outputLink = outputFolderLink -} - -function setStateFolder(isOpen) -{ - var subEntries - var totalHeight - var fIt = 0 - var i=0 - - if (isOpen == this.isOpen) - return - - if (browserVersion == 2) - { - totalHeight = 0 - for (i=0; i < this.nChildren; i++) - totalHeight = totalHeight + this.children[i].navObj.clip.height - subEntries = this.subEntries() - if (this.isOpen) - totalHeight = 0 - totalHeight - for (fIt = this.id + subEntries + 1; fIt < nEntries; fIt++) - indexOfEntries[fIt].navObj.moveBy(0, totalHeight) - } - this.isOpen = isOpen - propagateChangesInState(this) -} - -function propagateChangesInState(folder) -{ - var i=0 - - if (folder.isOpen) - { - if (folder.nodeImg) - if (folder.isLastNode) - folder.nodeImg.src = "pics/ftv2mlastnode.gif" - else - folder.nodeImg.src = "pics/ftv2mnode.gif" - folder.iconImg.src = "pics/ftv2folderopen.gif" - for (i=0; i 0) - auxEv = "" - else - auxEv = "" - - if (level>0) - if (lastNode) //the last 'brother' in the children array - { - this.renderOb(leftSide + auxEv + "") - leftSide = leftSide + "" - this.isLastNode = 1 - } - else - { - this.renderOb(leftSide + auxEv + "") - leftSide = leftSide + "" - this.isLastNode = 0 - } - else - this.renderOb("") - - if (nc > 0) - { - level = level + 1 - for (i=0 ; i < this.nChildren; i++) - { - if (i == this.nChildren-1) - this.children[i].initialize(level, 1, leftSide) - else - this.children[i].initialize(level, 0, leftSide) - } - } -} - -function drawFolder(leftSide) -{ - if (browserVersion == 2) { - if (!doc.yPos) - doc.yPos=8 - doc.write("") - } - - doc.write("") - doc.write("") - doc.write("
") - doc.write(leftSide) - this.outputLink() - doc.write("") - doc.write("") - if (USETEXTLINKS) - { - this.outputLink() - if (this.id>0) - { - doc.write(""+this.decoration+this.desc + " (edit)") - } else { - doc.write(""+this.decoration+this.desc + "") +// Title: Tigra Tree +// Description: See the demo at url +// URL: http://www.softcomplex.com/products/tigra_menu_tree/ +// Version: 1.1 +// Date: 11-12-2002 (mm-dd-yyyy) +// Notes: This script is free. Visit official site for further details. + +function tree (a_items, a_template) { + + this.a_tpl = a_template; + this.a_config = a_items; + this.o_root = this; + this.a_index = []; + this.o_selected = null; + this.n_depth = -1; + + var o_icone = new Image(), + o_iconl = new Image(); + o_icone.src = a_template['icon_e']; + o_iconl.src = a_template['icon_l']; + a_template['im_e'] = o_icone; + a_template['im_l'] = o_iconl; + for (var i = 0; i < 64; i++) + if (a_template['icon_' + i]) { + var o_icon = new Image(); + a_template['im_' + i] = o_icon; + o_icon.src = a_template['icon_' + i]; + } + + this.toggle = function (n_id) { var o_item = this.a_index[n_id]; o_item.open(o_item.b_opened) }; + this.select = function (n_id) { return this.a_index[n_id].select(); }; + this.mout = function (n_id) { this.a_index[n_id].upstatus(true) }; + this.mover = function (n_id) { this.a_index[n_id].upstatus() }; + + this.a_children = []; + for (var i = 0; i < a_items.length; i++) + new tree_item(this, i); + + this.n_id = trees.length; + trees[this.n_id] = this; + + for (var i = 0; i < this.a_children.length; i++) { + document.write(this.a_children[i].init()); + this.a_children[i].open(); } +} +function tree_item (o_parent, n_order) { - } - else - doc.write(this.desc) - doc.write("
") - - if (browserVersion == 2) { - doc.write("
") - } - - if (browserVersion == 1) { - this.navObj = doc.all["folder"+this.id] - this.iconImg = doc.all["folderIcon"+this.id] - this.nodeImg = doc.all["nodeIcon"+this.id] - } else if (browserVersion == 2) { - this.navObj = doc.layers["folder"+this.id] - this.iconImg = this.navObj.document.images["folderIcon"+this.id] - this.nodeImg = this.navObj.document.images["nodeIcon"+this.id] - doc.yPos=doc.yPos+this.navObj.clip.height - } -} - -function outputFolderLink() -{ - if (this.hreference) - { - doc.write(" 0) - doc.write("onClick='javascript:clickOnFolder("+this.id+")'") - doc.write(">") - } - else -// doc.write("") - doc.write("") -} - -function addChild(childNode) -{ - this.children[this.nChildren] = childNode - this.nChildren++ - return childNode -} - -function folderSubEntries() -{ - var i = 0 - var se = this.nChildren - - for (i=0; i < this.nChildren; i++){ - if (this.children[i].children) //is a folder - se = se + this.children[i].subEntries() - } - - return se -} - - -// Definition of class Item (a document or link inside a Folder) -// ************************************************************* - -function Item(itemDescription, itemLink, decoration, key) // Constructor -{ - // constant data - this.desc = itemDescription - this.link = itemLink - this.decoration = decoration - this.key = key - this.id = -1 //initialized in initalize() - this.navObj = 0 //initialized in render() - this.iconImg = 0 //initialized in render() - this.iconSrc = "pics/ftv2doc.gif" - - // methods - this.initialize = initializeItem - this.createIndex = createEntryIndex - this.hide = hideItem - this.display = display - this.renderOb = drawItem - this.totalHeight = totalHeight -} - -function hideItem() -{ - if (browserVersion == 1) { - if (this.navObj.style.display == "none") - return - this.navObj.style.display = "none" - } else { - if (this.navObj.visibility == "hiden") - return - this.navObj.visibility = "hiden" - } -} - -function initializeItem(level, lastNode, leftSide) -{ - this.createIndex() - - if (level>0) - if (lastNode) //the last 'brother' in the children array - { - this.renderOb(leftSide + "") - leftSide = leftSide + "" - } - else - { - this.renderOb(leftSide + "") - leftSide = leftSide + "" - } - else - this.renderOb("") -} - -function drawItem(leftSide) -{ - if (browserVersion == 2) - doc.write("") - - doc.write("") - doc.write("
") - doc.write(leftSide) - doc.write("") - doc.write("") - doc.write("") - doc.write("") - if (USETEXTLINKS) - doc.write("" +this.decoration + this.desc + " (edit)") - else - doc.write(this.desc) - doc.write("
") - - if (browserVersion == 2) - doc.write("
") - - if (browserVersion == 1) { - this.navObj = doc.all["item"+this.id] - this.iconImg = doc.all["itemIcon"+this.id] - } else if (browserVersion == 2) { - this.navObj = doc.layers["item"+this.id] - this.iconImg = this.navObj.document.images["itemIcon"+this.id] - doc.yPos=doc.yPos+this.navObj.clip.height - } -} - - -// Methods common to both objects (pseudo-inheritance) -// ******************************************************** - -function display() -{ - if (browserVersion == 1) - this.navObj.style.display = "block" - else - this.navObj.visibility = "show" -} - -function createEntryIndex() -{ - this.id = nEntries - indexOfEntries[nEntries] = this - nEntries++ -} - -// total height of subEntries open -function totalHeight() //used with browserVersion == 2 -{ - var h = this.navObj.clip.height - var i = 0 - - if (this.isOpen) //is a folder and _is_ open - for (i=0 ; i < this.nChildren; i++) - h = h + this.children[i].totalHeight() - - return h -} - - -// Events -// ********************************************************* - -function clickOnFolder(folderId) -{ - var clicked = indexOfEntries[folderId] - - if (!clicked.isOpen) - clickOnNode(folderId) - - return - - if (clicked.isSelected) - return -} - -function clickOnNode(folderId) -{ - var clickedFolder = 0 - var state = 0 - - clickedFolder = indexOfEntries[folderId] - state = clickedFolder.isOpen - - clickedFolder.setState(!state) //open<->close -} - -function initializeDocument() -{ - if (doc.all) - browserVersion = 1 //IE4 - else - if (doc.layers) - browserVersion = 2 //NS4 - else - browserVersion = 0 //other - - aux0.initialize(0, 1, "") - aux0.display() - - if (browserVersion > 0) - { - doc.write(" ") - - // close the whole tree - clickOnNode(0) - // open the root folder - clickOnNode(0) - } -} - -// Auxiliary Functions for Folder-Treee backward compatibility -// ********************************************************* - -function gFld(description, decoration, key, hreference) -{ - folder = new Folder(description, hreference, decoration, key) - return folder -} - -function gLnk(target, description, linkData, decoration, key) -{ - fullLink = "" - - if (target==0) - { - fullLink = "'"+linkData+"' target=\"basefrm\"" - } - else - { - if (target==1) - fullLink = "'"+linkData+"' target=target_frame" - else - fullLink = "'"+linkData+"' target=\"basefrm\"" - } - - linkItem = new Item(description, fullLink, decoration, key) - return linkItem -} - -function insFld(parentFolder, childFolder) -{ - return parentFolder.addChild(childFolder) -} - -function insDoc(parentFolder, document) -{ - parentFolder.addChild(document) -} - -// Global variables -// **************** - -USETEXTLINKS = 1 -indexOfEntries = new Array -nEntries = 0 -doc = document -browserVersion = 0 -selectedFolder=0 + this.n_depth = o_parent.n_depth + 1; + this.a_config = o_parent.a_config[n_order + (this.n_depth ? 2 : 0)]; + if (!this.a_config) return; + this.o_root = o_parent.o_root; + this.o_parent = o_parent; + this.n_order = n_order; + this.b_opened = !this.n_depth; + + this.n_id = this.o_root.a_index.length; + this.o_root.a_index[this.n_id] = this; + o_parent.a_children[n_order] = this; + + this.a_children = []; + for (var i = 0; i < this.a_config.length - 2; i++) + new tree_item(this, i); + + this.get_icon = item_get_icon; + this.open = item_open; + this.select = item_select; + this.init = item_init; + this.upstatus = item_upstatus; + this.is_last = function () { return this.n_order == this.o_parent.a_children.length - 1 }; +} + +function item_open (b_close) { + var o_idiv = get_element('i_div' + this.o_root.n_id + '_' + this.n_id); + if (!o_idiv) return; + + if (!o_idiv.innerHTML) { + var a_children = []; + for (var i = 0; i < this.a_children.length; i++) + a_children[i]= this.a_children[i].init(); + o_idiv.innerHTML = a_children.join(''); + } + o_idiv.style.display = (b_close ? 'none' : 'block'); + + this.b_opened = !b_close; + var o_jicon = document.images['j_img' + this.o_root.n_id + '_' + this.n_id], + o_iicon = document.images['i_img' + this.o_root.n_id + '_' + this.n_id]; + if (o_jicon) o_jicon.src = this.get_icon(true); + if (o_iicon) o_iicon.src = this.get_icon(); + this.upstatus(); +} + +function item_select (b_deselect) { + if (!b_deselect) { + var o_olditem = this.o_root.o_selected; + this.o_root.o_selected = this; + if (o_olditem) o_olditem.select(true); + } + var o_iicon = document.images['i_img' + this.o_root.n_id + '_' + this.n_id]; + if (o_iicon) o_iicon.src = this.get_icon(); + get_element('i_txt' + this.o_root.n_id + '_' + this.n_id).style.fontWeight = b_deselect ? 'normal' : 'bold'; + + this.upstatus(); + return Boolean(this.a_config[1]); +} + +function item_upstatus (b_clear) { + window.setTimeout('window.status="' + (b_clear ? '' : this.a_config[0] + (this.a_config[1] ? ' ('+ this.a_config[1] + ')' : '')) + '"', 10); +} + +function item_init () { + var a_offset = [], + o_current_item = this.o_parent; + for (var i = this.n_depth; i > 1; i--) { + a_offset[i] = ''; + o_current_item = o_current_item.o_parent; + } + return '
' + (this.n_depth ? a_offset.join('') + (this.a_children.length + ? '' + : '') : '') + + '' + this.a_config[0] + '
' + (this.a_children.length ? '' : ''); +} + +function item_get_icon (b_junction) { + return this.o_root.a_tpl['icon_' + ((this.n_depth ? 0 : 32) + (this.a_children.length ? 16 : 0) + (this.a_children.length && this.b_opened ? 8 : 0) + (!b_junction && this.o_root.o_selected == this ? 4 : 0) + (b_junction ? 2 : 0) + (b_junction && this.is_last() ? 1 : 0))]; +} + +var trees = []; +get_element = document.all ? + function (s_id) { return document.all[s_id] } : + function (s_id) { return document.getElementById(s_id) }; Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/bookmarks/www/tree_tpl.js'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/bookmarks/www/resources/tree-icons/base.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/base.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/empty.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/empty.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/folder.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/folder.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/folderopen.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/folderopen.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/join.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/join.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/joinbottom.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/joinbottom.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/line.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/line.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/minus.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/minus.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/minusbottom.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/minusbottom.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/page.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/page.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/plus.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/plus.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ Index: openacs-4/packages/bookmarks/www/resources/tree-icons/plusbottom.gif =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/bookmarks/www/resources/tree-icons/plusbottom.gif,v diff -u -r1.1 -r1.1.2.1 Binary files differ