From 48e75160412d58b8d1c87e13d017a94afccfd525 Mon Sep 17 00:00:00 2001 From: Len Kranendonk Date: Sun, 22 Feb 2004 19:15:39 +0000 Subject: [PATCH] Added dtree navigation --- www/extras/Navigation/dtree/api.html | 252 +++++++ www/extras/Navigation/dtree/dtree.css | 34 + www/extras/Navigation/dtree/dtree.js | 693 ++++++++++++++++++ www/extras/Navigation/dtree/example01.html | 53 ++ www/extras/Navigation/dtree/img/base.gif | Bin 0 -> 1040 bytes www/extras/Navigation/dtree/img/cd.gif | Bin 0 -> 239 bytes www/extras/Navigation/dtree/img/empty.gif | Bin 0 -> 62 bytes www/extras/Navigation/dtree/img/folder.gif | Bin 0 -> 372 bytes .../Navigation/dtree/img/folderopen.gif | Bin 0 -> 376 bytes www/extras/Navigation/dtree/img/globe.gif | Bin 0 -> 1095 bytes www/extras/Navigation/dtree/img/imgfolder.gif | Bin 0 -> 622 bytes www/extras/Navigation/dtree/img/join.gif | Bin 0 -> 69 bytes .../Navigation/dtree/img/joinbottom.gif | Bin 0 -> 66 bytes www/extras/Navigation/dtree/img/line.gif | Bin 0 -> 66 bytes www/extras/Navigation/dtree/img/minus.gif | Bin 0 -> 86 bytes .../Navigation/dtree/img/minusbottom.gif | Bin 0 -> 85 bytes .../Navigation/dtree/img/musicfolder.gif | Bin 0 -> 633 bytes .../Navigation/dtree/img/nolines_minus.gif | Bin 0 -> 861 bytes .../Navigation/dtree/img/nolines_plus.gif | Bin 0 -> 870 bytes www/extras/Navigation/dtree/img/page.gif | Bin 0 -> 582 bytes www/extras/Navigation/dtree/img/plus.gif | Bin 0 -> 89 bytes .../Navigation/dtree/img/plusbottom.gif | Bin 0 -> 88 bytes www/extras/Navigation/dtree/img/question.gif | Bin 0 -> 1044 bytes www/extras/Navigation/dtree/img/trash.gif | Bin 0 -> 1051 bytes 24 files changed, 1032 insertions(+) create mode 100644 www/extras/Navigation/dtree/api.html create mode 100644 www/extras/Navigation/dtree/dtree.css create mode 100644 www/extras/Navigation/dtree/dtree.js create mode 100644 www/extras/Navigation/dtree/example01.html create mode 100644 www/extras/Navigation/dtree/img/base.gif create mode 100644 www/extras/Navigation/dtree/img/cd.gif create mode 100644 www/extras/Navigation/dtree/img/empty.gif create mode 100644 www/extras/Navigation/dtree/img/folder.gif create mode 100644 www/extras/Navigation/dtree/img/folderopen.gif create mode 100644 www/extras/Navigation/dtree/img/globe.gif create mode 100644 www/extras/Navigation/dtree/img/imgfolder.gif create mode 100644 www/extras/Navigation/dtree/img/join.gif create mode 100644 www/extras/Navigation/dtree/img/joinbottom.gif create mode 100644 www/extras/Navigation/dtree/img/line.gif create mode 100644 www/extras/Navigation/dtree/img/minus.gif create mode 100644 www/extras/Navigation/dtree/img/minusbottom.gif create mode 100644 www/extras/Navigation/dtree/img/musicfolder.gif create mode 100644 www/extras/Navigation/dtree/img/nolines_minus.gif create mode 100644 www/extras/Navigation/dtree/img/nolines_plus.gif create mode 100644 www/extras/Navigation/dtree/img/page.gif create mode 100644 www/extras/Navigation/dtree/img/plus.gif create mode 100644 www/extras/Navigation/dtree/img/plusbottom.gif create mode 100644 www/extras/Navigation/dtree/img/question.gif create mode 100644 www/extras/Navigation/dtree/img/trash.gif diff --git a/www/extras/Navigation/dtree/api.html b/www/extras/Navigation/dtree/api.html new file mode 100644 index 000000000..3686a8021 --- /dev/null +++ b/www/extras/Navigation/dtree/api.html @@ -0,0 +1,252 @@ + + + + + + Destroydrop » Javascripts » Tree » Api + + + + + + + + +
+ +
+ + + + +
+ +
+ + +

