public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var folderToken = (NamespaceFolderEntityToken)token; var elements = FormElementProviderEntityTokenHandler.GetNamespaceAndFormElements(context, folderToken.Namespace); return(elements); }
public AssociatedDataElementProviderHelper(ElementProviderContext elementProviderContext, EntityToken rootEntityToken, bool addVisualFunctionActions) { if (elementProviderContext == null) { throw new ArgumentNullException("elementProviderContext"); } if (rootEntityToken == null) { throw new ArgumentNullException("rootEntityToken"); } _elementProviderContext = elementProviderContext; _rootEntityToken = rootEntityToken; _addVisualFunctionActions = addVisualFunctionActions; _dataGroupingProviderHelper = new DataGroupingProviderHelper.DataGroupingProviderHelper(elementProviderContext) { OnOwnsType = type => typeof(IPageFolderData).IsAssignableFrom(type) || typeof(IPageDataFolder).IsAssignableFrom(type), OnCreateLeafElement = this.CreateElement, OnCreateDisabledLeafElement = data => ShowForeignElement(data, false), OnCreateGhostedLeafElement = data => ShowForeignElement(data, true), OnGetRootParentEntityToken = this.GetParentEntityToken, OnGetLeafsFilter = this.GetLeafsFilter, OnGetPayload = this.GetPayload }; AuxiliarySecurityAncestorFacade.AddAuxiliaryAncestorProvider <DataEntityToken>(this); }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var dataToken = (DataEntityToken)token; if (!(dataToken.Data is IModelReference modelReference)) { yield break; } var dataId = (ModelReferenceId)modelReference.DataSourceId.DataId; if (dataId.Source != typeof(POCOModelsProvider).Name) { yield break; } var fieldsElementHandle = context.CreateElementHandle(new FormFolderEntityToken(modelReference.Name, "Fields")); var fieldsElement = new Element(fieldsElementHandle) { VisualData = new ElementVisualizedData { Label = "Fields", ToolTip = "Fields", HasChildren = true, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; yield return(fieldsElement); }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var validatorToken = (FieldValidatorsEntityToken)token; var form = DynamicFormsFacade.GetFormByName(validatorToken.FormName); if (String.IsNullOrEmpty(validatorToken.Type)) { if (form != null) { var field = form.Model.Fields.Get(validatorToken.FieldName); if (field != null) { foreach (var validator in field.ValidationAttributes) { var validatorType = validator.GetType(); var fieldValidatorElementHandle = context.CreateElementHandle(new FieldValidatorsEntityToken(form.Name, field.Name, validator.GetType())); var fieldValidatorElement = new Element(fieldValidatorElementHandle) { VisualData = new ElementVisualizedData { Label = validator.AttributeName(), ToolTip = validator.AttributeName(), HasChildren = false, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var editActionToken = new WorkflowActionToken(typeof(EditFieldValidatorWorkflow)); fieldValidatorElement.AddAction(new ElementAction(new ActionHandle(editActionToken)) { VisualData = new ActionVisualizedData { Label = "Edit", ToolTip = "Edit", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); var deleteActionToken = new ConfirmWorkflowActionToken("Delete: " + validator.AttributeName(), typeof(DeleteFieldValidatorActionToken)); fieldValidatorElement.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = "Delete", ToolTip = "Delete", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-delete"), ActionLocation = ActionLocation } }); yield return(fieldValidatorElement); } } } } }
private IEnumerable <Element> getFormSubmitHandlerElements(ElementProviderContext context, FormFolderEntityToken folder) { var definition = DefinitionsFacade.GetDefinition(folder.FormName); if (definition == null) { yield break; } foreach (var handler in definition.SubmitHandlers) { var elementHandle = context.CreateElementHandle(new FormSubmitHandlerEntityToken(handler.GetType(), folder.FormName, handler.Name)); var handlerElement = new Element(elementHandle) { VisualData = new ElementVisualizedData { Label = handler.Name, ToolTip = handler.Name, HasChildren = false, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var editWorkflowAttribute = handler.GetType().GetCustomAttributes(true).OfType <EditWorkflowAttribute>().FirstOrDefault(); if (editWorkflowAttribute != null) { var editActionToken = new WorkflowActionToken(editWorkflowAttribute.EditWorkflowType); handlerElement.AddAction(new ElementAction(new ActionHandle(editActionToken)) { VisualData = new ActionVisualizedData { Label = "Edit", ToolTip = "Edit", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); } var deleteActionToken = new ConfirmWorkflowActionToken("Delete: " + handler.Name, typeof(DeleteSubmitHandlerActionToken)); handlerElement.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = "Delete", ToolTip = "Delete", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-delete"), ActionLocation = ActionLocation } }); yield return(handlerElement); } }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var formFolderToken = (FormFolderEntityToken)token; switch (formFolderToken.FolderType) { case "SubmitHandlers": return(getFormSubmitHandlerElements(context, formFolderToken)); case "Steps": return(getWizardStepElements(context, formFolderToken)); } return(Enumerable.Empty <Element>()); }
private IEnumerable <Element> getWizardStepElements(ElementProviderContext context, FormFolderEntityToken folder) { var wizard = (DynamicWizardDefinition)DefinitionsFacade.GetDefinition(folder.FormName); if (wizard == null) { yield break; } foreach (var step in wizard.Model.Steps) { var elementHandle = context.CreateElementHandle(new FormWizardStepEntityToken(wizard.Name, step.Name)); var wizardStepElement = new Element(elementHandle) { VisualData = new ElementVisualizedData { Label = step.Name, ToolTip = step.Name, HasChildren = false, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var editActionToken = new WorkflowActionToken(typeof(EditWizardStepWorkflow)); wizardStepElement.AddAction(new ElementAction(new ActionHandle(editActionToken)) { VisualData = new ActionVisualizedData { Label = "Edit step", ToolTip = "Edit step", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); var deleteActionToken = new ConfirmWorkflowActionToken("Delete step", typeof(DeleteFormWizardStepActionToken)); wizardStepElement.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = "Delete step", ToolTip = "Delete step", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-delete"), ActionLocation = ActionLocation } }); yield return(wizardStepElement); } }
public DataGroupingProviderHelper(ElementProviderContext elementProviderContext) { _elementProviderContext = elementProviderContext; _undefinedLabelValue = StringResourceSystemFacade.GetString("Composite.Plugins.GeneratedDataTypesElementProvider", "UndefinedLabelTemplate"); this.FolderOpenIcon = GetIconHandle("datagroupinghelper-folder-open"); this.FolderClosedIcon = GetIconHandle("datagroupinghelper-folder-closed"); this.OnCreateLeafElement = d => new Element(_elementProviderContext.CreateElementHandle(d.GetDataEntityToken())); this.OnGetDataScopeIdentifier = t => DataScopeIdentifier.Administrated; this.OnAddActions = (e, p) => e; AuxiliarySecurityAncestorFacade.AddAuxiliaryAncestorProvider <DataEntityToken>(this); AuxiliarySecurityAncestorFacade.AddAuxiliaryAncestorProvider <DataGroupingProviderHelperEntityToken>(this); }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var ns = String.Empty; var nsToken = token as NamespaceFolderEntityToken; if (nsToken != null) { ns = nsToken.Namespace; } foreach (var el in GetNamespaceAndResourceElements(context, ns)) { yield return(el); } }
public static Element CreateElement(ElementProviderContext context, string label, string ns) { var folderHandle = context.CreateElementHandle(new NamespaceFolderEntityToken(ns)); var folderElement = new Element(folderHandle) { VisualData = new ElementVisualizedData { Label = label, ToolTip = label, HasChildren = true, Icon = ResourceHandle.BuildIconFromDefaultProvider("datagroupinghelper-folder-closed"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("datagroupinghelper-folder-open") } }; return(folderElement); }
public static Element CreateElement(ElementProviderContext context, string source, string label, string ns) { using (var data = new DataConnection()) { var folderHandle = context.CreateElementHandle(new NamespaceFolderEntityToken(source, ns)); var folderElement = new Element(folderHandle) { VisualData = new ElementVisualizedData { Label = label, ToolTip = label, HasChildren = data.Get <IModelReference>().Any(m => m.Name.StartsWith(ns + ".")), Icon = ResourceHandle.BuildIconFromDefaultProvider("datagroupinghelper-folder-closed"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("datagroupinghelper-folder-open") } }; return(folderElement); } }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var resourceSet = String.Empty; var ns = String.Empty; if (token is LocalizationEntityToken localizationEntityToken) { resourceSet = localizationEntityToken.ResourceSet; } if (token is NamespaceFolderEntityToken namespaceToken) { ns = namespaceToken.Namespace; } foreach (var el in GetNamespaceAndResourceElements(context, resourceSet, ns)) { yield return(el); } }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var folder = (FormFolderEntityToken)token; if (folder.FolderType != "Fields") { yield break; } var form = ModelsFacade.GetModel(folder.FormName); if (form == null) { yield break; } if (_entityTokenHandlers == null) { _entityTokenHandlers = new ProviderContainer <IElementProviderFor>("FormBuilder"); } foreach (var field in form.Fields) { var elementHandle = context.CreateElementHandle(new FormFieldEntityToken(form.Name, field.Name)); var fieldElement = new Element(elementHandle) { VisualData = new ElementVisualizedData { Label = field.Name, ToolTip = field.Name, HasChildren = _entityTokenHandlers.GetProvidersFor(elementHandle.EntityToken).Any(), Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; yield return(fieldElement); } }
public static Element CreateElement(ElementProviderContext context, string label, string resourceSet, string ns) { var folderHandle = context.CreateElementHandle(new NamespaceFolderEntityToken(resourceSet, ns)); if (String.IsNullOrEmpty(resourceSet)) { var dragAndDropInfo = new ElementDragAndDropInfo(typeof(NamespaceFolderEntityToken)); dragAndDropInfo.AddDropType(typeof(NamespaceFolderEntityToken)); dragAndDropInfo.AddDropType(typeof(IResourceKey)); dragAndDropInfo.SupportsIndexedPosition = false; return(new Element(folderHandle, dragAndDropInfo) { VisualData = new ElementVisualizedData { Label = label, ToolTip = label, HasChildren = true, Icon = ResourceHandle.BuildIconFromDefaultProvider("datagroupinghelper-folder-closed"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("datagroupinghelper-folder-open") } }); } return(new Element(folderHandle) { VisualData = new ElementVisualizedData { Label = label, ToolTip = label, HasChildren = true, Icon = ResourceHandle.BuildIconFromDefaultProvider("datagroupinghelper-folder-closed"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("datagroupinghelper-folder-open") } }); }
public DataGroupingProviderHelper(ElementProviderContext elementProviderContext) { _elementProviderContext = elementProviderContext; _undefinedLabelValue = StringResourceSystemFacade.GetString("Composite.Plugins.GeneratedDataTypesElementProvider", "UndefinedLabelTemplate"); this.FolderOpenIcon = GetIconHandle("datagroupinghelper-folder-open"); this.FolderClosedIcon = GetIconHandle("datagroupinghelper-folder-closed"); this.OnCreateLeafElement = d => new Element(_elementProviderContext.CreateElementHandle(d.GetDataEntityToken())); this.OnGetDataScopeIdentifier = t => DataScopeIdentifier.Administrated; this.OnAddActions = (e, p) => e; AuxiliarySecurityAncestorFacade.AddAuxiliaryAncestorProvider <DataEntityToken>(this); AuxiliarySecurityAncestorFacade.AddAuxiliaryAncestorProvider <DataGroupingProviderHelperEntityToken>(this); DataEventSystemFacade.SubscribeToDataAfterUpdate(typeof(IData), (sender, args) => { if (!OnOwnsType(args.DataType)) { return; } var dataTypeDescriptor = DynamicTypeManager.GetDataTypeDescriptor(args.DataType); IEnumerable <DataFieldDescriptor> groupingDataFieldDescriptors = from dfd in dataTypeDescriptor.Fields where dfd.GroupByPriority != 0 orderby dfd.GroupByPriority select dfd; if (groupingDataFieldDescriptors.Any()) { EntityTokenCacheFacade.ClearCache(args.Data.GetDataEntityToken()); } }, false); }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var modelReference = (IModelReference)((DataEntityToken)token).Data; if (modelReference == null) { yield break; } var def = DefinitionsFacade.GetDefinition(modelReference.Name); if (def == null) { yield break; } if (def is DynamicFormDefinition) { var fieldsElementHandle = context.CreateElementHandle(new FormFolderEntityToken(modelReference.Name, "Fields")); var fieldsElement = new Element(fieldsElementHandle) { VisualData = new ElementVisualizedData { Label = "Fields", ToolTip = "Fields", HasChildren = true, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var addActionToken = new WorkflowActionToken(typeof(AddFormFieldWorkflow), new[] { PermissionType.Add }); fieldsElement.AddAction(new ElementAction(new ActionHandle(addActionToken)) { VisualData = new ActionVisualizedData { Label = "Add field", ToolTip = "Add field", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); var url = String.Format("InstalledPackages/CompositeC1Contrib.FormBuilder.Dynamic/SortFormFields.aspx?formName={0}", modelReference.Name); var sortActionToken = new UrlActionToken("Sort fields", UrlUtils.ResolveAdminUrl(url), new[] { PermissionType.Edit }); fieldsElement.AddAction(new ElementAction(new ActionHandle(sortActionToken)) { VisualData = new ActionVisualizedData { Label = "Sort fields", ToolTip = "Sort fields", Icon = ResourceHandle.BuildIconFromDefaultProvider("cut"), ActionLocation = ActionLocation } }); yield return(fieldsElement); } if (def is DynamicWizardDefinition) { var stepsFolderElementHandle = context.CreateElementHandle(new FormFolderEntityToken(modelReference.Name, "Steps")); var stepsFolderElement = new Element(stepsFolderElementHandle) { VisualData = new ElementVisualizedData { Label = "Steps", ToolTip = "Steps", HasChildren = true, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var addActionToken = new WorkflowActionToken(typeof(AddWizardStepWorkflow), new[] { PermissionType.Add }); stepsFolderElement.AddAction(new ElementAction(new ActionHandle(addActionToken)) { VisualData = new ActionVisualizedData { Label = "Add step", ToolTip = "Add step", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); var url = String.Format("InstalledPackages/CompositeC1Contrib.FormBuilder.Dynamic/SortWizardSteps.aspx?wizardName={0}", modelReference.Name); var sortActionToken = new UrlActionToken("Sort fields", UrlUtils.ResolveAdminUrl(url), new[] { PermissionType.Edit }); stepsFolderElement.AddAction(new ElementAction(new ActionHandle(sortActionToken)) { VisualData = new ActionVisualizedData { Label = "Sort steps", ToolTip = "Sort steps", Icon = ResourceHandle.BuildIconFromDefaultProvider("cut"), ActionLocation = ActionLocation } }); yield return(stepsFolderElement); } var submitHandlersElementHandle = context.CreateElementHandle(new FormFolderEntityToken(modelReference.Name, "SubmitHandlers")); var submitHandlersElement = new Element(submitHandlersElementHandle) { VisualData = new ElementVisualizedData { Label = "Submit handlers", ToolTip = "Submit handlers", HasChildren = true, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var submitHandlerActionToken = new WorkflowActionToken(typeof(AddSubmitHandlerWorkflow), new[] { PermissionType.Add }); submitHandlersElement.AddAction(new ElementAction(new ActionHandle(submitHandlerActionToken)) { VisualData = new ActionVisualizedData { Label = "Add submit handler", ToolTip = "Add submit handler", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); yield return(submitHandlersElement); }
private static IEnumerable <Element> GetNamespaceAndResourceElements(ElementProviderContext context, string ns) { var resources = LocalizationsFacade.GetResourceKeys(ns); var folders = new List <string>(); var elements = new List <Element>(); foreach (var key in resources) { var label = key.Key; if (label == ns) { continue; } var labelParts = label.Split('.'); if (!String.IsNullOrEmpty(ns)) { var nsParts = ns.Split('.'); if (nsParts.Length > labelParts.Length) { continue; } labelParts = labelParts.Skip(nsParts.Length).ToArray(); label = String.Join(".", labelParts); } if (labelParts.Length > 1) { var folder = labelParts[0]; if (!folders.Contains(folder)) { folders.Add(folder); } } else if (labelParts.Length == 1) { var token = key.GetDataEntityToken(); var dragAndDropInfo = new ElementDragAndDropInfo(typeof(IResourceKey)); dragAndDropInfo.AddDropType(typeof(NamespaceFolderEntityToken)); dragAndDropInfo.SupportsIndexedPosition = false; var elementHandle = context.CreateElementHandle(token); var element = new Element(elementHandle, dragAndDropInfo) { VisualData = new ElementVisualizedData { Label = label, ToolTip = label, HasChildren = false, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var editActionToken = new WorkflowActionToken(typeof(EditResourceWorkflow), new[] { PermissionType.Edit }); element.AddAction(new ElementAction(new ActionHandle(editActionToken)) { VisualData = new ActionVisualizedData { Label = "Edit", ToolTip = "Edit", Icon = new ResourceHandle("Composite.Icons", "generated-type-data-edit"), ActionLocation = Actions.ActionLocation } }); var deleteActionToken = new ConfirmWorkflowActionToken("Are you sure?", typeof(DeleteResourceActionToken)); element.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = "Delete", ToolTip = "Delete", Icon = new ResourceHandle("Composite.Icons", "generated-type-data-delete"), ActionLocation = Actions.ActionLocation } }); elements.Add(element); } } foreach (var folder in folders.OrderBy(f => f)) { var handleNamespace = folder; if (!String.IsNullOrEmpty(ns)) { handleNamespace = ns + "." + handleNamespace; } var folderElement = NamespaceFolderEntityToken.CreateElement(context, folder, handleNamespace); var deleteActionToken = new ConfirmWorkflowActionToken("Are you sure?", typeof(DeleteNamespaceActionToken)); folderElement.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = "Delete", ToolTip = "Delete", Icon = new ResourceHandle("Composite.Icons", "generated-type-data-delete"), ActionLocation = Actions.ActionLocation } }); folderElement.AddAction(Actions.GetAddAction()); folderElement.AddAction(Actions.GetExportAction()); yield return(folderElement); } foreach (var el in elements) { yield return(el); } }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { return(GetNamespaceAndFormElements(context, String.Empty)); }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var dependencyToken = (FieldDependencyEntityToken)token; var form = DynamicFormsFacade.GetFormByName(dependencyToken.FormName); if (form == null) { yield break; } var field = form.Model.Fields.Get(dependencyToken.FieldName); if (field == null) { yield break; } if (String.IsNullOrEmpty(dependencyToken.FromFieldName)) { foreach (var dependency in field.DependencyAttributes) { var fromFieldName = dependency.ReadFromFieldName; var fieldDependencyElementHandle = context.CreateElementHandle(new FieldDependencyEntityToken(form.Name, field.Name, fromFieldName)); var fieldDependencyElement = new Element(fieldDependencyElementHandle) { VisualData = new ElementVisualizedData { Label = fromFieldName, ToolTip = fromFieldName, HasChildren = dependency.ResolveRequiredFieldValues().Any(), Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var editActionToken = new WorkflowActionToken(typeof(EditFieldDependencyWorkflow), new[] { PermissionType.Edit }); fieldDependencyElement.AddAction(new ElementAction(new ActionHandle(editActionToken)) { VisualData = new ActionVisualizedData { Label = "Edit dependency", ToolTip = "Edit dependency", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); var addActionToken = new WorkflowActionToken(typeof(AddFieldDependencyValueWorkflow), new[] { PermissionType.Add }); fieldDependencyElement.AddAction(new ElementAction(new ActionHandle(addActionToken)) { VisualData = new ActionVisualizedData { Label = "Add value", ToolTip = "Add value", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); var deleteActionToken = new ConfirmWorkflowActionToken("Delete: " + fromFieldName, typeof(DeleteFieldDependencyActionToken)); fieldDependencyElement.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = "Delete", ToolTip = "Delete", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-delete"), ActionLocation = ActionLocation } }); yield return(fieldDependencyElement); } } else { var dependency = field.DependencyAttributes.SingleOrDefault(d => d.ReadFromFieldName == dependencyToken.FromFieldName); if (dependency == null) { yield break; } foreach (var value in dependency.ResolveRequiredFieldValues()) { var fieldDependencyValueElementHandle = context.CreateElementHandle(new FieldDependencyValueEntityToken(form.Name, field.Name, dependency.ReadFromFieldName, value.ToString())); var fieldDependencyValueElement = new Element(fieldDependencyValueElementHandle) { VisualData = new ElementVisualizedData { Label = value.ToString(), ToolTip = value.ToString(), HasChildren = false, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var deleteActionToken = new ConfirmWorkflowActionToken("Delete: " + value, typeof(DeleteFieldDependencyValueActionToken)); fieldDependencyValueElement.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = "Delete", ToolTip = "Delete", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-delete"), ActionLocation = ActionLocation } }); yield return(fieldDependencyValueElement); } } }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var fieldToken = (FormFieldEntityToken)token; var form = DynamicFormsFacade.GetFormByName(fieldToken.FormName); if (form == null) { yield break; } var field = form.Model.Fields.Get(fieldToken.FieldName); if (field == null) { yield break; } var fieldValidatorsElementHandle = context.CreateElementHandle(new FieldValidatorsEntityToken(form.Name, field.Name)); var fieldValidatorsElement = new Element(fieldValidatorsElementHandle) { VisualData = new ElementVisualizedData { Label = "Validators", ToolTip = "Validators", HasChildren = field.ValidationAttributes.Any(), Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var addValidatorActionToken = new WorkflowActionToken(typeof(AddFieldValidatorWorkflow), new[] { PermissionType.Add }); fieldValidatorsElement.AddAction(new ElementAction(new ActionHandle(addValidatorActionToken)) { VisualData = new ActionVisualizedData { Label = "Add validator", ToolTip = "Add validator", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); yield return(fieldValidatorsElement); var fieldDependencyElementHandle = context.CreateElementHandle(new FieldDependencyEntityToken(form.Name, field.Name)); var fieldDependencyElement = new Element(fieldDependencyElementHandle) { VisualData = new ElementVisualizedData { Label = "Dependencies", ToolTip = "Dependencies", HasChildren = field.DependencyAttributes.Any(), Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var addDependencyActionToken = new WorkflowActionToken(typeof(AddFieldDependencyWorkflow), new[] { PermissionType.Add }); fieldDependencyElement.AddAction(new ElementAction(new ActionHandle(addDependencyActionToken)) { VisualData = new ActionVisualizedData { Label = "Add dependency", ToolTip = "Add dependency", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); yield return(fieldDependencyElement); var datasourceAttribute = field.Attributes.OfType <DataSourceAttribute>().FirstOrDefault(); if (datasourceAttribute == null) { yield break; } var fieldsElementHandle = context.CreateElementHandle(new DataSourceEntityToken(datasourceAttribute.GetType(), form.Name, field.Name)); var fieldElement = new Element(fieldsElementHandle) { VisualData = new ElementVisualizedData { Label = "Datasource", ToolTip = "Datasource", HasChildren = true, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var deleteActionToken = new ConfirmWorkflowActionToken("Delete datasource", typeof(DeleteDataSourceActionToken)); fieldElement.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = "Delete datasource", ToolTip = "Delete datasource", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-delete"), ActionLocation = ActionLocation } }); if (datasourceAttribute.GetType() == typeof(StringBasedDataSourceAttribute)) { var addActionToken = new WorkflowActionToken(typeof(AddStringBasedDataSourceEntryWorkflow), new[] { PermissionType.Add }); fieldElement.AddAction(new ElementAction(new ActionHandle(addActionToken)) { VisualData = new ActionVisualizedData { Label = "Add value", ToolTip = "Add value", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-edit"), ActionLocation = ActionLocation } }); } yield return(fieldElement); }
public static IEnumerable <Element> GetNamespaceAndFormElements(ElementProviderContext context, string ns) { using (var data = new DataConnection()) { var allModelReferences = data.Get <IModelReference>(); var folders = new List <string>(); var formElements = new List <Element>(); if (String.IsNullOrEmpty(ns)) { var homepageIds = data.Get <IPageStructure>().Where(s => s.ParentId == Guid.Empty).Select(s => s.Id); if (homepageIds.Count() > 1) { folders.AddRange(homepageIds .Select(id => PageManager.GetPageById(id)) .Select(page => SanatizeFormName(page.Title))); } } else { allModelReferences = allModelReferences.Where(def => def.Name.StartsWith(ns + ".")); } foreach (var modelReference in allModelReferences) { var label = modelReference.Name; if (!String.IsNullOrEmpty(ns)) { label = label.Remove(0, ns.Length + 1); } var split = label.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries); if (split.Length > 1) { var folder = split[0]; if (!folders.Contains(folder)) { folders.Add(folder); } } else if (split.Length == 1) { var token = modelReference.GetDataEntityToken(); var elementHandle = context.CreateElementHandle(token); var formElement = new Element(elementHandle) { VisualData = new ElementVisualizedData { Label = label, ToolTip = label, HasChildren = true, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; formElements.Add(formElement); } } foreach (var folder in folders.OrderBy(f => f)) { var handleNamespace = folder; if (!String.IsNullOrEmpty(ns)) { handleNamespace = ns + "." + handleNamespace; } var folderElement = NamespaceFolderEntityToken.CreateElement(context, typeof(FormBuilderElementProvider).Name, folder, handleNamespace); yield return(folderElement); } foreach (var form in formElements) { yield return(form); } } }
public IEnumerable <Element> Provide(ElementProviderContext context, EntityToken token) { var returnList = new List <Element>(); var dataSourceToken = (DataSourceEntityToken)token; var type = Type.GetType(dataSourceToken.Type); if (type != typeof(StringBasedDataSourceAttribute)) { return(returnList); } var form = DynamicFormsFacade.GetFormByName(dataSourceToken.FormName); if (form == null) { return(returnList); } var field = form.Model.Fields.Get(dataSourceToken.FieldName); if (field == null) { return(returnList); } var dataSource = field.DataSource; if (dataSource == null) { return(returnList); } foreach (var entry in dataSource) { var fieldsElementHandle = context.CreateElementHandle(new StringBasedDataSourceEntryEntityToken(form.Name, field.Name, entry.Key)); var fieldElement = new Element(fieldsElementHandle) { VisualData = new ElementVisualizedData { Label = entry.Key, ToolTip = entry.Key, HasChildren = false, Icon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-closed-root"), OpenedIcon = ResourceHandle.BuildIconFromDefaultProvider("localization-element-opened-root") } }; var deleteActionToken = new ConfirmWorkflowActionToken("Delete: " + entry.Key, typeof(DeleteStringBasedDataSourceEntryActionToken)); fieldElement.AddAction(new ElementAction(new ActionHandle(deleteActionToken)) { VisualData = new ActionVisualizedData { Label = "Delete", ToolTip = "Delete", Icon = ResourceHandle.BuildIconFromDefaultProvider("generated-type-data-delete"), ActionLocation = ActionLocation } }); returnList.Add(fieldElement); } return(returnList); }