diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index e3aa533783..1cf0915bc8 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -71,6 +71,7 @@ Gem og udgiv Gem og send til udgivelse Se siden + Se siden (du kan ikke se siden, da der ikke er valgt nogen skabelon) Vælg formattering Vis koder Indsæt tabel diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index efb112c48f..bc9c86e843 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -69,6 +69,7 @@ Save and publish Save and send for approval Preview + Preview is disabled because there's no template assigned Choose style Show styles Insert table diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs index 313123899c..d8eae26314 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/editContent.aspx.cs @@ -11,6 +11,7 @@ using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Reflection; using umbraco.BusinessLogic.Actions; +using umbraco.cms.businesslogic.language; using umbraco.cms.helpers; using umbraco.IO; using umbraco.uicontrols.DatePicker; @@ -21,6 +22,7 @@ using umbraco.presentation; using umbraco.cms.businesslogic.skinning; using System.Collections.Generic; using System.Linq; +using Image = System.Web.UI.WebControls.Image; namespace umbraco.cms.presentation { @@ -216,11 +218,11 @@ namespace umbraco.cms.presentation } - protected override void OnPreRender(EventArgs e) - { - base.OnPreRender(e); - UpdateNiceUrls(); - } + protected override void OnPreRender(EventArgs e) + { + base.OnPreRender(e); + UpdateNiceUrls(); + } protected void Save(object sender, System.EventArgs e) { @@ -264,9 +266,9 @@ namespace umbraco.cms.presentation _document.ExpireDate = new DateTime(1, 1, 1, 0, 0, 0); // Update default template - if (ddlDefaultTemplate.SelectedIndex > 0) + if (ddlDefaultTemplate.SelectedIndex > 0) { - _document.Template = int.Parse(ddlDefaultTemplate.SelectedValue); + _document.Template = int.Parse(ddlDefaultTemplate.SelectedValue); } else { @@ -343,70 +345,70 @@ namespace umbraco.cms.presentation _document.UnPublish(); littPublishStatus.Text = ui.Text("content", "itemNotPublished", base.getUser()); UnPublish.Visible = false; - _documentHasPublishedVersion = false; + _documentHasPublishedVersion = false; library.UnPublishSingleNode(_document.Id); //newPublishStatus.Text = "0"; } - void UpdateNiceUrlProperties(string niceUrlText, string altUrlsText) - { - Literal lit; + void UpdateNiceUrlProperties(string niceUrlText, string altUrlsText) + { + Literal lit; - linkProps.Controls.Clear(); + linkProps.Controls.Clear(); - lit = new Literal(); - lit.Text = niceUrlText; - linkProps.addProperty(ui.Text("content", "urls", base.getUser()), lit); + lit = new Literal(); + lit.Text = niceUrlText; + linkProps.addProperty(ui.Text("content", "urls", base.getUser()), lit); - if (!string.IsNullOrWhiteSpace(altUrlsText)) - { - lit = new Literal(); - lit.Text = altUrlsText; - linkProps.addProperty(ui.Text("content", "alternativeUrls", base.getUser()), lit); - } - } + if (!string.IsNullOrWhiteSpace(altUrlsText)) + { + lit = new Literal(); + lit.Text = altUrlsText; + linkProps.addProperty(ui.Text("content", "alternativeUrls", base.getUser()), lit); + } + } - void UpdateNiceUrls() - { - if (!_documentHasPublishedVersion) - { - UpdateNiceUrlProperties("" + ui.Text("content", "itemNotPublished", base.getUser()) + "", null); - return; - } + void UpdateNiceUrls() + { + if (!_documentHasPublishedVersion) + { + UpdateNiceUrlProperties("" + ui.Text("content", "itemNotPublished", base.getUser()) + "", null); + return; + } - var niceUrlProvider = Umbraco.Web.UmbracoContext.Current.RoutingContext.NiceUrlProvider; - var url = niceUrlProvider.GetNiceUrl(_document.Id); - string niceUrlText = null; - var altUrlsText = new System.Text.StringBuilder(); + var niceUrlProvider = Umbraco.Web.UmbracoContext.Current.RoutingContext.NiceUrlProvider; + var url = niceUrlProvider.GetNiceUrl(_document.Id); + string niceUrlText = null; + var altUrlsText = new System.Text.StringBuilder(); - if (url == "#") - { - // document as a published version yet it's url is "#" => a parent must be - // unpublished, walk up the tree until we find it, and report. - var parent = _document; - do - { - parent = parent.ParentId > 0 ? new Document(parent.ParentId) : null; - } - while (parent != null && parent.Published); + if (url == "#") + { + // document as a published version yet it's url is "#" => a parent must be + // unpublished, walk up the tree until we find it, and report. + var parent = _document; + do + { + parent = parent.ParentId > 0 ? new Document(parent.ParentId) : null; + } + while (parent != null && parent.Published); - if (parent == null) // oops - internal error - niceUrlText = "" + ui.Text("content", "parentNotPublished", "???", base.getUser()) + ""; - else - niceUrlText = "" + ui.Text("content", "parentNotPublished", parent.Text, base.getUser()) + ""; - } - else - { - niceUrlText = string.Format("{0}", url); + if (parent == null) // oops - internal error + niceUrlText = "" + ui.Text("content", "parentNotPublished", "???", base.getUser()) + ""; + else + niceUrlText = "" + ui.Text("content", "parentNotPublished", parent.Text, base.getUser()) + ""; + } + else + { + niceUrlText = string.Format("{0}", url); - foreach (var altUrl in niceUrlProvider.GetAllAbsoluteNiceUrls(_document.Id).Where(u => u != url)) - altUrlsText.AppendFormat("{0}
", altUrl); - } + foreach (var altUrl in niceUrlProvider.GetAllAbsoluteNiceUrls(_document.Id).Where(u => u != url)) + altUrlsText.AppendFormat("{0}
", altUrl); + } - UpdateNiceUrlProperties(niceUrlText, altUrlsText.ToString()); - } + UpdateNiceUrlProperties(niceUrlText, altUrlsText.ToString()); + } /// /// Clears the page of all controls and shows a simple message. Used if users don't have visible access to the page. @@ -448,9 +450,22 @@ namespace umbraco.cms.presentation { menu.InsertSplitter(2); uicontrols.MenuIconI menuItem = menu.NewIcon(3); - menuItem.AltText = ui.Text("buttons", "showPage", this.getUser()); - menuItem.OnClickCommand = "window.open('dialogs/preview.aspx?id=" + id + "','umbPreview')"; menuItem.ImageURL = SystemDirectories.Umbraco + "/images/editor/vis.gif"; + // Fix for U4-682, if there's no template, disable the preview button + if (_document.Template != -1) + { + menuItem.AltText = ui.Text("buttons", "showPage", this.getUser()); + menuItem.OnClickCommand = "window.open('dialogs/preview.aspx?id=" + id + "','umbPreview')"; + } + else + { + string showPageDisabledText = ui.Text("buttons", "showPageDisabled", this.getUser()); + if (showPageDisabledText.StartsWith("[")) + showPageDisabledText = ui.GetText("buttons", "showPageDisabled", null, "en"); ; + menu.NewElement("PreviewDisabled", "previewDisabled", "disabled", 0); + menuItem.AltText = showPageDisabledText; + ((Image) menuItem).Attributes.Add("style", "opacity: 0.5"); + } } } diff --git a/src/umbraco.cms/businesslogic/template/Template.cs b/src/umbraco.cms/businesslogic/template/Template.cs index fd9e9eda63..dc55ce4a89 100644 --- a/src/umbraco.cms/businesslogic/template/Template.cs +++ b/src/umbraco.cms/businesslogic/template/Template.cs @@ -459,7 +459,12 @@ namespace umbraco.cms.businesslogic.template } } - public static Template GetByAlias(string Alias, bool useCache = false) + public static Template GetByAlias(string Alias) + { + return GetByAlias(Alias, false); + } + + public static Template GetByAlias(string Alias, bool useCache) { if (!useCache) { diff --git a/src/umbraco.editorControls/numberfield/DataInteger.cs b/src/umbraco.editorControls/numberfield/DataInteger.cs index 2144be1ec0..2fc4be2d5a 100644 --- a/src/umbraco.editorControls/numberfield/DataInteger.cs +++ b/src/umbraco.editorControls/numberfield/DataInteger.cs @@ -9,11 +9,15 @@ namespace umbraco.editorControls.numberfield { public DataInteger(cms.businesslogic.datatype.BaseDataType DataType) : base(DataType) {} - public override void MakeNew(int PropertyId) { + public override void MakeNew(int PropertyId) + { this.PropertyId = PropertyId; string defaultValue = ((DefaultPrevalueEditor) _dataType.PrevalueEditor).Prevalue; + if (defaultValue.Trim() != "") - this.Value = defaultValue; + { + this.Value = defaultValue; + } } } } diff --git a/src/umbraco.editorControls/numberfield/DataTypeInteger.cs b/src/umbraco.editorControls/numberfield/DataTypeInteger.cs index cbf4dac99c..778cfd5d09 100644 --- a/src/umbraco.editorControls/numberfield/DataTypeInteger.cs +++ b/src/umbraco.editorControls/numberfield/DataTypeInteger.cs @@ -13,30 +13,42 @@ namespace umbraco.editorControls.numberfield public override string DataTypeName { - get {return "Integer";} + get + { + return "Integer"; + } } public override Guid Id { - get {return new Guid("1413afcb-d19a-4173-8e9a-68288d2a73b8");} + get + { + return new Guid("1413afcb-d19a-4173-8e9a-68288d2a73b8"); + } } - public override interfaces.IDataPrevalue PrevalueEditor - { - get - { - if (_prevalueeditor == null) - _prevalueeditor = new DefaultPrevalueEditor(this,true); - return _prevalueeditor; - } - } + public override interfaces.IDataPrevalue PrevalueEditor + { + get + { + if (_prevalueeditor == null) + { + _prevalueeditor = new DefaultPrevalueEditor(this, false); + } + + return _prevalueeditor; + } + } public override interfaces.IDataEditor DataEditor { get { - if (_Editor == null) - _Editor = new numberField(Data); + if (_Editor == null) + { + _Editor = new numberField(Data); + } + return _Editor; } } @@ -45,11 +57,13 @@ namespace umbraco.editorControls.numberfield { get { - if (_baseData == null) - _baseData = new DataInteger(this); + if (_baseData == null) + { + _baseData = new DataInteger(this); + } + return _baseData; } } - } } diff --git a/src/umbraco.editorControls/numberfield/numberField.cs b/src/umbraco.editorControls/numberfield/numberField.cs index 0d2651baec..d0384ef41b 100644 --- a/src/umbraco.editorControls/numberfield/numberField.cs +++ b/src/umbraco.editorControls/numberfield/numberField.cs @@ -1,62 +1,85 @@ using System; using System.Web.UI; using System.Web.UI.WebControls; -using System.ComponentModel; namespace umbraco.editorControls { - public class numberField : System.Web.UI.WebControls.TextBox, interfaces.IDataEditor + public class numberField : TextBox, interfaces.IDataEditor { private interfaces.IData _data; - public numberField(interfaces.IData Data) { + + public numberField(interfaces.IData Data) + { _data = Data; } - - - public Control Editor { - get{return this;} + public Control Editor + { + get + { + return this; + } } + public virtual bool TreatAsRichTextEditor { - get {return false;} + get + { + return false; + } } + public bool ShowLabel { - get {return true;} + get + { + return true; + } } public void Save() { if (Text.Trim() != "") - _data.Value = Text; + { + _data.Value = Text; + } else + { _data.Value = null; + } } protected override void OnInit(EventArgs e) { base.OnInit (e); - CssClass = "umbEditorNumberField"; + + this.CssClass = "umbEditorNumberField"; + // load data - if (_data != null && _data.Value != null) - this.Text = _data.Value.ToString(); - } - - public override string Text - { - get { return base.Text; } - set { - try { - if (value != null) - base.Text = Convert.ToInt32(value).ToString(); - } - catch { - base.Text = ""; - System.Web.HttpContext.Current.Trace.Warn("Numberfield", "Value has to be an integer (" + value + ")"); - } - } + if (_data != null && _data.Value != null) + { + this.Text = _data.Value.ToString(); + } } + /// + /// The setter ensures that only valid integers are saved - this is to prevent invalid types from being saved into an int db field + /// + public override string Text + { + get + { + return base.Text; + } + set + { + int integer; + + if (int.TryParse(value, out integer)) + { + base.Text = integer.ToString(); + } + } + } } }