From 33b80f2734a660f696528d9ea85ba6e2ced95514 Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Wed, 16 May 2007 16:47:51 +0000 Subject: [PATCH] First pass at My Spaces webscript based portlet. Fixes and improvements to doclist and mytasks portlets. New 64x64 icons from Linton. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5694 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../client/portlet_node_summary_panel.ftl | 4 +- .../alfresco/portlets/doclist_get_html.ftl | 5 +- .../alfresco/portlets/myspaces_get_desc.xml | 7 + .../alfresco/portlets/myspaces_get_html.ftl | 292 ++++++++++++++++++ .../alfresco/portlets/mytasks_get_html.ftl | 5 +- .../icons/doclist_action_createspace.png | Bin 0 -> 1987 bytes .../images/icons/doclist_action_upload.png | Bin 0 -> 1054 bytes source/web/images/icons/space-icon-cd-16.png | Bin 0 -> 822 bytes source/web/images/icons/space-icon-cd-64.png | Bin 0 -> 4155 bytes .../images/icons/space-icon-default-16.png | Bin 0 -> 706 bytes .../images/icons/space-icon-default-64.png | Bin 0 -> 3634 bytes source/web/images/icons/space-icon-doc-16.png | Bin 0 -> 739 bytes source/web/images/icons/space-icon-doc-64.png | Bin 0 -> 3645 bytes .../web/images/icons/space-icon-image-16.png | Bin 0 -> 806 bytes .../web/images/icons/space-icon-image-64.png | Bin 0 -> 4205 bytes source/web/images/icons/space-icon-pen-16.png | Bin 0 -> 821 bytes source/web/images/icons/space-icon-pen-64.png | Bin 0 -> 4198 bytes .../web/images/icons/space-icon-star-16.png | Bin 0 -> 784 bytes .../web/images/icons/space-icon-star-64.png | Bin 0 -> 4174 bytes source/web/scripts/ajax/myspaces.js | 206 ++++++++++++ 20 files changed, 511 insertions(+), 8 deletions(-) create mode 100644 config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_desc.xml create mode 100644 config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_html.ftl create mode 100644 source/web/images/icons/doclist_action_createspace.png create mode 100644 source/web/images/icons/doclist_action_upload.png create mode 100644 source/web/images/icons/space-icon-cd-16.png create mode 100644 source/web/images/icons/space-icon-cd-64.png create mode 100644 source/web/images/icons/space-icon-default-16.png create mode 100644 source/web/images/icons/space-icon-default-64.png create mode 100644 source/web/images/icons/space-icon-doc-16.png create mode 100644 source/web/images/icons/space-icon-doc-64.png create mode 100644 source/web/images/icons/space-icon-image-16.png create mode 100644 source/web/images/icons/space-icon-image-64.png create mode 100644 source/web/images/icons/space-icon-pen-16.png create mode 100644 source/web/images/icons/space-icon-pen-64.png create mode 100644 source/web/images/icons/space-icon-star-16.png create mode 100644 source/web/images/icons/space-icon-star-64.png create mode 100644 source/web/scripts/ajax/myspaces.js diff --git a/config/alfresco/templates/client/portlet_node_summary_panel.ftl b/config/alfresco/templates/client/portlet_node_summary_panel.ftl index 016a2a8c24..7eeb9afec5 100644 --- a/config/alfresco/templates/client/portlet_node_summary_panel.ftl +++ b/config/alfresco/templates/client/portlet_node_summary_panel.ftl @@ -36,13 +36,13 @@ - +
-
+
diff --git a/config/alfresco/templates/webscripts/org/alfresco/portlets/doclist_get_html.ftl b/config/alfresco/templates/webscripts/org/alfresco/portlets/doclist_get_html.ftl index 9752668eea..c7b0fefa8f 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/portlets/doclist_get_html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/portlets/doclist_get_html.ftl @@ -1,3 +1,4 @@ + @@ -60,7 +61,7 @@ <#assign count=count+1>
- ${d.name} +
${d.name?html} @@ -189,9 +190,9 @@ a.docfilterLinkSelected:link, a.docfilterLinkSelected:visited font-family: Trebuchet MS, Arial, Helvetica, sans-serif; font-size: 12px; color: #000000; - margin: 0px 0px 0px 48px; display: none; overflow: hidden; + padding-left: 48px; } .docItemSelected diff --git a/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_desc.xml b/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_desc.xml new file mode 100644 index 0000000000..40c61baec2 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_desc.xml @@ -0,0 +1,7 @@ + + My Spaces + Generate the My Spaces portlet page + + user + required + \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_html.ftl b/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_html.ftl new file mode 100644 index 0000000000..1ac8198d53 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/portlets/myspaces_get_html.ftl @@ -0,0 +1,292 @@ + + + + + + + + + + + + + +<#-- get the filter mode from the passed in args --> +<#-- filters: 0=all, 1=spaces, 2=docs, 3=mine --> +<#if args.f?exists && args.f?length!=0><#assign filter=args.f?number><#else><#assign filter=0> + +<#-- get the path location from the passed in args, remove trailing slash --> +<#if args.p?exists><#assign path=args.p><#else><#assign path=""> +<#if path?ends_with("/")><#assign path=path[0..path?length-2]> +<#-- resolve the path (from Company Home) into a node or fall back to userhome--> +<#if path?starts_with("/Company Home")> + <#if path?length=13> + <#assign home=companyhome> + <#elseif companyhome.childByNamePath[args.p[14..]]?exists> + <#assign home=companyhome.childByNamePath[args.p[14..]]> + <#else> + <#assign home=userhome> + +<#else> + <#assign home=userhome> + +<#assign path=home.displayPath + "/" + home.name> + +
+
+ <#-- construct breadcrumb elements as links --> + <#assign bcpath="/"> + <#assign crumbs=path?split("/")> + <#list crumbs as c> + <#if c?length != 0> + <#assign bcpath=bcpath+c+"/"> + ${c} + <#if c_index >  + + +
+
+ ${home.name?html} +
+
+
Upload
+
Create Space
+
+
+
+ + + + + + + +
All ItemsSpacesDocumentsMy Items
+
+
+
+ <#assign user=person.properties.userName> + <#assign count=0> + <#list home.children?sort_by('name') as d> + <#if (filter=0) || + (filter=1 && d.isContainer) || + (filter=2 && d.isDocument) || + (filter=3 && (d.properties.creator == user || d.properties.modifier == user))> + <#assign count=count+1> +
+
+ <#if d.isDocument> + + <#else> + + +
+
+ ${d.name?html} + + + +
+
+ + + + + + +
+ Description: 
+ Modified: 
+ Modified By:  +
  + Created: 
