diff --git a/umbraco/presentation/umbraco/editContent.aspx.cs b/umbraco/presentation/umbraco/editContent.aspx.cs index de41134c62..d5b0269c0b 100644 --- a/umbraco/presentation/umbraco/editContent.aspx.cs +++ b/umbraco/presentation/umbraco/editContent.aspx.cs @@ -36,7 +36,8 @@ namespace umbraco.cms.presentation controls.ContentControl cControl; - DropDownList ddlDefaultTemplate = new DropDownList(); + RadioButtonList rblDefaultTemplate = new RadioButtonList(); + HtmlGenericControl rblDefaultTemplateScrollingPanel = new HtmlGenericControl("div"); uicontrols.Pane publishProps = new uicontrols.Pane(); uicontrols.Pane linkProps = new uicontrols.Pane(); @@ -131,7 +132,7 @@ namespace umbraco.cms.presentation // Template PlaceHolder template = new PlaceHolder(); cms.businesslogic.web.DocumentType DocumentType = new cms.businesslogic.web.DocumentType(_document.ContentType.Id); - cControl.PropertiesPane.addProperty(ui.Text("documentType"), new LiteralControl(DocumentType.Text)); + cControl.PropertiesPane.addProperty(ui.Text("documentType"), new LiteralControl(string.Format("{0} {1}", DocumentType.Text, umbraco.cms.helpers.DeepLink.GetAnchor(DeepLinkType.DocumentType, _document.ContentType.Id.ToString(), true)))); @@ -153,15 +154,7 @@ namespace umbraco.cms.presentation } else { - ddlDefaultTemplate.Items.Add(new ListItem(ui.Text("choose") + "...", "")); - foreach (cms.businesslogic.template.Template t in DocumentType.allowedTemplates) - { - ListItem tTemp = new ListItem(t.Text, t.Id.ToString()); - if (t.Id == defaultTemplate) - tTemp.Selected = true; - ddlDefaultTemplate.Items.Add(tTemp); - } - template.Controls.Add(ddlDefaultTemplate); + AddDefaultTemplateControl(defaultTemplate, ref template, ref DocumentType); } @@ -210,8 +203,8 @@ namespace umbraco.cms.presentation return; // clear preview cookie - // zb-00004 #29956 : refactor cookies names & handling - StateHelper.Cookies.Preview.Clear(); + // zb-00004 #29956 : refactor cookies names & handling + StateHelper.Cookies.Preview.Clear(); if (!IsPostBack) { @@ -267,9 +260,9 @@ namespace umbraco.cms.presentation _document.ExpireDate = new DateTime(1, 1, 1, 0, 0, 0); // Update default template - if (ddlDefaultTemplate.SelectedIndex > 0) + if (rblDefaultTemplate.SelectedIndex > 0) { - _document.Template = int.Parse(ddlDefaultTemplate.SelectedValue); + _document.Template = int.Parse(rblDefaultTemplate.SelectedValue); } else { @@ -450,23 +443,24 @@ namespace umbraco.cms.presentation /// /// /// - private void AddTemplateDropDown(int defaultTemplate, ref PlaceHolder template, ref cms.businesslogic.web.DocumentType DocumentType) + private void AddDefaultTemplateControl(int defaultTemplate, ref PlaceHolder template, ref cms.businesslogic.web.DocumentType documentType) { string permissions = this.getUser().GetPermissions(_document.Path); if (permissions.IndexOf(ActionUpdate.Instance.Letter) >= 0) { - ddlDefaultTemplate.Items.Add(new ListItem(ui.Text("choose") + "...", "")); - foreach (cms.businesslogic.template.Template t in DocumentType.allowedTemplates) - { - ListItem tTemp = new ListItem(t.Text, t.Id.ToString()); - if (t.Id == defaultTemplate) - tTemp.Selected = true; - ddlDefaultTemplate.Items.Add(tTemp); - } + rblDefaultTemplateScrollingPanel = new HtmlGenericControl("div"); + rblDefaultTemplateScrollingPanel.Style.Add(HtmlTextWriterStyle.Overflow, "auto"); + rblDefaultTemplateScrollingPanel.Style.Add("min-height", "15px"); + rblDefaultTemplateScrollingPanel.Style.Add("max-height", "50px"); + rblDefaultTemplateScrollingPanel.Style.Add("width", "300px"); + rblDefaultTemplateScrollingPanel.Style.Add("display", "inline-block"); + rblDefaultTemplate.RepeatDirection = RepeatDirection.Horizontal; + rblDefaultTemplate.RepeatColumns = 3; + rblDefaultTemplateScrollingPanel.Controls.Add(rblDefaultTemplate); + template.Controls.Add(rblDefaultTemplateScrollingPanel); - - template.Controls.Add(ddlDefaultTemplate); + BindTemplateControl(defaultTemplate, ref documentType); } else { @@ -477,7 +471,25 @@ namespace umbraco.cms.presentation } } - + private void BindTemplateControl(int defaultTemplate, ref cms.businesslogic.web.DocumentType documentType) + { + rblDefaultTemplate.Items.Add(new ListItem("None", "")); + bool selected = false; + foreach (cms.businesslogic.template.Template t in documentType.allowedTemplates) + { + ListItem tTemp = new ListItem(string.Format("{0} {1}", t.Text, umbraco.cms.helpers.DeepLink.GetAnchor(DeepLinkType.Template, t.Id.ToString(), true), t.Id.ToString())); + if (t.Id == defaultTemplate) + { + tTemp.Selected = true; + selected = true; + } + rblDefaultTemplate.Items.Add(tTemp); + } + if (!selected) + { + rblDefaultTemplate.SelectedIndex = 0; + } + } private void addPreviewButton(uicontrols.ScrollingMenu menu, int id) { menu.InsertSplitter(2);