From 394348edfbaa79385deab04a6da3cf5ef370b5fd Mon Sep 17 00:00:00 2001 From: Franck VILLAUME Date: Sun, 11 Sep 2011 18:34:31 +0000 Subject: [PATCH] first implementation of jquery simpletreemenu in docman. offers js and none js browser support as standardi. need to implement in others themes. --- .gitattributes | 5 + src/common/docman/DocumentManager.class.php | 13 ++- src/common/docman/views/tree.php | 36 +++++++ .../css/jquery-simpleTreeMenu-1.1.0.css | 47 +++++++++ .../css/simpleTreeMenu/menu-arrow-down.png | Bin 0 -> 2933 bytes .../css/simpleTreeMenu/menu-arrow-right.png | Bin 0 -> 2952 bytes .../css/simpleTreeMenu/menu-dot.png | Bin 0 -> 2898 bytes .../js/jquery-simpleTreeMenu-1.1.0.js | 97 ++++++++++++++++++ src/www/themes/funky/Theme.class.php | 2 + 9 files changed, 195 insertions(+), 5 deletions(-) create mode 100644 src/lib/vendor/jquery-simpletreemenu/css/jquery-simpleTreeMenu-1.1.0.css create mode 100644 src/lib/vendor/jquery-simpletreemenu/css/simpleTreeMenu/menu-arrow-down.png create mode 100644 src/lib/vendor/jquery-simpletreemenu/css/simpleTreeMenu/menu-arrow-right.png create mode 100644 src/lib/vendor/jquery-simpletreemenu/css/simpleTreeMenu/menu-dot.png create mode 100644 src/lib/vendor/jquery-simpletreemenu/js/jquery-simpleTreeMenu-1.1.0.js diff --git a/.gitattributes b/.gitattributes index db33e80027..bf7909b40e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -798,6 +798,11 @@ src/install/detect_os -text src/install/install2 -text src/install/install3 -text src/install/install4 -text +src/lib/vendor/jquery-simpletreemenu/css/jquery-simpleTreeMenu-1.1.0.css -text +src/lib/vendor/jquery-simpletreemenu/css/simpleTreeMenu/menu-arrow-down.png -text svneol=unset#image/png +src/lib/vendor/jquery-simpletreemenu/css/simpleTreeMenu/menu-arrow-right.png -text svneol=unset#image/png +src/lib/vendor/jquery-simpletreemenu/css/simpleTreeMenu/menu-dot.png -text svneol=unset#image/png +src/lib/vendor/jquery-simpletreemenu/js/jquery-simpleTreeMenu-1.1.0.js -text src/lib/vendor/jquery-storage/jquery.Storage.js -text src/lib/vendor/jquery-tipsy/LICENSE -text src/lib/vendor/jquery-tipsy/README -text diff --git a/src/common/docman/DocumentManager.class.php b/src/common/docman/DocumentManager.class.php index 3722d5d5d1..b36d660bd2 100644 --- a/src/common/docman/DocumentManager.class.php +++ b/src/common/docman/DocumentManager.class.php @@ -145,7 +145,6 @@ class DocumentManager extends Error { } $subGroupIdArr = $dg->getSubgroup($docGroupId, $stateId); if (sizeof($subGroupIdArr)) { - echo ''; } } } diff --git a/src/common/docman/views/tree.php b/src/common/docman/views/tree.php index ccb85ea845..8b003e476f 100644 --- a/src/common/docman/views/tree.php +++ b/src/common/docman/views/tree.php @@ -38,7 +38,16 @@ if (!forge_check_perm('docman', $group_id, 'read')) { echo '
'; $dm = new DocumentManager($g); +echo ''; +echo ' + +'; if ($g->usesPlugin('projects-hierarchy')) { $projectsHierarchy = plugin_get_object('projects-hierarchy'); $projectIDsArray = $projectsHierarchy->getFamily($group_id, 'child', true, 'validated'); @@ -51,9 +60,36 @@ if (isset($projectIDsArray) && is_array($projectIDsArray)) { echo '
'; echo '
'._('Child project: ').util_make_link('/docman/?group_id='.$groupObject->getID(),$groupObject->getPublicName(), array('class'=>'tabtitle', 'title'=>_('Browse document manager in this project'))).'
'; $dm = new DocumentManager($groupObject); + echo ''; + echo ' + + '; } } } +if (isset($childgroup_id) && $childgroup_id) { + $groupObject = group_get_object($childgroup_id); + echo ' + + '; +} else { + echo ' + + '; +} echo '
'; ?> diff --git a/src/lib/vendor/jquery-simpletreemenu/css/jquery-simpleTreeMenu-1.1.0.css b/src/lib/vendor/jquery-simpletreemenu/css/jquery-simpleTreeMenu-1.1.0.css new file mode 100644 index 0000000000..b249a095e2 --- /dev/null +++ b/src/lib/vendor/jquery-simpletreemenu/css/jquery-simpleTreeMenu-1.1.0.css @@ -0,0 +1,47 @@ +/* simpleTreeMenu */ + +ul.simpleTreeMenu { + line-height: 1.75em; + margin-top: 0px; + margin-bottom: 0px; +} + +ul.simpleTreeMenu, ul.simpleTreeMenu ul { + margin-left: 0px; + padding-left: 15px; +} + +ul.simpleTreeMenu li.Node { + list-style-image: url("simpleTreeMenu/menu-arrow-right.png"); + margin-left: 5px; + padding: 0px; +} + +ul.simpleTreeMenu li.Node span { + cursor: pointer; + display: block; +} + +ul.simpleTreeMenu li.Node span:hover { + background-color: #e0e0e0; +} + +ul.simpleTreeMenu li.expanded { + list-style-image: url("simpleTreeMenu/menu-arrow-down.png"); +} + +ul.simpleTreeMenu li.Leaf { + list-style-image: url("simpleTreeMenu/menu-dot.png"); + margin-left: 5px; + padding: 0px; +} + +ul.simpleTreeMenu a, ul.simpleTreeMenu a:visited { + display: block; + text-decoration: none; + color: #3333AA; +} + +ul.simpleTreeMenu a:hover { + background-color: #e0e0e0; +} diff --git a/src/lib/vendor/jquery-simpletreemenu/css/simpleTreeMenu/menu-arrow-down.png b/src/lib/vendor/jquery-simpletreemenu/css/simpleTreeMenu/menu-arrow-down.png new file mode 100644 index 0000000000000000000000000000000000000000..bcf7ea5dfa6e72c1a762b96e525613bc6ed5041a GIT binary patch literal 2933 zcmV-*3ySoKP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0001>NklKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00029NklYrmz+SOTh!!dIC$q8{`lkBUe!H2$mio1`8{_ zfJJ7S-3Vc=0&4QBU%b!zNm-V!EXxWJIl@S=ZQF^69E>qfB3ciCzJw5F%zU=i-iT;9 z0Qz|E7a~$Q=PpDvMMRAMP>eANA*{Nt+pDo-*4js!rWJ`Lm_~0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0001eNklb1S>3mt4|y-!40amZT;&z0D`9%!? 0) { + $li.children("ul").hide(); + $li.addClass("Node").click(function(event) { + var $t = $(this); + if ($t.hasClass("expanded")) { + $t.removeClass("expanded"); + $t.children("ul").hide(); + } else { + $t.addClass("expanded"); + $t.children("ul").show(); + } + event.stopPropagation(); + }); + $li.children("ul").children("li").each(function() { + methods.buildNode($(this)); + }); + } else { + $li.addClass("Leaf").click(function(event) { + event.stopPropagation(); + }); + return; + } + }, + + expandToNode: function($li) { + if ($li.parent().hasClass("simpleTreeMenu")) { + if (!$li.hasClass("expanded")) { + $li.addClass("expanded"); + $li.children("ul").show(); + } + } + $li.parents("li", "ul.simpleTreeMenu").each(function() { + var $t = jQuery(this); + if (!$t.hasClass("expanded")) { + $t.addClass("expanded"); + $t.children("ul").show(); + } + }); + }, + + expandAll: function() { + jQuery(this).find("li.Node").each(function() { + $t = jQuery(this); + if (!$t.hasClass("expanded")) { + $t.addClass("expanded"); + $t.children("ul").show(); + } + }); + }, + + closeAll: function() { + jQuery("ul", jQuery(this)).hide(); + var $li = jQuery("li.Node"); + if ($li.hasClass("expanded")) { + $li.removeClass("expanded"); + } + } + + }; + + $.fn.simpleTreeMenu = function(method) { + if (methods[method]) { + return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); + } else if (typeof method === 'object' || !method) { + return methods.init.apply(this, arguments); + } else { + $.error('Method ' + method + ' does not exist on jQuery.simpleTreeMenu'); + } + }; + +})(jQuery); + + + + + \ No newline at end of file diff --git a/src/www/themes/funky/Theme.class.php b/src/www/themes/funky/Theme.class.php index 649c000f1e..248c9eb5bc 100644 --- a/src/www/themes/funky/Theme.class.php +++ b/src/www/themes/funky/Theme.class.php @@ -434,8 +434,10 @@ class Theme extends Layout { echo ''; echo ''; echo ''; + echo ''; echo ''; echo ''; + echo ''; ?>