From 19eebba8ccf4fa63668dbf3d308cf1d092fe40e2 Mon Sep 17 00:00:00 2001 From: mattbrailsford Date: Tue, 1 Nov 2011 16:55:06 +0000 Subject: [PATCH] Added uGoLive dashboard --- config templates/config/Dashboard.config | 10 ++ foreign dlls/Our.Umbraco.uGoLive.47x.dll | Bin 0 -> 4608 bytes foreign dlls/Our.Umbraco.uGoLive.Checks.dll | Bin 0 -> 11776 bytes foreign dlls/Our.Umbraco.uGoLive.dll | Bin 0 -> 24064 bytes umbraco.sln | 4 + umbraco/presentation/config/Dashboard.config | 8 + .../presentation/umbraco.presentation.csproj | 9 + .../umbraco/plugins/uGoLive/Dashboard.ascx | 49 +++++ .../umbraco/plugins/uGoLive/Dashboard.js | 170 ++++++++++++++++++ .../umbraco/plugins/uGoLive/cog.png | Bin 0 -> 512 bytes .../umbraco/plugins/uGoLive/cross.png | Bin 0 -> 655 bytes .../umbraco/plugins/uGoLive/error.png | Bin 0 -> 666 bytes .../umbraco/plugins/uGoLive/help.png | Bin 0 -> 786 bytes .../umbraco/plugins/uGoLive/icon.png | Bin 0 -> 1693 bytes .../umbraco/plugins/uGoLive/run.png | Bin 0 -> 592 bytes .../umbraco/plugins/uGoLive/throbber.gif | Bin 0 -> 1849 bytes .../umbraco/plugins/uGoLive/tick.png | Bin 0 -> 537 bytes 17 files changed, 250 insertions(+) create mode 100644 foreign dlls/Our.Umbraco.uGoLive.47x.dll create mode 100644 foreign dlls/Our.Umbraco.uGoLive.Checks.dll create mode 100644 foreign dlls/Our.Umbraco.uGoLive.dll create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/Dashboard.ascx create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/Dashboard.js create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/cog.png create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/cross.png create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/error.png create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/help.png create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/icon.png create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/run.png create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/throbber.gif create mode 100644 umbraco/presentation/umbraco/plugins/uGoLive/tick.png diff --git a/config templates/config/Dashboard.config b/config templates/config/Dashboard.config index 434bd4cfc0..acc4bc25cf 100644 --- a/config templates/config/Dashboard.config +++ b/config templates/config/Dashboard.config @@ -87,4 +87,14 @@ + +
+ + developer + + + /umbraco/plugins/uGoLive/Dashboard.ascx + +
+ diff --git a/foreign dlls/Our.Umbraco.uGoLive.47x.dll b/foreign dlls/Our.Umbraco.uGoLive.47x.dll new file mode 100644 index 0000000000000000000000000000000000000000..0afa00e50411f55b23e5a4006f9fd5a065f5d334 GIT binary patch literal 4608 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 literal 0 HcmV?d00001 diff --git a/umbraco.sln b/umbraco.sln index 0f4e59c558..93bf2633f1 100644 --- a/umbraco.sln +++ b/umbraco.sln @@ -35,6 +35,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "config", "config", "{05329D ProjectSection(SolutionItems) = preProject config templates\config\404handlers.config = config templates\config\404handlers.config config templates\config\ClientDependency.config = config templates\config\ClientDependency.config + config templates\config\Dashboard.config = config templates\config\Dashboard.config config templates\config\ExamineIndex.config = config templates\config\ExamineIndex.config config templates\config\ExamineSettings.config = config templates\config\ExamineSettings.config config templates\config\formHandlers.config = config templates\config\formHandlers.config @@ -67,6 +68,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DLLs", "DLLs", "{F06D18F6-C foreign dlls\Microsoft.ApplicationBlocks.Data.dll = foreign dlls\Microsoft.ApplicationBlocks.Data.dll foreign dlls\WebPages\Microsoft.Web.Infrastructure.dll = foreign dlls\WebPages\Microsoft.Web.Infrastructure.dll foreign dlls\MySql.Data.dll = foreign dlls\MySql.Data.dll + foreign dlls\Our.Umbraco.uGoLive.47x.dll = foreign dlls\Our.Umbraco.uGoLive.47x.dll + foreign dlls\Our.Umbraco.uGoLive.Checks.dll = foreign dlls\Our.Umbraco.uGoLive.Checks.dll + foreign dlls\Our.Umbraco.uGoLive.dll = foreign dlls\Our.Umbraco.uGoLive.dll foreign dlls\TidyNet.dll = foreign dlls\TidyNet.dll foreign dlls\UmbracoExamine.dll = foreign dlls\UmbracoExamine.dll foreign dlls\UrlRewritingNet.UrlRewriter.dll = foreign dlls\UrlRewritingNet.UrlRewriter.dll diff --git a/umbraco/presentation/config/Dashboard.config b/umbraco/presentation/config/Dashboard.config index 9d05abfbc2..7825eaf87b 100644 --- a/umbraco/presentation/config/Dashboard.config +++ b/umbraco/presentation/config/Dashboard.config @@ -95,4 +95,12 @@ /umbraco/plugins/courier/dashboard/CourierDashboard.ascx +
+ + developer + + + /umbraco/plugins/uGoLive/Dashboard.ascx + +
\ No newline at end of file diff --git a/umbraco/presentation/umbraco.presentation.csproj b/umbraco/presentation/umbraco.presentation.csproj index 9b35149c46..4a96116f13 100644 --- a/umbraco/presentation/umbraco.presentation.csproj +++ b/umbraco/presentation/umbraco.presentation.csproj @@ -110,6 +110,15 @@ C:\Users\Shannon\Documents\Visual Studio 2008\Projects\Umbraco\Branch-4.1\foreign dlls\Lucene.Net.dll + + ..\..\foreign dlls\Our.Umbraco.uGoLive.dll + + + ..\..\foreign dlls\Our.Umbraco.uGoLive.47x.dll + + + ..\..\foreign dlls\Our.Umbraco.uGoLive.Checks.dll + System diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/Dashboard.ascx b/umbraco/presentation/umbraco/plugins/uGoLive/Dashboard.ascx new file mode 100644 index 0000000000..5610a65c81 --- /dev/null +++ b/umbraco/presentation/umbraco/plugins/uGoLive/Dashboard.ascx @@ -0,0 +1,49 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Dashboard.ascx.cs" Inherits="Our.Umbraco.uGoLive.Web.Umbraco.Plugins.uGoLive.Dashboard" %> +<%@ Import Namespace="umbraco.IO" %> + + + + +
+
+
+
+
+

