From f88e60bcb5f47e2d433b4ca97687d7904d2cddb3 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 25 Mar 2014 12:16:27 +1100 Subject: [PATCH] Fixes: U4-3481 Adding Scripting Files and Partial View Macro File with the same name and 'create macro' selected fails. --- .../umbraco/create/DLRScripting.ascx | 3 +++ .../umbraco/create/PartialViewMacro.ascx | 3 +++ .../umbraco/create/PartialViewMacro.ascx.cs | 20 ++++++++++++++++++- .../create/PartialViewMacro.ascx.designer.cs | 9 +++++++++ .../umbraco/create/DLRScripting.ascx.cs | 20 +++++++++++++++++++ .../umbraco/create/PartialViewMacrosTasks.cs | 1 + 6 files changed, 55 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI/umbraco/create/DLRScripting.ascx b/src/Umbraco.Web.UI/umbraco/create/DLRScripting.ascx index 9e53aa3be7..1b042eb4c4 100644 --- a/src/Umbraco.Web.UI/umbraco/create/DLRScripting.ascx +++ b/src/Umbraco.Web.UI/umbraco/create/DLRScripting.ascx @@ -24,6 +24,9 @@ + diff --git a/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx b/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx index 9dc16377eb..d268027959 100644 --- a/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx +++ b/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx @@ -15,6 +15,9 @@ + diff --git a/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx.cs b/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx.cs index 789145237c..056f17b157 100644 --- a/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx.cs +++ b/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx.cs @@ -45,7 +45,7 @@ namespace Umbraco.Web.UI.Umbraco.Create } } - protected void SubmitButton_Click(object sender, System.EventArgs e) + protected void SubmitButton_Click(object sender, EventArgs e) { if (Page.IsValid) { @@ -66,5 +66,23 @@ namespace Umbraco.Web.UI.Umbraco.Create .CloseModalWindow(); } } + + protected void MacroExistsValidator_OnServerValidate(object source, ServerValidateEventArgs args) + { + if (CreateMacroCheckBox.Checked) + { + //TODO: Shouldn't this use our string functions to create the alias ? + var fileName = FileName.Text + ".cshtml"; + var name = fileName + .Substring(0, (fileName.LastIndexOf('.') + 1)).Trim('.') + .SplitPascalCasing().ToFirstUpperInvariant(); + + var macro = ApplicationContext.Current.Services.MacroService.GetByAlias(name); + if (macro != null) + { + args.IsValid = false; + } + } + } } } \ No newline at end of file diff --git a/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx.designer.cs b/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx.designer.cs index afe4f39e7c..79b35812ec 100644 --- a/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx.designer.cs +++ b/src/Umbraco.Web.UI/umbraco/create/PartialViewMacro.ascx.designer.cs @@ -48,6 +48,15 @@ namespace Umbraco.Web.UI.Umbraco.Create { /// protected global::System.Web.UI.WebControls.CheckBox CreateMacroCheckBox; + /// + /// MacroExistsValidator control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.CustomValidator MacroExistsValidator; + /// /// Textbox2 control. /// diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/create/DLRScripting.ascx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/create/DLRScripting.ascx.cs index 987f66e43e..1b8a29ee56 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/create/DLRScripting.ascx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/create/DLRScripting.ascx.cs @@ -37,6 +37,24 @@ namespace umbraco.presentation.create LoadTemplates(template, filetype.SelectedValue); } + protected void MacroExistsValidator_OnServerValidate(object source, ServerValidateEventArgs args) + { + if (createMacro.Checked) + { + //TODO: Shouldn't this use our string functions to create the alias ? + var fileName = rename.Text + "." + filetype.SelectedValue; + var name = fileName + .Substring(0, (fileName.LastIndexOf('.') + 1)).Trim('.') + .SplitPascalCasing().ToFirstUpperInvariant(); + + var macro = ApplicationContext.Current.Services.MacroService.GetByAlias(name); + if (macro != null) + { + args.IsValid = false; + } + } + } + protected void sbmt_Click(object sender, System.EventArgs e) { if (Page.IsValid) @@ -90,6 +108,8 @@ namespace umbraco.presentation.create } } + protected global::System.Web.UI.WebControls.CustomValidator MacroExistsValidator; + /// /// rename control. /// diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs index 254da3bd53..7bde1e2b9a 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/create/PartialViewMacrosTasks.cs @@ -75,6 +75,7 @@ namespace umbraco // Create macro? if (ParentID == 1) { + //TODO: Shouldn't this use our string functions to create the alias ? var name = fileName .Substring(0, (fileName.LastIndexOf('.') + 1)).Trim('.') .SplitPascalCasing().ToFirstUpperInvariant();