diff --git a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
index b0cdc05b62..4d5089314c 100644
--- a/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
+++ b/src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
@@ -1417,7 +1417,9 @@
-
+
+ Designer
+
diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml
index 2b8a936f9b..414c45bf13 100644
--- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml
+++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml
@@ -728,6 +728,7 @@ To manage your website, simply open the umbraco back office and start adding con
Choose field
Convert Linebreaks
Replaces linebreaks with html-tag <br>
+ Custom Fields
Yes, Date only
Format as date
HTML encode
@@ -741,6 +742,7 @@ To manage your website, simply open the umbraco back office and start adding con
Recursive
Remove Paragraph tags
Will remove any <P> in the beginning and end of the text
+ Standard Fields
Uppercase
URL encode
Will format special characters in URLs
diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj
index 7cc4f7a018..364096d3d8 100644
--- a/src/Umbraco.Web/Umbraco.Web.csproj
+++ b/src/Umbraco.Web/Umbraco.Web.csproj
@@ -1937,7 +1937,9 @@
-
+
+ ASPXCodeBehind
+
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx
index 90d53ef6a4..9f3bda9703 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx
@@ -86,11 +86,11 @@
-
+
-
+
<%=umbraco.ui.Text("templateEditor", "usedIfEmpty")%>
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.cs
index db0f4a2e4b..4be7474e5f 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.cs
@@ -59,9 +59,13 @@ namespace umbraco.dialogs
else
{
fieldSql = "select distinct alias from cmsPropertyType order by alias";
- pp_insertField.Text = umbraco.ui.Text("templateEditor", "chooseField");
+ pp_insertField.Text = ui.Text("templateEditor", "chooseField");
}
-
+
+ fieldPicker.ChooseText = ui.Text("templateEditor", "chooseField");
+ fieldPicker.StandardPropertiesLabel = ui.Text("templateEditor", "standardFields");
+ fieldPicker.CustomPropertiesLabel = ui.Text("templateEditor", "customFields");
+
IRecordsReader dataTypes = SqlHelper.ExecuteReader(fieldSql);
fieldPicker.DataTextField = "alias";
fieldPicker.DataValueField = "alias";
@@ -70,6 +74,10 @@ namespace umbraco.dialogs
fieldPicker.Attributes.Add("onChange", "document.forms[0].field.value = document.forms[0]." + fieldPicker.ClientID + "[document.forms[0]." + fieldPicker.ClientID + ".selectedIndex].value;");
dataTypes.Close();
+ altFieldPicker.ChooseText = ui.Text("templateEditor", "chooseField");
+ altFieldPicker.StandardPropertiesLabel = ui.Text("templateEditor", "standardFields");
+ altFieldPicker.CustomPropertiesLabel = ui.Text("templateEditor", "customFields");
+
IRecordsReader dataTypes2 = SqlHelper.ExecuteReader(fieldSql);
altFieldPicker.DataTextField = "alias";
altFieldPicker.DataValueField = "alias";
@@ -78,9 +86,6 @@ namespace umbraco.dialogs
altFieldPicker.Attributes.Add("onChange", "document.forms[0].useIfEmpty.value = document.forms[0]." + altFieldPicker.ClientID + "[document.forms[0]." + altFieldPicker.ClientID + ".selectedIndex].value;");
dataTypes2.Close();
- fieldPicker.Items.Insert(0,new ListItem(ui.Text("general", "choose", base.getUser())));
- altFieldPicker.Items.Insert(0,new ListItem(ui.Text("general", "choose", base.getUser())));
-
// Pre values
if (!m_IsDictionaryMode)
{
diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.designer.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.designer.cs
index 337ccc31e6..3cbbd22ed4 100644
--- a/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.designer.cs
+++ b/src/Umbraco.Web/umbraco.presentation/umbraco/dialogs/umbracoField.aspx.designer.cs
@@ -55,7 +55,7 @@ namespace umbraco.dialogs {
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.ListBox fieldPicker;
+ protected global::umbraco.uicontrols.FieldDropDownList fieldPicker;
///
/// pp_insertAltField control.
@@ -73,7 +73,7 @@ namespace umbraco.dialogs {
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.ListBox altFieldPicker;
+ protected global::umbraco.uicontrols.FieldDropDownList altFieldPicker;
///
/// pp_insertAltText control.
diff --git a/src/umbraco.controls/FieldDropDownList.cs b/src/umbraco.controls/FieldDropDownList.cs
new file mode 100644
index 0000000000..9520dc2e4b
--- /dev/null
+++ b/src/umbraco.controls/FieldDropDownList.cs
@@ -0,0 +1,72 @@
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace umbraco.uicontrols
+{
+ public class FieldDropDownList : DropDownList
+ {
+ private bool _customOptionsStarted;
+ private bool _standardOptionsStarted;
+
+ public string CustomPropertiesLabel { get; set; }
+ public string StandardPropertiesLabel { get; set; }
+ public string ChooseText { get; set; }
+
+ protected override void RenderContents(HtmlTextWriter writer)
+ {
+ if (Items.Count > 0 && Items[0].Text.StartsWith("#"))
+ {
+ Items.Insert(0, new ListItem(ChooseText, ""));
+ SelectedIndex = 0;
+
+ base.RenderContents(writer);
+ return;
+ }
+
+ writer.Write("", ChooseText);
+
+ foreach (ListItem item in Items)
+ {
+ if (!_customOptionsStarted)
+ {
+ RenderOptionGroupBeginTag(CustomPropertiesLabel, writer);
+ _customOptionsStarted = true;
+ }
+ else if (item.Text.StartsWith("@") && !_standardOptionsStarted)
+ {
+ _standardOptionsStarted = true;
+ RenderOptionGroupEndTag(writer);
+ RenderOptionGroupBeginTag(StandardPropertiesLabel, writer);
+ }
+
+ writer.WriteBeginTag("option");
+ writer.WriteAttribute("value", item.Value, true);
+
+ foreach (string key in item.Attributes.Keys)
+ writer.WriteAttribute(key, item.Attributes[key]);
+
+ writer.Write(HtmlTextWriter.TagRightChar);
+ HttpUtility.HtmlEncode(item.Text.Replace("@", ""), writer);
+ writer.WriteEndTag("option");
+ writer.WriteLine();
+ }
+
+ RenderOptionGroupEndTag(writer);
+ }
+
+ private void RenderOptionGroupBeginTag(string name, HtmlTextWriter writer)
+ {
+ writer.WriteBeginTag("optgroup");
+ writer.WriteAttribute("label", name);
+ writer.Write(HtmlTextWriter.TagRightChar);
+ writer.WriteLine();
+ }
+
+ private void RenderOptionGroupEndTag(HtmlTextWriter writer)
+ {
+ writer.WriteEndTag("optgroup");
+ writer.WriteLine();
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/umbraco.controls/umbraco.controls.csproj b/src/umbraco.controls/umbraco.controls.csproj
index 23c677eaf5..7323a80d0c 100644
--- a/src/umbraco.controls/umbraco.controls.csproj
+++ b/src/umbraco.controls/umbraco.controls.csproj
@@ -86,6 +86,7 @@
Properties\SolutionInfo.cs
+