uGoLive Checklist

+ uGoLive +

The uGoLive checklist is a checklist of the most widely accredited best practises when deploying an Umbraco website. uGoLive performs a complete system check against these practises, and highlights any areas that need attention.

+ +
+ +
+
+
+
+
+
\ No newline at end of file diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/Dashboard.js b/umbraco/presentation/umbraco/plugins/uGoLive/Dashboard.js new file mode 100644 index 0000000000..42a180fcaa --- /dev/null +++ b/umbraco/presentation/umbraco/plugins/uGoLive/Dashboard.js @@ -0,0 +1,170 @@ +var Our = Our || {}; +Our.Umbraco = Our.Umbraco || {}; +Our.Umbraco.uGoLive = Our.Umbraco.uGoLive || {}; + +(function ($) { + + Our.Umbraco.uGoLive.Dashboard = (function() { + + var checks = []; + var currentCheckIndex = -1; + var basePath = "/base"; + var umbracoPath = "/umbraco"; + + function performNextCheck() { + var checkId = checks[currentCheckIndex]; + performCheck(checkId, function(data) { + if(currentCheckIndex + 1 == checks.length) { + // Re-enable the "Run All Checks" button + var $btn = $("#btnRunChecks"); + $btn.text("Re-Run All Checks"); + $btn.removeClass("disabled"); + $("a.check").removeAttr("disabled"); + } else { + // Run the next check + currentCheckIndex++; + performNextCheck(); + } + }); + } + + function performCheck(checkId, callBack) { + $("span.status[data-check-id=" + checkId + "]").html("Checking... Checking..."); + $.getJSON(basePath + '/uGoLive/Check/'+ checkId +'.aspx', function(data) { + + var $checkEl = $("span.status[data-check-id=" + checkId + "]"); + + $checkEl.empty(); + + switch(data.Status.Value) { + case "Passed": + $checkEl.append("Passed"); + $("a.rectify[data-check-id=" + checkId + "][data-check-can-rectify='true']").addClass("disabled"); + break; + case "Indeterminate": + $checkEl.append("Indeterminate"); + $("a.rectify[data-check-id=" + checkId + "][data-check-can-rectify='true']").removeClass("disabled"); + break; + case "Failed": + $checkEl.append("Failed"); + $("a.rectify[data-check-id=" + checkId + "][data-check-can-rectify='true']").removeClass("disabled"); + break; + } + + if($.trim(data.Message) != "") + $checkEl.append(data.Message); + + if(callBack != undefined) + callBack(data); + }); + } + + function performRectify(checkId, callBack) { + $("span.status[data-check-id=" + checkId + "]").html("Rectifying... Rectifying..."); + $.getJSON(basePath + '/uGoLive/Rectify/'+ checkId +'.aspx', function(data) { + + var $checkEl = $("span.status[data-check-id=" + checkId + "]"); + + $checkEl.empty(); + + switch(data.Status.Value) { + case "Success": + $checkEl.append("Passed"); + $("a.rectify[data-check-id=" + checkId + "][data-check-can-rectify='true']").addClass("disabled"); + break; + case "Failed": + $checkEl.append("Failed"); + $("a.rectify[data-check-id=" + checkId + "][data-check-can-rectify='true']").removeClass("disabled"); + break; + } + + if($.trim(data.Message) != "") + $checkEl.append(data.Message); + + if(callBack != undefined) + callBack(data); + }); + } + + return { + + init: function (o) { + + // Set the paths + if (typeof(o.umbracoPath) != 'undefined') + umbracoPath = o.umbracoPath; + if (typeof(o.basePath) != 'undefined') + basePath = o.basePath; + + // Parse all checks + $("span.status").each(function (idx, el) + { + checks.push($(el).attr("data-check-id")); + }); + + // Hookup run all check button + $("#btnRunChecks").click(function(e) { + + e.preventDefault(); + + var $this = $(this); + + if(!$this.hasClass("disabled")) { + + // Clear out previous checks + $("span.status").empty(); + + // Update button + $this.text("Running checks..."); + $this.addClass("disabled"); + $("a.check").attr("disabled", "disabled"); + + // Start checks + currentCheckIndex = 0; + performNextCheck(); + + } + }); + + // Hookup individual check buttons + $("a.check").click(function(e) { + + e.preventDefault(); + + var $this = $(this); + + if(!$this.hasClass("disabled")) { + + $this.addClass("disabled"); + var checkId = $this.attr("data-check-id"); + performCheck(checkId, function(data) { + $this.removeClass("disabled"); + }); + + } + }); + + // Hookup individual rectify buttons + $("a.rectify").click(function(e) { + + e.preventDefault(); + + var $this = $(this); + + if(!$this.hasClass("disabled")) { + + $this.addClass("disabled"); + var checkId = $this.attr("data-check-id"); + performRectify(checkId, function(data) { + //$this.removeAttr("disabled"); + }); + + } + }); + } + + }; + + })(); + +})(jQuery) \ No newline at end of file diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/cog.png b/umbraco/presentation/umbraco/plugins/uGoLive/cog.png new file mode 100644 index 0000000000000000000000000000000000000000..67de2c6ccbeac17742f56cf7391e72b2bf5033ba GIT binary patch literal 512 zcmV+b0{{JqP)CQDsH?WF>AIFt zQuJ}i;w2$ZUU#3SZ6RY0Gw;kZ&ol1~2ky^QZ(fom$=jNJZt!z7w_pH~wdQ;R)Gh%BbQFCx+Nm!4SuS-vkr`vhhrX zM*>w%e+v~?m@q~ImPAgtLkR_3U<2F8LP3W5=LJ*ZN|S5p#sf4YFr$p~Q~Z*0Ngxf2 zjk#J#<7EAlhzlrV53~GF&pIzcCN_lz9@05UeoUXiK%N z#x+4o*i_c|6_Uu1+&TIho?3@y4k-#b8Y_o94zW*B3a1ne2-Y5s0uke$$|@=}OP-i= zNYZQA=>PrZu0MfSL=b8UhD_={W4IY1{b{)U)*gc45xtL%IYLY&hF;d`@GzI&7H&D# zh;z_BX$#hqh@q?AY3sJTod2%*Yd)_>YM0#q&ixGuh+PQsneK)F0000uEoyT++I zn$b9r%cFfhHe2K68PkBu*@^<$y+7xQ$wJ~;c5aBx$R=xq*41Wo zhwQus_VOgm0hughj}MhOvs#{>Vg09Y8WxjWUJY5YW zJ?&8eG!59Cz=|E%Ns@013KLWOLV)CObIIj_5{>{#k%TEAMs_GbdDV`x-iYsGH z#=Z{USAQA>NY(}X7=3{K8#eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/help.png b/umbraco/presentation/umbraco/plugins/uGoLive/help.png new file mode 100644 index 0000000000000000000000000000000000000000..5c870176d4dea68aab9e51166cc3d7a582f326d6 GIT binary patch literal 786 zcmV+t1MU2YP)$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fH`7ge-n+~Y8=Qnt zg+li0pj7fSFqtsoU@QlY*1&uO zSRR@omQ4AgPeOJ9MHx^CGMP*q6OTg}^C3ha5I`^&;&P*DL^N5Vr_|1NO*m4UyB z_dkWn%n}0*W#A-HY}C+=%UkMlWk8dSxSAr2nFLWZUB$Elf+ENQ!T=^KV>t+zrPX7E ziJZjC<)~CoQfj>hmx_gKT7je0VyHwMC*kvxc`!F74na~7fmp&9Bm5K|ZB3NKa;Lds zLQ|~6_0%*Md&7;HmFpS>oq_f&#*NxdI3_U?I&d;&R6Bbt$gFx(Tx|AOxU+I0IvB{+ z*nc&8+C)!}YdbTx^kHW3aXmflMtZER%&}PdwggJWiJ9ixxf4$3%5D)uQp-$myq}vo zqByhjBI`&UBV&`O$irSL`jKJ3m-e7uRK}`?+(zF66Wnh&w@3N|SGCN;X`p{q_8MP6 zfC&Rmc}?h1W&Pn!=|+otKs~S#+5KH-ecgK7&Zft2 zOWI*|x^L^5ikh!@u<^-)wij!Q#!r5FBrKc-CzT&ir1XY#7_(qocGcHhX>;GplN$E? z1XiQ+7YEoCc&EGTonu~kZ9|=VVeczZ7w!YP0_*oj?u%sU_E%>+aKFBF!Tz2EcP=t~H^=@>r1ols>n20W5{_#Mng zsS(%+W0^MEV@I>zcXXJ%9{g&H(|zD!;$tkQ!h6r3vPFL~bT z)RvM#O*8Xdw9&kZb+4l)x1j$Ufc4j~vasc9TS*XT4U<({T7N&-d)jkZ_QJ;JABOE? z)IxizFxa{%XhDPB>&wdBR8OLl{Ahmo=?(19yF$w%>z+W8h#a5if3O^GPhZYY^6#j8 zWRZ<$T76#>8xr!eMY0APgSBhzwxaf~P(w}a!wvS38eY52qU`aH6GsGz4u@n}#n+xT z*kz5wbHi8M4QcmVl^zig@(i?v{aTQ6?X#ob>f+95-3DdeXU*EHFaS#5ReuMW-mc}*H~-U+7SxSNAiZFcen^Y%MNcbOx;P&S7K&k2k_=7uz@ z1}@y90 A?*IS* literal 0 HcmV?d00001 diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/run.png b/umbraco/presentation/umbraco/plugins/uGoLive/run.png new file mode 100644 index 0000000000000000000000000000000000000000..0846555d0ca84cb99d4c70dad80144a232604041 GIT binary patch literal 592 zcmV-W0k7R5;6} zlgp~&KoEw{L*wq6jM9+RMU)_iNO6K~b@$|K=nj zb2!5=4Mjq_zrU*f>U2#vSVnMZ9ja4cY`AdOM*t}k^goWqfa3Iq(>2kSH;P81hAqIyBm_{t1>+!KRdtb~{1AK7>C~ zD-Nov`UX!X6ET_La7f{B_|*cRuZGR%^C`gjd@jmW6h*+;8;{2{8ja|Fzf-YTq+l@k zGLg?!DijI~9$+CG0+`Fw$u{rmTC*|KGF za`M)#TV}I)bad2UFznc|qphtC`8^f=oX$<(wl&q1m!7azhb;@7jsBk`wa#YUYuhDl zuq#?_ zUz%XoMCa_{j37)q5@~VlmW#Vnt+AXG@4E5Gk$ILRPr|XrsZFTUU%%BG4&BQdV_I<* z0RP&n-+0xEaq8h^ z#|84{8OvOr;;4ai-#>j)vantIvy@NLDmCyZ0j7x4mdUEOv})T_rq}xq9_ggBeO;Yp zre=fTv>{|J)k`fB2Xm2;Hx^d~DD5k0W@;M2G=DMbGJ(i7-ttmz${=&+R@gRA`r|ur zD&mtBKh&;(l7~b88n?aAe7Aj1c0zek@sn@53cZ)&tNu^~Y~0@ZOs%%T@^Y)UvN`6k z_o%^lBqk)FISBYn9RRpwqWBx|l$3@C;oFkcqO zMXkE}!nMnyaEUhlnjK4o9e&GH;RT5oVCHY93xSZWKj4v75Cm?`wQCuoj9`??ZVf>q zIkxJ9e1fjAA3y-X*4RqoLX!3eNt1J{Kqh>@(;_B({CU3IJpdkB4_noM{N~X z+s8Am2%=zh1rPEG3n5f0 z6%2t9Zyqeq>H{4c%S#2s8bL-)GT9{$tyvoAB@L=lACf9&Rnv-}%}FJqc=56c=|{yA zf8K1}9nH%)cFxu)erw`!mafBg)iC4d3Y)f%;9xQF^DAjJ6Rojw!R`0HcZeB^UrOK^ z2-e8wvj-3^4m1IVL50LiaTF1MM8i+FCZW~J(3YiSlqcqg-(O=ok$v{?=)J#nt3SB% zivS$)rk5(J-6zhjPDzq>--Ah_H1BL=i|*m7i+Y#!yiOxJw4(2_CQ2~(;^2(f2YRl% z9hr&Y5HIAzSk{gam{3SLN(y96e6$NC1^qG90Lm8{aC>n>MT6?M`?RD{XZuvouFRr` zhIOZC>+zJo9=bEO>@}lvrzP>x8$+vT|FC%{;@bH|W7IUR9=~=sEONU4^!Qg1)3=w; z&nfsK;^x%Yi&8+7yjW@@MzADKGgN{K5JI#Q83gj$!*kYwClqW=T_B za!!7qn#h8+B_H~08U27IzvQVPX}R<1`ba_NI}2d*tI@idI#Zfa%%tuc>H9Jq|3_wC zr9EtV-j3w^K(E`B$2nHQR300fhOl`&2!#2G1_lpcSbK#Xg=B7(u7UL^Lyy$2U0Tc3 zP7hP+43z#P3nF!j(WtCGBSW^QF3hXKI@{aKm(&B2p4RVHi#JfM&aO*;j}+}5XNsCN zaI)Vrr{**5M}Hg=s~>N~P{>Q6SYtu%1~rYf!VU4;gs_ZHs{AQG2a)rMyf zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4 z2FhRqKX}xI*?Tv1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1p