diff --git a/src/Orchard.Web/Core/Common/Drivers/TextFieldDriver.cs b/src/Orchard.Web/Core/Common/Drivers/TextFieldDriver.cs index 8b8b92abc..868b1c8ca 100644 --- a/src/Orchard.Web/Core/Common/Drivers/TextFieldDriver.cs +++ b/src/Orchard.Web/Core/Common/Drivers/TextFieldDriver.cs @@ -46,7 +46,7 @@ namespace Orchard.Core.Common.Drivers { return ContentShape("Fields_Common_Text_Edit", GetDifferentiator(field, part), () => { var settings = field.PartFieldDefinition.Settings.GetModel(); - var text = part.IsNew() ? settings.DefaultValue : field.Value; + var text = part.IsNew() && String.IsNullOrEmpty(field.Value) ? settings.DefaultValue : field.Value; var viewModel = new TextFieldDriverViewModel { Field = field, diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/BooleanFieldDriver.cs b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/BooleanFieldDriver.cs index 012009b37..116c3a013 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/BooleanFieldDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/BooleanFieldDriver.cs @@ -36,7 +36,7 @@ namespace Orchard.Fields.Drivers { protected override DriverResult Editor(ContentPart part, BooleanField field, dynamic shapeHelper) { return ContentShape("Fields_Boolean_Edit", GetDifferentiator(field, part), () => { - if (part.IsNew()) { + if (part.IsNew() && field.Value == null) { var settings = field.PartFieldDefinition.Settings.GetModel(); field.Value = settings.DefaultValue; } diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/DateTimeFieldDriver.cs b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/DateTimeFieldDriver.cs index 3fc41bd69..8fac42140 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/DateTimeFieldDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/DateTimeFieldDriver.cs @@ -75,7 +75,7 @@ namespace Orchard.Fields.Drivers { protected override DriverResult Editor(ContentPart part, DateTimeField field, dynamic shapeHelper) { var settings = field.PartFieldDefinition.Settings.GetModel(); - var value = part.IsNew() ? settings.DefaultValue : field.DateTime; + var value = part.IsNew() && field.DateTime == default(DateTime) ? settings.DefaultValue : field.DateTime; var options = new DateLocalizationOptions(); // Don't do any time zone conversion if field is semantically a date-only field, because that might mutate the date component. diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/EnumerationFieldDriver.cs b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/EnumerationFieldDriver.cs index 3f5f379f6..d452fd673 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/EnumerationFieldDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/EnumerationFieldDriver.cs @@ -36,7 +36,7 @@ namespace Orchard.Fields.Drivers { protected override DriverResult Editor(ContentPart part, EnumerationField field, dynamic shapeHelper) { return ContentShape("Fields_Enumeration_Edit", GetDifferentiator(field, part), () => { - if (part.IsNew()) { + if (part.IsNew() && String.IsNullOrEmpty(field.Value)) { var settings = field.PartFieldDefinition.Settings.GetModel(); if (!String.IsNullOrWhiteSpace(settings.DefaultValue)) { field.Value = settings.DefaultValue; diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/InputFieldDriver.cs b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/InputFieldDriver.cs index 1300df8c1..d835b43fe 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/InputFieldDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/InputFieldDriver.cs @@ -36,7 +36,7 @@ namespace Orchard.Fields.Drivers { protected override DriverResult Editor(ContentPart part, InputField field, dynamic shapeHelper) { return ContentShape("Fields_Input_Edit", GetDifferentiator(field, part), () => { - if (part.IsNew()) { + if (part.IsNew() && String.IsNullOrEmpty(field.Value)) { var settings = field.PartFieldDefinition.Settings.GetModel(); field.Value = settings.DefaultValue; } diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/LinkFieldDriver.cs b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/LinkFieldDriver.cs index 3fa307725..8b1a86d2e 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/LinkFieldDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/LinkFieldDriver.cs @@ -39,8 +39,12 @@ namespace Orchard.Fields.Drivers { () => { if (part.IsNew()) { var settings = field.PartFieldDefinition.Settings.GetModel(); - field.Value = settings.DefaultValue; - field.Text = settings.TextDefaultValue; + if (String.IsNullOrEmpty(field.Value)) { + field.Value = settings.DefaultValue; + } + if (String.IsNullOrEmpty(field.Text)) { + field.Text = settings.TextDefaultValue; + } } return shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: field, Prefix: GetPrefix(field, part)); }); diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/NumericFieldDriver.cs b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/NumericFieldDriver.cs index 651d6ba8f..a1dfd46bc 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Drivers/NumericFieldDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Fields/Drivers/NumericFieldDriver.cs @@ -44,7 +44,7 @@ namespace Orchard.Fields.Drivers { return ContentShape("Fields_Numeric_Edit", GetDifferentiator(field, part), () => { var settings = field.PartFieldDefinition.Settings.GetModel(); - var value = part.IsNew() ? settings.DefaultValue : Convert.ToString(field.Value, _cultureInfo.Value); + var value = part.IsNew() && field.Value == null ? settings.DefaultValue : Convert.ToString(field.Value, _cultureInfo.Value); var model = new NumericFieldViewModel { Field = field,