Removed all the legacy files that we don't need - need to test the starter kit installation process in the back office though as some old files are still used there.
This commit is contained in:
@@ -1,99 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using Moq;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Web;
|
||||
using Umbraco.Web.Install;
|
||||
using Umbraco.Web.Install.Controllers;
|
||||
using Umbraco.Web.Install.InstallSteps;
|
||||
using Umbraco.Web.Install.Models;
|
||||
|
||||
namespace Umbraco.Tests.Install
|
||||
{
|
||||
[TestFixture]
|
||||
public class InstallHelperTests
|
||||
{
|
||||
|
||||
[Test]
|
||||
public void Get_Steps()
|
||||
{
|
||||
var appCtx = new ApplicationContext(CacheHelper.CreateDisabledCacheHelper());
|
||||
ApplicationContext.EnsureContext(appCtx, true);
|
||||
|
||||
var umbCtx = UmbracoContext.EnsureContext(
|
||||
new Mock<HttpContextBase>().Object,
|
||||
appCtx,
|
||||
true);
|
||||
|
||||
var helper = new InstallHelper(umbCtx);
|
||||
|
||||
var steps = helper.GetAllSteps().ToArray();
|
||||
|
||||
var expected = new[]
|
||||
{
|
||||
typeof (FilePermissionsStep), typeof (NewInstallStep), typeof(MajorVersion7UpgradeReport), typeof (DatabaseConfigureStep), typeof (DatabaseInstallStep),
|
||||
typeof (DatabaseUpgradeStep), typeof (StarterKitDownloadStep), typeof (StarterKitInstallStep), typeof (StarterKitCleanupStep),
|
||||
typeof (SetUmbracoVersionStep)
|
||||
};
|
||||
|
||||
Assert.AreEqual(expected.Length, steps.Length);
|
||||
|
||||
for (int i = 0; i < expected.Length; i++)
|
||||
{
|
||||
var type = expected[i];
|
||||
Assert.AreEqual(type, steps[i].GetType());
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Get_Steps_New_Install()
|
||||
{
|
||||
var appCtx = new ApplicationContext(CacheHelper.CreateDisabledCacheHelper());
|
||||
ApplicationContext.EnsureContext(appCtx, true);
|
||||
|
||||
var umbCtx = UmbracoContext.EnsureContext(
|
||||
new Mock<HttpContextBase>().Object,
|
||||
appCtx,
|
||||
true);
|
||||
|
||||
var helper = new InstallHelper(umbCtx);
|
||||
|
||||
var steps = helper.GetAllSteps().ToArray();
|
||||
|
||||
//for new installs 2, don't require execution
|
||||
Assert.AreEqual(2, steps.Count(x => x.RequiresExecution() == false));
|
||||
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Get_Steps_Upgrade()
|
||||
{
|
||||
var appCtx = new ApplicationContext(CacheHelper.CreateDisabledCacheHelper());
|
||||
ApplicationContext.EnsureContext(appCtx, true);
|
||||
appCtx.DatabaseContext = new DatabaseContext(Mock.Of<IDatabaseFactory>());
|
||||
|
||||
var umbCtx = UmbracoContext.EnsureContext(
|
||||
new Mock<HttpContextBase>().Object,
|
||||
appCtx,
|
||||
true);
|
||||
|
||||
var helper = new InstallHelper(umbCtx);
|
||||
|
||||
var steps = helper.GetAllSteps().ToArray();
|
||||
|
||||
//for upgrades 4, don't require execution
|
||||
Assert.AreEqual(4, steps.Count(x => x.RequiresExecution() == false));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -169,7 +169,6 @@
|
||||
<Compile Include="AngularIntegration\JsInitializationTests.cs" />
|
||||
<Compile Include="AngularIntegration\ServerVariablesParserTests.cs" />
|
||||
<Compile Include="AttemptTests.cs" />
|
||||
<Compile Include="Install\InstallHelperTests.cs" />
|
||||
<Compile Include="Membership\MembershipProviderBaseTests.cs" />
|
||||
<Compile Include="Membership\UmbracoServiceMembershipProviderTests.cs" />
|
||||
<Compile Include="MockTests.cs" />
|
||||
@@ -652,7 +651,9 @@
|
||||
<Content Include="Services\Importing\uBlogsy-Package.xml" />
|
||||
<Content Include="Services\Importing\XsltSearch-Package.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<Folder Include="Install\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.0\amd64\*.* "$(TargetDir)amd64\" /Y /F /E /D
|
||||
|
||||
@@ -4,6 +4,7 @@ using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.Routing;
|
||||
using System.Web.UI;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Web.Install;
|
||||
|
||||
@@ -11,7 +12,7 @@ namespace Umbraco.Web.UI.Install.Steps.Skinning
|
||||
{
|
||||
public delegate void StarterKitInstalledEventHandler();
|
||||
|
||||
public partial class LoadStarterKits : StepUserControl
|
||||
public partial class LoadStarterKits : UserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the string for the package installer web service base url
|
||||
@@ -54,11 +55,11 @@ namespace Umbraco.Web.UI.Install.Steps.Skinning
|
||||
|
||||
}
|
||||
|
||||
protected void NextStep(object sender, EventArgs e)
|
||||
{
|
||||
var p = (Default)this.Page;
|
||||
//InstallHelper.RedirectToNextStep(Page, Request.GetItemAsString("installStep"));
|
||||
}
|
||||
//protected void NextStep(object sender, EventArgs e)
|
||||
//{
|
||||
// var p = (Default)this.Page;
|
||||
// //InstallHelper.RedirectToNextStep(Page, Request.GetItemAsString("installStep"));
|
||||
//}
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
@@ -0,0 +1,20 @@
|
||||
//using System;
|
||||
//using System.Web.UI;
|
||||
//using Umbraco.Web.Install;
|
||||
|
||||
//namespace Umbraco.Web.UI.Install.Steps
|
||||
//{
|
||||
// public abstract class StepUserControl : UserControl
|
||||
// {
|
||||
// protected string GetCurrentStep()
|
||||
// {
|
||||
// var defaultPage = (Default) Page;
|
||||
// return defaultPage.step.Value;
|
||||
// }
|
||||
|
||||
// //protected virtual void GotoNextStep(object sender, EventArgs e)
|
||||
// //{
|
||||
// // InstallHelper.RedirectToNextStep(Page, GetCurrentStep());
|
||||
// //}
|
||||
// }
|
||||
//}
|
||||
@@ -1,161 +0,0 @@
|
||||
<%@ Page Language="c#" CodeBehind="default_old.aspx.cs" AutoEventWireup="True" Inherits="Umbraco.Web.UI.Install.Default" EnableViewState="False" %>
|
||||
|
||||
<%@ Register TagPrefix="umb" Namespace="ClientDependency.Core.Controls" Assembly="ClientDependency.Core" %>
|
||||
|
||||
<%@ Register Src="~/install/Title.ascx" TagPrefix="umb1" TagName="PageTitle" %><!DOCTYPE html>
|
||||
<html>
|
||||
<head runat="server">
|
||||
|
||||
<meta charset="utf-8">
|
||||
|
||||
<umb1:PageTitle runat="server" />
|
||||
|
||||
<link rel="icon" type="image/png" href="<%=umbraco.GlobalSettings.Path + "/Images/PinnedIcons/umb.ico" %>" />
|
||||
|
||||
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/jquery-ui-1.8.6.custom.css" />
|
||||
<link media="all" type="text/css" rel="stylesheet" href="../umbraco_client/installer/css/reset.css" />
|
||||
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/all.css" />
|
||||
<link media="all" type="text/css" rel="stylesheet" href="../umbraco_client/installer/css/form.css" />
|
||||
|
||||
<script src="../umbraco_client/Application/NamespaceManager.js" type="text/javascript"></script>
|
||||
<script src="../umbraco_client/ui/base2.js" type="text/javascript"></script>
|
||||
<script src="../umbraco_client/installer/js/jquery.1.4.4.js" type="text/javascript"></script>
|
||||
<script src="../umbraco_client/installer/js/jquery.ui.selectmenu.js" type="text/javascript"></script>
|
||||
<script src="../umbraco_client/installer/js/jquery.main.js" type="text/javascript"></script>
|
||||
<script src="../umbraco_client/passwordStrength/passwordstrength.js" type="text/javascript"></script>
|
||||
|
||||
<script src="../umbraco_client/installer/js/PackageInstaller.js" type="text/javascript"></script>
|
||||
|
||||
<!--[if lt IE 9]>
|
||||
<link media="all" rel="stylesheet" href="../umbraco_client/installer/css/lt7.css">
|
||||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<!--[if lt IE 7]><script type="text/javascript" src="../umbraco_client/installer/js/ie-png.js"></script><![endif]-->
|
||||
</head>
|
||||
|
||||
<body class="<%= CurrentStepClass %>">
|
||||
|
||||
|
||||
<form runat="server">
|
||||
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server">
|
||||
<Services>
|
||||
<asp:ServiceReference Path="../umbraco/webservices/CheckForUpgrade.asmx" />
|
||||
</Services>
|
||||
</asp:ScriptManager>
|
||||
<!-- all page -->
|
||||
|
||||
<section id="wrapper">
|
||||
|
||||
<div class="wholder">
|
||||
|
||||
<!-- header -->
|
||||
|
||||
<header id="header">
|
||||
|
||||
<div class="holder">
|
||||
|
||||
<strong class="logo"><a href="#">Umbraco</a></strong>
|
||||
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
<!-- all content -->
|
||||
|
||||
<section id="main">
|
||||
|
||||
<!-- tabset -->
|
||||
|
||||
<nav class="tabset">
|
||||
|
||||
<asp:Repeater ID="rp_steps" runat="server" OnItemDataBound="BindStep">
|
||||
<HeaderTemplate>
|
||||
<ul>
|
||||
</HeaderTemplate>
|
||||
<FooterTemplate></ul></FooterTemplate>
|
||||
<ItemTemplate>
|
||||
<li class="<asp:literal runat='server' ID='lt_class' />">
|
||||
<asp:Literal ID="lt_name" runat="server" /><em> </em></li>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
|
||||
<div class="b"> </div>
|
||||
|
||||
</nav>
|
||||
|
||||
<!-- content -->
|
||||
|
||||
<section class="content">
|
||||
<asp:PlaceHolder ID="PlaceHolderStep" runat="server"></asp:PlaceHolder>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<!-- bg page
|
||||
<div class="bg-main">
|
||||
<div class="color2">
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
<div class="color3">
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
<div class="color1">
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
<div class="color4">
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
<div class="color5">
|
||||
|
||||
<div class="bg-c"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
-->
|
||||
|
||||
<!-- lightbox -->
|
||||
<div class="lightbox" id="lightbox">
|
||||
<a href="#" class="btn-close btn-close-box">close</a>
|
||||
<div class="t"> </div>
|
||||
<div class="c">
|
||||
<div class="heading">
|
||||
<strong class="title">Name of skin</strong>
|
||||
<span class="create">Created by: <a href="#">Cogworks</a></span>
|
||||
</div>
|
||||
<div class="carusel">
|
||||
<ul>
|
||||
<li>
|
||||
<img src="../umbraco_client/installer/images/img09.jpg" alt="image description"></li>
|
||||
<li>
|
||||
<img src="../umbraco_client/installer/images/img10.jpg" alt="image description"></li>
|
||||
<li>
|
||||
<img src="../umbraco_client/installer/images/img11.jpg" alt="image description"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<footer class="btn-box">
|
||||
<a href="#single-tab4" class="single-tab btn-install btn-close-box">Install</a>
|
||||
</footer>
|
||||
</div>
|
||||
<div class="b"> </div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" runat="server" value="welcome" id="step" />
|
||||
|
||||
</form>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
using System;
|
||||
using System.Web;
|
||||
using System.Web.UI.WebControls;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Web.Install;
|
||||
using Umbraco.Web.Security;
|
||||
using Umbraco.Web.UI.Pages;
|
||||
using umbraco;
|
||||
|
||||
namespace Umbraco.Web.UI.Install
|
||||
{
|
||||
public partial class Default : BasePage
|
||||
{
|
||||
private string _installStep = "";
|
||||
|
||||
protected string CurrentStepClass = "";
|
||||
|
||||
protected void Page_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
//rp_steps.DataSource = InstallHelper.InstallerSteps.Values;
|
||||
//rp_steps.DataBind();
|
||||
}
|
||||
|
||||
private void LoadContent(InstallerStep currentStep)
|
||||
{
|
||||
PlaceHolderStep.Controls.Clear();
|
||||
PlaceHolderStep.Controls.Add(LoadControl(IOHelper.ResolveUrl(currentStep.UserControl)));
|
||||
step.Value = currentStep.Alias;
|
||||
CurrentStepClass = currentStep.Alias;
|
||||
}
|
||||
|
||||
int _stepCounter = 0;
|
||||
protected void BindStep(object sender, RepeaterItemEventArgs e)
|
||||
{
|
||||
|
||||
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
|
||||
{
|
||||
var i = (InstallerStep)e.Item.DataItem;
|
||||
|
||||
if (!i.HideFromNavigation)
|
||||
{
|
||||
var _class = (Literal)e.Item.FindControl("lt_class");
|
||||
var name = (Literal)e.Item.FindControl("lt_name");
|
||||
|
||||
if (i.Alias == CurrentStepClass)
|
||||
_class.Text = "active";
|
||||
|
||||
_stepCounter++;
|
||||
name.Text = (_stepCounter).ToString() + " - " + i.Name;
|
||||
}
|
||||
else
|
||||
e.Item.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
override protected void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
|
||||
_installStep = Request.GetItemAsString("installStep");
|
||||
|
||||
//if this is not an upgrade we will log in with the default user.
|
||||
// It's not considered an upgrade if the ConfigurationStatus is missing or empty.
|
||||
if (string.IsNullOrWhiteSpace(GlobalSettings.ConfigurationStatus) == false)
|
||||
{
|
||||
var result = Security.ValidateCurrentUser(false);
|
||||
|
||||
switch (result)
|
||||
{
|
||||
case ValidateRequestAttempt.FailedNoPrivileges:
|
||||
case ValidateRequestAttempt.FailedTimedOut:
|
||||
case ValidateRequestAttempt.FailedNoContextId:
|
||||
Response.Redirect(SystemDirectories.Umbraco + "/AuthorizeUpgrade?redir=" + Server.UrlEncode(Request.RawUrl));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//var s = string.IsNullOrEmpty(_installStep)
|
||||
// ? InstallHelper.InstallerSteps["welcome"]
|
||||
// : InstallHelper.InstallerSteps[_installStep];
|
||||
|
||||
//LoadContent(s);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install {
|
||||
|
||||
|
||||
public partial class Default
|
||||
{
|
||||
/// <summary>
|
||||
/// ScriptManager1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.ScriptManager ScriptManager1;
|
||||
|
||||
/// <summary>
|
||||
/// rp_steps control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Repeater rp_steps;
|
||||
|
||||
/// <summary>
|
||||
/// PlaceHolderStep control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder PlaceHolderStep;
|
||||
|
||||
/// <summary>
|
||||
/// step control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
public global::System.Web.UI.HtmlControls.HtmlInputHidden step;
|
||||
}
|
||||
}
|
||||
@@ -1,273 +0,0 @@
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using System.Data.Common;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Logging;
|
||||
using System.IO;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Web.Install;
|
||||
using umbraco.DataLayer;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
/// <summary>
|
||||
/// Database detection step in the installer wizard.
|
||||
/// </summary>
|
||||
public partial class Database : StepUserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns whether the selected database is an embedded database.
|
||||
/// </summary>
|
||||
protected bool IsEmbeddedDatabase
|
||||
{
|
||||
get
|
||||
{
|
||||
var databaseSettings = ConfigurationManager.ConnectionStrings[GlobalSettings.UmbracoConnectionName];
|
||||
var configuredDatabaseIsEmbedded = databaseSettings != null && databaseSettings.ProviderName.ToLower().Contains("SqlServerCe".ToLower());
|
||||
|
||||
return Request["database"] == "embedded" || configuredDatabaseIsEmbedded;
|
||||
}
|
||||
}
|
||||
|
||||
protected bool IsConfigured
|
||||
{
|
||||
get { return DatabaseType.SelectedValue != ""; }
|
||||
}
|
||||
|
||||
protected bool IsNewInstall
|
||||
{
|
||||
get
|
||||
{
|
||||
var databaseSettings = ConfigurationManager.ConnectionStrings[GlobalSettings.UmbracoConnectionName];
|
||||
if (databaseSettings != null && (
|
||||
databaseSettings.ConnectionString.Trim() == string.Empty
|
||||
&& databaseSettings.ProviderName.Trim() == string.Empty
|
||||
&& GlobalSettings.ConfigurationStatus == string.Empty))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns whether the connection string is set by direct text input.
|
||||
/// </summary>
|
||||
protected bool ManualConnectionString
|
||||
{
|
||||
get { return Request["database"] == "advanced"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows the right panel to the user.
|
||||
/// </summary>
|
||||
/// <param name="sender">The sender.</param>
|
||||
/// <param name="e">The event arguments.</param>
|
||||
protected void Page_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
// Does the user have to enter a connection string?
|
||||
if (settings.Visible && !Page.IsPostBack)
|
||||
{
|
||||
//If the connection string is already present in web.config we don't need to show the settings page and we jump to installing/upgrading.
|
||||
var databaseSettings = ConfigurationManager.ConnectionStrings[GlobalSettings.UmbracoConnectionName];
|
||||
|
||||
var dbIsSqlCe = false;
|
||||
if(databaseSettings != null && databaseSettings.ProviderName != null)
|
||||
dbIsSqlCe = databaseSettings.ProviderName == "System.Data.SqlServerCe.4.0";
|
||||
var sqlCeDatabaseExists = false;
|
||||
if (dbIsSqlCe)
|
||||
{
|
||||
var datasource = databaseSettings.ConnectionString.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString());
|
||||
var filePath = datasource.Replace("Data Source=", string.Empty);
|
||||
sqlCeDatabaseExists = File.Exists(filePath);
|
||||
}
|
||||
|
||||
// Either the connection details are not fully specified or it's a SQL CE database that doesn't exist yet
|
||||
if (databaseSettings == null
|
||||
|| string.IsNullOrWhiteSpace(databaseSettings.ConnectionString) || string.IsNullOrWhiteSpace(databaseSettings.ProviderName)
|
||||
|| (dbIsSqlCe && sqlCeDatabaseExists == false))
|
||||
{
|
||||
installProgress.Visible = true;
|
||||
upgradeProgress.Visible = false;
|
||||
ShowDatabaseSettings();
|
||||
}
|
||||
else
|
||||
{
|
||||
//Since a connection string was present we verify whether this is an upgrade or an empty db
|
||||
var result = ApplicationContext.Current.DatabaseContext.ValidateDatabaseSchema();
|
||||
var determinedVersion = result.DetermineInstalledVersion();
|
||||
if (determinedVersion.Equals(new Version(0, 0, 0)))
|
||||
{
|
||||
//Fresh install
|
||||
installProgress.Visible = true;
|
||||
upgradeProgress.Visible = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Upgrade
|
||||
installProgress.Visible = false;
|
||||
upgradeProgress.Visible = true;
|
||||
}
|
||||
|
||||
settings.Visible = false;
|
||||
installing.Visible = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Prepares and shows the database settings panel.
|
||||
/// </summary>
|
||||
protected void ShowDatabaseSettings()
|
||||
{
|
||||
// Parse the connection string
|
||||
var connectionStringBuilder = new DbConnectionStringBuilder();
|
||||
|
||||
var databaseSettings = ConfigurationManager.ConnectionStrings[GlobalSettings.UmbracoConnectionName];
|
||||
if (databaseSettings != null && string.IsNullOrWhiteSpace(databaseSettings.ConnectionString) == false)
|
||||
{
|
||||
var dataHelper = DataLayerHelper.CreateSqlHelper(databaseSettings.ConnectionString, false);
|
||||
connectionStringBuilder.ConnectionString = dataHelper.ConnectionString;
|
||||
|
||||
// Prepare data layer type
|
||||
var datalayerType = GetConnectionStringValue(connectionStringBuilder, "datalayer");
|
||||
if (datalayerType.Length > 0)
|
||||
{
|
||||
foreach (ListItem item in DatabaseType.Items)
|
||||
if (item.Value != string.Empty && datalayerType.Contains(item.Value))
|
||||
DatabaseType.SelectedValue = item.Value;
|
||||
}
|
||||
else if (dataHelper.ConnectionString != "server=.\\SQLEXPRESS;database=DATABASE;user id=USER;password=PASS")
|
||||
DatabaseType.SelectedValue = "SqlServer";
|
||||
}
|
||||
else
|
||||
{
|
||||
DatabaseType.SelectedValue = "SqlServer";
|
||||
}
|
||||
|
||||
DatabaseType_SelectedIndexChanged(this, new EventArgs());
|
||||
|
||||
// Prepare other fields
|
||||
DatabaseServer.Text = GetConnectionStringValue(connectionStringBuilder, "server");
|
||||
if (string.IsNullOrEmpty(DatabaseServer.Text)) DatabaseServer.Text = GetConnectionStringValue(connectionStringBuilder, "Data Source");
|
||||
DatabaseName.Text = GetConnectionStringValue(connectionStringBuilder, "database");
|
||||
if (string.IsNullOrEmpty(DatabaseName.Text)) DatabaseName.Text = GetConnectionStringValue(connectionStringBuilder, "Initial Catalog");
|
||||
DatabaseUsername.Text = GetConnectionStringValue(connectionStringBuilder, "user id");
|
||||
DatabasePassword.Text = GetConnectionStringValue(connectionStringBuilder, "password");
|
||||
if (string.IsNullOrEmpty(DatabasePassword.Text)) DatabasePassword.Text = GetConnectionStringValue(connectionStringBuilder, "pwd");
|
||||
|
||||
ToggleVisible(DatabaseServerItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
ToggleVisible(DatabaseUsernameItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
ToggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
ToggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
|
||||
if (IsNewInstall || IsEmbeddedDatabase)
|
||||
dbinit.Text = "$('#databaseOptionEmbedded').click();$('#databaseOptionEmbedded').change();";
|
||||
else if (ManualConnectionString)
|
||||
dbinit.Text = "$('#databaseOptionAdvanced').click();$('#databaseOptionAdvanced').change();";
|
||||
else if (DatabaseType.SelectedValue == "SqlServer")
|
||||
dbinit.Text = "$('#databaseOptionBlank').click();$('#databaseOptionBlank').change();";
|
||||
else if (DatabaseType.SelectedValue == "SqlAzure")
|
||||
dbinit.Text = "$('#databaseOptionBlank').click();$('#databaseOptionBlank').change();";
|
||||
//toggleVisible(DatabaseConnectionString, ManualConnectionString);
|
||||
|
||||
// Make sure ASP.Net displays the password text
|
||||
DatabasePassword.Attributes["value"] = DatabasePassword.Text;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows the installation/upgrade panel.
|
||||
/// </summary>
|
||||
protected void SaveDbConfig(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var dbContext = ApplicationContext.Current.DatabaseContext;
|
||||
|
||||
if (string.IsNullOrEmpty(ConnectionString.Text) == false)
|
||||
{
|
||||
dbContext.ConfigureDatabaseConnection(ConnectionString.Text);
|
||||
}
|
||||
else if (IsEmbeddedDatabase)
|
||||
{
|
||||
dbContext.ConfigureEmbeddedDatabaseConnection();
|
||||
}
|
||||
else
|
||||
{
|
||||
var server = DatabaseServer.Text;
|
||||
var databaseName = DatabaseName.Text;
|
||||
|
||||
if (DatabaseType.SelectedValue == "SqlServer" && DatabaseIntegratedSecurity.Checked == true)
|
||||
{
|
||||
dbContext.ConfigureIntegratedSecurityDatabaseConnection(server, databaseName);
|
||||
}
|
||||
else
|
||||
{
|
||||
dbContext.ConfigureDatabaseConnection(server, databaseName,
|
||||
DatabaseUsername.Text, DatabasePassword.Text, DatabaseType.SelectedValue
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Error<Database>("Exception was thrown during the setup of the database in 'saveDBConfig'.", ex);
|
||||
}
|
||||
|
||||
settings.Visible = false;
|
||||
installing.Visible = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the value of the specified item in the connection string.
|
||||
/// </summary>
|
||||
/// <param name="connectionStringBuilder">The connection string.</param>
|
||||
/// <param name="keyword">Name of the item.</param>
|
||||
/// <returns>The value of the item, or an empty string if not found.</returns>
|
||||
protected string GetConnectionStringValue(DbConnectionStringBuilder connectionStringBuilder, string keyword)
|
||||
{
|
||||
object value = null;
|
||||
connectionStringBuilder.TryGetValue(keyword, out value);
|
||||
return (string)value ?? String.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Show the needed fields according to the database type.
|
||||
/// </summary>
|
||||
/// <param name="sender">The sender.</param>
|
||||
/// <param name="e">The event arguments.</param>
|
||||
protected void DatabaseType_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
ToggleVisible(DatabaseServerItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
ToggleVisible(DatabaseUsernameItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
ToggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
ToggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase);
|
||||
|
||||
//toggleVisible(DatabaseConnectionString, ManualConnectionString);
|
||||
}
|
||||
|
||||
private static void ToggleVisible(HtmlGenericControl div, bool visible)
|
||||
{
|
||||
if (!visible)
|
||||
div.Attributes["style"] = "display: none;";
|
||||
else
|
||||
div.Attributes["style"] = "display: block;";
|
||||
}
|
||||
|
||||
protected void GotoSettings(object sender, EventArgs e)
|
||||
{
|
||||
settings.Visible = true;
|
||||
installing.Visible = false;
|
||||
|
||||
ShowDatabaseSettings();
|
||||
|
||||
jsVars.Text = "showDatabaseSettings();";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,249 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class Database {
|
||||
|
||||
/// <summary>
|
||||
/// settings control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder settings;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseType control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DropDownList DatabaseType;
|
||||
|
||||
/// <summary>
|
||||
/// ph_dbError control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder ph_dbError;
|
||||
|
||||
/// <summary>
|
||||
/// lt_dbError control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal lt_dbError;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseServerItem control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl DatabaseServerItem;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseServerLabel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label DatabaseServerLabel;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseServer control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox DatabaseServer;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseNameItem control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl DatabaseNameItem;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseNameLabel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label DatabaseNameLabel;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseName control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox DatabaseName;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseIntegratedSecurity control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox DatabaseIntegratedSecurity;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseUsernameItem control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl DatabaseUsernameItem;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseUsernameLabel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label DatabaseUsernameLabel;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseUsername control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox DatabaseUsername;
|
||||
|
||||
/// <summary>
|
||||
/// DatabasePasswordItem control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl DatabasePasswordItem;
|
||||
|
||||
/// <summary>
|
||||
/// DatabasePasswordLabel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label DatabasePasswordLabel;
|
||||
|
||||
/// <summary>
|
||||
/// DatabasePassword control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox DatabasePassword;
|
||||
|
||||
/// <summary>
|
||||
/// embeddedFilesMissing control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl embeddedFilesMissing;
|
||||
|
||||
/// <summary>
|
||||
/// DatabaseConnectionString control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.HtmlControls.HtmlGenericControl DatabaseConnectionString;
|
||||
|
||||
/// <summary>
|
||||
/// ConnectionStringLabel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label ConnectionStringLabel;
|
||||
|
||||
/// <summary>
|
||||
/// ConnectionString control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox ConnectionString;
|
||||
|
||||
/// <summary>
|
||||
/// jsVars control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal jsVars;
|
||||
|
||||
/// <summary>
|
||||
/// dbinit control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal dbinit;
|
||||
|
||||
/// <summary>
|
||||
/// installing control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder installing;
|
||||
|
||||
/// <summary>
|
||||
/// installProgress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder installProgress;
|
||||
|
||||
/// <summary>
|
||||
/// upgradeProgress control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder upgradeProgress;
|
||||
}
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
using System;
|
||||
using System.Web.Security;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Security;
|
||||
using Umbraco.Web.Install;
|
||||
using Umbraco.Web.Security;
|
||||
using umbraco.BusinessLogic;
|
||||
using umbraco.providers;
|
||||
using System.Collections.Specialized;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for defaultUser.
|
||||
/// </summary>
|
||||
public partial class DefaultUser : StepUserControl
|
||||
{
|
||||
|
||||
protected MembershipProvider CurrentProvider
|
||||
{
|
||||
get
|
||||
{
|
||||
var provider = Membership.Providers[UmbracoConfig.For.UmbracoSettings().Providers.DefaultBackOfficeUserProvider];
|
||||
if (provider == null)
|
||||
{
|
||||
throw new InvalidOperationException("No MembershipProvider found with name " + UmbracoConfig.For.UmbracoSettings().Providers.DefaultBackOfficeUserProvider);
|
||||
}
|
||||
return provider;
|
||||
}
|
||||
}
|
||||
|
||||
protected void ChangePasswordClick(object sender, EventArgs e)
|
||||
{
|
||||
Page.Validate();
|
||||
|
||||
if (Page.IsValid)
|
||||
{
|
||||
var user = User.GetUser(0);
|
||||
|
||||
var membershipUser = CurrentProvider.GetUser(0, true);
|
||||
if (membershipUser == null)
|
||||
{
|
||||
throw new InvalidOperationException("No user found in membership provider with id of 0");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var success = membershipUser.ChangePassword(user.GetPassword(), tb_password.Text.Trim());
|
||||
if (success == false)
|
||||
{
|
||||
PasswordValidator.IsValid = false;
|
||||
PasswordValidator.ErrorMessage = "Password must be at least " + CurrentProvider.MinRequiredPasswordLength + " characters long and contain at least " + CurrentProvider.MinRequiredNonAlphanumericCharacters + " symbols";
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
PasswordValidator.IsValid = false;
|
||||
PasswordValidator.ErrorMessage = "Password must be at least " + CurrentProvider.MinRequiredPasswordLength + " characters long and contain at least " + CurrentProvider.MinRequiredNonAlphanumericCharacters + " symbols";
|
||||
return;
|
||||
}
|
||||
|
||||
user.Email = tb_email.Text.Trim();
|
||||
user.Name = tb_name.Text.Trim();
|
||||
user.LoginName = tb_login.Text;
|
||||
|
||||
user.Save();
|
||||
|
||||
if (cb_newsletter.Checked)
|
||||
{
|
||||
try
|
||||
{
|
||||
var client = new System.Net.WebClient();
|
||||
var values = new NameValueCollection {{"name", tb_name.Text}, {"email", tb_email.Text}};
|
||||
|
||||
client.UploadValues("http://umbraco.org/base/Ecom/SubmitEmail/installer.aspx", values);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Error<DefaultUser>("An error occurred subscribing user to newsletter", ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (String.IsNullOrWhiteSpace(GlobalSettings.ConfigurationStatus))
|
||||
UmbracoContext.Current.Security.PerformLogin(user.Id);
|
||||
|
||||
//InstallHelper.RedirectToNextStep(Page, GetCurrentStep());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class DefaultUser {
|
||||
|
||||
/// <summary>
|
||||
/// identify control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder identify;
|
||||
|
||||
/// <summary>
|
||||
/// tb_name control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tb_name;
|
||||
|
||||
/// <summary>
|
||||
/// tb_email control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tb_email;
|
||||
|
||||
/// <summary>
|
||||
/// tb_login control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tb_login;
|
||||
|
||||
/// <summary>
|
||||
/// tb_password control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tb_password;
|
||||
|
||||
/// <summary>
|
||||
/// PasswordValidator control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CustomValidator PasswordValidator;
|
||||
|
||||
/// <summary>
|
||||
/// tb_password_confirm control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.TextBox tb_password_confirm;
|
||||
|
||||
/// <summary>
|
||||
/// cb_newsletter control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.CheckBox cb_newsletter;
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Umbraco.Web.Install;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
public partial class License : StepUserControl
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class License {
|
||||
|
||||
/// <summary>
|
||||
/// btnNext control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton btnNext;
|
||||
}
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
using Umbraco.Core.IO;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
public partial class Renaming : StepUserControl
|
||||
{
|
||||
private readonly string _oldAccessFilePath = IOHelper.MapPath(SystemDirectories.Data + "/access.xml");
|
||||
private readonly string _newAccessFilePath = IOHelper.MapPath(SystemDirectories.Data + "/access.config");
|
||||
private bool _changesNeeded = false;
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
// check access.xml file
|
||||
identifyResult.Text += CheckAccessFile();
|
||||
|
||||
if (_changesNeeded)
|
||||
{
|
||||
changesNeeded.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
noChangedNeeded.Visible = true;
|
||||
changesNeeded.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private string CheckAccessFile()
|
||||
{
|
||||
if (!NewAccessFileExist() && OldAccessFileExist())
|
||||
{
|
||||
_changesNeeded = true;
|
||||
return "<li>Access.xml found. Needs to be renamed to access.config</li>";
|
||||
}
|
||||
return "<li>Public Access file is all good. No changes needed</li>";
|
||||
}
|
||||
|
||||
private bool OldAccessFileExist()
|
||||
{
|
||||
return File.Exists(_oldAccessFilePath);
|
||||
}
|
||||
|
||||
private bool NewAccessFileExist()
|
||||
{
|
||||
return File.Exists(_newAccessFilePath);
|
||||
}
|
||||
|
||||
protected void UpdateChangesClick(object sender, EventArgs e)
|
||||
{
|
||||
bool succes = true;
|
||||
string progressText = "";
|
||||
|
||||
// rename access file
|
||||
if (OldAccessFileExist())
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Move(_oldAccessFilePath, IOHelper.MapPath(SystemFiles.AccessXml));
|
||||
progressText += String.Format("<li>Public Access file renamed</li>");
|
||||
}
|
||||
catch (Exception ee)
|
||||
{
|
||||
progressText += String.Format("<li>Error renaming access file: {0}</li>", ee.ToString());
|
||||
succes = false;
|
||||
}
|
||||
}
|
||||
|
||||
string resultClass = succes ? "success" : "error";
|
||||
resultText.Text = String.Format("<div class=\"{0}\"><p>{1}</p></div>",
|
||||
resultClass,
|
||||
progressText);
|
||||
result.Visible = true;
|
||||
init.Visible = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class Renaming {
|
||||
|
||||
/// <summary>
|
||||
/// init control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel init;
|
||||
|
||||
/// <summary>
|
||||
/// noChangedNeeded control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel noChangedNeeded;
|
||||
|
||||
/// <summary>
|
||||
/// changesNeeded control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel changesNeeded;
|
||||
|
||||
/// <summary>
|
||||
/// identifyResult control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal identifyResult;
|
||||
|
||||
/// <summary>
|
||||
/// updateChanges control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Button updateChanges;
|
||||
|
||||
/// <summary>
|
||||
/// result control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel result;
|
||||
|
||||
/// <summary>
|
||||
/// resultText control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal resultText;
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="RenderingEngine.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.RenderingEngine" %>
|
||||
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>
|
||||
Chose how you like to work with Templates</h1>
|
||||
<p>
|
||||
Umbraco works with both ASP.NET WebForms (also known as MasterPages) and ASP.NET MVC (called Views). If you're not sure, we recommend using the MVC templates. You can of course use both but let's select a default one to get started.
|
||||
</p>
|
||||
</div>
|
||||
<div class="step rendering-engine">
|
||||
<div class="container">
|
||||
<p>
|
||||
<strong>Choose a default template type:</strong>
|
||||
</p>
|
||||
<asp:RadioButtonList runat="server" ID="EngineSelection" RepeatLayout="Flow">
|
||||
<asp:ListItem Selected="True">MVC</asp:ListItem>
|
||||
<asp:ListItem>Web forms</asp:ListItem>
|
||||
</asp:RadioButtonList>
|
||||
</div>
|
||||
</div>
|
||||
<!-- btn box -->
|
||||
<footer class="btn-box">
|
||||
<div class="t"> </div>
|
||||
<asp:LinkButton ID="btnNext" CssClass="btn btn-continue" runat="server" OnClick="GotoNextStep"><span>Continue</span></asp:LinkButton>
|
||||
</footer>
|
||||
</div>
|
||||
@@ -1,22 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using Umbraco.Core.Configuration;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
public partial class RenderingEngine : StepUserControl
|
||||
{
|
||||
//protected override void GotoNextStep(object sender, EventArgs e)
|
||||
//{
|
||||
// ////set the default engine
|
||||
// //UmbracoSettings.DefaultRenderingEngine = Core.RenderingEngine.Mvc;
|
||||
// //UmbracoSettings.Save();
|
||||
|
||||
// base.GotoNextStep(sender, e);
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class RenderingEngine {
|
||||
|
||||
/// <summary>
|
||||
/// EngineSelection control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.RadioButtonList EngineSelection;
|
||||
|
||||
/// <summary>
|
||||
/// btnNext control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton btnNext;
|
||||
}
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="StarterKits.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.StarterKits" %>
|
||||
|
||||
<!-- Choose starter kit -->
|
||||
|
||||
<asp:UpdatePanel runat="server" ID="udp">
|
||||
<ContentTemplate>
|
||||
|
||||
<script type="text/javascript">
|
||||
var intervalId = 0;
|
||||
|
||||
jQuery(document).ready(function () {
|
||||
jQuery('.zoom-list a.selectStarterKit').click(function () {
|
||||
jQuery('.main-tabinfo').hide();
|
||||
jQuery('#starterkitname').html( jQuery(this).attr("title") );
|
||||
|
||||
jQuery('#single-tab1').show();
|
||||
//fire off the progressbar
|
||||
intervalId = setInterval("progressBarCallback()", 1000);
|
||||
|
||||
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
function pageLoad(sender, args) {
|
||||
if (args.get_isPartialLoad()) {
|
||||
|
||||
clearInterval(intervalId);
|
||||
|
||||
jQuery('#single-tab1').hide();
|
||||
|
||||
initZoomList2();
|
||||
initSlide();
|
||||
|
||||
initLightBox();
|
||||
|
||||
jQuery('.btn-install-gal').click(function () {
|
||||
jQuery('#browseSkins').hide();
|
||||
jQuery('#installingSkin').show();
|
||||
|
||||
//fire off the progressbar
|
||||
intervalId = setInterval("progressBarCallback()", 1000);
|
||||
|
||||
jQuery('#skinname').html( jQuery(this).attr("title") );
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function progressBarCallback() {
|
||||
jQuery.getJSON('InstallerRestService.aspx?feed=progress', function (data) {
|
||||
|
||||
if (data.percentage > 0) {
|
||||
updateProgressBar(data.percentage);
|
||||
updateStatusMessage(data.message);
|
||||
}
|
||||
|
||||
if (data.error != "") {
|
||||
clearInterval(intervalId);
|
||||
updateStatusMessage(data.error);
|
||||
}
|
||||
|
||||
if (data.percentage == 100) {
|
||||
clearInterval(intervalId);
|
||||
jQuery(".btn-box").show();
|
||||
jQuery('.ui-progressbar-value').css("background-image", "url(../umbraco_client/installer/images/pbar.gif)");
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<asp:Placeholder ID="pl_starterKit" Runat="server" Visible="True">
|
||||
<!-- starter box -->
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>Starter kits</h1>
|
||||
<p>To help you get started here are some basic starter kits. They have been tailored to suit common site configurations and install useful functionality.</p>
|
||||
</div>
|
||||
<!-- menu -->
|
||||
<asp:PlaceHolder ID="ph_starterKits" runat="server" />
|
||||
</div>
|
||||
</asp:Placeholder>
|
||||
|
||||
|
||||
<!-- Choose starter kit design -->
|
||||
<asp:Placeholder ID="pl_starterKitDesign" Runat="server" Visible="True">
|
||||
<div class="tab install-tab" id="browseSkins">
|
||||
<div class="container">
|
||||
<h1>Install a Skin</h1>
|
||||
<div class="accept-hold">
|
||||
<p>You can now further enhance your site by choosing one of these great skins. This will apply a default look and feel to all the pages in your site, considerably reducing development time.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- skins -->
|
||||
<asp:Placeholder ID="ph_starterKitDesigns" runat="server" />
|
||||
</div>
|
||||
</asp:Placeholder>
|
||||
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
|
||||
|
||||
<!-- itstall starter kit -->
|
||||
<div class="tab install-tab" id="single-tab1" style="display: none">
|
||||
<div class="container">
|
||||
<h1>Installing Starter Kit</h1>
|
||||
<h2><strong id="starterkitname">Your starter kit</strong> is installing. </h2>
|
||||
<div class="loader alt">
|
||||
<div class="hold">
|
||||
<div class="progress-bar"></div>
|
||||
<span class="progress-bar-value">56%</span>
|
||||
</div>
|
||||
<strong>Starting installation...</strong>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
using System;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Web.Install;
|
||||
using Umbraco.Web.UI.Install.Steps.Skinning;
|
||||
using umbraco.cms.businesslogic.packager;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
public partial class StarterKits : StepUserControl
|
||||
{
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
//if (InstalledPackage.GetAllInstalledPackages().Count > 0)
|
||||
// GotoNextStep(sender, e);
|
||||
|
||||
ShowStarterKits();
|
||||
}
|
||||
|
||||
|
||||
private void ShowStarterKits()
|
||||
{
|
||||
ph_starterKits.Controls.Add(LoadControl(SystemDirectories.Install + "/steps/Skinning/loadStarterKits.ascx"));
|
||||
|
||||
pl_starterKit.Visible = true;
|
||||
pl_starterKitDesign.Visible = false;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class StarterKits {
|
||||
|
||||
/// <summary>
|
||||
/// udp control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.UpdatePanel udp;
|
||||
|
||||
/// <summary>
|
||||
/// pl_starterKit control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder pl_starterKit;
|
||||
|
||||
/// <summary>
|
||||
/// ph_starterKits control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder ph_starterKits;
|
||||
|
||||
/// <summary>
|
||||
/// pl_starterKitDesign control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder pl_starterKitDesign;
|
||||
|
||||
/// <summary>
|
||||
/// ph_starterKitDesigns control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder ph_starterKitDesigns;
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
using System;
|
||||
using System.Web.UI;
|
||||
using Umbraco.Web.Install;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
public abstract class StepUserControl : UserControl
|
||||
{
|
||||
protected string GetCurrentStep()
|
||||
{
|
||||
var defaultPage = (Default) Page;
|
||||
return defaultPage.step.Value;
|
||||
}
|
||||
|
||||
//protected virtual void GotoNextStep(object sender, EventArgs e)
|
||||
//{
|
||||
// InstallHelper.RedirectToNextStep(Page, GetCurrentStep());
|
||||
//}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System;
|
||||
using System.Web;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Web.Security;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
public partial class TheEnd : StepUserControl
|
||||
{
|
||||
protected void Page_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
// Update configurationStatus
|
||||
try
|
||||
{
|
||||
GlobalSettings.ConfigurationStatus = UmbracoVersion.Current.ToString(3);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LogHelper.Error<TheEnd>("An error occurred updating the config status", ex);
|
||||
}
|
||||
|
||||
// Update ClientDependency version
|
||||
var clientDependencyConfig = new ClientDependencyConfiguration();
|
||||
var clientDependencyUpdated = clientDependencyConfig.IncreaseVersionNumber();
|
||||
|
||||
//Clear the auth cookie - this is required so that the login screen is displayed after upgrade and so the
|
||||
// csrf anti-forgery tokens are created, otherwise there will just be JS errors if the user has an old
|
||||
// login token from a previous version when we didn't have csrf tokens in place
|
||||
var security = new WebSecurity(new HttpContextWrapper(Context), ApplicationContext.Current);
|
||||
security.ClearCurrentLogin();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class TheEnd {
|
||||
}
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UpgradeReport.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.UpgradeReport" %>
|
||||
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>Major version upgrade from <%= CurrentVersion %> to <%= NewVersion %></h1>
|
||||
|
||||
<asp:MultiView runat="server" ActiveViewIndex="<%#ToggleView.ActiveViewIndex %>" ID="MultiView1">
|
||||
<asp:View ID="View1" runat="server">
|
||||
<p>
|
||||
This installation step will determine if there are compatibility issues with Property Editors that you have defined in your current installation.
|
||||
</p>
|
||||
</asp:View>
|
||||
<asp:View ID="View2" runat="server">
|
||||
|
||||
<asp:MultiView runat="server" ActiveViewIndex="<%#Report.Any() ? 0 : 1 %>">
|
||||
<asp:View runat="server">
|
||||
<h2>There were <%=Report.Count() %> issues detected</h2>
|
||||
<p>
|
||||
The following compatibility issues were found. If you continue all non-compatible property editors will be converted to a Readonly/Label.
|
||||
You will be able to change the property editor to a compatible type manually by editing the data type after installation.
|
||||
</p>
|
||||
<p>
|
||||
Otherwise if you choose not to proceed you will need to fix the errors listed below.
|
||||
Refer to v<%= NewVersion%> upgrade instructions for full details.
|
||||
</p>
|
||||
</asp:View>
|
||||
<asp:View runat="server">
|
||||
<h2>No issues detected</h2>
|
||||
<p>
|
||||
<strong>Click 'Continue' to proceed with the upgrade</strong>
|
||||
</p>
|
||||
</asp:View>
|
||||
</asp:MultiView>
|
||||
</asp:View>
|
||||
</asp:MultiView>
|
||||
|
||||
</div>
|
||||
<div class="step rendering-engine">
|
||||
<div class="container btn-box">
|
||||
<asp:MultiView runat="server" ActiveViewIndex="0" ID="ToggleView">
|
||||
<asp:View runat="server">
|
||||
<p>
|
||||
<strong>Click 'Continue' to generate the compatibility report</strong>
|
||||
</p>
|
||||
</asp:View>
|
||||
<asp:View runat="server">
|
||||
|
||||
<table class="upgrade-report">
|
||||
<% foreach (var item in Report)
|
||||
{ %>
|
||||
|
||||
<tr>
|
||||
<td class="icon">
|
||||
<span class='<%= item.Item1 ? "ui-state-default ui-icon ui-icon-check" : "ui-state-highlight ui-icon ui-icon-alert" %>'></span>
|
||||
</td>
|
||||
<td class="msg">
|
||||
<%=item.Item2 %>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<% } %>
|
||||
</table>
|
||||
</asp:View>
|
||||
</asp:MultiView>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- btn box -->
|
||||
<footer class="btn-box">
|
||||
<div class="t"> </div>
|
||||
<asp:LinkButton ID="btnNext" CssClass="btn btn-continue" runat="server" OnClick="NextButtonClick"><span>Continue</span></asp:LinkButton>
|
||||
</footer>
|
||||
</div>
|
||||
@@ -1,96 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.SqlSyntax;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
public partial class UpgradeReport : StepUserControl
|
||||
{
|
||||
protected Version CurrentVersion { get; private set; }
|
||||
protected Version NewVersion { get; private set; }
|
||||
protected IEnumerable<Tuple<bool, string>> Report { get; private set; }
|
||||
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
|
||||
var result = ApplicationContext.Current.DatabaseContext.ValidateDatabaseSchema();
|
||||
var determinedVersion = result.DetermineInstalledVersion();
|
||||
|
||||
CurrentVersion = determinedVersion;
|
||||
NewVersion = UmbracoVersion.Current;
|
||||
Report = new List<Tuple<bool, string>>();
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
if (!IsPostBack)
|
||||
{
|
||||
DataBind();
|
||||
}
|
||||
}
|
||||
|
||||
protected void NextButtonClick(object sender, EventArgs e)
|
||||
{
|
||||
if (ToggleView.ActiveViewIndex == 1)
|
||||
{
|
||||
//GotoNextStep(sender, e);
|
||||
}
|
||||
else
|
||||
{
|
||||
CreateReport();
|
||||
ToggleView.ActiveViewIndex = 1;
|
||||
DataBind();
|
||||
}
|
||||
}
|
||||
|
||||
private void CreateReport()
|
||||
{
|
||||
var errorReport = new List<Tuple<bool, string>>();
|
||||
|
||||
var sql = new Sql();
|
||||
sql
|
||||
.Select(
|
||||
SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumn("cmsDataType", "controlId"),
|
||||
SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumn("umbracoNode", "text"))
|
||||
.From(SqlSyntaxContext.SqlSyntaxProvider.GetQuotedTableName("cmsDataType"))
|
||||
.InnerJoin(SqlSyntaxContext.SqlSyntaxProvider.GetQuotedTableName("umbracoNode"))
|
||||
.On(
|
||||
SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumn("cmsDataType", "nodeId") + " = " +
|
||||
SqlSyntaxContext.SqlSyntaxProvider.GetQuotedColumn("umbracoNode", "id"));
|
||||
|
||||
var list = ApplicationContext.Current.DatabaseContext.Database.Fetch<dynamic>(sql);
|
||||
foreach (var item in list)
|
||||
{
|
||||
Guid legacyId = item.controlId;
|
||||
//check for a map entry
|
||||
var alias = LegacyPropertyEditorIdToAliasConverter.GetAliasFromLegacyId(legacyId);
|
||||
if (alias != null)
|
||||
{
|
||||
//check that the new property editor exists with that alias
|
||||
var editor = PropertyEditorResolver.Current.GetByAlias(alias);
|
||||
if (editor == null)
|
||||
{
|
||||
errorReport.Add(new Tuple<bool, string>(false, string.Format("Property Editor with ID '{0}' (assigned to Data Type '{1}') has a valid GUID -> Alias map but no property editor was found. It will be replaced with a Readonly/Label property editor.", item.controlId, item.text)));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
errorReport.Add(new Tuple<bool, string>(false, string.Format("Property Editor with ID '{0}' (assigned to Data Type '{1}') does not have a valid GUID -> Alias map. It will be replaced with a Readonly/Label property editor.", item.controlId, item.text)));
|
||||
}
|
||||
}
|
||||
|
||||
Report = errorReport;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class UpgradeReport {
|
||||
|
||||
/// <summary>
|
||||
/// MultiView1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.MultiView MultiView1;
|
||||
|
||||
/// <summary>
|
||||
/// View1 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.View View1;
|
||||
|
||||
/// <summary>
|
||||
/// View2 control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.View View2;
|
||||
|
||||
/// <summary>
|
||||
/// ToggleView control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.MultiView ToggleView;
|
||||
|
||||
/// <summary>
|
||||
/// btnNext control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton btnNext;
|
||||
}
|
||||
}
|
||||
@@ -1,181 +0,0 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Web.Install;
|
||||
using umbraco;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
public partial class ValidatePermissions : StepUserControl
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
var permissionsOk = true;
|
||||
var packageOk = true;
|
||||
var foldersOk = true;
|
||||
var cacheOk = true;
|
||||
var valResult = "";
|
||||
|
||||
// Test default dir permissions
|
||||
foreach (var dir in FilePermissionHelper.PermissionDirs)
|
||||
{
|
||||
var result = SaveAndDeleteFile(IOHelper.MapPath(dir + "/configWizardPermissionTest.txt"));
|
||||
|
||||
if (!result)
|
||||
{
|
||||
permissionsOk = false;
|
||||
permSummary.Text += "<li>Directory: ./" + dir + "</li>";
|
||||
}
|
||||
|
||||
// Print
|
||||
valResult += " " + dir + " : " + SuccessOrFailure(result) + "!<br/>";
|
||||
}
|
||||
|
||||
// Test default file permissions
|
||||
foreach (var file in FilePermissionHelper.PermissionFiles)
|
||||
{
|
||||
var result = OpenFileForWrite(IOHelper.MapPath(file));
|
||||
if (!result)
|
||||
{
|
||||
permissionsOk = false;
|
||||
permSummary.Text += "<li>File: " + file + "</li>";
|
||||
}
|
||||
|
||||
// Print
|
||||
valResult += " " + file + " : " + SuccessOrFailure(result) + "!<br/>";
|
||||
}
|
||||
permissionResults.Text = valResult;
|
||||
|
||||
// Test package dir permissions
|
||||
string packageResult = "";
|
||||
foreach (var dir in FilePermissionHelper.PackagesPermissionsDirs)
|
||||
{
|
||||
var result =
|
||||
SaveAndDeleteFile(IOHelper.MapPath(dir + "/configWizardPermissionTest.txt"));
|
||||
if (!result)
|
||||
{
|
||||
packageOk = false;
|
||||
permSummary.Text += "<li>Directory: " + dir + "</li>";
|
||||
}
|
||||
|
||||
// Print
|
||||
packageResult += " ./" + dir + " : " + SuccessOrFailure(result) + "!<br/>";
|
||||
}
|
||||
packageResults.Text = packageResult;
|
||||
|
||||
// Test umbraco.xml file
|
||||
try
|
||||
{
|
||||
content.Instance.PersistXmlToFile();
|
||||
xmlResult.Text = "Success!";
|
||||
}
|
||||
catch (Exception ee)
|
||||
{
|
||||
cacheOk = false;
|
||||
xmlResult.Text = "Failed!";
|
||||
string tempFile = SystemFiles.ContentCacheXml;
|
||||
|
||||
if (tempFile.Substring(0, 1) == "/")
|
||||
tempFile = tempFile.Substring(1, tempFile.Length - 1);
|
||||
|
||||
permSummary.Text += string.Format("<li>File ./{0}<br/><strong>Error message: </strong>{1}</li>", tempFile, ee);
|
||||
}
|
||||
|
||||
// Test creation of folders
|
||||
try
|
||||
{
|
||||
string tempDir = IOHelper.MapPath(SystemDirectories.Media + "/testCreatedByConfigWizard");
|
||||
Directory.CreateDirectory(tempDir);
|
||||
Directory.Delete(tempDir);
|
||||
foldersResult.Text = "Success!";
|
||||
}
|
||||
catch
|
||||
{
|
||||
foldersOk = false;
|
||||
foldersResult.Text = "Failure!";
|
||||
}
|
||||
|
||||
// update config files
|
||||
if (permissionsOk)
|
||||
{
|
||||
foreach (
|
||||
var configFile in new DirectoryInfo(IOHelper.MapPath(SystemDirectories.Config)).GetFiles("*.xml"))
|
||||
{
|
||||
try
|
||||
{
|
||||
if (File.Exists(configFile.FullName.Replace(".xml", ".config")))
|
||||
File.Delete(configFile.FullName.Replace(".xml", ".config"));
|
||||
|
||||
configFile.MoveTo(configFile.FullName.Replace(".xml", ".config"));
|
||||
}
|
||||
catch { }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// Generate summary
|
||||
howtoResolve.Visible = true;
|
||||
if (permissionsOk && cacheOk && packageOk && foldersOk)
|
||||
{
|
||||
perfect.Visible = true;
|
||||
howtoResolve.Visible = false;
|
||||
}
|
||||
else if (permissionsOk && cacheOk && foldersOk)
|
||||
noPackages.Visible = true;
|
||||
else if (permissionsOk && cacheOk)
|
||||
{
|
||||
folderWoes.Visible = true;
|
||||
grant.Visible = false;
|
||||
noFolders.Visible = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
error.Visible = true;
|
||||
if (!foldersOk)
|
||||
folderWoes.Visible = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static string SuccessOrFailure(bool result)
|
||||
{
|
||||
return result ? "Success" : "Failure";
|
||||
}
|
||||
|
||||
private static bool SaveAndDeleteFile(string file)
|
||||
{
|
||||
try
|
||||
{
|
||||
//first check if the directory of the file exists, and if not try to create that first.
|
||||
var fi = new FileInfo(file);
|
||||
if (!fi.Directory.Exists)
|
||||
{
|
||||
fi.Directory.Create();
|
||||
}
|
||||
|
||||
File.WriteAllText(file,
|
||||
"This file has been created by the umbraco configuration wizard. It is safe to delete it!");
|
||||
File.Delete(file);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private bool OpenFileForWrite(string file)
|
||||
{
|
||||
try
|
||||
{
|
||||
File.AppendText(file).Close();
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,132 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class ValidatePermissions {
|
||||
|
||||
/// <summary>
|
||||
/// perfect control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal perfect;
|
||||
|
||||
/// <summary>
|
||||
/// noPackages control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal noPackages;
|
||||
|
||||
/// <summary>
|
||||
/// noFolders control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal noFolders;
|
||||
|
||||
/// <summary>
|
||||
/// error control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal error;
|
||||
|
||||
/// <summary>
|
||||
/// howtoResolve control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel howtoResolve;
|
||||
|
||||
/// <summary>
|
||||
/// grant control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel grant;
|
||||
|
||||
/// <summary>
|
||||
/// permSummary control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal permSummary;
|
||||
|
||||
/// <summary>
|
||||
/// folderWoes control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel folderWoes;
|
||||
|
||||
/// <summary>
|
||||
/// permissionResults control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal permissionResults;
|
||||
|
||||
/// <summary>
|
||||
/// packageResults control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal packageResults;
|
||||
|
||||
/// <summary>
|
||||
/// xmlResult control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal xmlResult;
|
||||
|
||||
/// <summary>
|
||||
/// foldersResult control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Literal foldersResult;
|
||||
|
||||
/// <summary>
|
||||
/// btnNext control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton btnNext;
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
using System;
|
||||
using Umbraco.Core;
|
||||
using umbraco;
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps
|
||||
{
|
||||
public partial class Welcome : StepUserControl
|
||||
{
|
||||
protected override void OnInit(EventArgs e)
|
||||
{
|
||||
base.OnInit(e);
|
||||
|
||||
if (!IsPostBack)
|
||||
{
|
||||
//clear the plugin cache when installation starts (just a safety check)
|
||||
PluginManager.Current.ClearPluginCache();
|
||||
}
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
// Check for config! SD: I've moved this config check above the other stuff since there's no point in doing all that processing if we're
|
||||
// just going to redirect if this setting is true.
|
||||
if (GlobalSettings.Configured)
|
||||
{
|
||||
Response.Redirect(Request.QueryString["url"] ?? "/", true);
|
||||
}
|
||||
|
||||
var result = ApplicationContext.Current.DatabaseContext.ValidateDatabaseSchema();
|
||||
var determinedVersion = result.DetermineInstalledVersion();
|
||||
|
||||
// Display the Umbraco upgrade message if Umbraco is already installed
|
||||
if (string.IsNullOrWhiteSpace(GlobalSettings.ConfigurationStatus) == false || determinedVersion.Equals(new Version(0, 0, 0)) == false)
|
||||
{
|
||||
ph_install.Visible = false;
|
||||
ph_upgrade.Visible = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Web.UI.Install.Steps {
|
||||
|
||||
|
||||
public partial class Welcome {
|
||||
|
||||
/// <summary>
|
||||
/// ph_install control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder ph_install;
|
||||
|
||||
/// <summary>
|
||||
/// ph_upgrade control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.PlaceHolder ph_upgrade;
|
||||
|
||||
/// <summary>
|
||||
/// btnNext control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.LinkButton btnNext;
|
||||
}
|
||||
}
|
||||
@@ -1,442 +0,0 @@
|
||||
<%@ Control Language="c#" AutoEventWireup="True" CodeBehind="database.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.Database" %>
|
||||
<%@ Import Namespace="Umbraco.Core.Configuration" %>
|
||||
|
||||
<asp:PlaceHolder ID="settings" runat="server" Visible="true">
|
||||
<!-- database box -->
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>Database configuration</h1>
|
||||
<p>
|
||||
<strong>To complete this step you will either need a blank database or, if you do not have a blank database available, choose the SQL CE 4 embedded
|
||||
database (This is the recommended approach for first time users or if you are unsure).</strong>
|
||||
</p>
|
||||
<p>
|
||||
If you are not using the SQL CE 4 embedded database you will need the connection details for your database, such as the
|
||||
"connection string". You may need to contact your system administrator or web host for this information.
|
||||
</p>
|
||||
</div>
|
||||
<!-- database -->
|
||||
<div class="database-hold">
|
||||
<fieldset>
|
||||
<div class="step">
|
||||
<div class="container">
|
||||
<p>
|
||||
<strong>1. Select which database option best fits you:</strong>
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<input type="radio" id="databaseOptionEmbedded" name="database" value="embedded" />
|
||||
<label for="databaseOptionEmbedded">I want to use SQL CE 4, a free, quick-and-simple embedded database</label>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" id="databaseOptionBlank" name="database" value="blank" />
|
||||
<label for="databaseOptionBlank">I already have a blank SQL Server, SQL Azure or MySQL database</label>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" id="databaseOptionAdvanced" name="database" value="advanced" />
|
||||
<label for="databaseOptionAdvanced">I'm an advanced user, let me put in the connection string</label>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<input type="radio" id="databaseOptionHelp" name="database" value="help" />
|
||||
<label for="databaseOptionHelp">I need help</label>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- database options -->
|
||||
<div id="database-options">
|
||||
|
||||
|
||||
<!-- blank option -->
|
||||
<div id="database-blank" class="database-option">
|
||||
<script type="text/javascript">
|
||||
(function($) {
|
||||
$(document).ready(function() {
|
||||
// Make database username and password dependent on the integrated security option
|
||||
var databaseTypeSelect = $("#<%= DatabaseType.ClientID %>");
|
||||
var integratedSecurityCheckBox = $("#<%= DatabaseIntegratedSecurity.ClientID %>");
|
||||
var databaseUserNamePasswordInputs = $("#<%= DatabaseUsername.ClientID %>, #<%= DatabasePassword.ClientID %>");
|
||||
|
||||
toggle();
|
||||
|
||||
databaseTypeSelect.change(toggle);
|
||||
integratedSecurityCheckBox.change(toggle);
|
||||
|
||||
function toggle() {
|
||||
var databaseType = databaseTypeSelect.val();
|
||||
|
||||
if (databaseType == "SqlServer") {
|
||||
// Only show and enable the integrated security option when it's supported
|
||||
integratedSecurityCheckBox
|
||||
.removeAttr("disabled")
|
||||
.closest("div").show();
|
||||
|
||||
} else {
|
||||
integratedSecurityCheckBox
|
||||
.attr("disabled", "disabled")
|
||||
.closest("div").hide();
|
||||
}
|
||||
|
||||
if (integratedSecurityCheckBox.is(":checked")) {
|
||||
// Hide username and password when integrated security is checked
|
||||
databaseUserNamePasswordInputs.attr("disabled", "disabled");
|
||||
databaseUserNamePasswordInputs.closest("div").hide();
|
||||
} else {
|
||||
databaseUserNamePasswordInputs.removeAttr("disabled");
|
||||
databaseUserNamePasswordInputs.closest("div").show();
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
</script>
|
||||
|
||||
<div class="step">
|
||||
<div class="container">
|
||||
<p>
|
||||
<strong>2. Now choose your database type below.</strong>
|
||||
</p>
|
||||
<div class="select">
|
||||
<asp:DropDownList runat="server" ID="DatabaseType" CssClass="sel">
|
||||
<asp:ListItem Value="" Text="Please choose" Selected="True" />
|
||||
<asp:ListItem Value="SqlServer" Text="Microsoft SQL Server" />
|
||||
<asp:ListItem Value="SqlAzure" Text="SQL Azure" />
|
||||
<asp:ListItem Value="MySql" Text="MySQL" />
|
||||
|
||||
</asp:DropDownList>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="step" id="database-blank-inputs">
|
||||
<div class="container">
|
||||
<p class="instructionText">
|
||||
<strong>3. Connection details:</strong> Please fill out the connection information for your database.
|
||||
</p>
|
||||
<div class="instruction-hold">
|
||||
|
||||
|
||||
<asp:PlaceHolder ID="ph_dbError" runat="server" Visible="false">
|
||||
<div class="row error">
|
||||
<p class="text">
|
||||
<strong>
|
||||
<asp:Literal ID="lt_dbError" runat="server" /></strong>
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () { showDatabaseSettings(); });
|
||||
</script>
|
||||
</asp:PlaceHolder>
|
||||
<div class="row sql" runat="server" id="DatabaseServerItem">
|
||||
<asp:Label runat="server" AssociatedControlID="DatabaseServer" ID="DatabaseServerLabel">Server:</asp:Label>
|
||||
<span>
|
||||
<asp:TextBox runat="server" CssClass="text" ID="DatabaseServer" /></span>
|
||||
</div>
|
||||
<div class="row sql" runat="server" id="DatabaseNameItem">
|
||||
<asp:Label runat="server" AssociatedControlID="DatabaseName" ID="DatabaseNameLabel">Database name:</asp:Label>
|
||||
<span>
|
||||
<asp:TextBox runat="server" CssClass="text" ID="DatabaseName" /></span>
|
||||
</div>
|
||||
|
||||
<div class="row sql">
|
||||
<asp:Label runat="server" AssociatedControlID="DatabaseIntegratedSecurity">Integrated security:</asp:Label>
|
||||
<asp:CheckBox runat="server" ID="DatabaseIntegratedSecurity" />
|
||||
</div>
|
||||
|
||||
<div class="row sql" runat="server" id="DatabaseUsernameItem">
|
||||
<asp:Label runat="server" AssociatedControlID="DatabaseUsername" ID="DatabaseUsernameLabel">Username:</asp:Label>
|
||||
<span>
|
||||
<asp:TextBox runat="server" CssClass="text" ID="DatabaseUsername" /></span>
|
||||
</div>
|
||||
<div class="row sql" runat="server" id="DatabasePasswordItem">
|
||||
<asp:Label runat="server" AssociatedControlID="DatabasePassword" ID="DatabasePasswordLabel">Password:</asp:Label>
|
||||
<span>
|
||||
<asp:TextBox runat="server" ID="DatabasePassword" CssClass="text" TextMode="Password" /></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- btn box -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- embedded option -->
|
||||
<div id="database-embedded" class="database-option">
|
||||
<div class="step">
|
||||
<div class="container">
|
||||
|
||||
<p class="instructionText">
|
||||
<strong>2. Simple file-based database:</strong>
|
||||
</p>
|
||||
<div class="instruction-hold">
|
||||
<div class="row embeddedError" runat="server" id="embeddedFilesMissing" style="display: none;">
|
||||
<p>
|
||||
<strong>Missing files:</strong> SQL CE 4 requires that you manually add the SQL
|
||||
CE 4 runtime to your Umbraco installation.<br />
|
||||
You can either use the following <a href="http://our.umbraco.org/wiki/install-and-setup/using-sql-ce-4-with-umbraco-46"
|
||||
target="_blank">instructions</a> on how to add SQL CE 4 or select another database type from the dropdown above.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="row embedded" style="display: none;">
|
||||
<p>
|
||||
<strong>Nothing to configure:</strong>SQL CE 4 does not require any configuration,
|
||||
simply click the "install" button to continue.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- advanced option -->
|
||||
<div id="database-advanced" class="database-option">
|
||||
<div class="step">
|
||||
<div class="container">
|
||||
<p>
|
||||
<strong>2. Connection details:</strong> Please fill out the connection information for your database.
|
||||
</p>
|
||||
|
||||
<div class="instruction-hold">
|
||||
|
||||
<div class="row custom" runat="server" id="DatabaseConnectionString">
|
||||
<asp:Label runat="server" AssociatedControlID="ConnectionString" ID="ConnectionStringLabel">Connection string:</asp:Label>
|
||||
<span class="textarea">
|
||||
<asp:TextBox runat="server" TextMode="MultiLine" CssClass="text textarea" ID="ConnectionString" /></span>
|
||||
</div>
|
||||
<div class="row custom check-hold">
|
||||
<p>
|
||||
Example: <tt>datalayer=MySQL;server=192.168.2.8;user id=user;password=***;database=umbraco</tt>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- help option -->
|
||||
<div id="database-help" class="database-option">
|
||||
<div class="step">
|
||||
<div class="container">
|
||||
<p>
|
||||
<strong>2. Getting a database setup for umbraco.</strong><br />
|
||||
For first time users, we recommend you select "quick-and-simple embedded database".
|
||||
This will install an easy to use database, that does
|
||||
not require any additional software to use.<br />
|
||||
Alternatively, you can install Microsoft SQL Server, which will require a bit more
|
||||
work to get up and running.<br />
|
||||
We have provided a step-by-step guide in the video instructions below.
|
||||
</p>
|
||||
<span class="btn-link"><a href="http://umbraco.org/getting-started" target="_blank">Open video instructions</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer class="btn-box installbtn">
|
||||
<div class="t"> </div>
|
||||
<asp:LinkButton runat="server" class="single-tab submit btn-install" OnClick="SaveDbConfig"><span>install</span> </asp:LinkButton>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var currentVersion = '<%=UmbracoVersion.Current.ToString(3)%> <%=UmbracoVersion.CurrentComment%> ';
|
||||
var configured = <%= IsConfigured.ToString().ToLower() %>;
|
||||
|
||||
jQuery(document).ready(function(){
|
||||
<asp:literal runat="server" id="jsVars" />
|
||||
|
||||
|
||||
|
||||
$("input[name='database']").change(function()
|
||||
{
|
||||
|
||||
switch($(this).val())
|
||||
{
|
||||
case "blank":
|
||||
|
||||
$(".database-option").hide();
|
||||
$("#database-blank").show();
|
||||
$(".installbtn").show();
|
||||
|
||||
break;
|
||||
case "embedded":
|
||||
$(".database-option").hide();
|
||||
$("#database-embedded").show();
|
||||
|
||||
$('.embedded').show();
|
||||
$(".installbtn").show();
|
||||
|
||||
break;
|
||||
case "advanced":
|
||||
$(".database-option").hide();
|
||||
$("#database-advanced").show();
|
||||
$(".installbtn").show();
|
||||
break;
|
||||
case "help":
|
||||
$(".database-option").hide();
|
||||
$("#database-help").show();
|
||||
$(".installbtn").hide();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
<asp:Literal id="dbinit" runat="server"></asp:Literal>
|
||||
|
||||
});
|
||||
</script>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
<asp:PlaceHolder ID="installing" runat="server" Visible="false">
|
||||
<!-- installing umbraco -->
|
||||
<div class="tab install-tab" id="datebase-tab">
|
||||
<div class="container">
|
||||
<asp:PlaceHolder ID="installProgress" runat="server" Visible="True">
|
||||
<div class="progress-status-container">
|
||||
<h1>Installing Umbraco</h1>
|
||||
<p>
|
||||
The Umbraco database is being configured. This process populates your chosen database with a blank Umbraco instance.
|
||||
</p>
|
||||
</div>
|
||||
<div class="result-status-container" style="display: none;">
|
||||
<h1>Database installed</h1>
|
||||
<div class="success">
|
||||
<p>
|
||||
Umbraco
|
||||
<%=UmbracoVersion.Current.ToString(3)%> <%=UmbracoVersion.CurrentComment%>
|
||||
has now been copied to your database. Press <b>Continue</b> to proceed.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</asp:PlaceHolder>
|
||||
<asp:PlaceHolder ID="upgradeProgress" runat="server" Visible="False">
|
||||
<div class="progress-status-container">
|
||||
<h1>Upgrading Umbraco</h1>
|
||||
<p>
|
||||
The Umbraco database is being configured. This process upgrades your Umbraco database.
|
||||
</p>
|
||||
</div>
|
||||
<div class="result-status-container" style="display: none;">
|
||||
<h1>Database upgraded</h1>
|
||||
<div class="success">
|
||||
<p>
|
||||
Your database has been upgraded to version:
|
||||
<%=UmbracoVersion.Current.ToString(3)%>.<br />
|
||||
Press <b>Continue</b> to proceed.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</asp:PlaceHolder>
|
||||
<div class="loader">
|
||||
<div class="hold">
|
||||
<div class="progress-bar">
|
||||
</div>
|
||||
<span class="progress-bar-value">0%</span>
|
||||
</div>
|
||||
<strong></strong>
|
||||
</div>
|
||||
</div>
|
||||
<!-- btn box -->
|
||||
<footer class="btn-box" style="display: none;">
|
||||
<div class="t"> </div>
|
||||
<asp:LinkButton class="btn-step btn btn-continue" runat="server" OnClick="GotoNextStep"><span>Continue</span></asp:LinkButton>
|
||||
<asp:LinkButton class="btn-step btn btn-back" Style="display: none;" runat="server" OnClick="GotoSettings"><span>Back</span></asp:LinkButton>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function() {
|
||||
|
||||
updateProgressBar("5");
|
||||
updateStatusMessage("Connecting to database..");
|
||||
|
||||
var upgradeTimeout;
|
||||
|
||||
function upgradeProgress(currProgress) {
|
||||
if (currProgress < 90) {
|
||||
upgradeTimeout = setTimeout(function() {
|
||||
currProgress++;
|
||||
updateProgressBar(currProgress.toString());
|
||||
upgradeProgress(currProgress);
|
||||
}, 10000);
|
||||
}
|
||||
}
|
||||
|
||||
function handleSuccess(json) {
|
||||
if (json.Success) {
|
||||
$(".btn-box").show();
|
||||
$('.ui-progressbar-value').css("background-image", "url(../umbraco_client/installer/images/pbar.gif)");
|
||||
$(".result-status-container").show();
|
||||
$(".progress-status-container").hide();
|
||||
}
|
||||
else {
|
||||
$(".btn-continue").hide();
|
||||
$(".btn-back").show();
|
||||
$(".btn-box").show();
|
||||
}
|
||||
}
|
||||
|
||||
function runUpgrade() {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: '{}',
|
||||
dataType: 'json',
|
||||
url: 'InstallerRestService.aspx/Upgrade',
|
||||
success: function(data) {
|
||||
clearTimeout(upgradeTimeout);
|
||||
var json = JSON.parse(data.d);
|
||||
|
||||
updateProgressBar(json.Percentage);
|
||||
updateStatusMessage(json.Message);
|
||||
|
||||
handleSuccess(json);
|
||||
}
|
||||
});
|
||||
upgradeProgress(30);
|
||||
}
|
||||
|
||||
function runInstall() {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: '{}',
|
||||
dataType: 'json',
|
||||
url: 'InstallerRestService.aspx/Install',
|
||||
success: function(data) {
|
||||
var json = JSON.parse(data.d);
|
||||
|
||||
updateProgressBar(json.Percentage);
|
||||
updateStatusMessage(json.Message);
|
||||
|
||||
if (json.RequiresUpgrade) {
|
||||
runUpgrade();
|
||||
}
|
||||
else {
|
||||
handleSuccess(json);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//kick it off
|
||||
runInstall();
|
||||
});
|
||||
</script>
|
||||
|
||||
</asp:PlaceHolder>
|
||||
@@ -1,89 +0,0 @@
|
||||
<%@ Control Language="c#" AutoEventWireup="True" Codebehind="DefaultUser.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.DefaultUser" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
|
||||
<asp:Placeholder ID="identify" Runat="server" Visible="True">
|
||||
|
||||
<!-- create box -->
|
||||
<div class="tab main-tabinfo">
|
||||
|
||||
<div class="container">
|
||||
|
||||
<h1>Create User</h1>
|
||||
<div class="create-hold">
|
||||
<p>You can now setup a new admin user to log into Umbraco, we recommend using a stong password for this (a password which is more than 4 characters and contains a mix of letters, numbers and symbols).
|
||||
Please make a note of the chosen password.</p>
|
||||
<p>The password can be changed once you have completed the installation and logged into the admin interface.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="database-hold">
|
||||
|
||||
<form action="#">
|
||||
|
||||
<fieldset>
|
||||
|
||||
<div class="container">
|
||||
|
||||
<div class="instruction-hold">
|
||||
|
||||
<div class="row">
|
||||
<asp:label AssociatedControlID="tb_name" runat="server">Name:</asp:label>
|
||||
<span><asp:TextBox ID="tb_name" CssClass="text" type="text" Text="admin" runat="server" /></span>
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_name" runat="server" ErrorMessage="Name is a mandatory field" />
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<asp:label AssociatedControlID="tb_email" runat="server">Email:</asp:label>
|
||||
<span><asp:TextBox ID="tb_email" CssClass="text" type="text" Text="admin@example.com" runat="server" /></span>
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_email" runat="server" ErrorMessage="Email is a mandatory field" />
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<asp:label AssociatedControlID="tb_login" runat="server">Username:</asp:label>
|
||||
<span><asp:TextBox ID="tb_login" CssClass="text" type="text" Text="admin" runat="server" /></span>
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_login" runat="server" ErrorMessage="Username is a mandatory field" />
|
||||
</div>
|
||||
|
||||
<div class="row" style="height: 35px; overflow: hidden;">
|
||||
<asp:label AssociatedControlID="tb_password" runat="server">Password:</asp:label>
|
||||
<span><asp:TextBox ID="tb_password" CssClass="text" TextMode="Password" type="text" Text="" runat="server" /></span>
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_password" runat="server" ErrorMessage="Password is a mandatory field" />
|
||||
<asp:CustomValidator ID="PasswordValidator" Display="Dynamic" CssClass="invalidaing" runat="server" />
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<asp:Label AssociatedControlID="tb_password_confirm" runat="server">Confirm Password:</asp:label>
|
||||
<span><asp:TextBox ID="tb_password_confirm" CssClass="text" TextMode="Password" type="text" Text="" runat="server" /></span>
|
||||
<asp:RequiredFieldValidator Display="Dynamic" CssClass="invalidaing" ControlToValidate="tb_password_confirm" runat="server" ErrorMessage="Confirm Password is a mandatory field" />
|
||||
<asp:CompareValidator Display="Dynamic" CssClass="invalidaing" ControlToCompare="tb_password" ControlToValidate="tb_password_confirm" ErrorMessage="The passwords must be identical" runat="server" />
|
||||
</div>
|
||||
|
||||
<div class="check-hold">
|
||||
<asp:CheckBox ID="cb_newsletter" runat="server" Checked="true" />
|
||||
<asp:label AssociatedControlID="cb_newsletter" runat="server">Sign up for our monthly newsletter</asp:label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="btn-box">
|
||||
<div class="t"> </div>
|
||||
<asp:LinkButton CssClass="btn-create" runat="server" onclick="ChangePasswordClick"><span>Create user</span></asp:linkbutton>
|
||||
</footer>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</asp:Placeholder>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
jQuery("#<%= tb_password.ClientID %>").passStrength({
|
||||
shortPass: "invalidaing",
|
||||
badPass: "invalidaing",
|
||||
goodPass: "validaing",
|
||||
strongPass: "validaing",
|
||||
baseStyle: "basevalidaing",
|
||||
minLength: <%=CurrentProvider.MinRequiredPasswordLength %>,
|
||||
userid: jQuery("#<%= tb_login.ClientID %>").val(),
|
||||
messageloc: 1
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@@ -1,24 +0,0 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="True" CodeBehind="license.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.License" %>
|
||||
<!-- licence box -->
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>License</h1>
|
||||
<div class="accept-hold">
|
||||
<h2>Accept the license for Umbraco CMS</h2>
|
||||
<p>By clicking the "accept and continue" button (or by modifying the Umbraco Configuration Status in the web.config), you accept the license for this software as specified in the text below.</p>
|
||||
</div>
|
||||
<h3>The License (MIT):</h3>
|
||||
<div class="box-software">
|
||||
<p>Copyright (c) 2002 - <%=DateTime.Now.Year %> Umbraco I/S</p>
|
||||
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
|
||||
<p>The above copyright and this permission notice shall be included in all copies or substantial portions of the software.</p>
|
||||
<p><span>THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USER OR OTHER DEALINGS IN THE SOFTWARE.</span></p>
|
||||
</div>
|
||||
<p>That’s all. That didn’t hurt did it?</p>
|
||||
</div>
|
||||
<!-- btn box -->
|
||||
<footer class="btn-box">
|
||||
<div class="t"> </div>
|
||||
<asp:LinkButton ID="btnNext" CssClass="btn btn-accept" runat="server" OnClick="GotoNextStep"><span>Accept and Continue</span></asp:LinkButton>
|
||||
</footer>
|
||||
</div>
|
||||
@@ -1,25 +0,0 @@
|
||||
<%@ Control Language="C#" AutoEventWireup="True" CodeBehind="Renaming.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.Renaming" %>
|
||||
<h1>Step 3/5: Updating old conventions</h1>
|
||||
<asp:Panel ID="init" Runat="server" Visible="True">
|
||||
<p>
|
||||
This version of Umbraco introduces new conventions for naming XSLT and REST extensions as well as a renaming of the Public Access storage file.<br />
|
||||
You no longer need to prefix your extension references with /bin and the public access storage file is now called access.config instead of access.xml.<br />
|
||||
This step of the installer will try to update your old references. If it fails due to permission settings, you'll need to make these changes manually!
|
||||
</p>
|
||||
|
||||
<asp:Panel ID="noChangedNeeded" runat="server" Visible="false">
|
||||
<p><strong>Everything looks good. No changes needed for the upgrade, just press next.</strong></p>
|
||||
</asp:Panel>
|
||||
<asp:Panel ID="changesNeeded" runat="server" Visible="true">
|
||||
<p>
|
||||
<strong>The following changes will need to be made. Press to update changes button to proceed:</strong>
|
||||
</p>
|
||||
<asp:Literal id="identifyResult" Runat="server"></asp:Literal>
|
||||
<asp:Button ID="updateChanges" runat="server" Text="Update Changes"
|
||||
onclick="UpdateChangesClick" />
|
||||
</asp:Panel>
|
||||
</asp:Panel>
|
||||
|
||||
<asp:Panel ID="result" Runat="server" Visible="False">
|
||||
<asp:Literal ID="resultText" runat=server></asp:Literal>
|
||||
</asp:Panel>
|
||||
@@ -1,63 +0,0 @@
|
||||
<%@ Control Language="c#" AutoEventWireup="True" CodeBehind="TheEnd.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.TheEnd"
|
||||
TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
|
||||
<%@ Import Namespace="Umbraco.Core.IO" %>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () {
|
||||
|
||||
$.post("InstallerRestService.aspx?feed=sitebuildervids",
|
||||
function (data) {
|
||||
jQuery("#ajax-sitebuildervids").html(data);
|
||||
});
|
||||
|
||||
$.post("InstallerRestService.aspx?feed=developervids",
|
||||
function (data) {
|
||||
jQuery("#ajax-developervids").html(data);
|
||||
});
|
||||
|
||||
umbraco.presentation.webservices.CheckForUpgrade.InstallStatus(true, navigator.userAgent, "");
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
<!-- done box -->
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
<h1>You’re done...now what?</h1>
|
||||
<p>Excellent, you are now ready to start using Umbraco, one of the worlds most popular open source .NET CMS.</p>
|
||||
<ul class="btn-web">
|
||||
<li class="btn-set"><a href="<%= IOHelper.ResolveUrl(SystemDirectories.Umbraco) %>/"><span>Launch umbraco</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="threcol">
|
||||
<div class="t">
|
||||
</div>
|
||||
<div class="hold">
|
||||
<aside class="col1">
|
||||
<h2>Useful links</h2>
|
||||
<p>We’ve put together some useful links to help you get started with Umbraco.</p>
|
||||
<nav class="links">
|
||||
<ul>
|
||||
<li><a href="http://umbraco.codeplex.com/documentation" target="_blank">Getting Started Guide</a></li>
|
||||
<li><a href="http://our.umbraco.org?ref=ourFromInstaller">our.umbraco.org</a></li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://our.umbraco.org/wiki?ref=LatestDocsFromInstaller">New documentation</a></li>
|
||||
<li><a href="http://our.umbraco.org/projects?ref=LatestProjectsFromInstaller">New Projects</a></li>
|
||||
<li><a href="http://our.umbraco.org/forum?ref=LatesTalkFromInstaller">Forum Talk</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
<aside class="col2">
|
||||
<h2>Sitebuilder introduction</h2>
|
||||
<div id="ajax-sitebuildervids"><small>Loading...</small></div>
|
||||
</aside>
|
||||
<aside class="col3">
|
||||
<h2>Developer introduction</h2>
|
||||
<div id="ajax-developervids"><small>Loading...</small></div>
|
||||
</aside>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,89 +0,0 @@
|
||||
<%@ Control Language="c#" AutoEventWireup="True" Codebehind="ValidatePermissions.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.ValidatePermissions" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
|
||||
<h1>Step 3/5: Validating File Permissions</h1>
|
||||
<p>
|
||||
umbraco needs write/modify access to certain directories in order to store files like pictures and PDF's.
|
||||
It also stores temporary data (aka: cache) for enhancing the performance of your website.
|
||||
</p>
|
||||
|
||||
<asp:literal id="perfect" Runat="server" Visible="False">
|
||||
<div class="success">
|
||||
<p><strong>Your permission settings are perfect!</strong></p>
|
||||
<p>You are ready to run umbraco and install packages!</p>
|
||||
</div>
|
||||
</asp:literal>
|
||||
|
||||
<asp:literal id="noPackages" Runat="server" Visible="False">
|
||||
<div class="error">
|
||||
<p><strong>Your permission settings are almost perfect!</strong></p>
|
||||
<p>
|
||||
You can run umbraco without problems, but you will not be able to install packages which are recommended to take full advantage of umbraco.
|
||||
</p>
|
||||
</div>
|
||||
</asp:literal>
|
||||
|
||||
<asp:literal id="noFolders" Runat="server" Visible="False">
|
||||
<div class="error">
|
||||
<p>
|
||||
<strong>Your permission settings might be an issue!</strong>
|
||||
</p>
|
||||
<p>You can run umbraco without problems, but you will not be able to create folders or install packages which are recommended to take full advantage of umbraco.</p>
|
||||
</div>
|
||||
</asp:literal>
|
||||
|
||||
<asp:literal id="error" Runat="server" Visible="False">
|
||||
<div class="error">
|
||||
<p>
|
||||
<strong>Your permission settings are not ready for umbraco!</strong>
|
||||
</p>
|
||||
<p>
|
||||
In order to run umbraco, you'll need to update your permission settings.
|
||||
</p>
|
||||
</div>
|
||||
</asp:literal>
|
||||
|
||||
<asp:Panel Visible="False" Runat="server" ID="howtoResolve">
|
||||
<h2>How to Resolve</h2>
|
||||
|
||||
<div id="fixPane" style="display: block;">
|
||||
<asp:Panel id="grant" Visible="True" Runat="server">
|
||||
<h2>Affected files and folders</h2>
|
||||
<p>
|
||||
You need to grant ASP.NET modify permissions to the following files/folders:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<asp:Literal id="permSummary" Runat="server"></asp:Literal>
|
||||
</ul>
|
||||
</asp:Panel>
|
||||
|
||||
<asp:Panel id="folderWoes" Visible="False" Runat="server">
|
||||
<h3>Resolving folder issue</h3>
|
||||
|
||||
<p>Follow <a href="http://groups.google.com/group/microsoft.public.dotnet.framework.aspnet/browse_thread/thread/46d6582afffc96b0/9088396b3323d4ae?lnk=st">this link for more information on problems with ASP.NET and creating
|
||||
folders</a>.
|
||||
</p>
|
||||
</asp:Panel>
|
||||
|
||||
|
||||
<p><a href="#" onClick="javascript:document.getElementById('detailsPane').style.display = 'block';"><strong>View Permission Error Details:</strong></a></p>
|
||||
<div id="detailsPane" style="display: none">
|
||||
<p style="font-size: 80%">
|
||||
- Checking default folder permissions:<br />
|
||||
<asp:literal id="permissionResults" Runat="server"></asp:literal><br />
|
||||
- Checking optional folder permissions for packages:<br />
|
||||
<asp:literal id="packageResults" Runat="server"></asp:literal><br />
|
||||
- Cache (the umbraco.config file):
|
||||
<asp:literal id="xmlResult" Runat="server"></asp:literal><br />
|
||||
<br />
|
||||
- Creating folders:
|
||||
<asp:literal id="foldersResult" Runat="server"></asp:literal><br />
|
||||
<br />
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</asp:Panel>
|
||||
|
||||
<footer class="btn-box">
|
||||
<div class="t"> </div>
|
||||
<asp:LinkButton ID="btnNext" CssClass="btn btn-accept" runat="server" OnClick="GotoNextStep"><span>Continue anyway</span></asp:LinkButton>
|
||||
</footer>
|
||||
@@ -1,55 +0,0 @@
|
||||
<%@ Control Language="c#" AutoEventWireup="True" CodeBehind="Welcome.ascx.cs" Inherits="Umbraco.Web.UI.Install.Steps.Welcome"
|
||||
TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
|
||||
<%@ Import Namespace="Umbraco.Core.Configuration" %>
|
||||
<!-- welcome box -->
|
||||
<div class="tab main-tabinfo">
|
||||
<div class="container">
|
||||
|
||||
|
||||
<asp:PlaceHolder ID="ph_install" runat="server">
|
||||
<h1>
|
||||
Welcome to the Umbraco installation</h1>
|
||||
<h2>
|
||||
Thanks for downloading the Umbraco CMS installer.
|
||||
</h2>
|
||||
<p>
|
||||
You are just a few minutes away from getting up and running. The installer will
|
||||
take you through the following process:-</p>
|
||||
<ul class="text-list">
|
||||
<li><strong>1.</strong><span>Accept the easy to read License.</span></li>
|
||||
<li><strong>2.</strong><span>Set up a database. There are a number of options available
|
||||
such as MS SQL Server, MS SQL Express Edition and MYSQL or you may wish to use the
|
||||
Microsoft SQL CE 4 database. You may need to consult your web host or system administrator.</span></li>
|
||||
<li><strong>3.</strong><span>Set an Umbraco Admin password.</span></li>
|
||||
<li><strong>4.</strong><span>You can then choose to install one of our great starter
|
||||
kits and a skin.</span></li>
|
||||
<li><strong>5.</strong><span>But whatever you do don't forget to become part of the Umbraco community, one of the friendliest developer communities you will find. It’s what makes Umbraco such a great product and so much fun to use.</span></li>
|
||||
</ul>
|
||||
<span class="enjoy">Enjoy!</span>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
<asp:PlaceHolder ID="ph_upgrade" runat="server" Visible="false">
|
||||
<h1>Upgrading Umbraco</h1>
|
||||
<p>
|
||||
Welcome to the umbraco upgrade wizard. This will make sure that you upgrade safely from your old version to <strong>Umbraco version <%=UmbracoVersion.Current.ToString(3) %> <%=UmbracoVersion.CurrentComment %></strong>
|
||||
</p>
|
||||
<p>
|
||||
As this is an upgrade, <strong>the wizard might skip steps</strong> that are only needed for new umbraco installations. It might also ask you questions you've already answered once. But do not worry,
|
||||
everything is in order. Click <strong>Let's get started</strong> below to begin your upgrade.
|
||||
</p>
|
||||
<span class="enjoy">Enjoy!</span>
|
||||
</asp:PlaceHolder>
|
||||
|
||||
</div>
|
||||
<!-- btn box -->
|
||||
<footer class="btn-box">
|
||||
<div class="t"> </div>
|
||||
<asp:LinkButton ID="btnNext" CssClass="btn btn-get" runat="server" OnClick="GotoNextStep"><span>Let's get started!</span></asp:LinkButton>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function () {
|
||||
umbraco.presentation.webservices.CheckForUpgrade.InstallStatus(false, navigator.userAgent, "");
|
||||
});
|
||||
</script>
|
||||
@@ -307,8 +307,14 @@
|
||||
<Compile Include="..\SolutionInfo.cs">
|
||||
<Link>Properties\SolutionInfo.cs</Link>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\default_old.aspx.cs">
|
||||
<DependentUpon>default_old.aspx</DependentUpon>
|
||||
<Compile Include="Areas\UmbracoInstall\Legacy\LoadStarterKits.ascx.cs">
|
||||
<DependentUpon>loadStarterKits.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Legacy\LoadStarterKits.ascx.designer.cs">
|
||||
<DependentUpon>loadStarterKits.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Legacy\StepUserControl.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Config\splashes\NoNodes.aspx.cs">
|
||||
@@ -319,9 +325,6 @@
|
||||
<DependentUpon>noNodes.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\default_old.aspx.designer.cs">
|
||||
<DependentUpon>default_old.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\InstallerRestService.aspx.cs">
|
||||
<DependentUpon>InstallerRestService.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
@@ -329,86 +332,6 @@
|
||||
<Compile Include="Areas\UmbracoInstall\InstallerRestService.aspx.designer.cs">
|
||||
<DependentUpon>InstallerRestService.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\Database.ascx.cs">
|
||||
<DependentUpon>database.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\Database.ascx.designer.cs">
|
||||
<DependentUpon>database.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\DefaultUser.ascx.cs">
|
||||
<DependentUpon>defaultUser.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\DefaultUser.ascx.designer.cs">
|
||||
<DependentUpon>defaultUser.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\License.ascx.cs">
|
||||
<DependentUpon>license.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\License.ascx.designer.cs">
|
||||
<DependentUpon>license.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\Renaming.ascx.cs">
|
||||
<DependentUpon>renaming.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\Renaming.ascx.designer.cs">
|
||||
<DependentUpon>renaming.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\RenderingEngine.ascx.cs">
|
||||
<DependentUpon>RenderingEngine.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\RenderingEngine.ascx.designer.cs">
|
||||
<DependentUpon>RenderingEngine.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\Skinning\LoadStarterKits.ascx.cs">
|
||||
<DependentUpon>loadStarterKits.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\Skinning\LoadStarterKits.ascx.designer.cs">
|
||||
<DependentUpon>loadStarterKits.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\StarterKits.ascx.cs">
|
||||
<DependentUpon>StarterKits.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\StarterKits.ascx.designer.cs">
|
||||
<DependentUpon>StarterKits.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\StepUserControl.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\TheEnd.ascx.cs">
|
||||
<DependentUpon>theend.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\TheEnd.ascx.designer.cs">
|
||||
<DependentUpon>theend.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\UpgradeReport.ascx.cs">
|
||||
<DependentUpon>UpgradeReport.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\UpgradeReport.ascx.designer.cs">
|
||||
<DependentUpon>UpgradeReport.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\ValidatePermissions.ascx.cs">
|
||||
<DependentUpon>validatePermissions.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\ValidatePermissions.ascx.designer.cs">
|
||||
<DependentUpon>validatePermissions.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\Welcome.ascx.cs">
|
||||
<DependentUpon>welcome.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Steps\Welcome.ascx.designer.cs">
|
||||
<DependentUpon>welcome.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Areas\UmbracoInstall\Title.ascx.cs">
|
||||
<DependentUpon>Title.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
@@ -630,6 +553,7 @@
|
||||
<Compile Include="Umbraco\TreeInit.aspx.designer.cs">
|
||||
<DependentUpon>treeInit.aspx</DependentUpon>
|
||||
</Compile>
|
||||
<Content Include="Areas\UmbracoInstall\Legacy\loadStarterKits.ascx" />
|
||||
<Content Include="Umbraco\ClientRedirect.aspx" />
|
||||
<Content Include="Umbraco\create.aspx" />
|
||||
<Content Include="Umbraco\Logout.aspx" />
|
||||
@@ -651,7 +575,6 @@
|
||||
</Compile>
|
||||
<Content Include="Config\Splashes\booting.aspx" />
|
||||
<Content Include="Config\Splashes\noNodes.aspx" />
|
||||
<Content Include="Areas\UmbracoInstall\Steps\UpgradeReport.ascx" />
|
||||
<Content Include="Umbraco\Dashboard\UserControlProxy.aspx" />
|
||||
<Content Include="Umbraco\Create\PartialView.ascx" />
|
||||
<Content Include="Umbraco\Create\User.ascx" />
|
||||
@@ -742,7 +665,6 @@
|
||||
<DependentUpon>UI.xml</DependentUpon>
|
||||
</None>
|
||||
<Content Include="Global.asax" />
|
||||
<Content Include="Areas\UmbracoInstall\Steps\RenderingEngine.ascx" />
|
||||
<Content Include="Umbraco\Config\Lang\en_us.xml" />
|
||||
<Content Include="Umbraco\Config\Lang\he.xml" />
|
||||
<Content Include="Umbraco\Config\Lang\ja.xml" />
|
||||
@@ -1754,10 +1676,6 @@
|
||||
<Content Include="Umbraco_Client\Installer\Js\jquery.1.4.4.js" />
|
||||
<Content Include="Umbraco_Client\Installer\Js\jquery.main.js" />
|
||||
<Content Include="Umbraco_Client\Installer\Js\jquery.ui.selectmenu.js" />
|
||||
<Content Include="Areas\UmbracoInstall\Steps\database.ascx" />
|
||||
<Content Include="Areas\UmbracoInstall\Steps\renaming.ascx" />
|
||||
<Content Include="Areas\UmbracoInstall\Steps\StarterKits.ascx" />
|
||||
<Content Include="Areas\UmbracoInstall\Steps\Skinning\loadStarterKits.ascx" />
|
||||
<Content Include="Areas\UmbracoInstall\Title.ascx" />
|
||||
<Content Include="Areas\UmbracoInstall\InstallerRestService.aspx" />
|
||||
<Content Include="Umbraco\Config\Lang\ko.xml" />
|
||||
@@ -1897,8 +1815,6 @@
|
||||
<Content Include="Umbraco_Client\Tree\Themes\Default\icons.png" />
|
||||
<Content Include="Umbraco_Client\Tree\Themes\Umbraco\icons.png" />
|
||||
<Content Include="default.aspx" />
|
||||
<Content Include="Areas\UmbracoInstall\default_old.aspx" />
|
||||
<Content Include="Areas\UmbracoInstall\Steps\license.ascx" />
|
||||
<Content Include="Umbraco\Actions\delete.aspx" />
|
||||
<Content Include="Umbraco\Actions\editContent.aspx" />
|
||||
<Content Include="Umbraco\Actions\preview.aspx" />
|
||||
@@ -2089,18 +2005,6 @@
|
||||
<Content Include="Umbraco\Images\Editor\underline_tw.gif" />
|
||||
<Content Include="Umbraco\Images\Editor\unlink.gif" />
|
||||
<Content Include="Umbraco\Images\Editor\visualaid.gif" />
|
||||
<Content Include="Areas\UmbracoInstall\Steps\defaultUser.ascx">
|
||||
<SubType>UserControl</SubType>
|
||||
</Content>
|
||||
<Content Include="Areas\UmbracoInstall\Steps\theend.ascx">
|
||||
<SubType>UserControl</SubType>
|
||||
</Content>
|
||||
<Content Include="Areas\UmbracoInstall\Steps\validatePermissions.ascx">
|
||||
<SubType>UserControl</SubType>
|
||||
</Content>
|
||||
<Content Include="Areas\UmbracoInstall\Steps\welcome.ascx">
|
||||
<SubType>UserControl</SubType>
|
||||
</Content>
|
||||
<Content Include="Umbraco\Config\Create\UI.xml" />
|
||||
<Content Include="Umbraco\Config\Lang\en.xml">
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
@@ -10,7 +10,7 @@ NOTES:
|
||||
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
|
||||
* A new version will invalidate both client and server cache and create new persisted files
|
||||
-->
|
||||
<clientDependency version="394389720" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
|
||||
<clientDependency version="2116204581" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
|
||||
|
||||
<!--
|
||||
This section is used for Web Forms only, the enableCompositeFiles="true" is optional and by default is set to true.
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace Umbraco.Web.Install.Controllers
|
||||
/// is a bit of a mess currently.
|
||||
/// </remarks>
|
||||
[HttpInstallAuthorize]
|
||||
[Obsolete("This is only used for the legacy way of installing starter kits in the back office")]
|
||||
public class InstallPackageController : ApiController
|
||||
{
|
||||
private readonly ApplicationContext _applicationContext;
|
||||
@@ -1,71 +0,0 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Logging;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
internal class Database : InstallerStep
|
||||
{
|
||||
public override string Alias
|
||||
{
|
||||
get { return "database"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "Database"; }
|
||||
}
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/database.ascx"; }
|
||||
}
|
||||
|
||||
|
||||
public override bool MoveToNextStepAutomaticly
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
//here we determine if the installer should skip this step...
|
||||
public override bool Completed()
|
||||
{
|
||||
|
||||
// Fresh installs don't have a version number so this step cannot be complete yet
|
||||
if (string.IsNullOrEmpty(GlobalSettings.ConfigurationStatus))
|
||||
{
|
||||
//Even though the ConfigurationStatus is blank we try to determine the version if we can connect to the database
|
||||
var result = ApplicationContext.Current.DatabaseContext.ValidateDatabaseSchema();
|
||||
var determinedVersion = result.DetermineInstalledVersion();
|
||||
if (determinedVersion.Equals(new Version(0, 0, 0)))
|
||||
{
|
||||
// Now that we know this is a brand new Umbraco install, turn membership providers' "useLegacyEncoding" off
|
||||
DisableMembershipProviderLegacyEncoding();
|
||||
|
||||
return false;
|
||||
}
|
||||
return UmbracoVersion.Current < determinedVersion;
|
||||
}
|
||||
|
||||
var configuredVersion = new Version(GlobalSettings.ConfigurationStatus);
|
||||
var targetVersion = UmbracoVersion.Current;
|
||||
|
||||
return targetVersion < configuredVersion;
|
||||
}
|
||||
|
||||
private static void DisableMembershipProviderLegacyEncoding()
|
||||
{
|
||||
if (GlobalSettings.UmbracoMembershipProviderLegacyEncoding)
|
||||
GlobalSettings.UmbracoMembershipProviderLegacyEncoding = false;
|
||||
|
||||
if (GlobalSettings.UmbracoUsersMembershipProviderLegacyEncoding)
|
||||
GlobalSettings.UmbracoUsersMembershipProviderLegacyEncoding = false;
|
||||
|
||||
|
||||
LogHelper.Info<Database>("Updated Umbraco membership providers, set useLegacyEncoding to false.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Umbraco.Core.IO;
|
||||
using umbraco.cms.businesslogic.installer;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
internal class DefaultUser : InstallerStep
|
||||
{
|
||||
public override string Alias
|
||||
{
|
||||
get { return "defaultUser"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "Create User"; }
|
||||
}
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/defaultuser.ascx"; }
|
||||
}
|
||||
|
||||
public override bool Completed()
|
||||
{
|
||||
var u = global::umbraco.BusinessLogic.User.GetUser(0);
|
||||
if (u.NoConsole || u.Disabled)
|
||||
return true;
|
||||
|
||||
if (u.GetPassword() != "default")
|
||||
return true;
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Umbraco.Core.IO;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
internal class FilePermissions : InstallerStep
|
||||
{
|
||||
public override string Alias
|
||||
{
|
||||
get { return "filepermissions"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "Confirm permissions"; }
|
||||
}
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/validatepermissions.ascx"; }
|
||||
}
|
||||
|
||||
public override bool HideFromNavigation
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
public override bool Completed()
|
||||
{
|
||||
return FilePermissionHelper.RunFilePermissionTestSuite();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Collections.Specialized;
|
||||
|
||||
namespace Umbraco.Web.Install
|
||||
{
|
||||
internal class InstallerStepCollection : Dictionary<string, InstallerStep>
|
||||
{
|
||||
public void Add(InstallerStep step){
|
||||
step.Index = this.Count;
|
||||
this.Add(step.Alias, step);
|
||||
}
|
||||
|
||||
public InstallerStep Get(string key)
|
||||
{
|
||||
return this.First(item => item.Key == key).Value;
|
||||
}
|
||||
|
||||
public bool StepExists(string key)
|
||||
{
|
||||
return this.ContainsKey(key);
|
||||
}
|
||||
|
||||
public InstallerStep GotoNextStep(string key)
|
||||
{
|
||||
var s = this[key];
|
||||
foreach(var i in this.Values){
|
||||
|
||||
// System.Web.HttpContext.Current.Response.Write(i.Index.ToString() + i.Alias);
|
||||
|
||||
if (i.Index > s.Index && !i.Completed()) {
|
||||
// System.Web.HttpContext.Current.Response.Write( "FOUND" + i.Index.ToString() + i.Alias);
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public InstallerStep FirstAvailableStep()
|
||||
{
|
||||
return this.First(item => item.Value.Completed() == false ).Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
|
||||
|
||||
namespace Umbraco.Web.Install
|
||||
{
|
||||
internal abstract class InstallerStep
|
||||
{
|
||||
public abstract string Alias { get; }
|
||||
public abstract string Name { get; }
|
||||
public abstract string UserControl { get; }
|
||||
public virtual int Index { get; set; }
|
||||
|
||||
public virtual bool MoveToNextStepAutomaticly { get; set; }
|
||||
|
||||
public virtual bool HideFromNavigation
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determine if the installer should skip this step, if it returns true then it is assumed this step is already complete.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public abstract bool Completed();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Umbraco.Core.IO;
|
||||
using umbraco.cms.businesslogic.installer;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
internal class License : InstallerStep
|
||||
{
|
||||
public override string Alias
|
||||
{
|
||||
get { return "license"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "License"; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/license.ascx"; }
|
||||
}
|
||||
|
||||
public override bool Completed()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
using System;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.IO;
|
||||
using GlobalSettings = umbraco.GlobalSettings;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
/// <summary>
|
||||
/// An installer step that is shown when detecting that a major upgrade is about to occur
|
||||
/// </summary>
|
||||
internal class MajorUpgradeReport : InstallerStep
|
||||
{
|
||||
private bool _moveToNextStepAutomaticly;
|
||||
|
||||
public MajorUpgradeReport()
|
||||
{
|
||||
_moveToNextStepAutomaticly = true;
|
||||
}
|
||||
|
||||
public override string Alias
|
||||
{
|
||||
get { return "majorUpgrade"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "Upgrade report"; }
|
||||
}
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/upgradereport.ascx"; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return false if it is an upgrade and the upgrade is for a major version otherwise return true and do not show this step
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public override bool Completed()
|
||||
{
|
||||
//we cannot run this step if the db is not configured.
|
||||
if (ApplicationContext.Current.DatabaseContext.IsDatabaseConfigured == false)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
var result = ApplicationContext.Current.DatabaseContext.ValidateDatabaseSchema();
|
||||
var determinedVersion = result.DetermineInstalledVersion();
|
||||
if ((string.IsNullOrWhiteSpace(GlobalSettings.ConfigurationStatus) == false || determinedVersion.Equals(new Version(0, 0, 0)) == false)
|
||||
&& UmbracoVersion.Current.Major > determinedVersion.Major)
|
||||
{
|
||||
//it's an upgrade to a major version so we're gonna show this step
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HideFromNavigation
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
public override bool MoveToNextStepAutomaticly
|
||||
{
|
||||
get { return _moveToNextStepAutomaticly; }
|
||||
set { _moveToNextStepAutomaticly = value; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
namespace Umbraco.Web.Install
|
||||
{
|
||||
internal class ProgressResult
|
||||
{
|
||||
public string Error { get; set; }
|
||||
public int Percentage { get; set; }
|
||||
public string Description { get; set; }
|
||||
public ProgressResult()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public ProgressResult(int percentage, string description, string error)
|
||||
{
|
||||
Percentage = percentage;
|
||||
Description = description;
|
||||
Error = error;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
using Umbraco.Core.IO;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
internal class RenderingEngine : InstallerStep
|
||||
{
|
||||
public RenderingEngine()
|
||||
{
|
||||
_moveToNextStepAutomaticly = true;
|
||||
}
|
||||
|
||||
private bool _moveToNextStepAutomaticly;
|
||||
|
||||
public override string Alias
|
||||
{
|
||||
get { return "renderingEngine"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "Default Rendering Engine"; }
|
||||
}
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/renderingengine.ascx"; }
|
||||
}
|
||||
|
||||
public override bool Completed()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HideFromNavigation
|
||||
{
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
public override bool MoveToNextStepAutomaticly
|
||||
{
|
||||
get { return _moveToNextStepAutomaticly; }
|
||||
set { _moveToNextStepAutomaticly = value; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.IO;
|
||||
using umbraco.cms.businesslogic.installer;
|
||||
using umbraco.cms.businesslogic.packager;
|
||||
using umbraco.cms.businesslogic.web;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
internal class Skinning : InstallerStep
|
||||
{
|
||||
public override string Alias
|
||||
{
|
||||
get { return "skinning"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "Starter Kit"; }
|
||||
}
|
||||
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/StarterKits.ascx"; }
|
||||
}
|
||||
|
||||
public override bool Completed()
|
||||
{
|
||||
if (String.IsNullOrWhiteSpace(GlobalSettings.ConfigurationStatus) == false)
|
||||
return true;
|
||||
|
||||
if (InstalledPackage.GetAllInstalledPackages().Count > 0)
|
||||
return true;
|
||||
|
||||
if (Document.GetRootDocuments().Count() > 0)
|
||||
return true;
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
using Umbraco.Core.IO;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
internal class TheEnd : InstallerStep
|
||||
{
|
||||
public override string Alias
|
||||
{
|
||||
get { return "theend"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "You’re Done"; }
|
||||
}
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/theend.ascx"; }
|
||||
}
|
||||
|
||||
public override bool Completed()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
using Umbraco.Core.IO;
|
||||
using umbraco.BusinessLogic;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
internal class WebPi : InstallerStep
|
||||
{
|
||||
public override string Alias
|
||||
{
|
||||
get { return "webpi"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "Hi " + new User(0).Name + " you are running umbraco"; }
|
||||
}
|
||||
|
||||
public override bool HideFromNavigation {
|
||||
get {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/skinning.ascx"; }
|
||||
}
|
||||
|
||||
public override bool Completed()
|
||||
{
|
||||
//this is always completed, we just want to be able to hook into directly after finishing web pi
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
using Umbraco.Core.IO;
|
||||
|
||||
namespace Umbraco.Web.Install.Steps
|
||||
{
|
||||
internal class Welcome : InstallerStep
|
||||
{
|
||||
public override string Alias
|
||||
{
|
||||
get { return "welcome"; }
|
||||
}
|
||||
|
||||
public override string Name
|
||||
{
|
||||
get { return "Welcome"; }
|
||||
}
|
||||
|
||||
|
||||
public override string UserControl
|
||||
{
|
||||
get { return SystemDirectories.Install + "/steps/welcome.ascx"; }
|
||||
}
|
||||
|
||||
public override bool Completed()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -36,8 +36,15 @@ namespace Umbraco.Web.Mvc
|
||||
id = @"[a-zA-Z]*"
|
||||
},
|
||||
new[] {typeof (BackOfficeController).Namespace});
|
||||
|
||||
|
||||
|
||||
//TODO: We can remove this when we re-build the back office package installer
|
||||
//Create the install routes
|
||||
context.MapRoute(
|
||||
"Umbraco_install_packages",
|
||||
"Install/PackageInstaller/{action}/{id}",
|
||||
new { controller = "InstallPackage", action = "Index", id = UrlParameter.Optional },
|
||||
new[] { typeof(InstallPackageController).Namespace });
|
||||
|
||||
//Create the REST/web/script service routes
|
||||
context.MapRoute(
|
||||
"Umbraco_web_services",
|
||||
|
||||
@@ -315,6 +315,7 @@
|
||||
<Compile Include="Install\InstallSteps\StarterKitInstallStep.cs" />
|
||||
<Compile Include="Install\InstallSteps\UpgradeStep.cs" />
|
||||
<Compile Include="Install\InstallSteps\NewInstallStep.cs" />
|
||||
<Compile Include="Install\Controllers\InstallPackageController.cs" />
|
||||
<Compile Include="Install\Models\DatabaseModel.cs" />
|
||||
<Compile Include="Install\Models\DatabaseType.cs" />
|
||||
<Compile Include="Install\Models\InstallationType.cs" />
|
||||
@@ -400,7 +401,6 @@
|
||||
<Compile Include="Editors\MediaPostValidateAttribute.cs" />
|
||||
<Compile Include="Editors\MemberController.cs" />
|
||||
<Compile Include="Editors\CurrentUserController.cs" />
|
||||
<Compile Include="Install\Legacy\MajorUpgradeReport.cs" />
|
||||
<Compile Include="Models\ContentEditing\DashboardControl.cs" />
|
||||
<Compile Include="Models\ContentEditing\DataTypeDisplay.cs" />
|
||||
<Compile Include="Models\ContentEditing\DataTypeSave.cs" />
|
||||
@@ -606,20 +606,7 @@
|
||||
<Compile Include="HttpRequestExtensions.cs" />
|
||||
<Compile Include="HttpUrlHelperExtensions.cs" />
|
||||
<Compile Include="Install\FilePermissionHelper.cs" />
|
||||
<Compile Include="Install\Legacy\InstallerStep.cs" />
|
||||
<Compile Include="Install\InstallHelper.cs" />
|
||||
<Compile Include="Install\Legacy\InstallPackageController.cs" />
|
||||
<Compile Include="Install\Legacy\InstallStepCollection.cs" />
|
||||
<Compile Include="Install\Legacy\ProgressResult.cs" />
|
||||
<Compile Include="Install\Legacy\Database.cs" />
|
||||
<Compile Include="Install\Legacy\DefaultUser.cs" />
|
||||
<Compile Include="Install\Legacy\FilePermissions.cs" />
|
||||
<Compile Include="Install\Legacy\License.cs" />
|
||||
<Compile Include="Install\Legacy\RenderingEngine.cs" />
|
||||
<Compile Include="Install\Legacy\Skinning.cs" />
|
||||
<Compile Include="Install\Legacy\TheEnd.cs" />
|
||||
<Compile Include="Install\Legacy\WebPi.cs" />
|
||||
<Compile Include="Install\Legacy\Welcome.cs" />
|
||||
<Compile Include="Install\HttpInstallAuthorizeAttribute.cs" />
|
||||
<Compile Include="Macros\PartialViewMacroController.cs" />
|
||||
<Compile Include="Macros\PartialViewMacroEngine.cs" />
|
||||
|
||||
Reference in New Issue
Block a user