Overview

+
+
+ + + +
+ + +

Functions

+
+
+ + +

add()

+

Adds a node to the tree.
Can only be called before the tree is drawn.

+

id, pid and name are required.

+ +

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
idNumberUnique identity number.
pidNumberNumber refering to the parent node. The value for the root node has to be -1.
nameStringText label for the node.
urlStringUrl for the node.
titleStringTitle for the node.
targetStringTarget for the node.
iconStringImage file to use as the icon. Uses default if not specified.
iconOpenStringImage file to use as the open icon. Uses default if not specified.
openBooleanIs the node open.
+
+ + +

Example

+

mytree.add(1, 0, 'My node', 'node.html', 'node title', 'mainframe', 'img/musicfolder.gif');

+
+ + +

openAll()

+

Opens all the nodes.
Can be called before and after the tree is drawn.

+

Example

+

mytree.openAll();

+
+ + + +

closeAll()

+

Closes all the nodes.
Can be called before and after the tree is drawn.

+

Example

+

mytree.closeAll();

+
+ + + +

openTo()

+

Opens the tree to a certain node and can also select the node.
+ Can only be called after the tree is drawn.

+ +

Parameters

+ + + + + + + + + + + + + + + + +
NameTypeDescription
idNumberIdentity number for the node.
selectBooleanShould the node be selected.
+ +

Example

+

mytree.openTo(4, true);

+ +
+ + +

Configuration

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableTypeDefaultDescription
targetStringtrueTarget for all the nodes.
folderLinksBooleantrueShould folders be links.
useSelectionBooleantrueNodes can be selected(highlighted).
useCookiesBooleantrueThe tree uses cookies to rember it's state.
useLinesBooleantrueTree is drawn with lines.
useIconsBooleantrueTree is drawn with icons.
useStatusTextBooleanfalseDisplays node names in the statusbar instead of the url.
closeSameLevelBooleanfalseOnly one node within a parent can be expanded at the same time. openAll() and closeAll() functions do not work when this is enabled.
inOrderBooleanfalseIf parent nodes are always added before children, setting this to true speeds up the tree.
+ +

Example

+

mytree.config.target = "mytarget";

