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 0000000000..0afa00e504 Binary files /dev/null and b/foreign dlls/Our.Umbraco.uGoLive.47x.dll differ diff --git a/foreign dlls/Our.Umbraco.uGoLive.Checks.dll b/foreign dlls/Our.Umbraco.uGoLive.Checks.dll new file mode 100644 index 0000000000..c5dd4e20a7 Binary files /dev/null and b/foreign dlls/Our.Umbraco.uGoLive.Checks.dll differ diff --git a/foreign dlls/Our.Umbraco.uGoLive.dll b/foreign dlls/Our.Umbraco.uGoLive.dll new file mode 100644 index 0000000000..43f567e8c4 Binary files /dev/null and b/foreign dlls/Our.Umbraco.uGoLive.dll differ 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 0000000000..67de2c6ccb Binary files /dev/null and b/umbraco/presentation/umbraco/plugins/uGoLive/cog.png differ diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/cross.png b/umbraco/presentation/umbraco/plugins/uGoLive/cross.png new file mode 100644 index 0000000000..1514d51a3c Binary files /dev/null and b/umbraco/presentation/umbraco/plugins/uGoLive/cross.png differ diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/error.png b/umbraco/presentation/umbraco/plugins/uGoLive/error.png new file mode 100644 index 0000000000..628cf2dae3 Binary files /dev/null and b/umbraco/presentation/umbraco/plugins/uGoLive/error.png differ diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/help.png b/umbraco/presentation/umbraco/plugins/uGoLive/help.png new file mode 100644 index 0000000000..5c870176d4 Binary files /dev/null and b/umbraco/presentation/umbraco/plugins/uGoLive/help.png differ diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/icon.png b/umbraco/presentation/umbraco/plugins/uGoLive/icon.png new file mode 100644 index 0000000000..307e473f26 Binary files /dev/null and b/umbraco/presentation/umbraco/plugins/uGoLive/icon.png differ diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/run.png b/umbraco/presentation/umbraco/plugins/uGoLive/run.png new file mode 100644 index 0000000000..0846555d0c Binary files /dev/null and b/umbraco/presentation/umbraco/plugins/uGoLive/run.png differ diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/throbber.gif b/umbraco/presentation/umbraco/plugins/uGoLive/throbber.gif new file mode 100644 index 0000000000..dc21df1837 Binary files /dev/null and b/umbraco/presentation/umbraco/plugins/uGoLive/throbber.gif differ diff --git a/umbraco/presentation/umbraco/plugins/uGoLive/tick.png b/umbraco/presentation/umbraco/plugins/uGoLive/tick.png new file mode 100644 index 0000000000..a9925a06ab Binary files /dev/null and b/umbraco/presentation/umbraco/plugins/uGoLive/tick.png differ