From d8c98ccfd812d68abbbebd6c4ea844863914458e Mon Sep 17 00:00:00 2001 From: starfighter83 Date: Thu, 20 Jan 2011 09:23:04 -0100 Subject: [PATCH] WIP installer db step refactor --- .../presentation/install/steps/database.ascx | 234 +++++++++++++----- .../install/steps/database.ascx.cs | 18 +- .../install/steps/database.ascx.designer.cs | 18 +- .../umbraco_client/Installer/css/all.css | 10 + .../Installer/js/jquery.main.js | 49 ++-- 5 files changed, 232 insertions(+), 97 deletions(-) diff --git a/umbraco/presentation/install/steps/database.ascx b/umbraco/presentation/install/steps/database.ascx index d7fc9ef3d7..ebb9d23612 100644 --- a/umbraco/presentation/install/steps/database.ascx +++ b/umbraco/presentation/install/steps/database.ascx @@ -19,50 +19,62 @@

- 1. Do you have a blank database already installed OR do you want to use a SQL CE 4 embedded database?

- + 1. Select which database option best fits you:

+ +
    +
  • + + + +
  • +
  • + + + +
  • +
  • + + + +
  • +
  • + + + +
  • +
+
- -
-
-
-

- 2. Now choose your database type below.

-
- - - - - - - -
-
-
-
+ +
+ + + +
+ +
+
+

+ 2. Now choose your database type below.

+
+ + + + + + +
+
+
+ + +

3. Connection details: Please fill out the connection information for your database.

- - - +
@@ -71,7 +83,7 @@

@@ -94,7 +106,52 @@
-
+ +
+
+ + +
+
+ + +
+
+
+ +

+ 2. Simple file-based database:

+
+ + + + +
+
+
+
+ +
+
+
+

+ 2. Connection details: Please fill out the connection information for your database.

+ +
+ +
Connection string: @@ -102,29 +159,40 @@

Example: datalayer=MySQL;server=192.168.2.8;user id=user;password=***;database=umbraco

-
-
-
- -
+
+ +
+
+
+
+ + +
+
+
+

+ 2. Getting a database setup for umbraco.
+ For first time users, we recommend you select "quick-and-simple file-based database". + This will install an easy to use database, that does + not require any additional software to use.
+ Alternatively, you can install Microsoft SQL Server, which will require a bit more + work to get up and running.
+ We have provided a step-by-step guide in the video instructions below. +

+ Open video instructions +
+
+
+ +
 
install
-
-
- -
-
-

- 2. Getting a database setup for umbraco.
- For first time users, we recommend you select "SQL CE 4" in the dropdown box, after clicking the "yes" button. - This will install an easy to use database, that does not require any additional software to use.
- Alternatively, you can install Microsoft SQL Server, which will require a bit more work to get up and running.
- We have provided a step-by-step guide in the video instructions below. -

