summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLester Caine <lester@lsces.co.uk>2026-05-15 11:11:04 +0100
committerLester Caine <lester@lsces.co.uk>2026-05-15 11:11:04 +0100
commitdf681ca9a20464ec61ebf34cd5622b9c5c9aec61 (patch)
tree8fe671f2e2758f59c1afcbbea4ad0194a4c6cf4d
parentad1b97a383f7cb0d82f31cd74b6e9349930803db (diff)
downloadpigeonholes-df681ca9a20464ec61ebf34cd5622b9c5c9aec61.tar.gz
pigeonholes-df681ca9a20464ec61ebf34cd5622b9c5c9aec61.tar.bz2
pigeonholes-df681ca9a20464ec61ebf34cd5622b9c5c9aec61.zip
Add a functional copy of DynamicTreeBuilder.js for use in package
-rwxr-xr-xedit_structure.php4
-rw-r--r--scripts/DynamicTree.css13
-rw-r--r--scripts/DynamicTreeBuilder.js5
3 files changed, 20 insertions, 2 deletions
diff --git a/edit_structure.php b/edit_structure.php
index b818cf9..304e510 100755
--- a/edit_structure.php
+++ b/edit_structure.php
@@ -22,8 +22,8 @@ $gBitSystem->verifyPackage( 'pigeonholes' );
$gBitSystem->verifyPermission( 'p_pigeonholes_create' );
// we need to load some javascript and css for this page
-$gBitThemes->loadCss( UTIL_PKG_PATH.'javascript/libs/mygosu/DynamicTree.css' );
-$gBitThemes->loadJavascript( UTIL_PKG_PATH.'javascript/libs/mygosu/DynamicTreeBuilder.js' );
+$gBitThemes->loadCss( PIGEONHOLES_PKG_PATH.'scripts/DynamicTree.css' );
+$gBitThemes->loadJavascript( PIGEONHOLES_PKG_PATH.'scripts/DynamicTreeBuilder.js' );
include_once PIGEONHOLES_PKG_INCLUDE_PATH.'lookup_pigeonholes_inc.php';
diff --git a/scripts/DynamicTree.css b/scripts/DynamicTree.css
new file mode 100644
index 0000000..0b07cc2
--- /dev/null
+++ b/scripts/DynamicTree.css
@@ -0,0 +1,13 @@
+.DynamicTree {line-height:18px; white-space:nowrap; cursor:default;}
+.DynamicTree .section {background:url(/liberty/icons/tree-branch.gif) repeat-y; display:none;}
+.DynamicTree .last {background:none;}
+.DynamicTree .folder .folder,
+.DynamicTree .doc .doc,
+.DynamicTree .folder .doc {margin-left:18px;}
+.DynamicTree .text-active {font-weight:bold;}
+.DynamicTree img {border:0; vertical-align:middle;}
+.DynamicTree .tree-tooltip {float:left;}
+
+/* hack for IE to fix a bug (background of .section disappearing when mouse is over a link, for example Node 1.1.1.1) */
+* html .DynamicTree .doc {position:relative;}
+* html .DynamicTree .doc a {position:absolute; top:3px;}
diff --git a/scripts/DynamicTreeBuilder.js b/scripts/DynamicTreeBuilder.js
new file mode 100644
index 0000000..5d09c85
--- /dev/null
+++ b/scripts/DynamicTreeBuilder.js
@@ -0,0 +1,5 @@
+// DynamicTree 1.5.0 Author: Cezary Tomczak [www.gosu.pl] Free for any use as long as all copyright messages are intact
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7 2q=3i.3e.3g();8 2R(2z){d(2q.3f(2z)+1)}8 P(5){3.14=32;3.b={"2L":"2Z.1K","2N":"35.1K","15":"3h.1K","10":"39.1K","2S":"n-2S.M","W":"n-W.M","R":"n-R.M","1R":"n-R-28.M","1w":"n-1w.M","2h":"n-1w-25.M","4":"n-4.M","1Y":"n-4-25.M","1W":"n-4-28.M","1X":"n-4-28-25.M"};3.2t="";3.2s="";3.3b=8(){7 p,b;o(p 1Q 3.b){3.b[p]=3.14+3.b[p]}o(p 1Q 3.b){3.1E.V(z 3c());3.1E.1c().r=3.b[p];3.b[p]=3.1E.1c().r}3.1B($(3.5).c,3.n);3.2v();6(1x.2K){1x.2K("36",8(e){l.1P()},F)}y 6(1x.2F){1x.2F("31",8(e){l.1P()})}3.D()};3.37=8(){3.20();3.n=z C("n","",Q,z t(),F,N);3.m={};3.q=[];3.9="";3.21=0;3.1B($(3.5).c,3.n);3.D()};3.1B=8(k,n){o(7 i=0;i<k.f;i++){6(k[i].2p==1){6(!k[i].17){2H}k[i].5=3.5+"-"+(++3.21);7 4=z C();4.5=k[i].5;6(k[i].13){6(k[i].13.3a=="A"){7 a=k[i].13;6(a.13){4.h=a.13.2k.1f()}6(a.S){7 s=a.j.2w.3d(/S=["\'](2G:\\/\\/2G\\/)?([^"\']*)["\']/i);6(s){4.S=s[2]}}6(a.1F){4.1F=a.1F}6(a.1H){4.1H=a.1H}}y{4.h=k[i].13.2k.1f()}}4.j=n;4.c=(k[i].17=="R"?z t():Q);4.1e=(k[i].17=="W");4.H=(k[i].17=="R");n.c.V(4);3.m[4.5]=4}6(k[i].2p==1&&k[i].c){3.1B(k[i].c,n.c.1c())}}};3.2U=8(5){7 19=$(5+"-2d");7 4=$(5+"-4");7 J=$(5+"-J");6(19.1z.1y=="2e"){19.1z.1y="38";6(3.m[5].L()){4.r=3.b.1Y}y{4.r=3.b.4}J.r=3.b.R;3.q.23(5)}y{19.1z.1y="2e";6(3.m[5].L()){4.r=3.b.1X}y{4.r=3.b.1W}J.r=3.b.1R;3.q.V(5)}6(4.1h){4.1h=4.1h}6(J.1h){J.1h=J.1h}};3.2c=8(5){6(3.9){$(3.9+"-h").17="h"}$(5+"-h").17="h-9";3.9=5;3.2m.2o()};3.1l=8(){7 s="";7 k=3.n.c;o(7 i=0;i<k.f;i++){s+=k[i].1l()}d s};3.D=8(){$(3.5).2w=3.1l()};3.2v=8(){7 q=3.E.2O("q");6(q){3.q=q.1I("|");3.q.27(8(5){d l.m[5]&&l.m[5].H&&l.m[5].c.f})}};3.1P=8(){6(3.q.f){3.E.2I("q",3.q.33("|"),34*24*30,3.2t,3.2s)}y{3.20()}};3.20=8(){3.E.2Y("q")};3.2P=8(){6(!3.9){w"P.2P() u, 3m 3k 2x 9 4"}d 3.m[3.9]};3.3I=8(){d 3.9&&!3.m[3.9].1T()};3.3H=8(){d 3.9&&!3.m[3.9].L()};3.3F=8(){d 3.9&&(3.m[3.9].2E()>1)};3.3C=8(){6(3.9){7 4=3.m[3.9].Y();1U(4){6(4.H){d N}4=4.Y()}}d F};3.2B=8(){d 2u(3.9)};3.2D=8(){d 2u(3.9)};3.1S=8(){d 3.9&&3.m[3.9].H};3.3E=8(){6(3.9){7 4=3.m[3.9];6(4.1e){d N}6(4.H&&!4.c.f){d N}}d F};3.3J=8(){7 4=3.m[3.9];7 I=4.K();7 1b=4.j;1b.16(4);1b.T(4,I-1);3.D()};3.3K=8(){7 4=3.m[3.9];7 I=4.K();7 1b=4.j;1b.16(4);1b.T(4,I+1);3.D()};3.3M=8(){7 4=3.m[3.9];7 15=4.j;15.16(4);15.j.T(4,15.K()+1);3.D()};3.3Q=8(){7 4=3.m[3.9];7 1g=4.Y();7 1O=Q;1U(1g){6(1g.H){1O=1g.5;3P}1g=1g.Y()}7 10=3.m[1O];4.j.16(4);6(10.c.f){10.T(4,10.c.f)}y{10.11(4)}3.D()};3.X=8(5,h,x,B){6(!5||3.m[5]||!h||(x!="W"&&x!="R")){w 3.5+\'.X("\'+5+\'", "\'+h+\'", "\'+x+\'") u, 1k 1j\'}7 4;6(x=="W"){4=z C(5,h,Q,Q,N,F)}y{4=z C(5,h,Q,z t(),F,N)}6(B){o(7 p 1Q B){4[p]=B[p]}}3.m[5]=4;d 4};3.3L=8(5,h,x,B){7 4=3.X(5,h,x,B);6(3.n.c.f){3.n.T(4,0)}y{3.n.11(4)}3.D()};3.2C=8(5,h,x,B){6(!3.2B()){w 3.5+\'.2C() u, 1k 1j\'}7 4=3.X(5,h,x,B);7 9=3.m[3.9];9.j.T(4,9.K());3.D()};3.2r=8(5,h,x,B){6(!3.2D()){w 3.5+\'.2r() u, 1k 1j\'}7 4=3.X(5,h,x,B);7 9=3.m[3.9];6(9.j.c[9.K()+1]){9.j.T(4,9.K()+1)}y{9.j.11(4)}3.D()};3.2y=8(5,h,x,B){6(!3.1S()){w 3.5+\'.2y() u, 1k 1j\'}7 4=3.X(5,h,x,B);7 9=3.m[3.9];6(9.c.f){9.T(4,0)}y{9.11(4)}3.D()};3.2j=8(5,h,x,B){6(!3.1S()){w 3.5+\'.2j() u, 1k 1j\'}7 4=3.X(5,h,x,B);7 9=3.m[3.9];9.11(4);3.D()};3.3N=8(){7 4=3.m[3.9];4.j.16(4);3.m[3.9]=Q;3.9="";3.D()};8 C(5,h,j,c,1e,H){3.5=5;3.h=h;3.j=j;3.c=c;3.1e=1e;3.H=H;3.S="";3.1F="";3.1H="";3.1T=8(){6(3.j){d 3.j.c[0].5==3.5}w"P.C.1T() u, 3 O 1o 1p 1q o 1u 1v 1r"};3.L=8(){6(3.j){d 3.j.c.1c().5==3.5}w"P.C.L() u, 3 O 1o 1p 1q o 1u 1v 1r"};3.2E=8(){7 1V=0;7 4=3;1U(4.j){1V++;4=4.j}d 1V};3.2W=8(){6(3.j){7 k=3.j.c;7 1M=F;o(7 i=0;i<k.f;i++){6(1M){d k[i]}6(!1M&&3.5!=k[i].5){2H}1M=N}d F}w"P.C.2W() u, 3 O 1o 1p 1q o 1u 1v 1r"};3.Y=8(){6(3.j){7 k=3.j.c;o(7 i=0;i<k.f;i++){6(k[i].5==3.5){6(i){d k[i-1]}y{d F}}}w"P.C.Y() u, 2V 2X"}w"P.C.Y() u, 3 O 1o 1p 1q o 1u 1v 1r"};3.K=8(){6(3.j){7 k=3.j.c;o(7 i=0;i<k.f;i++){6(k[i].5==3.5){d i}}w"P.C.K() u, 2V 2X"}w"P.C.K() u, 3 O 1o 1p 1q o 1u 1v 1r"};3.16=8(4){3.c.22(4.K());4.j=Q};3.11=8(4){3.c.V(4);4.j=3};3.T=8(4,I){3.c.2a(4,I);4.j=3};3.1l=8(){6(!2R(\'3D\')){3.1G=" <1d 1m=\'3G\'><a S=\'1n:3B();\'><b r=\'"+l.b.2L+"\' Z=\'\' /></a> <a S=\'1n:3p();\'><b r=\'"+l.b.2N+"\' Z=\'\' /></a> <a S=\'1n:3o();\'><b r=\'"+l.b.15+"\' Z=\'\' /></a> <a S=\'1n:3j();\'><b r=\'"+l.b.10+"\' Z=\'\' /></a></1d>"}y{3.1G=""}7 s=\'<1N 1m="?" 5="?">\'.G((3.H?"R":"W"),3.5);6(3.H){7 1C;6(3.c.f){1C=(l.q.1i(3.5)?(3.L()?l.b.1X:l.b.1W):(3.L()?l.b.1Y:l.b.4))}y{1C=(3.L()?l.b.2h:l.b.1w)}7 J=((l.q.1i(3.5)&&3.c.f)?l.b.1R:l.b.R);6(3.c.f){s+=\'<a S="1n:3l(0)" 2i="?.2U(\\\'?\\\')">\'.G(l.5,3.5)}s+=\'<b 5="?-4" r="?" 2f="18" 2b="18" Z="" />\'.G(3.5,1C);6(3.c.f){s+=\'</a>\'}s+=\'<b 5="?-J" r="?" 2f="18" 2b="18" Z="" />\'.G(3.5,J);s+=\'<1d 5="?-h" 1m="h?" 2i="?.2c(\\\'?\\\')">??</1d>\'.G(3.5,(l.9==3.5?\'-9\':\'\'),l.5,3.5,3.h,3.1G);6(3.c.f){s+=\'<1N 1m="2d?" 5="?-2d"\'.G((3.L()?" 3q":""),3.5);6(l.q.1i(3.5)){s+=\' 1z="1y: 2e;"\'}s+=\'>\';o(7 i=0;i<3.c.f;i++){s+=3.c[i].1l()}s+=\'</1N>\'}}6(3.1e){s+=\'<b r="?" 2f="18" 2b="18" Z="" /><b r="?" />\'.G((3.L()?l.b.2h:l.b.1w),l.b.W);s+=\'<1d 5="?-h" 1m="h?" 2i="?.2c(\\\'?\\\')">??</1d>\'.G(3.5,(l.9==3.5?\'-9\':\'\'),l.5,3.5,3.h,3.1G)}s+=\'</1N>\';d s}}8 2n(){3.2O=8(12){7 29=1Z.E.1I(";");o(7 i=0;i<29.f;++i){7 a=29[i].1I("=");6(a.f==2){a[0]=a[0].1f();a[1]=a[1].1f();6(a[0]==12){d 3r(a[1])}}}d""};3.2I=8(12,1D,2g,14,1J,26){7 E=(12+"="+3u(1D));6(2g){7 2M=z 2Q(z 2Q().3z()+2g*3y);E+=("; 2T="+2M.3w())}E+=(14?"; 14="+14:"");E+=(1J?"; 1J="+1J:"");E+=(26?"; 26":"");1Z.E=E};3.2Y=8(12){1Z.E=12+"=; 2T=3t, 2A-3v-3O 2J:2J:2A 3s"}}8 2l(){3.1A=[];3.3x=8(O){3.1A.V(O)};3.2o=8(){o(7 i=0;i<3.1A.f;i++){3.1A[i]()}}}7 l=3;3.5=5;3.n=z C("n","",Q,z t(),F,N);3.m={};3.q=[];3.9="";3.E=z 2n();3.1E=[];3.21=0;3.2m=z 2l()}6(!t.v.1i){t.v.1i=8(s){o(7 i=0;i<3.f;++i){6(3[i]===s){d N}}d F}}6(!t.v.23){t.v.23=8(1D){7 i,U=[];o(i=0;i<3.f;++i){6(3[i]===1D){U.V(i)}}o(i=U.f-1;i>=0;--i){3.1L(U[i],1)}}}6(!t.v.27){t.v.27=8(O){7 i,U=[];o(i=0;i<3.f;++i){6(!O(3[i])){U.V(i)}}o(i=U.f-1;i>=0;--i){3.1L(U[i],1)}}}6(!t.v.1c){t.v.1c=8(){d 3[3.f-1]}}6(!1t.v.1f){1t.v.1f=8(){d 3.3n(/^\\s*|\\s*$/g,"")}}1t.v.G=8(){6(!1a.f){w"1t.G() u, 2x 1a 3A, 3 = "+3}7 1s=3.1I("?");6(1a.f!=(1s.f-1)){w"1t.G() u, 1s != 1a, 3 = "+3}7 s=1s[0];o(7 i=0;i<1a.f;++i){s+=(1a[i]+1s[i+1])}d s};6(!t.v.22){t.v.22=8(I){3.1L(I,1)}}6(!t.v.2a){t.v.2a=8(19,I){3.1L(I,0,19)}}',62,239,'|||this|node|id|if|var|function|active||img|childNodes|return||length||text||parentNode|nodes|self|allNodes|tree|for||opened|src||Array|failed|prototype|throw|type|else|new||object|Node|updateHtml|cookie|false|format|isFolder|index|icon|getIndex|isLast|gif|true|func|DynamicTreeBuilder|null|folder|href|appendChildAtIndex|indexes|push|doc|createNode|getPreviousSibling|alt|right|appendChild|name|firstChild|path|left|removeChild|className||el|arguments|parent|getLast|span|isDoc|trim|prev|outerHTML|contains|action|illegal|toHtml|class|javascript|cannot|be|called|element|tokens|String|the|root|leaf|window|display|style|funcs|parse|nodeIcon|value|imgObjects|title|navlinks|target|split|domain|png|splice|start|div|rightId|saveState|in|folderOpen|mayInsertInside|isFirst|while|level|nodeOpen|nodeOpenEnd|nodeEnd|document|clearState|count|removeByIndex|removeByValue||end|secure|filter|open|cookies|pushAtIndex|height|textClick|section|block|width|seconds|leafEnd|onclick|insertInsideAtEnd|nodeValue|Listener|textClickListener|Cookie|call|nodeType|detect|insertAfter|cookieDomain|cookiePath|Boolean|loadState|innerHTML|no|insertInsideAtStart|string|01|mayInsertBefore|insertBefore|mayInsertAfter|getLevel|attachEvent|dynamictree|continue|set|00|addEventListener|up|date|down|get|getActiveNode|Date|checkIt|branch|expires|nodeClick|unknown|getNextSibling|error|del|move_up||onunload|bitIconDir|join|3600|move_down|unload|reset|none|move_right|tagName|init|Image|match|userAgent|indexOf|toLowerCase|move_left|navigator|treeMoveRight|is|void|there|replace|treeMoveLeft|treeMoveDown|last|unescape|GMT|Thu|escape|Jan|toGMTString|add|1000|getTime|passed|treeMoveUp|mayMoveRight|msie|mayRemove|mayMoveLeft|move|mayMoveDown|mayMoveUp|moveUp|moveDown|insert|moveLeft|remove|70|break|moveRight'.split('|'),0,{}))
+eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('d L(){5.C=d(f){f=f.B(/r=["\']([^"\']*)["\']/g,\'r="s://s/$1"\');$(5.G).D=f;5.E()};5.j=d(2){6 3="";9(2){9(2.b){3+="?\'?\' => e(\\n".c(" ".8(4*2.m()),2.h);7(6 i=0;i<2.b.v;++i){3+=5.j(2.b[i])}3+="?)?\\n".c(" ".8(4*2.m()),2.t()?"":",")}u{3+="?\'?\' => H?\\n".c(" ".8(4*2.m()),2.h,2.t()?"":",")}}u{6 k=5.q.b;3+="$q[\'M\'] = e(\\n";7(6 i=0;i<k.v;++i){3+=5.j(k[i])}3+=");\\n\\n";3+="$q[\'F\'] = e(\\n";6 o=0,l=0;7(6 p z 5.a){9(!5.a[p]){x}o++}7(6 p z 5.a){9(!5.a[p]){x}l++;6 2=5.a[p];3+=" \'?\' => e(\'K\' => \'?\', \'I\' => \'?\')?\\n".c(2.h,2.N.h,2.J,o!=l?",":"")}3+=");"}w 3}}9(!A.y.8){A.y.8=d(n){6 3="";7(6 i=0;i<n;++i){3+=5}w 3}}',50,50,'||node|ret||this|var|for|repeat|if|allNodes|childNodes|format|function|array|html||title||exportToPhp|nodes|current|getLevel||cnt||tree|href|dynamictree|isLast|else|length|return|continue|prototype|in|String|replace|importFromHtml|innerHTML|reset|data|id|null|content_id|target|parent_id|DynamicTreePlugins|structure|parentNode'.split('|'),0,{}))
+
+