From 77e8c6dfe23f96fb0fe5358cf8b615023c6ae6d3 Mon Sep 17 00:00:00 2001 From: hartvig Date: Mon, 14 Mar 2011 19:05:35 -0100 Subject: [PATCH] Adds IE9 pinning support by Matt Brailsford --- .../images/pinnedIcons/task_content.ico | Bin 0 -> 1150 bytes .../images/pinnedIcons/task_default.ico | Bin 0 -> 1150 bytes .../images/pinnedIcons/task_developer.ico | Bin 0 -> 1150 bytes .../umbraco/images/pinnedIcons/task_media.ico | Bin 0 -> 1150 bytes .../images/pinnedIcons/task_member.ico | Bin 0 -> 1150 bytes .../images/pinnedIcons/task_settings.ico | Bin 0 -> 1150 bytes .../umbraco/images/pinnedIcons/task_users.ico | Bin 0 -> 1150 bytes .../umbraco/images/pinnedIcons/umb.ico | Bin 0 -> 17542 bytes .../templates/cshtml/UsingRelatedLinks.cshtml | 37 +++++++++ umbraco/presentation/umbraco/umbraco.aspx.cs | 70 ++++++++++++++---- 10 files changed, 92 insertions(+), 15 deletions(-) create mode 100644 umbraco/presentation/umbraco/images/pinnedIcons/task_content.ico create mode 100644 umbraco/presentation/umbraco/images/pinnedIcons/task_default.ico create mode 100644 umbraco/presentation/umbraco/images/pinnedIcons/task_developer.ico create mode 100644 umbraco/presentation/umbraco/images/pinnedIcons/task_media.ico create mode 100644 umbraco/presentation/umbraco/images/pinnedIcons/task_member.ico create mode 100644 umbraco/presentation/umbraco/images/pinnedIcons/task_settings.ico create mode 100644 umbraco/presentation/umbraco/images/pinnedIcons/task_users.ico create mode 100644 umbraco/presentation/umbraco/images/pinnedIcons/umb.ico create mode 100644 umbraco/presentation/umbraco/scripting/templates/cshtml/UsingRelatedLinks.cshtml diff --git a/umbraco/presentation/umbraco/images/pinnedIcons/task_content.ico b/umbraco/presentation/umbraco/images/pinnedIcons/task_content.ico new file mode 100644 index 0000000000000000000000000000000000000000..06aed6d45d10355cfeb8a975db7a6f6b49df0c39 GIT binary patch literal 1150 zcmbW0OH30{6o!XrWXsC6ON}B#V@x1wh-eTEQPeeH%R`OE4bcRQA|?=YgJ?`lj5}8( zrUen&LW*rek(VO0Rglsa%A*wMYwol&)88{wrw|i2PV@ELxw+pt=ib|LTn>Hm@;LfF zz%}gUxcwZ*9VBRqW-{{>{`r`09=|=HFR++u3&R7o1uTo6#`>eIU!R{rM^Tr*)mL+P zu&*XxrzJEu99s|~>ruAhmHE&D_;rPOl~gPQmFPMo7K0?j<#bx!?yEX9tNBCsP9_o| zZ(1Izhh(XPIH-p-sLNoffoQn_(OgaMRglazkVQf6*ByyzzV&`FW8nbg;X8om9pHWo zxZY5FP4N}+5}54*W?rbdMHYvtu8?WIt?3M7+d&9D*T8zNgY{meaU}#pC7AI_2E%1A zLxqZzOkn8liL7sbRKkSFD$>idke9!!NEB6;zCrR&65|jTM%E6+rH=WM<;eKr(pQLqaiqK>gaawM z3kUVA?cdQ>#**3`GrcH#pxUC3+{F4$kA$3-QWzQ z;B>~Nx{AmDw1D@R$lrqF$+;cBy`21QT2J-JlUM%K4NOp7r|KqLCd6iX5t%kZptZJ^ zzx+f5QeXJ-1HfYQF7hnT>ke5aOHk_XtCX?Sgt%`i=(O@EgeO(kG1dMOjzLVQoHJ z?d-T@c0Q}vBzS_UJg;D*G#=@wVD|R%8Czpfr?I|xpH^3ik8`?9{);{2<#w0+2K;90 A{r~^~ literal 0 HcmV?d00001 diff --git a/umbraco/presentation/umbraco/images/pinnedIcons/task_default.ico b/umbraco/presentation/umbraco/images/pinnedIcons/task_default.ico new file mode 100644 index 0000000000000000000000000000000000000000..8ccffe07944d8e8567fb8f3acc09b15dff902982 GIT binary patch literal 1150 zcmbV}OH30{6o!ZB!mwgtT)Q$Z-4hnX#F&W4Bc+y-b|`HMeFd1(MoOWHh$TQFwY=08 z%0r-3C9;y`v~0CPwe%pF4BreE&K348uf`D<*~^ z_p?m)NrpMYFwA)(5+acwakBmMibNt&jYVo@vpFr?S0X}>H5tvulrJumoco(uokbPb zRG7ZqXA|Rv&yJ-57XnoZJT8;KXG*|bqiEk*z+O7;qpi}P);jd3{KX>vRltLlfEzD| z?qR9_4hHQR7^%v{P$i2#n+P4o1fKG=PhGVki*+f(3U3bB=4|wmUN`55usYsG^Z?5v z_c2r<$6&c!;HeMI(L3_u)V11eRf`tR@dmhOT9MmrCTC5;*5WAECViy78#66Mn5Z}4 ziCrpq2z*H@6dn!VIp2f!xo&u8JJB%Zfu@tgLrWsogOBjcVYn96=P_(7h|F^7j31QV1`GD z;gvCzjW~pJr(9o$DrX<{wPDoMe1g3^gml?9WSP6jV0VxtCO)aFe66+MVta)tI;%;; z-y&?ov=^M;g2c3U80h_qI>OW16_p`KRNrS?I%%djNgj0VL87f(PZ3#J_o~rzASxWsKE23{riE30IOg;Pr-)qdgGL zUFVE|Doec!rD{*`I9i|faCD_g-tZR7$6rh`nLicfsSo{@AbQP{{?8rd4xjVQ3qif% zK$t!4)oc!d<3hsxvNijl=gBk81rPI&?jH^v_yBC-)Ne^L~Q|5S+VA;M4r{`l{^7A1ZF literal 0 HcmV?d00001 diff --git a/umbraco/presentation/umbraco/images/pinnedIcons/task_developer.ico b/umbraco/presentation/umbraco/images/pinnedIcons/task_developer.ico new file mode 100644 index 0000000000000000000000000000000000000000..07bbf289e98427e71132ea77f9e1e8542402c8d8 GIT binary patch literal 1150 zcmbV|-)mA~7{}jH^aC0#(t|{}1rZ}6Bt#2RcSI%pRd=%e0p?)PMby>UL@&LZ)MY_k zcp7&7FOtb5>~=f!yZjF$5C|ZZO2Of9!0mP)W)wR9Bc6iAVlkxC>BEc-`7T?R zOT&DjbBYx@_l#JPNCfeCe8}*4Jfk-)%4=*x?vw5ir^yQPqETM=_Zd#76QU?091bJ6 z&0#6;VRCa1#IPFWEfvLjv8=p}Mx(FMlBAf0 zic$)NLTEG^P*oMJRtv$G6+9j>6k^;q%Im&W;wulDJw#tup=lZhg8}B>>|pV`3brYK zBTbLX->7lR^)3GCs>BibtRnSGL*!Kz3+qihtn6a0(ZiXKGT3|h`MCT+Z+45X%zsg_ z^h3k)u7==F4;RWxZ}Nk3?qHu$eY3{D(k!KG5-;ATS?Eqr=zY7Uva(>5+4pbNxRtb| z|I?j9#A)jFjKr^8mXx?&|Ld~V_*t4|Y-SpH@jU4?DNU;W&WnH6@?!TyUerk42|7uA Ql3owU)77UQyvU1x0q}M$Jpcdz literal 0 HcmV?d00001 diff --git a/umbraco/presentation/umbraco/images/pinnedIcons/task_media.ico b/umbraco/presentation/umbraco/images/pinnedIcons/task_media.ico new file mode 100644 index 0000000000000000000000000000000000000000..50e357ca8be25c82e6d4bc4cb3af5118d83a835c GIT binary patch literal 1150 zcmcJN%WD%+6vl7CKcFkuF8vcMt}06DMnsf=T}c&0BBiN{)@svqQ7HJ>1QlDVP2xDW zF;!|8@c}{w-MbJ=GPT;&*rfBgGo3q#&F8sOg6YE+EY9$o!(7fc-{H*1SQFjN&5WM= z*ttE7?PZMZC+LVy*3PN?w@dFiKFqt1&gjv@wtoK5&UCfgq`6ZcNQ<`3o7E*qVIy!A z7NkNb%yk6x?wCv9UF}v~pXqF|eY=X)@+Z`GK=sIK32M$i`UAEkef)GQCI%wgqI&!d zdhKir=_{eGl)Z@UP~Z2L$)9#r_Yd_>br<@BwiL_A+&BqCkA)PU#8A{?C_L_7N2>1x z`7dtpC%tRpLGl6?-;dzyyStd1N#eunAuQwvh(yT8xA%~~-@CQmvoM`bV5K+--kPhXqLC>#5ei%lf=DGrs=8&GM4q+is&~5|zKY^%FmMfIsGW3T0>b<9K k^2?F3MsuhvY=ZKwHA30ddXC+$=Vvz+$hO9t{tc!54e5t#mjD0& literal 0 HcmV?d00001 diff --git a/umbraco/presentation/umbraco/images/pinnedIcons/task_member.ico b/umbraco/presentation/umbraco/images/pinnedIcons/task_member.ico new file mode 100644 index 0000000000000000000000000000000000000000..7d68fa3c81aa70304ec4667475553019f963a839 GIT binary patch literal 1150 zcmd6m%WD%s9LGoS;4vr9UIcIc4ZZ70JShl1pq@Nb+n#)!RIsO_(9(lK3sO_lnB9>lq@67&|u`}YbSeR%pu;sIi zoo9?)5{Q(@{K|{&R7Nx!O+_LRgu`Kw!C)|mKp+60&j*jk1Gn1^m&*mG(+NdUh(J2kjUY1AfL}mePVwd zJ#7Q<-NSVE8nAZ*m5(b@PhM#Mze6HbRTul6g_G7$LT(AX#_^|mB`q7%y4+aDD zdOdVHorM?D)49^QQJ8!KpAHr5gmk=(7s8=2eg&v&BpXxtM0oEnLa?ZNM K*uOE?Q2!I-`gEcI literal 0 HcmV?d00001 diff --git a/umbraco/presentation/umbraco/images/pinnedIcons/task_settings.ico b/umbraco/presentation/umbraco/images/pinnedIcons/task_settings.ico new file mode 100644 index 0000000000000000000000000000000000000000..619bdf265d0251a668e34a5bd09ece6c0d51150a GIT binary patch literal 1150 zcmb7DTT5b56h1iv^CmqF_%@HzuNVaXM-LU*OBZ?w6+gec5w6?Y;oK9!czkmk@1{!=mpLJwp#4gwt$ zVOqMoyRFU5%?5HQ?sw>C61WSf|n(DL~_9UmW)%jMEKJ3DRd?d@7iON-Ii z*f{+wMGU(Ub0yu2gJvSVRk!GZN1=H>jmySwD^ zcy!c4g$E^@%^EK+FTxks>iqm%)SPkE9E*#Kj`j6*Iy^k2bUICnqKN%HJv|0$Wazq1 zcXxMmc6LUrf$KCmIa$Mp!(j*f5!Z8XZ%=4^e0(Io-*3RDg18EOda+m(`B~@q`1sE7 z@UUZabX4f)-0Xq%&CSi}Gcz+P`lM7fLVMum=0?<-b#R`gr6pQjT@||78|!BMv$M0c z`Y|5+z0hE?Chp<={XMCwDm?M`!^4B{%e~{i1cO0yaB#5Jzst)@5AT0_dlNY5ETgU_ z*Mv1ClSy-HYpcxo*Vk8}0Um1Shc)25Ov9T2EgH1i;8)}G`1JI|{m{T+1BZt5V4&x} zonOZD07nBjtjJ>lM+t*?0$0M>v4F=KkH_Ere<}<=@8D8!5_~(U~5_Ba7L76MJM5rch zgsF1&2q~YUE1#O7%S(r)zY6Hc0Btx1y7>s`MlsNG7|^A`)~P^iW)dzA{6Og0G1|%R zE}L9c^vt72dmHG@0v_jp?k0D3oB-W+6u-4%(3(`Bc0UHLS3=ddfRK_AyOY<7!w#ws z#bI@{9hj;EJt7A^m``TT1>KcNW+6SA4w2qU(8dZ}P7~m2a+t))8xz@H#snY9%VaLB zb2GqPD==LQyp{sbbI3d=fuRamKfJyF+TK_ZRnm!k zet2g?JZFoG@N}UWH;3w!i@0jyW^gOd&13ZSorvT8JgimTlbBB?>4&=?$vgF4aziqQ1{NEsBsjWm;&sKD+VwAG?;tx>?w+7 zZ+F7IVu&)qJ6fh<32T>pMK{0@s=*YLTR4#!)t)E+JpoLDp$#U%1usuI@=x9- S!A}N}V|RK|+X74i2m1#JCXm$t literal 0 HcmV?d00001 diff --git a/umbraco/presentation/umbraco/images/pinnedIcons/umb.ico b/umbraco/presentation/umbraco/images/pinnedIcons/umb.ico new file mode 100644 index 0000000000000000000000000000000000000000..b1baa5b622a303eeab112a0b8638a44fac119b77 GIT binary patch literal 17542 zcmc&*d5{&w8J{iIqEcm*$6x-1yTC42q6nz*NEFl#x5)*0LI`Mr-0k3we|EK#OJl$g-@aCinYL%lZaoM;xKPd%t5@w;g9$hoYSI zXEa*Yh*K?VEZTsC^(!Qn@2{t|%RZ>3(`gyq;aoJb-C2(O?<3po9nEcas%d7r%+%bL zPK|7{cks7n)EU+8T!iyTCt$V&A1=cW)@w1)7 zS~@em;AJP)a}C^4G)Q|?N2a&6D|1+w|4_b$a~{vWlkOn zX0{#Qof~EU6|FN5TAW!&(%bRD~!v-S<+Bd?^7b7p4bPwb^c{jIZ7LV-6 z!>cBLVC%zRFSK>~zx{4AaXi4EW4qkkp6P{8PTUXUXJ;-$yHXt8162;&5i$V_=8Mac z^uUDK&Pl-T94L&n__+FKA22zv=aXv5Fs|D<9Akg$faW64zA(P&pOU16zQEJJ*ALEC z$Z&X^46e;)=Tcpi({|Oim}~U#x6+EVPtZ|n68YNJTEIQye%i5daEeMg4P4^ z7fKcJlN&*&4jvVI+rVyf+#(jQjlcJaTtN5ab=OM;fmkuf%kv@b+{158+k8hE;$?C3 zlX+1FEz(m-fNtJzquW;JIp}>f(sYl0bsa?qI(_+HMXe^8(^kgMit!l|r)$F=W`2k5 zIxP^Ri8nt|V@k{L?#CtHx5iRXNf z8>cL$%#G1aKptlqd{19J{3rHggbg3BA9S^tetZ8Q@I(I*vidtLnO%f$E*k4D*ebD%s}N8{J}QTP+- zAK2^L&zZeJ`=S03?-_b9bfR@`=33`b{Su*n+RyojQGGod^gZ3P%#r(I_3BMqm=%n% z^h5hUcHRK+YgtS=j56#giCn>_&%XZI9}?l;k;H$Va7{*zFO8q{89ztLEpc(43fhQg zQvv<4o{hLu`5%s7KGfB;>yzNO;rr{)UyM6(l z)(@4n{tY8er*CxW>NZJpw!7zLMVs`Q_^s*1=iIwi`|o=F633G?W~@>=B6iyUHmpNv zSAlVfzKEj{SC05ayuLjce_r`OjBUC)QZlLa3)e8fA=i&_JXrsDjHg$&mBqtYr}nNd zVEqx|K|4adI2v)~Y;)eyezEw8qWJ5p1@Y?kvh;1NuW&~C{=oXtm0?vJ5ANwGTJ)KQ zU50F*J~NgE@YMWG@*r*Hmuun=t>1}X@1I2R@bsYZl9#J*&wkwBqS_C(%;W3nPwFvp z|AaDN%=bp^y;Wfi(hJBkSgcX)qVY%XU%7n{xqleeajowt9D^;Z#$S8?kTOh|ovGTt zRdhI>bkgHN=X$KwvGICiAoP0(f8G6C;^(9H&pkbd?WM-|V09hU&cL5||6Jks&o4aN zuYuX%Q`^Uc^c#iQEOY4&`22!0U|#Xgk4${^-c9~PeFrafe$-hQ(D@PZ^O?|{_RjC> z;nu$o6|-&+dP6$DQxd4Z=J~0{8JBDRgUuz~eRO_m%3z*f$6;srU~#h@+V7Y1Yb^)X zj8*ps!m)F*i?`bt5or*Nnds-M1 z!$)=4lSX&g7h_$$8gt-g#7uiICUA!$Rm5Jy9#v+q#@g>x)$n>~$P|+f-lfdTRmVsJ0IyX5WPMV3j?9_fo78 zU0bW>0lf(B7oK%PMxGJUFv{o=LlC6U7ZA@^AIeh~L;_~>u`md=*N<{c%`d2hcuE7N>~w2RQe zWMaS=9S-}vHHvpjr!5|Otq|DbRUCbuns+$o-HFGy6vWsr$f9B(#zAHRPiHvB*(8*2 z5B-L7N?Y8t-ap&ry@q$O*SYrfg1Gg$yjb*jUi7R}iSNsw&C9zA@9ZjxjC-Czt z;T$EvS7RX0Nu%1+7bCAaXFh4ZgL?z&Y?gHHe6b*=F3bq@m1?i`%G{NUe0cu0411XR z?3ib+r!Fw|c6=R>CwZ^d?aln6+p>b^oqXQ^v?Oq+*5jjW8F3}`Dscqg(Vt?=4z>42 zd-%{$XBzV!ia8T@=dl27 zm;ZH-0b))ROTSHw$@gQ&dAIw*XtAg{^IX7p- zuCGdx#*6P2jd8BmqQUy%_K$B-{C9s_66Y?7Jd>0DhyEAy9%8%T{QZM#9r5-~`Vb*@ zd{I*PU4P@xufaB&26gbyUCRHw|7j6tc9H&1`CoVb3FD_Poq2ao%(}l{{QMU9FGJ@( z|LS>O(>dqntmwKgCpzxU;cgQ8#P4(cF6ST4ft-Iqld-fLM@6EsD&qu}|GS(&CD7*48B#~e1LFWels`!KagYj3&vt!@4__poyucrh5cY}Xq z{6!2p{*-#J?l0YMk@20DGcI@e$Ht#7{|3azGX6I3dVF=+AmvB=-Cr~QCWZ;d`UCvf zS2g&@+rO`eGx#GKwS8!gt5VBYCfUYkcB5ggtR6zey zQ&*6y74u%CPQX{Lf6m37xAT{)#P?~q@541-SXOuLbg<6!`U7*^I`mP%pPjxaBc8;a zX!D+)xyEGtY4?}KGjA8gk8z*Io0EMy>nH>Gw175j&ZmDG;*M|KH56kp^4R%R8F%|j zGJW)A8TYfxGR7rOzMn-N1`S0M_6-{jm5WC<6(m&Nf&JyJ{fIMkoWoqbvyArycY!Z4 zP>wJie7j@E$BywN{+m+kzu&Jh)^A?yi@IK%kd|va(x<$w)$3i1OMAD;SKsYqo8zz1 zxJlDYejLJknQ}dVcsk+^6KDt5G2aJG_8sHz0G~Kt5}>ek$xtp=tr!_Njsn)%3HwtmogtUCrsbhi_%vbeQ(RPF6&RJzQae_ z>;n%cF>`$n72#eGS^(Oq}lfT#hf)rC;~P`W-Li<^NVpzuk||&EL&;-mBY$eW^7Y^2-1C_@R3>H$VpZ zdXIk47FBgNsip*8HhC>&U4)t>IJqtYI?sSPfH|z$a1C z^>usFB2Cg}9Cj#D6VgE9FszfOU>;uyxwb)fc{go?K3CQ{f592Y!SF$AP#N9>RxK-J}vZYQ@4^P=l_3yQ5M9Zd$m6s%z5#I>)%cO+<)ht*I;`eKmVu9`(5%UeqWXi!1px%m&<6s zZDd<|rS5m?p0N+xsJ=37AT2)nvLyH4jrJ?qf7<4F*L@oH)Z^N7o<7c>OJ)Dj29*5- z_b96Q`&eB5(tg-p*{{9Pz!ibtY#+2=Ny8mKpdoEBnt$~8VSD}f + @foreach (var link in @Model.RelatedLinks) { + string target = link.newwindow == "1" ? " target=\"_blank\"" : ""; +
  • + @if (link.type == "internal") { + @link.title + } else { + @link.title + } +
  • + } + + } +} diff --git a/umbraco/presentation/umbraco/umbraco.aspx.cs b/umbraco/presentation/umbraco/umbraco.aspx.cs index 3bdbb9f9f3..c4517b3e5b 100644 --- a/umbraco/presentation/umbraco/umbraco.aspx.cs +++ b/umbraco/presentation/umbraco/umbraco.aspx.cs @@ -3,6 +3,7 @@ using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; +using System.IO; using System.Web; using System.Web.SessionState; using System.Web.UI; @@ -21,13 +22,13 @@ using System.Text.RegularExpressions; namespace umbraco.cms.presentation { - /// - /// Summary description for _default. - /// - public partial class _umbraco : UmbracoEnsuredPage - { - protected umbWindow UmbWindow1; - protected System.Web.UI.WebControls.PlaceHolder bubbleText; + /// + /// Summary description for _default. + /// + public partial class _umbraco : UmbracoEnsuredPage + { + protected umbWindow UmbWindow1; + protected System.Web.UI.WebControls.PlaceHolder bubbleText; public string DefaultApp { get; private set; } @@ -48,7 +49,7 @@ namespace umbraco.cms.presentation { string appClass = a.icon.StartsWith(".") ? a.icon.Substring(1, a.icon.Length - 1) : a.alias; - + //adds client side event handlers to the icon buttons JSEvents.Append(@"jQuery('." + appClass + "').click(function() { appClick.call(this, '" + a.alias + "'); } );"); JSEvents.Append(@"jQuery('." + appClass + "').dblclick(function() { appDblClick.call(this, '" + a.alias + "'); } );"); @@ -91,8 +92,8 @@ namespace umbraco.cms.presentation // Version check goes here! - // zb-00004 #29956 : refactor cookies names & handling - var updChkCookie = new umbraco.BusinessLogic.StateHelper.Cookies.Cookie("UMB_UPDCHK", GlobalSettings.VersionCheckPeriod); // was "updateCheck" + // zb-00004 #29956 : refactor cookies names & handling + var updChkCookie = new umbraco.BusinessLogic.StateHelper.Cookies.Cookie("UMB_UPDCHK", GlobalSettings.VersionCheckPeriod); // was "updateCheck" string updateCheckCookie = updChkCookie.HasValue ? updChkCookie.GetValue() : ""; if (GlobalSettings.VersionCheckPeriod > 0 && String.IsNullOrEmpty(updateCheckCookie) && base.getUser().UserType.Alias == "admin") @@ -105,16 +106,55 @@ namespace umbraco.cms.presentation Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "upgradeChecker", "jQuery(document).ready(function() {umbraco.presentation.webservices.CheckForUpgrade.CallUpgradeService(umbracoCheckUpgrade);});", true); - updChkCookie.SetValue("1"); + updChkCookie.SetValue("1"); } DataBind(); + + AddIe9Meta(); + } + + private void AddIe9Meta() + { + if (Request.Browser.Browser == "IE" && Request.Browser.MajorVersion == 9) + { + StringBuilder metadata = new StringBuilder(); + metadata.AppendFormat( + @" + + + + + ", + IOHelper.ResolveUrl(SystemDirectories.Umbraco + "/images/pinnedIcons/umb.ico"), + HttpContext.Current.Request.Url.Host.ToLower().Replace("www.", "")); + + var user = base.getUser(); + if (user != null && user.Applications != null && user.Applications.Length > 0) + { + foreach (var app in user.Applications) + { + metadata.AppendFormat( + @"", + ui.Text("sections", app.alias, user), + IOHelper.ResolveUrl(string.Format("{0}/umbraco.aspx#{1}", SystemDirectories.Umbraco, app.alias)), + File.Exists( + IOHelper.MapPath( + IOHelper.ResolveUrl( + string.Format("{0}/images/pinnedIcons/task_{1}.ico", SystemDirectories.Umbraco, app.alias)))) + ? "/umbraco/images/pinnedIcons/task_" + app.alias + ".ico" + : "/umbraco/images/pinnedIcons/task_default.ico"); + } + } + + this.Header.Controls.Add(new LiteralControl(metadata.ToString())); + } } /// /// Renders out all JavaScript references that have bee declared in IActions /// private void RenderActionJS() - { + { var item = 0; foreach (var jsFile in umbraco.BusinessLogic.Actions.Action.GetJavaScriptFileReferences()) { @@ -125,7 +165,7 @@ namespace umbraco.cms.presentation { var jsUrl = new Uri(jsFile, UriKind.RelativeOrAbsolute); //ok it validates, but so does alert('hello'); ! so we need to do more checks - + //here are the valid chars in a url without escaping if (Regex.IsMatch(jsFile, @"[^a-zA-Z0-9-._~:/?#\[\]@!$&'\(\)*\+,%;=]")) isValid = false; @@ -145,7 +185,7 @@ namespace umbraco.cms.presentation { //add to page Page.ClientScript.RegisterClientScriptInclude(this.GetType(), item.ToString(), jsFile); - } + } } catch (UriFormatException) { @@ -163,5 +203,5 @@ namespace umbraco.cms.presentation } } - } + } }