+ +
+ +
+ +
+ + + + +
+ +
+ + + + + \ No newline at end of file diff --git a/www/extras/Navigation/dtree/dtree.css b/www/extras/Navigation/dtree/dtree.css new file mode 100644 index 000000000..b201c2fd6 --- /dev/null +++ b/www/extras/Navigation/dtree/dtree.css @@ -0,0 +1,34 @@ +/*--------------------------------------------------| +| dTree 2.05 | www.destroydrop.com/javascript/tree/ | +|---------------------------------------------------| +| Copyright (c) 2002-2003 Geir Landrö | +|--------------------------------------------------*/ + +.dtree { + font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; + font-size: 11px; + color: #666; + white-space: nowrap; +} +.dtree img { + border: 0px; + vertical-align: middle; +} +.dtree a { + color: #333; + text-decoration: none; +} +.dtree a.node, .dtree a.nodeSel { + white-space: nowrap; + padding: 1px 2px 1px 2px; +} +.dtree a.node:hover, .dtree a.nodeSel:hover { + color: #333; + text-decoration: underline; +} +.dtree a.nodeSel { + background-color: #c0d2ec; +} +.dtree .clip { + overflow: hidden; +} \ No newline at end of file diff --git a/www/extras/Navigation/dtree/dtree.js b/www/extras/Navigation/dtree/dtree.js new file mode 100644 index 000000000..97268a65f --- /dev/null +++ b/www/extras/Navigation/dtree/dtree.js @@ -0,0 +1,693 @@ +/*--------------------------------------------------| + +| dTree 2.05 | www.destroydrop.com/javascript/tree/ | + +|---------------------------------------------------| + +| Copyright (c) 2002-2003 Geir Landrö | + +| | + +| This script can be used freely as long as all | + +| copyright messages are intact. | + +| | + +| Updated: 17.04.2003 | + +|--------------------------------------------------*/ + + + +// Node object + +function Node(id, pid, name, url, title, target, icon, iconOpen, open) { + + this.id = id; + + this.pid = pid; + + this.name = name; + + this.url = url; + + this.title = title; + + this.target = target; + + this.icon = icon; + + this.iconOpen = iconOpen; + + this._io = open || false; + + this._is = false; + + this._ls = false; + + this._hc = false; + + this._ai = 0; + + this._p; + +}; + + + +// Tree object + +function dTree(objName) { + + this.config = { + + target : null, + + folderLinks : true, + + useSelection : true, + + useCookies : true, + + useLines : true, + + useIcons : true, + + useStatusText : false, + + closeSameLevel : false, + + inOrder : false + + } + + this.icon = { + + root : _dtree_url + 'img/base.gif', // LK, 20040222: Added _dtree_url + + folder : _dtree_url + 'img/folder.gif', // LK, 20040222: Added _dtree_url + + folderOpen : _dtree_url + 'img/folderopen.gif', // LK, 20040222: Added _dtree_url + + node : _dtree_url + 'img/page.gif', // LK, 20040222: Added _dtree_url + + empty : _dtree_url + 'img/empty.gif',// LK, 20040222: Added _dtree_url + + line : _dtree_url + 'img/line.gif',// LK, 20040222: Added _dtree_url + + join : _dtree_url + 'img/join.gif',// LK, 20040222: Added _dtree_url + + joinBottom : _dtree_url + 'img/joinbottom.gif',// LK, 20040222: Added _dtree_url + + plus : _dtree_url + 'img/plus.gif',// LK, 20040222: Added _dtree_url + + plusBottom : _dtree_url + 'img/plusbottom.gif',// LK, 20040222: Added _dtree_url + + minus : _dtree_url + 'img/minus.gif',// LK, 20040222: Added _dtree_url + + minusBottom : _dtree_url + 'img/minusbottom.gif',// LK, 20040222: Added _dtree_url + + nlPlus : _dtree_url + 'img/nolines_plus.gif',// LK, 20040222: Added _dtree_url + + nlMinus : _dtree_url + 'img/nolines_minus.gif'// LK, 20040222: Added _dtree_url + + }; + + this.obj = objName; + + this.aNodes = []; + + this.aIndent = []; + + this.root = new Node(-99); // LK, 20040222: Changes -1 to -99 because pageId -1 is an existing + // (reserved) page in WebGUI + this.selectedNode = null; + + this.selectedFound = false; + + this.completed = false; + +}; + + + +// Adds a new node to the node array + +dTree.prototype.add = function(id, pid, name, url, title, target, icon, iconOpen, open) { + + this.aNodes[this.aNodes.length] = new Node(id, pid, name, url, title, target, icon, iconOpen, open); + +}; + + + +// Open/close all nodes + +dTree.prototype.openAll = function() { + + this.oAll(true); + +}; + +dTree.prototype.closeAll = function() { + + this.oAll(false); + +}; + + + +// Outputs the tree to the page + +dTree.prototype.toString = function() { + + var str = '
\n'; + + if (document.getElementById) { + + if (this.config.useCookies) this.selectedNode = this.getSelected(); + + str += this.addNode(this.root); + + } else str += 'Browser not supported.'; + + str += '
'; + + if (!this.selectedFound) this.selectedNode = null; + + this.completed = true; + + return str; + +}; + + + +// Creates the tree structure + +dTree.prototype.addNode = function(pNode) { + + var str = ''; + + var n=0; + + if (this.config.inOrder) n = pNode._ai; + + for (n; n'; + + } + + if (node.url) { + + str += ''; + + str += node.name; + + if (node.url || ((!this.config.folderLinks || !node.url) && node._hc)) str += ''; + + str += ''; + + if (node._hc) { + + str += '
'; + + str += this.addNode(node); + + str += '
'; + + } + + this.aIndent.pop(); + + return str; + +}; + + + +// Adds the empty and line icons + +dTree.prototype.indent = function(node, nodeId) { + + var str = ''; + + if (this.root.id != node.pid) { + + for (var n=0; n'; + + (node._ls) ? this.aIndent.push(0) : this.aIndent.push(1); + + if (node._hc) { + + str += ''; + + } else str += ''; + + } + + return str; + +}; + + + +// Checks if a node has any children and if it is the last sibling + +dTree.prototype.setCS = function(node) { + + var lastId; + + for (var n=0; n + + + + + Destroydrop » Javascripts » Tree + + + + + + + + +