+ Created By: 
+ Size:  +
+
+
+ + +
+
+ Showing ${count} items(s) +
+
+ + \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/portlets/mytasks_get_html.ftl b/config/alfresco/templates/webscripts/org/alfresco/portlets/mytasks_get_html.ftl index 579c6dc67c..c7faf2829d 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/portlets/mytasks_get_html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/portlets/mytasks_get_html.ftl @@ -232,10 +232,7 @@ a.taskfilterLinkSelected:link, a.taskfilterLinkSelected:visited .taskResources { - border-left: 1px solid #0092DD; - border-top: 1px solid #0092DD; - border-bottom: 1px solid #CCD4DB; - border-right: 1px solid #CCD4DB; + border: 1px solid #FFE500; background-color: #FEF8BC; margin: 4px 0px 0px 16px; width: 400px; diff --git a/source/web/images/icons/doclist_action_createspace.png b/source/web/images/icons/doclist_action_createspace.png new file mode 100644 index 0000000000000000000000000000000000000000..fff40ce8b0e2a4ca259e1fd6f270d9908fa166f6 GIT binary patch literal 1987 zcmV;!2R!(RP)wchiEvrgVA*kJ?PTE!^K>W&& zsA34A{on@zRD_TiQ-B3&Qg=~FT4*LzrK_@yu9wh}CT{Na+&Hn%)#t+d**WoXoiudp zQ$C-I2xB7 z1o+|MPsQ7}Z@w@vaH?2+W*_cT`j<$ck3M=d^mHoKbZq^2#cj8<4T2!H>AI2jcpM3r%NcaJ>^7QaXu|*s z?}N?8!R+i^pePOOb{qKpK30-SaY;(_Pfw4i8!B-4aG%ZVjqdO0*wWM4*_>=>@OtsV zVTPeyUat$KtpK65P%7zQ7-SnO8?9g%*t97OckbMQg@qg>lTK)BOLpD3F|nZv%<<#D z`BrCV+v)xLyL&o1n%l$SK$F8^Z@}$f7?vnh2G_L8Cg(c(pmMFR+|z;MSX3bgESf~l z-EKFkASYBc_14tXMP)q#^tNq@-h&5sJ>Jr?DdO?C?I>*-)Cy1quHB{zM zv?M?-moMMLc<63w3Vi#13eYn%xgo?eD)LrRi=1nkwn9LMiURtI<$4_L}DQj@Iy9RfSWg` z;o7xHXl_oVlga3jbz{KkJT#k1*-j)9VUPK6^MMs`!va(#RUuRx3*^Xg9J+%;A^{*Z zL6&94W@A$L?Yp~Xw>g94rxQ3Vd` zNV>Uy>ax{*DH(*OQFJyvOQXKvtn3o|~S|DFjH9i(v3` zt3)bb)^oka9aaJ+32W`ZKdcEJbVZ5r`TQpj9Ow(w5qR~1#9gvNe~qjg$8V9%~)|y))5Fa_@>jxi=J^mO2v2+XgV-3*N zISpTV@)j^I8f2BVxI$lpOuaj-8A4PbaFRr!3a&^b;(o4(35VS9WxdpXp`Im!e;#(yq=cvpaboc#t& z@!QJjWEQI09#B<)xCa{$wqyZ;b@aE5#24OIHBpooi$(q;JieLBeSZGjxz}e`hf>CF zJmzYgV~cYR-sV-Dj9sGh(++Tl79i-!z(l?kEvMETOiW-=6w4Mn95e)j9J#OKJh{yC z{1u*;{*=ot|7~dKrxVsfv`PS**v|ROp4W?6*L#gSW`4){r1apqBjDr;5VX(Zh=ggV zIadb|Qvni~fod(Q*kVVcMW5L&A53e;13zfyG7P-Lq%m>i_a~wB~z3ArHU* z;8yF4h6^4cqjm+f0*=1K#!|p**{U4=!OcA)zkB< zpTuH`UL3PlM)DE?HZ)Dd6faFFit=_opFcAOaN2bj z3VB@=mltT-cxQQe>96DC^zilTr<4Z)dSC)LUyjVr&s2?4B002ovPDHLkV1iFAxL5!H literal 0 HcmV?d00001 diff --git a/source/web/images/icons/doclist_action_upload.png b/source/web/images/icons/doclist_action_upload.png new file mode 100644 index 0000000000000000000000000000000000000000..3b06568bbda1d659b730ea2aefd7377b1b1e5ee3 GIT binary patch literal 1054 zcmV+(1mXLMP)+9?J`T5}B;MLXD($dnUrKPQ{t*or9tE;Q3s;a4}si>%^r>Cc; zrlzE%q@$ywj*gDAv$Nmd-`?Kd-QC^X+}xd=owT&H;o;%p;^N!e+qSm0loTkT@WeLm!kwySuyQ=H}<;=OdOyQ>k}Pr*$EfM7_Pe z=;-Jum`G={fn%|MCYMIPzrX3}=^2taEt^U&n@dBaTYJ5Xce;r^p;#%INEeYf!NI}m z>gtHYl8(lek;j*i$Cir3lYzgFb-Ibe!^1P3O`6P{qR^nG(V?W!pqU3(?(RaRRmjK~#9!t<&pU(og`$anG(O8Y#s_4#dR7igj@r zP0g(6rgp#I)nc1OyW2pogLrdw_}a1 z=0@d@ZbbvZaohX*ZP#I27BuR$i7^#Mg0$_r?Y8UMC@@h_;fIw-F={(5nq#vTL;=`K z{rVj#ezLahI5s{3H0w1mQeEDShl`ySixQSNx&lb_C6YgO)!%EBfkx3xGr3Ls!KP_K*kR%;DEO9)F@Df639|Frfw2;Q%FLyWGETwY!K@G%IU(G(d? zlf%{LFJ8WS{pRhv*%>cbW*C|vLk?H&-n;+c;iJb-mY#aS^>Vq44Jl$-p1X1L*6lls zOVcGUxTJbhFc%9mvvZf{uPj_GUGst|Ss{~=7K?>^K9{*LeX$hWXDo`te8`RIC?x33`-d@2`gqn6tl-d z!BNg1R>Y#14hOw`Wbt@^|G>bZ#Nolg-l60Xp7I00@v(o#b0GNc0YzR!cr*pr|NFE5 Y0ss}69LORECIA2c07*qoM6N<$g41p}r~m)} literal 0 HcmV?d00001 diff --git a/source/web/images/icons/space-icon-cd-16.png b/source/web/images/icons/space-icon-cd-16.png new file mode 100644 index 0000000000000000000000000000000000000000..58f5e278b6fa711411debbd41bff566bf997468c GIT binary patch literal 822 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 FV1i4O$TR=| literal 0 HcmV?d00001 diff --git a/source/web/images/icons/space-icon-default-16.png b/source/web/images/icons/space-icon-default-16.png new file mode 100644 index 0000000000000000000000000000000000000000..d336c705ca5975ca6366a3664db92da954cccd5a GIT binary patch literal 706 zcmV;z0zLhSP)HOd(#d-K`2V~A-T7fW&x3!hot-ZwL5NB1_Ta2i zd2iOr_$|+S*cSbu|sH>w;ws z;rd!d$ah#?&cWrS_U@@0F37mK`KnYbE+4x8 z1twgu*c2HXrQ7xp1_K8S!-7u7gnr-hLG+$r)D!AWI{gCOYSOp^sMnRRfwAH%}E z?L%oA1fqBV#Khg*&*c%I-?yucMtcMx2fdz&dvZb$d*p_uo=UyMQY_yE_vl2f)tV>N z{ZNRdI{o^|Hf1Mq5SHcm6LMW%+}rz99{orM2j@RFHkJzy0LE_|0Vrz#X|;NAbJId+ zDkka>4w2R#&-vg#qO<0FY8@GzlrQ;Q#;t07*qoM6N<$f@7~eBLDyZ literal 0 HcmV?d00001 diff --git a/source/web/images/icons/space-icon-default-64.png b/source/web/images/icons/space-icon-default-64.png new file mode 100644 index 0000000000000000000000000000000000000000..dfa2cedad72daf2457a7a19eef2353fe5c39e7e5 GIT binary patch literal 3634 zcmV-24$bk2P)G?O{*d z?YW00s?<}pg2O5+wUMaWORH_mrfJiKhCm=tFb4nI*f6v2`wionZ@zCZe@(JlOCx*6 zV|$+WectE&na>V*0*@hsRkVve++*|?<9_)t3Mj!ipcXx!gix?Ug_nHNc-2nIdy;m<>7#P2B;n<8p zZJy@K%b7?nR|+Bc2miDd9sHwq^YS94j=BRe&^KG9DMZA zKS$93FFdgjFav+_#li857mwdIsIGauT(0=i>3oRjT`sRh$jfbQLGXGTs$l7vfN2+@ zeRoGk2s|DSq*4V42ECBY<^jJ0jpbz*+SL`IZO>WY*beYOzZ>1MaBx2Z?e%(42xHaHt*m6> z{rCUAXDq1603CR9v+wFlFP#{F`Q;P0>0(QzihF4(9YNrsQmGtiXsCB%y25zg$81U$ zOJ7bGZu+^6&G5RaYJ#ZmM=TJr%80f?FxOXgYZ3a9V z-S?YImySVFE@*A;7w)d61f=wP)?M0b1qGqend6 z2V-O7aP(+|?f?990-Brs)$cfW?l}DL!~H$W2rfI|uf6uG|3stV$y6#Ix_fu(SY2J6 zk3jeIbg+2W!K$ii0&3k1ux7yeYlDi$GqC`m4l_mtHNj1qfMQL#@V<{bm?}_xk3Hc;=a2xN~O$vp_rh zjfI6J)Rd;`_dfgVAl$n*xhE`eA@~nEJ6o=wJ==@4+fSNEznr7vXU{ez(?XpEVzy=*i|Ftq_BJAjpyO~`9Y*#7~`!8 zoK7cKs_JydmnPsMBkWmF%P1Pe)I-RMWODs5aC>q7O;QDS2 zFnagyLk<9M1T%O=FoxMHGFI>g0f7}p*5J>h}j8&^e%4VCv0I&c9)B7M8!JI*OEisPw^t5ATScJ7Th3!`=6)d{4j1|~V zFoEvt>)90xhynD4!}spZnyNHw+p1V9I;Eyz45O$5JH+EwQ8kVqI@E>DQHt&7^Q-XX zm-pb4PyPj;e}0FZfBN)s6w3OcT^Rr$Bj0^DZQHXO$L(05n7}DQ>}!SvNjQK_S~ZN& z)kQ2Q!S~NU zOAq8sP&oSA3nrMtMteOt*oU4zhMnROmLlo+fdlO@F)_=&4ZS)^qiWdx_`^=Ci+ zILmok?C}*7L-=s8^Q- zc{V7f^jKRT?5jkDqrBcI$-6`=6M$>4!{HDtFBjPF)9fG^Y}yhFWCj@d>8E)Pq$~_X z2FOD}RyEog#C{*7g_HR>u^<=>LL!l66RQIUB0;yi?yYSbfU3gz`Q;R~pL~0)3Uz>a z!fQ2-RWR+FC`Cw(*3hv}kvv0MTU(F?dDcA9=&YqBP?H5R20)>(I*djT%3?kxDnj>Y zt_7_7Ru-6z!>21Xwfh#8X>^aB0W$Gq%3gOs1rts z1!kIya{)z~9pr-(IlZl&^h(d%twTA;C@LCS(!2Dmvpn~=^1j_I&7VT91ChO08`2Oa59+|;@>(cGG_*PmnaIStRS+}0y__j z_a#)UWOLXPP(zo+o}d{zI)c@i0?iK0EO2h2V;q^8Sroi48=;F7S0n~eY&@w*=Zafl zjJ6nK9rF1smceuA=@N8zw_^GWqVPGn+wjDK*4E}K3%0UGXp|U0MTNe^&A6w}4<__| z^Wak6)`HET18nX)g0vOZjJyt+Od7qOWowHFICX~lb@6Ku^eHnnO=)7m?`txEszPdx zGMSuB#V4n+5h~*OVyUbMQzQA!SR>ZUJHQ~V z<*gxL4v#{ih_p?jhZW{&s`SjiZ@vZ{bSjmZDi&9V@z8q)=p8PUymIB;Z_k_=jC(u{ zwm)nvc>%%u+VWVQA!5vfp!Atc2C~@<)Ym(h$7%JLxVA_O2_1AkUnI~s5%kzzE|eTW z7R1}y!c}@3Yyc_kWj8ymh7nVowok&AOfExXqZ`v$0Nie;0Gw`@r&4JGp2}tmI_Pb! z8`_QmupUSag~P3!_pRW~!wH@dvSl+o%}LRhmseOi^ZOeh77HQe9UN#yStl=}4y3VV z&lBho1U>v%)(XG=`rjVJ;{#F3rJ4pfIFMHGW=4n_V0fG6kL2-OE{mc@{kx9?P6|$o zq{!RYoDE}kxw#wAJ6?%8kD6)?RBA0K##5<$TAbQNTjV= zK;`p!1{ys*iUzv*OMu?ha`|i5-cyerJ7r$<@EyV@LlOq2>rHs>?KS<;BoG{wbAF4)=Op=xsl%&r78u%+Igb6ey4H zv6Fv{j9}Wi>~?!3;8iY$N!V!fdfl*pe-JgKg7i+B3zV9<`e`)4Xf~V0h9bN%hUV!{ z^?y1|!bJ<5Jricx^1^@s607*qoM6N<$ Eg6VAQB>(^b literal 0 HcmV?d00001 diff --git a/source/web/images/icons/space-icon-doc-16.png b/source/web/images/icons/space-icon-doc-16.png new file mode 100644 index 0000000000000000000000000000000000000000..2a741d39404b5a53c7c723dc23fed61434fcc108 GIT binary patch literal 739 zcmV<90v!E`P)n>8lZsM+)_N>&yE3 z>(A&?%6$L}bv;^`nHe$0#&m3M{<2K-(h7netggNq>k43DA`vUh&5at<(@6*+;5a^x zj%ozi#`t&!`}^kNeK*?e#9VI5n4KL#Z?6VbRpI*rn&u&$*3sXef}&U$9E=r6(*aP2 zh8};KpPx0d*%Ts?9>ii{^!4>38VyTWIIJO?9mU~c6`4$bng%X(04^@BN~)?L6jErS zDh1JK4_!m@p8uPi97a5zM5R*WA%%_%_9_(_f@zwtObac?hUfV(j69l62Uk~iyB%0o z6I)xqaeeLHWufuUMCREY@yGXX6xalIcegP$^&GD26Hv%ZIGbeh3675s?y^vQns!^a z8!^oq^npI?>};Xc^5ixc#La+ED3V@Y{wT9hUC)(5UYjp`q*5uA%VnDK7iVWjY?mM| zY}=Cno{>mArL8zJ3)OKPDfE46ax(!ba8rG z$N9O5M&q2UyOyGaORhV-v9|W6q;Uow^^F4|uc8gOtXnwvvqugZB(h6FJlZH0-<3LE zWj?p(dpEY*LJ1UDB?=i~Su13meySbW=6%=KS@0RU0U VjObS3_#prQ002ovPDHLkV1f}4Pv-yt literal 0 HcmV?d00001 diff --git a/source/web/images/icons/space-icon-doc-64.png b/source/web/images/icons/space-icon-doc-64.png new file mode 100644 index 0000000000000000000000000000000000000000..adcfb30fc2906c48559c81316113a6c7a521ae9d GIT binary patch literal 3645 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 P00000NkvXXu0mjfMMc{d literal 0 HcmV?d00001 diff --git a/source/web/images/icons/space-icon-image-16.png b/source/web/images/icons/space-icon-image-16.png new file mode 100644 index 0000000000000000000000000000000000000000..0fdf161d018749d844bc316284e0a0eecec0d827 GIT binary patch literal 806 zcmV+>1KIqEP)f9HJvb1v0rG;q;+_;7`{+s&~; zL3p#YbblF_Eb2T!6FQw-tgo+)4~3jqTl<#J<%;=6!+^QDd!b7Kn$YF4#0Ccgd~dH0 zs;WX16&xI73FH$xI=ZmCn;So04f{Xi$jEiRzrPJ86APNAp(rX?Rz@)Bgu~$nMdjgk zTVh1h1fV^h*4NQ!KOYYJVKy6Ju^3^sn!s^J9cDDL2!{hmBr@pgas)}ju_iz|U5?W< z1%{zWMp_qeoPj(U{af4X>G8sD_hDxzt0jpwc`z~YY~`0H5|tV5LYG;kin{?3-QBm4 z&sVX&zK2>(I`e`pv`3;sXtYVh(ItdiJ|iXjk&=A)m{>z+r>cA7^Vx8C_~XnA+GXR= z>p@dQ{TrC&_po?-0mI%Tv@?>V=%E1^#vGiSoY%czy`*ycl@d6E^{j$xBvfUKT(E!v z*D>nkOua7a0IlmT*Hxs`3B3xoD1OJ+-|J+w zlX6xE$f|;xR7XjyAt#hkBp^YS!H5#(=O2$>I47su2Q#7~#TYVyDzR9Dh$=Bm76B4g kp$_MXI&<0Y{8xYh0H<&^Rn`#6^8f$<07*qoM6N<$f;6~qkN^Mx literal 0 HcmV?d00001 diff --git a/source/web/images/icons/space-icon-image-64.png b/source/web/images/icons/space-icon-image-64.png new file mode 100644 index 0000000000000000000000000000000000000000..62166419023999bbe003c85fac0612abf20dabd7 GIT binary patch literal 4205 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 DPcu!j literal 0 HcmV?d00001 diff --git a/source/web/images/icons/space-icon-pen-16.png b/source/web/images/icons/space-icon-pen-16.png new file mode 100644 index 0000000000000000000000000000000000000000..77101b12eb95461a5c1e45ab0e239496edfe931e GIT binary patch literal 821 zcmV-51Iqk~P)h1di!5e>_JsGqr^Rhr#)iIDVJ18}aSn3(UrxTZuZ8d@Jb$7Qxr!!-7GeMiUYXGE{gTVxu zxq?LKJ#O`BU{62BN~Z?Q_(RZ)XpN5AF*s-;qoBrxiiF}LK?#ZPpJ6a^K>iE5HEXz| z*@T9iE*8rul@yfA3UQ-?+1yOrCf$EJKrk3zQZnl}d71~r0KNsn(01KNK3{|=ma4Zw zL9~7WwEWbR$MqY~n0@=ze*PR#*npf0Ae6lcsiY+U355cM6d_5aDuCX)!El_6B3E6o z^fNka9BAV5Kr%prN`mdUhfGGQ+NRy9_@HFD1ddaa%s75}`njvFu=U1udFbjRlP(T9 zv5M90>nN*je+lU*`};XEZWOWDE?722+^Bh0;I0gnxn8WT%pCMmp zcXv~WMw7_pqQrVpU>LQpSZwpp&5iq5tJTVDTTkKLhhB(j4xJjA9Ac_~y}c}Uc76~y zIU_(?=TRCwCt zTUl&VXBIwLoWzcuII)vBA&Kok0ttZxQkHHkEh^KQqL$KO7`19M9f8!RL4BB~s+meW zj5N|n)o5PmR0J`LR8^xybV@rw2`cK!l2TeATeFeX%k}Qq$-Q&_|N7c@bxe{0I%DaV zeXkw+e&>AWJIno(#c>>DWo5y=e!TF)AItZZ;`sp{!XU-gBel!da18-|vGqZW~nkx$nED*0}W${KQ zb|)j7L0|ekkW5MAqTk2=FY-t!Hpb2>1 z^ZaY+ITp^HyV^Q3GV$izT(E@zZ)$S3Ivka-cC8(XiVC5#^ItGBGPxUB(DOht0D%*a zbs+GA+qbXn+rE9>6@liwr?V2ChlIf?aGl>DvW3G@OI=-sZFbgk;?SYT!Rf4mygVI< zLuJQ~O>pYeB+-hV2Z{k=;Ez4l*!Sq8jbnUl%e~CM4hADdxU9Hr_;(hgQ4fWMdJ6cH zPkLd~CI=K0fn$?qH+V77Pxm-*QdfJL! zE;1MjfOtALH#Z4T0GR^MiVVUZ-?`(4ufF;onwwVvxi-DN0EN(*{5!8V0Pno>&lO`q zZl=JCiwy^#da9*w@7|X4D6W1FoMa&mO!`yoF+7uggAG%PZrh<=7-gr=s|m>%EQwGu4IT@1LxQMPZ- zo()47=jV~uMH3V5I)(|_=I1#oU=`-@5eN$aav&0kV@A+HEEY#0^`ZAo^!JE3Ha6C+2n%xM zz-wwOC~oWBcDp4$Hy3{d!BfSyT1zBe=Di^R=hCc{5u{#E&xnm1>)`tJe#`kHce+H6#737;i?% z&d!#Ussi2dr3ko^5!x(R%qW~hD~J)WYsB)`on)HJ{Ps<>@@q}YmCV)yUaXKrpa*P3nB0W!7;Pd&DpCv4)uXi}GacW<# z0eWuS7?l8!8bJ)6RTx9;6*X2!4FU>Qq_T$ebL2cWMHv5qtRI24+LFTcDA zXU|@SPd~j*Ki}520fjQJV_62kNB6hij%fDmsqp`10T&&b6P7Nvjc^U^RVEiJ;TFi)ZrSeZgeNimF$PSd7q&6>N<2-&jZi??o# zOT4Y@@mUc=q~W0DS+!76V~KiQpwtC%uTfQ14ugYtFh$Oz7&=Jt*0CG|bP)px9u|96 zZP=0Wvefe_qp&Ilf#i85U`~Yz^3*9!t%L=nQ~cqF3CaSeld|CGk_>=4z<9l(p6O{X z$Vb;gfh08wCkX@LShzqbJEYa57HbwajPgC3tqjJ;XDADtPCJUCu7ixxm%;#=4TgrM zMe5JWGJ!H3rYc2N!Vn%Dt1yNXJSge{sa|Mhh}8R}Y`0iS$kZ5FkOK}!t#I3INe1W| z9GsM;KqWY7Mqu&BZ)1VNsEVUp7*ilwje<(OU=p)KT0H`km09Q@H4=%?EP>73Z!%$l z!T=Zs!cJ74V?td0^-Vr!``Z(Oa zeI*SOX?|khIrUs|7rsFug7^J20D#i?Tq=0Nn!vlM;|>VL;Zvz_<7% zG1%3-9?WwQczIO?yix!#b@eQqIrA6n;b&Bf~VgQ80b6sczMOiG)1cc_V{`yte z{fl-uabplJ_6@*-#|5m%4U_SCm?*74MQ)YV2I6{w)kue+5JY*3)T%PGva+GL*oqpWkgCw{k93hcG4c#BGc$_dUGUng&%oYI3ov!=577Vlc?iy9=q%uc`Q5O7 z{gWz96{mTuOp~C>1Z7#Rt_LPlG5CB@ss#lF1?0X$M`F)G#te{zfjAVdT{{N{4?G11 zT@WnBFub@Y3l5h30}LO(4w0LmgL(WW(y&scH&Awo>fUEHGlx`ikFwC@GQtz zupkoyoE#sY#V^6djKabFJ4Mtd2Jlkvcb=<(y1Iu^fpsc#L~R|=DwDOqDw`!x^}P6V zdcBFVfFGb#kULEs85@9%%x7nPOkdw6cyiZPDttWkT?y}d;rultMA<5=#p`8566J72 zyDwlf$Pn6LqdsBcFl?jPA%>DSSF*Enuyr;kS&#_>&|-JGbh;=!v$u`+z6g96zx;!* zE5UBxCK-&VPmfv24iT+_NJ|T}JgmGg!C@sE#GZgObOG!MilMU7oSZ3;*@3`a=04)0ww!Z&vwLHh4d9a^YWZqghMi`M%oinFR& zLijA1XcKRTLOv)g%)@vu1T27(*Oj^r&tWYy3zL&BXC~X^jyBX|Mc-7xgBN*!Y-Ry^ zZd5~4Q!9;g@jZX>;8MM<1&u)mXxw)M)mE5i%>wxSKJ4qgWy{5C{Z&W3l;f7GnU}stTQ_x?taK8#GjTlWDJaPzS@a zmC)F@F)`{^Zii7fhV-1e0n&#;JRZYl$Aiy2@Zw@?8sHoS?ehi5o#oz0BzBS%cxTQW z8_r~tl;ip5pQkq@|NPgpu&IHAeOnpOX9v;y4zzfi$n&780m8BJ4ltGD=VYcBs6bnX`yTw7#Iepa~l;tl0c-pyg0?IE?o#HZ=I)(iLkld z9#nK4vaJXeJzD{sTo1$e2yiA42n(Py-Zzxi0N6%4NQxw*X0kr}>@yf0orRj3Cy<7Q zB(3G(#ls0HBhk-HjLK>GJ#6w%YARhcJa9n1APP-;NR+hqPoJRS@NP}B+% zsVqyP;AE2&@isPRUC6$ZO9h=N0~}LRQ}FJ)?_&Is9T{_P9Y22jcVtHy!vxxeotxr) zKFU2mY9S!i00P|Qa?t|DVliPiX-R@6VTb7|k+wnvbaz6*SL{DW(i(u@ndKrs_A3N0 zSi9TnW!g<9lT3j*l{Bc97WvoVa2P%6MUXL?%51jsWC0Zlg(ztBbPpQni{|S4#elR^A|i~XrPjn4T1tOX zANYJkxX1?Q0_+zIM8sfdXy$IqH z2GDE}3vs5hzFI4*|ZV=GpmJn$hv w9{czI{#rafH;lrz;swe*HNgM#<39on00(Plv6X<#oB#j-07*qoM6N<$g4Vaep8x;= literal 0 HcmV?d00001 diff --git a/source/web/images/icons/space-icon-star-16.png b/source/web/images/icons/space-icon-star-16.png new file mode 100644 index 0000000000000000000000000000000000000000..bc39f4ce83176b836746ee675089daa86e0acef7 GIT binary patch literal 784 zcmV+r1MmEaP)R?eq&e)6R_NjsY!^=uJ-U+_`g}^PZ34G)=?b*3{H1zs+V2 zX0xRi^Yizf$Vxr&g^R>WiHo|H(p}xKb7K=%TnM?wFz7Fi}rqI=8_fWt<6(E@` zgn6EW!N5^OUU#rqjIBC2ib$qbpE14SvMGn*)M?EGd=wza0W2*`E|Rz4r}2Zt_+VtIC>3} zxB#hCCM9Kpl+V<#t~;Ggl!_cY1N6A!YZ_#9-nfczi7D5C&i-%N4yt zs%r7f%sdVlZnyjhxZ3%Jwrfo=7z-5PkSvZ`X9~)<56I;jkgwSFR8pxTqR|AB$ryDg zOW&D1`Xp{Xo$)uc^DCZ_I*MGTiwwTL0k)6sBCjtEkn}Q*wJEG9b&GRz z_rt>PjvixgMMCqyA>x~Mu#^&sJU&LVB)ceboD^2o+Qm@lLAYv^Pakso=8@I!gD-DM z%gxJMqa^)=E@NwwbZI^mn*P7Pkp|@9K->QC`-ApJbPUssi1^3)DZl{m9ADK=N9qCq O0000;7LS5RCwCt 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 literal 0 HcmV?d00001 diff --git a/source/web/scripts/ajax/myspaces.js b/source/web/scripts/ajax/myspaces.js new file mode 100644 index 0000000000..46f0a48f7a --- /dev/null +++ b/source/web/scripts/ajax/myspaces.js @@ -0,0 +1,206 @@ +var MySpaces = { + + start: function() + { + if ($('spacePanel')) + { + MySpaces.parseSpacePanels(); + $('spacePanel').setStyle('visibility', 'visible'); + } + }, + + parseSpacePanels: function() + { + var spaces = $$('#spacePanel .spaceRow'); + var items = $$('#spacePanel .spaceItem'); + var infos = $$('#spacePanel .spaceInfo'); + var details = $$('#spacePanel .spaceDetail'); + var icons = $$('#spacePanel .spaceIcon'); + var imgs = $$('#spacePanel .spaceIconImage'); + var fxItem = new Fx.Elements(items, {wait: false, duration: 300, transition: Fx.Transitions.linear}); + var fxDetail = new Fx.Elements(details, {wait: false, duration: 300, transition: Fx.Transitions.linear}); + var fxInfo = new Fx.Elements(infos, {wait: false, duration: 300, transition: Fx.Transitions.linear}); + var fxIcon = new Fx.Elements(icons, {wait: false, duration: 300, transition: Fx.Transitions.linear}); + var fxImage = new Fx.Elements(imgs, + { + wait: false, + duration: 300, + transition: Fx.Transitions.linear, + onComplete: function() + { + this.elements.each(function(img, i) + { + img.src = (img.getStyle('height').toInt() == 16) ? img.defSrc : img.bigSrc; + }); + } + }); + + spaces.each(function(space, i) + { + var item = items[i], + info = infos[i], + detail = details[i], + img = imgs[i]; + + // animated elements defaults + item.defMarginLeft = item.getStyle('margin-left').toInt(); + item.defFontSize = item.getStyle('font-size').toInt(); + item.defBColor = (item.getStyle('background-color') == 'transparent') ? '' : item.getStyle('background-color'); + detail.defHeight = 1; + detail.setStyle('opacity', 0); + detail.setStyle('display', 'block'); + detail.setStyle('height', detail.defHeight); + info.setStyle('opacity', 0); + img.defSrc = img.src; + if (img.src.indexOf("/filetypes/") != -1) + { + img.bigSrc = img.src.replace(/filetypes\//, 'filetypes64/'); + } + else + { + img.bigSrc = img.src.replace(/16.png$/, '64.png'); + } + + // register 'mouseenter' (subclassed mouseover) event for each space + space.addEvent('mouseenter', function(e) + { + var animItem = {}, + animDetail = {}, + animInfo = {}; + animImage = {}; + // highlight the item title + space.addClass('spaceItemSelected'); + // move the item title to the right + animItem[i] = { + 'margin-left': [item.getStyle('margin-left').toInt(), 89], + 'font-size': [item.getStyle('font-size').toInt(), 18] + }; + // fade in the info button + animInfo[i] = {'opacity': [info.getStyle('opacity'), 1]}; + // slide and fade in the details panel + animDetail[i] = { + 'height': [detail.getStyle('height').toInt(), detail.defHeight + 64], + 'opacity': [detail.getStyle('opacity'), 1] + }; + // grow the spacetype image + animImage[i] = { + 'height': [img.getStyle('height').toInt(), 64], + 'width': [img.getStyle('width').toInt(), 64] + }; + img.src = img.bigSrc; + + // reset styles on all other space + spaces.each(function(otherSpace, j) + { + var otherItem = items[j]; + var otherInfo = infos[j]; + var otherDetail = details[j]; + var otherImg = imgs[j]; + if ((otherSpace != space) && (!otherSpace.isOpen)) + { + // reset selected class? + otherSpace.removeClass('spaceItemSelected'); + // move the title back to the left? + var ml = otherItem.getStyle('margin-left').toInt(); + if (ml != otherItem.defMarginLeft) + { + animItem[j] = { + 'margin-left': [ml, otherItem.defMarginLeft], + 'font-size': [otherItem.getStyle('font-size').toInt(), otherItem.defFontSize] + }; + } + // does this space detail panel need resetting back to it's default height? + var h = otherDetail.getStyle('height').toInt(); + if (h != otherDetail.defHeight) + { + animDetail[j] = { + 'height': [h, otherDetail.defHeight], + 'opacity': [otherDetail.getStyle('opacity'), 0]}; + } + // does the info button need fading out + var o = otherInfo.getStyle('opacity'); + if (o != 0) + { + animInfo[j] = {'opacity': [o, 0]}; + } + // does the image need shrinking? + var ih = otherImg.getStyle('height').toInt(); + if (ih != 16) + { + animImage[j] = { + 'height': [ih, 16], + 'width': [ih, 16] + }; + } + } + }); + fxItem.start(animItem); + fxDetail.start(animDetail); + fxInfo.start(animInfo); + fxImage.start(animImage); + }); + }); + + $('spacePanel').addEvent('mouseleave', function(e) + { + // handler for mouse leaving the entire space panel + var animItem = {}, + animDetail = {}, + animInfo = {}, + animImage = {}; + + spaces.each(function(space, i) + { + var item = items[i], + detail = details[i], + info = infos[i], + img = imgs[i]; + + if (space.isOpen) + { + // continue animations that may have been going on before the click + // move the item title to the right + animItem[i] = { + 'margin-left': [item.getStyle('margin-left').toInt(), 89], + 'font-size': [item.getStyle('font-size').toInt(), 18] + }; + // fade in the info button + animInfo[i] = {'opacity': [info.getStyle('opacity'), 1]}; + // slide and fade in the details panel + animDetail[i] = { + 'height': [detail.getStyle('height').toInt(), detail.defHeight + 64], + 'opacity': [detail.getStyle('opacity'), 1] + }; + // grow the spacetype image + animImage[i] = { + 'height': [img.getStyle('height').toInt(), 64], + 'width': [img.getStyle('width').toInt(), 64] + }; + } + else + { + space.removeClass('spaceItemSelected'); + animItem[i] = { + 'margin-left': [item.getStyle('margin-left').toInt(), item.defMarginLeft], + 'font-size': [item.getStyle('font-size').toInt(), item.defFontSize] + }; + animDetail[i] = { + 'height': [detail.getStyle('height').toInt(), detail.defHeight], + 'opacity': [detail.getStyle('opacity'), 0] + }; + animInfo[i] = {'opacity': [infos[i].getStyle('opacity'), 0]}; + animImage[i] = { + 'height': [img.getStyle('height').toInt(), 16], + 'width': [img.getStyle('width').toInt(), 16] + }; + } + }); + fxItem.start(animItem); + fxDetail.start(animDetail); + fxInfo.start(animInfo); + fxImage.start(animImage); + }); + } +}; + +window.addEvent('load', MySpaces.start); \ No newline at end of file