Fixes U4-3314 Doctype property alias doesn't auto generate camelcase but does pascalcase instead

This commit is contained in:
Tim Geyssens
2013-11-04 15:00:13 +01:00
parent 102bf79320
commit 4895b5a2a8
6 changed files with 96 additions and 3 deletions

View File

@@ -952,6 +952,16 @@ namespace Umbraco.Core
return ShortStringHelper.CleanStringForSafeAlias(alias);
}
/// <summary>
/// Cleans a string to produce a string that can safely be used in an alias.
/// </summary>
/// <param name="alias">The text to filter.</param>
/// <returns>The safe alias.</returns>
public static string ToSafeCamelAlias(this string alias)
{
return ShortStringHelper.CleanStringForSafeCamelAlias(alias);
}
/// <summary>
/// Cleans a string, in the context of a specified culture, to produce a string that can safely be used in an alias.
/// </summary>

View File

@@ -248,6 +248,34 @@ function validateSafeAlias(id, value, immediate, callback) {{
return CleanString(text, CleanStringType.Ascii | CleanStringType.UmbracoCase | CleanStringType.Alias);
}
/// <summary>
/// Cleans a string to produce a string that can safely be used in an alias.
/// </summary>
/// <param name="text">The text to filter.</param>
/// <returns>The safe alias.</returns>
/// <remarks>
/// <para>The string will be cleaned in the context of the default culture.</para>
/// <para>Safe aliases are Ascii only.</para>
/// </remarks>
public virtual string CleanStringForSafeCamelAlias(string text)
{
return CleanString(text, CleanStringType.Ascii | CleanStringType.CamelCase | CleanStringType.Alias);
}
/// <summary>
/// Cleans a string, in the context of a specified culture, to produce a string that can safely be used in an alias.
/// </summary>
/// <param name="text">The text to filter.</param>
/// <param name="culture">The culture.</param>
/// <returns>The safe alias.</returns>
/// <remarks>
/// <para>Safe aliases are Ascii only.</para>
/// </remarks>
public virtual string CleanStringForSafeCamelAlias(string text, CultureInfo culture)
{
return CleanString(text, CleanStringType.Ascii | CleanStringType.CamelCase | CleanStringType.Alias, culture);
}
/// <summary>
/// Cleans a string, in the context of a specified culture, to produce a string that can safely be used in an alias.
/// </summary>

View File

@@ -31,6 +31,19 @@ namespace Umbraco.Core.Strings
/// </remarks>
string CleanStringForSafeAlias(string text);
/// <summary>
/// Cleans a string to produce a string that can safely be used in an alias.
/// </summary>
/// <param name="text">The text to filter.</param>
/// <returns>The safe alias.</returns>
/// <remarks>
/// <para>The string will be cleaned in the context of the IShortStringHelper default culture.</para>
/// <para>A safe alias is [a-z][a-zA-Z0-9_]* although legacy will also accept '-', and '_' at the beginning.</para>
/// </remarks>
string CleanStringForSafeCamelAlias(string text);
/// <summary>
/// Cleans a string, in the context of a specified culture, to produce a string that can safely be used in an alias.
/// </summary>
@@ -39,6 +52,14 @@ namespace Umbraco.Core.Strings
/// <returns>The safe alias.</returns>
string CleanStringForSafeAlias(string text, CultureInfo culture);
/// <summary>
/// Cleans a string, in the context of a specified culture, to produce a string that can safely be used in an alias.
/// </summary>
/// <param name="text">The text to filter.</param>
/// <param name="culture">The culture.</param>
/// <returns>The safe alias.</returns>
string CleanStringForSafeCamelAlias(string text, CultureInfo culture);
/// <summary>
/// Cleans a string to produce a string that can safely be used in an url segment.
/// </summary>

View File

@@ -138,6 +138,18 @@ function isValidAlias(alias) {{
return safeString.ToString();
}
/// <summary>
/// Cleans a string to produce a string that can safely be used in an alias.
/// </summary>
/// <param name="text">The text to filter.</param>
/// <returns>The safe alias.</returns>
/// <remarks>The string will be cleaned in the context of invariant culture.</remarks>
public string CleanStringForSafeCamelAlias(string text)
{
var t = CleanStringForSafeAlias(text);
return Char.ToLowerInvariant(t[0]) + t.Substring(1);
}
/// <summary>
/// Cleans a string, in the context of the invariant culture, to produce a string that can safely be used in an alias.
/// </summary>
@@ -150,6 +162,18 @@ function isValidAlias(alias) {{
return CleanStringForSafeAlias(text);
}
/// <summary>
/// Cleans a string, in the context of the invariant culture, to produce a string that can safely be used in an alias.
/// </summary>
/// <param name="text">The text to filter.</param>
/// <param name="culture">The culture.</param>
/// <returns>The safe alias.</returns>
/// <remarks>Legacy does not support culture contexts.</remarks>
public string CleanStringForSafeCamelAlias(string text, CultureInfo culture)
{
return CleanStringForSafeCamelAlias(text);
}
/// <summary>
/// Cleans a string to produce a string that can safely be used in an url segment, in the context of the invariant culture.
/// </summary>

View File

@@ -19,11 +19,21 @@ namespace Umbraco.Tests.CoreStrings
return "SAFE-ALIAS::" + text;
}
public string CleanStringForSafeCamelAlias(string text)
{
return "SAFE-ALIAS::" + text;
}
public string CleanStringForSafeAlias(string text, System.Globalization.CultureInfo culture)
{
return "SAFE-ALIAS-CULTURE::" + text;
}
public string CleanStringForSafeCamelAlias(string text, System.Globalization.CultureInfo culture)
{
return "SAFE-ALIAS-CULTURE::" + text;
}
public string CleanStringForUrlSegment(string text)
{
return "URL-SEGMENT::" + text;

View File

@@ -18,11 +18,11 @@ namespace Umbraco.Web.WebServices
public class CoreStringsController : UmbracoAuthorizedController
{
[HttpGet]
public JsonResult ToSafeAlias(string value)
public JsonResult ToSafeAlias(string value, bool camelCase = true)
{
return value == null
? Json(new {error = "no value."}, JsonRequestBehavior.AllowGet)
: Json(new { alias = value.ToSafeAlias() }, JsonRequestBehavior.AllowGet);
? Json(new {error = "no value."}, JsonRequestBehavior.AllowGet)
: Json(new { alias = camelCase ? value.ToSafeCamelAlias() : value.ToSafeAlias() }, JsonRequestBehavior.AllowGet);
}
[HttpGet]