- Open video instructions -
-
+ + + + + @@ -136,8 +204,52 @@ jQuery(document).ready(function(){ + + + + $("input[name='database']").change(function() + { + + switch($(this).val()) + { + case "blank": + + $(".database-option").hide(); + $("#database-blank").show(); + + break; + case "embedded": + $(".database-option").hide(); + $("#database-embedded").show(); + + if (!hasEmbeddedDlls) { + $('.embeddedError').show(); + $(".installbtn").hide(); + } + else { + $('.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; + } + + + }); + + }); - + diff --git a/umbraco/presentation/install/steps/database.ascx.cs b/umbraco/presentation/install/steps/database.ascx.cs index cb8c0ca366..9da7c75062 100644 --- a/umbraco/presentation/install/steps/database.ascx.cs +++ b/umbraco/presentation/install/steps/database.ascx.cs @@ -46,7 +46,7 @@ namespace umbraco.presentation.install.steps /// protected bool IsEmbeddedDatabase { - get { return DatabaseType.SelectedValue.ToLower().Contains("sqlce"); } + get { return Request["database"] == "embedded"; } } protected bool IsConfigured @@ -76,7 +76,7 @@ namespace umbraco.presentation.install.steps /// protected bool ManualConnectionString { - get { return DatabaseType.SelectedItem.Value == "Custom"; } + get { return Request["database"] == "advanced"; } } /// @@ -134,7 +134,7 @@ namespace umbraco.presentation.install.steps toggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase); toggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase); - toggleVisible(DatabaseConnectionString, ManualConnectionString); + //toggleVisible(DatabaseConnectionString, ManualConnectionString); // Make sure ASP.Net displays the password text DatabasePassword.Attributes["value"] = DatabasePassword.Text; @@ -248,13 +248,19 @@ namespace umbraco.presentation.install.steps connectionStringBuilder["user id"] = DatabaseUsername.Text; connectionStringBuilder["password"] = DatabasePassword.Text; } - else if (DatabaseType.SelectedValue == ("SQLCE4Umbraco.SqlCEHelper,SQLCE4Umbraco")) + else if (Request["database"] == "embedded") { connectionStringBuilder.ConnectionString = @"datalayer=SQLCE4Umbraco.SqlCEHelper,SQLCE4Umbraco;data source=|DataDirectory|\Umbraco.sdf"; } - if (!String.IsNullOrEmpty(DatabaseType.SelectedValue) && !DatabaseType.SelectedValue.Contains("SqlServer") && !DatabaseType.SelectedValue.Contains("Custom")) + if (!String.IsNullOrEmpty(Request["database"]) && !String.IsNullOrEmpty(DatabaseType.SelectedValue) && !DatabaseType.SelectedValue.Contains("SqlServer") + && Request["database"] != "advanced") + { connectionStringBuilder["datalayer"] = DatabaseType.SelectedValue; + } + + //if (!String.IsNullOrEmpty(DatabaseType.SelectedValue) && !DatabaseType.SelectedValue.Contains("SqlServer") && !DatabaseType.SelectedValue.Contains("Custom")) + // connectionStringBuilder["datalayer"] = DatabaseType.SelectedValue; return connectionStringBuilder; } @@ -284,7 +290,7 @@ namespace umbraco.presentation.install.steps toggleVisible(DatabasePasswordItem, !ManualConnectionString && !IsEmbeddedDatabase); toggleVisible(DatabaseNameItem, !ManualConnectionString && !IsEmbeddedDatabase); - toggleVisible(DatabaseConnectionString, ManualConnectionString); + //toggleVisible(DatabaseConnectionString, ManualConnectionString); } private void toggleVisible(HtmlGenericControl div, bool visible) diff --git a/umbraco/presentation/install/steps/database.ascx.designer.cs b/umbraco/presentation/install/steps/database.ascx.designer.cs index d7e70b8435..ff51ca5e86 100644 --- a/umbraco/presentation/install/steps/database.ascx.designer.cs +++ b/umbraco/presentation/install/steps/database.ascx.designer.cs @@ -30,15 +30,6 @@ namespace umbraco.presentation.install.steps { /// protected global::System.Web.UI.WebControls.DropDownList DatabaseType; - /// - /// embeddedFilesMissing control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.HtmlControls.HtmlGenericControl embeddedFilesMissing; - /// /// ph_dbError control. /// @@ -165,6 +156,15 @@ namespace umbraco.presentation.install.steps { /// protected global::System.Web.UI.WebControls.TextBox DatabasePassword; + /// + /// embeddedFilesMissing control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl embeddedFilesMissing; + /// /// DatabaseConnectionString control. /// diff --git a/umbraco/presentation/umbraco_client/Installer/css/all.css b/umbraco/presentation/umbraco_client/Installer/css/all.css index c2647a24a1..82a844f89f 100644 --- a/umbraco/presentation/umbraco_client/Installer/css/all.css +++ b/umbraco/presentation/umbraco_client/Installer/css/all.css @@ -1150,3 +1150,13 @@ figure{display: block;} .error {padding:0 100px 13px 5px} .error p{margin:0 0 13px;padding-right:100px;} .error p strong {font-size:14px;display:block;} + +/* db step refactor */ +.database-option, footer.installbtn +{ + display:none; +} +.custom +{ + display: +} \ No newline at end of file diff --git a/umbraco/presentation/umbraco_client/Installer/js/jquery.main.js b/umbraco/presentation/umbraco_client/Installer/js/jquery.main.js index 53d96df275..2c44df87ba 100644 --- a/umbraco/presentation/umbraco_client/Installer/js/jquery.main.js +++ b/umbraco/presentation/umbraco_client/Installer/js/jquery.main.js @@ -143,42 +143,49 @@ function initTabs() { }); } -//add by pph +//add by pph, updated by tg for db step refactor function toggleDatabaseOption(selectValNew) { - var step1 = '#database-step1'; + + + + var step1 = '#database-options'; //Defensive if else to prevent this being executed on non database pages if (jQuery(step1).length) { + + + var instructionText = jQuery(step1 + ' .instructionText'); - var buttonBox = jQuery('.btn-box'); + var buttonBox = jQuery('.installbtn'); + //hide instructions - jQuery('#database-step2').hide(); - instructionText.hide(); + jQuery('#database-blank-inputs').hide(); + //instructionText.hide(); buttonBox.hide(); //hide all db options - jQuery(step1 + ' .row').hide(); + //jQuery(step1 + ' .row').hide(); if (selectValNew != '') { if (selectValNew == 'SqlServer' || selectValNew == 'MySql') { - jQuery(step1 + ' .sql').show(); - instructionText.show(); - buttonBox.show(); - } - else if (selectValNew == 'Custom') { - jQuery(step1 + ' .custom').show(); - instructionText.show(); - buttonBox.show(); - } - else if (selectValNew.indexOf('SQLCE4Umbraco') > -1 && !hasEmbeddedDlls) { - jQuery(step1 + ' .embeddedError').show(); - } - else if (selectValNew.indexOf('SQLCE4Umbraco') > -1) { - jQuery(step1 + ' .embedded').show(); - instructionText.show(); + jQuery('#database-blank-inputs').show(); + //instructionText.show(); buttonBox.show(); } +// else if (selectValNew == 'Custom') { +// jQuery(step1 + ' .custom').show(); +// instructionText.show(); +// buttonBox.show(); +// } +// else if (selectValNew.indexOf('SQLCE4Umbraco') > -1 && !hasEmbeddedDlls) { +// jQuery(step1 + ' .embeddedError').show(); +// } +// else if (selectValNew.indexOf('SQLCE4Umbraco') > -1) { +// jQuery(step1 + ' .embedded').show(); +// instructionText.show(); +// buttonBox.show(); +// } } } }