Fix datetime field setting while editor validating (#8080)

This commit is contained in:
Chaleomkiat Munkong
2018-07-13 02:02:43 +07:00
committed by Sébastien Ros
parent 28c547ba79
commit 3bcfb049b2

View File

@@ -20,12 +20,7 @@ namespace Orchard.Fields.Settings {
public override IEnumerable<TemplateViewModel> PartFieldEditor(ContentPartFieldDefinition definition) { public override IEnumerable<TemplateViewModel> PartFieldEditor(ContentPartFieldDefinition definition) {
if (definition.FieldDefinition.Name == "DateTimeField") { if (definition.FieldDefinition.Name == "DateTimeField") {
var model = definition.Settings.GetModel<DateTimeFieldSettings>(); var model = definition.Settings.GetModel<DateTimeFieldSettings>();
model.Editor = new DateTimeEditor() { model.Editor = InitialDateTimeEditor(model.DefaultValue);
ShowDate = true,
ShowTime = true,
Date = _dateLocalizationServices.ConvertToLocalizedDateString(model.DefaultValue),
Time = _dateLocalizationServices.ConvertToLocalizedTimeString(model.DefaultValue),
};
yield return DefinitionTemplate(model); yield return DefinitionTemplate(model);
} }
} }
@@ -44,9 +39,23 @@ namespace Orchard.Fields.Settings {
builder.WithSetting("DateTimeFieldSettings.TimePlaceholder", model.TimePlaceholder); builder.WithSetting("DateTimeFieldSettings.TimePlaceholder", model.TimePlaceholder);
model.DefaultValue = model.Editor == null ? model.DefaultValue : _dateLocalizationServices.ConvertFromLocalizedString(model.Editor.Date, model.Editor.Time); model.DefaultValue = model.Editor == null ? model.DefaultValue : _dateLocalizationServices.ConvertFromLocalizedString(model.Editor.Date, model.Editor.Time);
builder.WithSetting("DateTimeFieldSettings.DefaultValue", model.DefaultValue.HasValue ? model.DefaultValue.Value.ToString(CultureInfo.InvariantCulture) : String.Empty); builder.WithSetting("DateTimeFieldSettings.DefaultValue", model.DefaultValue.HasValue ? model.DefaultValue.Value.ToString(CultureInfo.InvariantCulture) : String.Empty);
model.Editor = InitialDateTimeEditor(model.DefaultValue, model.Display);
yield return DefinitionTemplate(model); yield return DefinitionTemplate(model);
} }
} }
private DateTimeEditor InitialDateTimeEditor(DateTime? value, DateTimeFieldDisplays displays = DateTimeFieldDisplays.DateAndTime)
{
var showDate = displays == DateTimeFieldDisplays.DateAndTime || displays == DateTimeFieldDisplays.DateOnly;
var showTime = displays == DateTimeFieldDisplays.DateAndTime || displays == DateTimeFieldDisplays.TimeOnly;
var editor = new DateTimeEditor()
{
ShowDate = showDate,
ShowTime = showTime,
Date = value != null ? _dateLocalizationServices.ConvertToLocalizedDateString(value) : null,
Time = value != null ? _dateLocalizationServices.ConvertToLocalizedTimeString(value) : null
};
return editor;
}
} }
} }