public override IDictionary <string, object> ToValueEditor(object configuration) { var config = base.ToValueEditor(configuration); if (config.TryGetValue(Items, out var items) && items is JArray array && array.Count > 0) { var types = new List <Type>(); foreach (var item in array) { var type = TypeFinder.GetTypeByName(item.Value <string>()); if (type != null) { types.Add(type); } } config[Items] = _service.GetConfigurationEditors <IConfigurationEditorItem>(types); config[OrderBy] = string.Empty; // Set to empty, so to preserve the selected order. } if (config.ContainsKey(OverlayView) == false) { config.Add(OverlayView, IOHelper.ResolveUrl(ConfigurationEditorDataEditor.DataEditorOverlayViewPath)); } return(config); }
public DataListConfigurationEditor() : base() { var defaultConfigEditorConfig = new Dictionary <string, object> { { MaxItemsConfigurationField.MaxItems, 1 }, { DisableSortingConfigurationField.DisableSorting, Constants.Values.True }, { ConfigurationEditorConfigurationEditor.OverlaySize, ConfigurationEditorConfigurationEditor.OverlaySizeConfigurationField.Large }, { ConfigurationEditorConfigurationEditor.OverlayView, IOHelper.ResolveUrl(ConfigurationEditorDataEditor.DataEditorOverlayViewPath) }, { ConfigurationEditorConfigurationEditor.EnableDevMode, Constants.Values.False }, }; var service = new ConfigurationEditorService(); var dataSources = service.GetConfigurationEditors <IDataListSource>(); var listEditors = service.GetConfigurationEditors <IDataListEditor>(); Fields.Add( DataSource, "Data source", "Select and configure the data source.", IOHelper.ResolveUrl(ConfigurationEditorDataEditor.DataEditorViewPath), new Dictionary <string, object>(defaultConfigEditorConfig) { { ConfigurationEditorConfigurationEditor.Items, dataSources } }); Fields.Add( ListEditor, "List editor", "Select and configure the type of editor for the data list.", IOHelper.ResolveUrl(ConfigurationEditorDataEditor.DataEditorViewPath), new Dictionary <string, object>(defaultConfigEditorConfig) { { ConfigurationEditorConfigurationEditor.Items, listEditors } }); Fields.AddHideLabel(); }
public ConfigurationEditorConfigurationEditor() : base() { _service = new ConfigurationEditorService(); var configEditors = _service.GetConfigurationEditors <IConfigurationEditorItem>(onlyPublic: true, ignoreFields: true); var items = new List <DataListItem>(); foreach (var configEditor in configEditors) { items.Add(new DataListItem { Icon = configEditor.Icon, Name = configEditor.Name, Description = configEditor.Description, Value = configEditor.Type }); } Fields.Add( Items, nameof(Items), "Select the configuration editors to use.", IOHelper.ResolveUrl(ItemPickerDataEditor.DataEditorViewPath), new Dictionary <string, object> { { AllowDuplicatesConfigurationField.AllowDuplicates, Constants.Values.False }, { ItemPickerConfigurationEditor.Items, items }, { ItemPickerTypeConfigurationField.ListType, ItemPickerTypeConfigurationField.List }, { ItemPickerConfigurationEditor.OverlayView, IOHelper.ResolveUrl(ItemPickerDataEditor.DataEditorOverlayViewPath) }, { ItemPickerConfigurationEditor.EnableDevMode, Constants.Values.False }, }); Fields.Add( EnableFilter, "Enable filter?", "Select to enable the search filter in the overlay selection panel.", "boolean"); Fields.Add(new OverlaySizeConfigurationField()); Fields.AddMaxItems(); Fields.AddDisableSorting(); Fields.AddHideLabel(); }