Fixing that the content fields' values in a new content item were reset when building their editor (#7505) (#7507)

Fixes #7505
This commit is contained in:
Benedek Farkas
2017-01-12 21:13:42 +01:00
committed by Sébastien Ros
parent ddfcfd7379
commit 863d2e4e6b
7 changed files with 12 additions and 8 deletions

View File

@@ -46,7 +46,7 @@ namespace Orchard.Core.Common.Drivers {
return ContentShape("Fields_Common_Text_Edit", GetDifferentiator(field, part),
() => {
var settings = field.PartFieldDefinition.Settings.GetModel<TextFieldSettings>();
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,

View File

@@ -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<BooleanFieldSettings>();
field.Value = settings.DefaultValue;
}

View File

@@ -75,7 +75,7 @@ namespace Orchard.Fields.Drivers {
protected override DriverResult Editor(ContentPart part, DateTimeField field, dynamic shapeHelper) {
var settings = field.PartFieldDefinition.Settings.GetModel<DateTimeFieldSettings>();
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.

View File

@@ -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<EnumerationFieldSettings>();
if (!String.IsNullOrWhiteSpace(settings.DefaultValue)) {
field.Value = settings.DefaultValue;

View File

@@ -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<InputFieldSettings>();
field.Value = settings.DefaultValue;
}

View File

@@ -39,8 +39,12 @@ namespace Orchard.Fields.Drivers {
() => {
if (part.IsNew()) {
var settings = field.PartFieldDefinition.Settings.GetModel<LinkFieldSettings>();
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));
});

View File

@@ -44,7 +44,7 @@ namespace Orchard.Fields.Drivers {
return ContentShape("Fields_Numeric_Edit", GetDifferentiator(field, part),
() => {
var settings = field.PartFieldDefinition.Settings.GetModel<NumericFieldSettings>();
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,