diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 79fad32639..8f493d2582 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -53,7 +53,7 @@ Domain '%0%' has been updated Edit Current Domains
One-level paths in domains are supported, eg. "example.com/en". However, they + "https://www.example.com/". One-level paths in domains are supported, eg. "example.com/en". However, they should be avoided. Better use the culture setting above.]]>
Inherit Culture diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml index 4da1607c4b..69c7e605da 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml @@ -53,7 +53,7 @@ Domain '%0%' has been updated Edit Current Domains
One-level paths in domains are supported, eg. "example.com/en". However, they + "https://www.example.com/". One-level paths in domains are supported, eg. "example.com/en". However, they should be avoided. Better use the culture setting above.]]>
Inherit Culture diff --git a/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx b/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx index 9a69576706..3346927b0f 100644 --- a/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx +++ b/src/Umbraco.Web.UI/umbraco/dialogs/AssignDomain2.aspx @@ -40,6 +40,7 @@ + <%=umbraco.ui.Text("assignDomain", "domainHelp") %> @@ -51,7 +52,7 @@ - + @@ -60,7 +61,6 @@ - <%=umbraco.ui.Text("assignDomain", "domainHelp") %> diff --git a/src/Umbraco.Web.UI/umbraco_client/Dialogs/AssignDomain2.js b/src/Umbraco.Web.UI/umbraco_client/Dialogs/AssignDomain2.js index cfd33541cb..b49e72fcc7 100644 --- a/src/Umbraco.Web.UI/umbraco_client/Dialogs/AssignDomain2.js +++ b/src/Umbraco.Web.UI/umbraco_client/Dialogs/AssignDomain2.js @@ -63,9 +63,17 @@ return ret; }, self._opts.invalidDomain); + function getDuplicateMessage(val, el) { + var other = $(el).nextAll('input').val(); + var msg = self._opts.duplicateDomain + if (other != "" && other != "!!!") + msg = msg + ' (' + other + ')'; + return msg; + } + $.validator.addMethod("duplicate", function (value, element, param) { - return $(element).nextAll('input').val() == 0 && !self._isRepeated($(element)); - }, self._opts.duplicateDomain); + return $(element).nextAll('input').val() == "" && !self._isRepeated($(element)); + }, getDuplicateMessage); $.validator.addClassRules({ domain: { domain: true }, @@ -80,7 +88,7 @@ $('form input.domain').live('focus', function(event) { if (event.type != 'focusin') return; - $(this).nextAll('input').val(0); + $(this).nextAll('input').val(""); }); // force validation *now* @@ -105,14 +113,14 @@ } else { var inputs = $('form input.domain'); - inputs.each(function() { $(this).nextAll('input').val(0); }); + inputs.each(function() { $(this).nextAll('input').val(""); }); for (var i = 0; i < json.Domains.length; i++) { var d = json.Domains[i]; - if (d.Duplicate == 1) + if (d.Duplicate) inputs.each(function() { var input = $(this); if (input.val() == d.Name) - input.nextAll('input').val(1); + input.nextAll('input').val(d.Other ? d.Other : "!!!"); }); } $('form').valid(); diff --git a/src/Umbraco.Web/WebServices/DomainsApiController.cs b/src/Umbraco.Web/WebServices/DomainsApiController.cs index 6446e0152d..4f3509845d 100644 --- a/src/Umbraco.Web/WebServices/DomainsApiController.cs +++ b/src/Umbraco.Web/WebServices/DomainsApiController.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; +using System.Text; using System.Web.Http; using System.Web.Services.Description; using Umbraco.Core; @@ -113,7 +114,25 @@ namespace Umbraco.Web.WebServices if (domain != null) domain.LanguageId = language.Id; else if (Services.DomainService.Exists(domainModel.Name)) + { domainModel.Duplicate = true; + var xdomain = Services.DomainService.GetByName(domainModel.Name); + var xrcid = xdomain.RootContentId; + if (xrcid.HasValue) + { + var xcontent = Services.ContentService.GetById(xrcid.Value); + var xnames = new List(); + while (xcontent != null) + { + xnames.Add(xcontent.Name); + if (xcontent.ParentId < -1) + xnames.Add("Recycle Bin"); + xcontent = xcontent.Parent(); + } + xnames.Reverse(); + domainModel.Other = "/" + string.Join("/", xnames); + } + } else { // yet there is a race condition here... @@ -159,6 +178,7 @@ namespace Umbraco.Web.WebServices public string Name { get; private set; } public int Lang { get; private set; } public bool Duplicate { get; set; } + public string Other { get; set; } } #endregion