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();
+ }
+ }
+ }
}
}