Destroydrop » Javascripts » Tree

+ +

Example

+ +
+ +

open all | close all

+ + + +
+ +

©2002-2003 Geir Landrö

+ + + + \ No newline at end of file diff --git a/www/extras/Navigation/dtree/img/base.gif b/www/extras/Navigation/dtree/img/base.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ac0b117b078b91521d56fce710e987ff5c5bdf5 GIT binary patch literal 1040 zcmeH`?^BBb9KfHpsoZf+xenJINgQ!5-bCk)!^n@*j^hX|?DTUt&d)e*iWIX(X^rZs zS;bjeo)(q0_Kdd7+U#kgX6sq2Hf7D0w8+S}j*B zU^e%)wwf7?GB&%avhwY^Mp)kjMnf;JAF@)orFUu$Jojj)0Y%%dS^#y!MFKJlKI*kZ zQHw1Qn411IZL`^N+*sj)55|5B>%no|#P>;SpY!_pVoqNB11FTLtXKV+ui5NYKEH(|9ra$Y*+!JF zyQN+*nM|Xjqshr-tb;iirhQs1e|YZ+izQJ_fd)5RQ%$fA-<8zcPIDxM`Pe}<@N&x~ z5+mk^`}}5)$J5(8$QO1yox`;{*Qv)tf>#FFlQxnZJFbNuV(0)4Rkg|-HqYzvWu;eG z`vyd!_7|N4DYdTBQZ1cc{YWS~byJfdhibz>p$(3d4D822rLx4!eyiKx69maeWp=Am z;Sbc;>-IJWPPdIK6ehjitj4WUsfx>OVkKWMsOtv+bS))rHHx;{? fny&E8D>{NTbE&~4u_ql#Er|S;e|Qd+f+YL_u9n3O literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/cd.gif b/www/extras/Navigation/dtree/img/cd.gif new file mode 100644 index 0000000000000000000000000000000000000000..7503819404024526e6181901806c55f0d80c5933 GIT binary patch literal 239 zcmVrJ``g+7o}HwDfriP+%H`z#&d&S!*Z=kE z|K{fCzP{+0nauzH|NsC0A^8LW000jFEC2ui022Ta000D>@X2QgDb|R|oC=38x?@%aA z3XHC|001ZuX$Aq%mYc?Kr_IsGe7zvW*%XUnbb L&G+VrGgt!vQpOa` literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/folder.gif b/www/extras/Navigation/dtree/img/folder.gif new file mode 100644 index 0000000000000000000000000000000000000000..eb129763dcea0dc1916b7e934fdce2fd8770c380 GIT binary patch literal 372 zcmZ?wbhEHb6k-r!xXQrr`}gnn@893v9&~1=$&)8f4jw$XxRCo$zt;Bc+vnx5?P^z= zlf`m!n&I9q)y<94Gt(JwZ!g^1B)cGw zMSgXq@QJAg2YNM*9XqzJMr>9F(~2^IHB}=2ujK##G5PiD*Z=>|`G33g|C9Rv?>o0` z+x8y>W-^ck6o0ZXGBD^d=zw&C{KUXE(P4UlhmKVLi6xgzC4402GB{W!L~2f9POOq~ zU`a4ovhaqB%+vz~Nx8dkFFrrvqSej!Kd!MF9@+A*p|PG#+gVIkwX>^RSE$vAT~}-J zl&QL${d#h`nsevP*X5qctE;hW`3hadnOwRm>o;uF<*#vKOczy ZVbwl)>NG2h3j?FtrOQ`>yuBP5tO0@?i&Ovr literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/folderopen.gif b/www/extras/Navigation/dtree/img/folderopen.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5c31102d525076f68a946b1c942687b3ce0da4c GIT binary patch literal 376 zcmZ?wbhEHb6k-r!xXQrr{{8!<#k{|N|2{L*q6oUN3z&7>3 ztO5@mss0m7f-EEygfto)EEhyd@^~j!tvR(XKI+JllL;CPicM^J(Q8*-F>q|Y`M%=j z62+dM{~PKQW!3d-jdOF2Weio>+e{5RD$0%I4VAejFig^&H-8?Vk|_5Crb$NHt5$3C zNei(}Fr8zpvu*n}0e-m}r{#G~uV;mw0cLrC^)_Z0DGV33b1Po(Sa(>zf!o}J1>$0ZL+5}+6JHr`< zs59<2ADD$k0dv7VSPBs!85|83W2YWrU{mu%Hi8cua%jT}X0VKs8iV_@s~cN|4IQK7 zlgwVZniU_ug+va|$vdW0wiwXo*|ykB@De?HwLlJxC0N(!S8i(2E~|v9(_+$dE1QD4 z(6NQB0}P|~wBw2sEI5NRJ4=uuOa5tsBHg+7q6Hu5dC6C#RV~P$5g9p@LhLx0zT1=#$;61Slp z{b$G3Cq5tj+aRnLm}j%g>meJip=3z4fBc6cC?X}jzdC>`>6~1Hyp7=2MId*?rsV_o z0IrGVmN!ePo4-uR0e|!Ywb#GtFWpGfTw^6849G2ChCzJ@XGmPPTIixuZ>)mYL-;TxSo$E#hk&Ui;z3lE682RvPTxRDt7BWAb0m{VSvJ=cgb~yz@9V5_O(cZFI)`$`ISCTU`DjBw zyS8egLnhurnWUI?_PR)I7%9~+D!e_EXKRJ1r3zig4{K%xOvx2|%18b>$me4+u^7Xq I@p#1QKgm$!SpWb4 literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/imgfolder.gif b/www/extras/Navigation/dtree/img/imgfolder.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6d880347f518bbd1239f2af3e3059ccb1e674e3 GIT binary patch literal 622 zcmZ?wbhEHb6k-r!c*el+{{8!<#k_3u{{L^wI(YEl_U+q$|Ni~|@MghDua+)ZG%JH? z-TL((7IrU~Kj+DlCo5O3lwA7%*s)`qHgDa!eb@j0OBdvEG*;)$$zqw8!`56^^k}p5 z_Ya-7_UFu)+TYb$+uz;v|9Z=kBA(5S(&rbc{eRsuGoA72{gy`u15VE{KDj_~ajDeg z37uzVnk*{dIyud7L!HE&S<`mx+V>;JX-$>L)2C0b?{GLaORBB0{O{F*<)!?K3%Nf$ zsam#d+5aDt|39h!f4lVm`_9*|U#E2~`~QE=wr$&f|N3)mmgIjBn8`2{fZ|UUMg|5? z1|5)NL2<&se!9W4skx=K)lgW7o1c@{KvtWf%~RNQ+VpAif|G?@nV2{@=DW(VPUdzM za9Zso;A-yDro->*#N*D+IV1gO z@j_>Lk*uD81ih2?D)vTMXLcNRa$tCI39M1!eiVTiL RukLUjIIv`XD-$DwH2~IF)06-J literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/join.gif b/www/extras/Navigation/dtree/img/join.gif new file mode 100644 index 0000000000000000000000000000000000000000..34dd47610a5d7c3580dedc342683559bf77abce2 GIT binary patch literal 69 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFv;}DH=KUEdfpt3ORshA Wx&LIzk};W<vKC_i literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/joinbottom.gif b/www/extras/Navigation/dtree/img/joinbottom.gif new file mode 100644 index 0000000000000000000000000000000000000000..48b81c80a9e25f6f29e2614aaa33bdf4a4d2881b GIT binary patch literal 66 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFiG~vH=KUEdfpt3ORshA Tx&LIzy5lkJS?4l0Mh0sDgH;v` literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/line.gif b/www/extras/Navigation/dtree/img/line.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a259eea00c330eee85fb18aa64e2e232d5410b1 GIT binary patch literal 66 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFiG~vH=KUEdfpt3ORshA Txqp6J8?ND(@^elGBZD;ng_;%{ literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/minus.gif b/www/extras/Navigation/dtree/img/minus.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d212a97ae0d8f83aa39836c5a85d442f8602553 GIT binary patch literal 86 zcmZ?wbhEHb6k-r!n8?h~)YR0_(7?dJ@c;jR#h)yU3=GT+IzTQ^R)~RtNqvreafzu-gC3m_gnAtsyGG)YXIxA8@>Pl literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/musicfolder.gif b/www/extras/Navigation/dtree/img/musicfolder.gif new file mode 100644 index 0000000000000000000000000000000000000000..f620789feb3c4b1222909d255f51aeaa81faefb6 GIT binary patch literal 633 zcmZ?wbhEHb6k-r!c;?CQ|HtI_d&1|;T=V|@`}l;_ON)8`KdAow`}didCU@_DGciej z^5n_Eg9rbA>8q=`<>xo+u1K?DiJW3#)C#D)aIvB91 zfNOew_W$>t|Ni|e&CM||NI81&?f=`QuV26Z|9{T0S(4kfZTk-bGZ}^gQ2fcl$iU#q zpaXI&C{7sIuQhl!HMg)hmVUg|Ta9<%L zB*!hNW#eGnvfRbP!^OqjoL^Um#e}(8(%psk*bWzm73wnj%>wQWm-x821i3D`7>P8w z-n-|h>B!0H=xU{*=yrFzi#XF`MLGYlFIxARNO@hDtWaBUIiPTOMfV7_}lvsu=hh(Z;&NfL@qDJM29Jw4q( Jn2m+O8UP#&8=e3F literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/nolines_plus.gif b/www/extras/Navigation/dtree/img/nolines_plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..f258ce211a0a19c2ecbcb11170b9a8b35ae2436c GIT binary patch literal 870 zcmZ?wbhEHb6k-r!_|DAG)YR0_(7-SXMnhmkhJfNv7DfgJW(FOQ??HKjfy0@BokPZB z!-9j&9Ku>LGYlFIxARNO@hAj7*xx83m?l#Y_`t1M|Ba{La?4kwX3c6}c&WZ`PygnpJ?rkDyZry# zum9<}^Zxw(U)#BD%KlHsjvf2=@89j`-!lsq`N~Rn2+cXw3F)`cNXo|{M zwn^yh*lA;L&u+56RaJ{?r=8t#bK_Gj;^%BG95Yu?zS_*U>z2K_g$4ipCbgRvpFHC> zdg-Vu`PTd?H;48ok#7ReIGiR-xW0J7!Dc}Y2`z_&_QUOboFWD+3JrbT68dFMM=k~^ HFjxZso}Jb2 literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/plus.gif b/www/extras/Navigation/dtree/img/plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..b2c997233b3f7b0fd56c4637c2c20aaf0d47bae7 GIT binary patch literal 89 zcmZ?wbhEHb6k-r!n8?J?(9poZ!0`Y7e;}#&lZBCifr&u}$Og&^0ohtp^czmUT|IBk qf~en0XVhiRX3S&EJ6Nfhb5kY1Re>f2&SBJ{1ibDv2XRV|Dor_^WyXB*=Ku>91RN!zTl3yBbIVx z(geQ%ggTf9umTL|phE>VfGW0dOs3%S#nN%*vE*Enb)jBp9@2x>3JQh1R%p`NKy3y_ zU3YW4U}Q`#nViy?7fYC*mTrH-X7dccKo2mX(s=~L^<(g+r59TS6iqRkj2so5zx+t0 zo0(kzz6vnCo~H$RBRBH)J1GX_SNvfE*Z~wa*h)-iiw*S>Xcn2f6(IYmN~W^Xa^K5L zAex2;PwPjN7>)J4^$VxEb>L;|NOI2mP7BNcjAM&;D`d1LQE7F1uO6=7d%+o2q9~a& z^=HF5f%;G1kxWBiba`M*MXx~Y7eUYLsomU#>SdCrPUj>1OFJ?by71aqM(w;SNCnf+=v){(2QoAPYLn^Co4umpI zZBr+TQf2|-$OSB}T&RT}4J2kXT)9=qY~~&gO+?Wfm<{S%x+=cSPXj28urVYrD5gv> z1x&7r!xs%3p=C(_v_;&ng?=lfkaLrYG$*dMwTX12GNmWsd~wr2�PO#XTOK|5d)& z!4vms05e%S6&9cUdCfvAM{4}`Ll&Au0|4ZI{x#q|zXU~)a%9_I{Pz zF8K#`U8CUK$V+kftzmD{56XRA*JOAEn0*=T9qYDGam8&jKK%R;2frNVs?fakAt(1x zVoBrOZf<9tZI{^DPQFJAYw$bp-YzSMPP;$X(ujj4M^>&|RhjNU%J*O1o>2EXGlIU? f&E;Ccsie~d>oCoZ literal 0 HcmV?d00001 diff --git a/www/extras/Navigation/dtree/img/trash.gif b/www/extras/Navigation/dtree/img/trash.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfa0f000e1ed3b61c8737fcfbef4b78035a6abe7 GIT binary patch literal 1051 zcmeH`!B0|g0LLGK3dPJgm@T#>b?KJNwY61t2y23!a_iPbmlJ1M5VKlN19e8^5=^!z zbD)u~Nn)UBz(^5iXd;hRCWauSKscU&!V@09@^9$c_wYG>4xjDIC@(v6wu%B#plCOQ zlj1%HL7xpg`;4hq!Iu!Ay`fHi8EnwqRZheRTo3t^+{2HkSV8B3ac*wiwj`U#enmI4T(`vn#vK;=k2di7RfPB!bd zJK#>yEZWxDDf!FE7-xpVy$l$}cV*&0M5)OxjQmJ|k6$*vDy}eU@5RE6J(P)Qp+ZeFi9t}!OUd7^O(;WX^ z+tZm1;6~zHF4t@}>pdVC3@Q`~e*%oJB(?5U`#K^Y8IgTkSWbYYT`>3^JQN6~{i|c1 zT@Hui@px7N7}o0@4u@hP=0$@VCwTuo#%8nWYPtge=>Pt?01YMJAgCKUv1i)*1VoHM zg(NCdC7W!ynX~=LT1$V~nzDI+!inF1=tx}_nc5}mr=DV)ug;EKpMRZBPRn{eeTULj zT$`c1GEET^B}LcnR&AAaiH{Ye*N`rB57O`u#Dp_b1s(h%A~RpaD3zSN{F_j2tj!_g zDpL!j?zKmG<;}MS$4?;^-Us|{&uLL9Bj?<{OfuP3Q`%K@Iu9puGT|qsM`h&mnJkio zah!lJc2>jfh55v~gO_sCXyqAH#KmqWJ;xJR)WRHv@kL7O1(~3lev(ei&BE0!@)+$U l*+Y54N|AtcU>`GZuw~%!;jig5uN)!pv)3}!7s*7Z