/// <exclude /> protected sealed override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { FormsWorkflow formsWorkflow = this.GetRoot <FormsWorkflow>(); IFormMarkupProvider markupProvider = new FormDefinitionFileMarkupProvider(this.FormDefinitionFileName); ExternalDataExchangeService externalDataExchangeService = WorkflowFacade.WorkflowRuntime.GetService <ExternalDataExchangeService>(); IFormsWorkflowActivityService service = externalDataExchangeService.GetService(typeof(IFormsWorkflowActivityService)) as IFormsWorkflowActivityService; service.DeliverFormData( WorkflowEnvironment.WorkflowInstanceId, this.ContainerLabel, StandardUiContainerTypes.Document, markupProvider, formsWorkflow.Bindings, formsWorkflow.BindingsValidationRules ); if (string.IsNullOrEmpty(this.CustomToolbarDefinitionFileName) == false) { IFormMarkupProvider customToolbarMarkupProvider = new FormDefinitionFileMarkupProvider(this.CustomToolbarDefinitionFileName); service.DeliverCustomToolbarDefinition(WorkflowEnvironment.WorkflowInstanceId, customToolbarMarkupProvider); } return(ActivityExecutionStatus.Closed); }
private void LoadExtraSettings(FormFieldModel field, XElement bindingsXElement, XElement lastTabElement) { var config = FormBuilderConfiguration.GetSection(); var plugin = (DynamicFormBuilderConfiguration)config.Plugins["dynamic"]; var inputElement = plugin.InputElementHandlers.Single(el => el.ElementType.GetType() == field.InputElementType.GetType()); var settingsHandler = inputElement.SettingsHandler; if (settingsHandler != null) { var formFile = "\\InstalledPackages\\CompositeC1Contrib.FormBuilder.Dynamic\\InputElementSettings\\" + inputElement.Name + ".xml"; var settingsMarkupProvider = new FormDefinitionFileMarkupProvider(formFile); var formDefinitionElement = XElement.Load(settingsMarkupProvider.GetReader()); var settingsTab = new XElement(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder"); var layout = formDefinitionElement.Element(Namespaces.BindingForms10 + FormKeyTagNames.Layout); var bindings = formDefinitionElement.Element(Namespaces.BindingForms10 + FormKeyTagNames.Bindings); settingsTab.Add(new XAttribute("Label", StringResourceSystemFacade.ParseString(inputElement.Name))); settingsTab.Add(layout.Elements()); bindingsXElement.Add(bindings.Elements()); lastTabElement.AddAfterSelf(settingsTab); settingsHandler.Load(field); foreach (var prop in settingsHandler.GetType().GetProperties()) { var value = prop.GetValue(settingsHandler, null); Bindings.Add(prop.Name, value); } } }
private void step1CodeActivity_ShowDocument_ExecuteCode(object sender, EventArgs e) { IFormMarkupProvider markupProvider = new FormDefinitionFileMarkupProvider(@"\Administrative\UserGroupElementProviderEditUserGroupStep1.xml"); XDocument formDocument; using (var reader = markupProvider.GetReader()) { formDocument = XDocument.Load(reader); } XElement bindingsElement = formDocument.Root.Element(DataTypeDescriptorFormsHelper.CmsNamespace + FormKeyTagNames.Bindings); XElement layoutElement = formDocument.Root.Element(DataTypeDescriptorFormsHelper.CmsNamespace + FormKeyTagNames.Layout); XElement placeHolderElement = layoutElement.Element(DataTypeDescriptorFormsHelper.MainNamespace + "PlaceHolder"); IUserGroup userGroup = this.GetBinding <IUserGroup>("UserGroup"); UpdateFormDefinitionWithActivePerspectives(userGroup, bindingsElement, placeHolderElement); UpdateFormDefinitionWithGlobalPermissions(userGroup, bindingsElement, placeHolderElement); var clientValidationRules = new Dictionary <string, List <ClientValidationRule> >(); clientValidationRules.Add("Name", ClientValidationRuleFacade.GetClientValidationRules(userGroup, "Name")); string formDefinition = formDocument.GetDocumentAsString(); this.DeliverFormData( userGroup.Name, StandardUiContainerTypes.Document, formDefinition, this.Bindings, clientValidationRules ); }
protected void SetupFormData(IDynamicDefinition definition, IModel model) { Bindings.Add("Name", definition.Name); Bindings.Add("RequiresCaptcha", model.RequiresCaptcha); Bindings.Add("ForceHttpsConnection", model.ForceHttps); Bindings.Add("IntroText", GetValue("IntroText")); Bindings.Add("SuccessResponse", GetValue("SuccessResponse")); var markupProvider = new FormDefinitionFileMarkupProvider(_formFile); var formDocument = XDocument.Load(markupProvider.GetReader()); var root = formDocument.Root; var tabPanelElements = root?.Element(Namespaces.BindingForms10 + FormKeyTagNames.Layout)?.Element(Namespaces.BindingFormsStdUiControls10 + "TabPanels"); if (tabPanelElements == null) { return; } var bindingsXElement = root.Element(Namespaces.BindingForms10 + FormKeyTagNames.Bindings); var lastTabElement = tabPanelElements.Elements().Last(); LoadExtraSettings(definition, bindingsXElement, lastTabElement); DeliverFormData("EditForm", StandardUiContainerTypes.Document, formDocument.ToString(), Bindings, BindingsValidationRules); }
private void SetupFormData(FormFieldModel field) { var markupProvider = new FormDefinitionFileMarkupProvider("\\InstalledPackages\\CompositeC1Contrib.FormBuilder.Dynamic\\EditFormFieldWorkflow.xml"); var formDocument = XDocument.Load(markupProvider.GetReader()); var layoutXElement = formDocument.Root.Element(Namespaces.BindingForms10 + FormKeyTagNames.Layout); var bindingsXElement = formDocument.Root.Element(Namespaces.BindingForms10 + FormKeyTagNames.Bindings); var tabPanelElements = layoutXElement.Element(Namespaces.BindingFormsStdUiControls10 + "TabPanels"); var lastTabElement = tabPanelElements.Elements().Last(); LoadExtraSettings(field, bindingsXElement, lastTabElement); DeliverFormData("EditFormField", StandardUiContainerTypes.Document, formDocument.ToString(), Bindings, BindingsValidationRules); }
private void LoadExtraSettings(IDynamicDefinition definition, XElement bindingsXElement, XElement lastTabElement) { var config = FormBuilderConfiguration.GetSection(); var plugin = (DynamicFormBuilderConfiguration)config.Plugins["dynamic"]; var settingsType = plugin.SettingsHandler; if (settingsType == null) { return; } var formFile = "\\InstalledPackages\\" + settingsType.Namespace + "\\" + settingsType.Name + ".xml"; var settingsMarkupProvider = new FormDefinitionFileMarkupProvider(formFile); var formDefinitionElement = XElement.Load(settingsMarkupProvider.GetReader()); var settingsTab = new XElement(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder"); var layout = formDefinitionElement.Element(Namespaces.BindingForms10 + FormKeyTagNames.Layout); if (layout == null) { return; } var bindings = formDefinitionElement.Element(Namespaces.BindingForms10 + FormKeyTagNames.Bindings); if (bindings == null) { return; } settingsTab.Add(new XAttribute("Label", "Extra Settings")); settingsTab.Add(layout.Elements()); bindingsXElement.Add(bindings.Elements()); lastTabElement.AddAfterSelf(settingsTab); var settings = definition.Settings ?? (IFormSettings)Activator.CreateInstance(settingsType); foreach (var prop in settingsType.GetProperties()) { var value = prop.GetValue(settings, null); Bindings.Add(prop.Name, value); } }
/// <exclude /> public static XmlReader GetSearchFormMarkup(ElementHandle elementHandle) { if (elementHandle == null) { throw new ArgumentNullException("elementHandle"); } XmlReader formDefinition; if (ElementProviderPluginFacade.GetSearchFormDefinition(elementHandle.ProviderName, elementHandle.EntityToken, out formDefinition) == false) { IFormMarkupProvider markupProvider = new FormDefinitionFileMarkupProvider("/Administrative/ElementKeywordSearch.xml"); return(markupProvider.GetReader()); } return(formDefinition); }
/// <exclude /> protected sealed override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext) { FormsWorkflow formsWorkflow = this.GetRoot <FormsWorkflow>(); IFormMarkupProvider markupProvider = new FormDefinitionFileMarkupProvider(this.FormDefinitionFileName); ExternalDataExchangeService externalDataExchangeService = WorkflowFacade.WorkflowRuntime.GetService <ExternalDataExchangeService>(); IFormsWorkflowActivityService service = externalDataExchangeService.GetService(typeof(IFormsWorkflowActivityService)) as IFormsWorkflowActivityService; service.DeliverFormData( WorkflowEnvironment.WorkflowInstanceId, this.ContainerLabel, StandardUiContainerTypes.WarningDialog, markupProvider, formsWorkflow.Bindings, formsWorkflow.BindingsValidationRules ); return(ActivityExecutionStatus.Closed); }
private void SetupFormXml() { var markupProvider = new FormDefinitionFileMarkupProvider(XmlFilePath); var formDocument = XDocument.Load(markupProvider.GetReader()); var layoutXElement = formDocument.Root?.Element(Namespaces.BindingForms10 + FormKeyTagNames.Layout); var placeHolderXElement = layoutXElement?.Element(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder"); if (placeHolderXElement == null) { return; } var bindingsXElement = formDocument.Root.Element(Namespaces.BindingForms10 + FormKeyTagNames.Bindings); if (bindingsXElement == null) { return; } var resourceType = (ResourceType)Enum.Parse(typeof(ResourceType), ResourceKey.Type); if (resourceType == ResourceType.Xhtml) { placeHolderXElement.Name = Namespaces.BindingFormsStdUiControls10 + "TabPanels"; } using (var data = new DataConnection()) { var resourceValues = data.Get <IResourceValue>().Where(v => v.KeyId == ResourceKey.Id).ToDictionary(v => v.Culture); var userLocales = UserSettings.GetActiveLocaleCultureInfos(UserSettings.Username).ToList(); var isAdministratior = PermissionsFacade.IsAdministrator(UserSettings.Username); foreach (var culture in DataLocalizationFacade.ActiveLocalizationCultures) { var bindingKey = GetBindingKey(culture); var bindingValue = String.Empty; if (resourceValues.TryGetValue(culture.Name, out IResourceValue resourceValue)) { bindingValue = resourceValue.Value; } Bindings.Add(bindingKey, bindingValue); bindingsXElement.Add(CreateBindingElement(bindingKey)); if (isAdministratior || userLocales.Contains(culture)) { placeHolderXElement.Add(CreateEditResourceValueElement(culture, bindingKey, resourceType)); } else { placeHolderXElement.Add(CreateReadOnlyResourceValueElement(culture, bindingKey)); } } } DeliverFormData(ResourceKey.Key, StandardUiContainerTypes.Document, formDocument.ToString(), Bindings, BindingsValidationRules); }
private void initializeCodeActivity_ExecuteCode(object sender, EventArgs e) { var dataEntityToken = (DataEntityToken)this.EntityToken; var user = (IUser)dataEntityToken.Data; var userFormLogin = user.GetUserFormLogin(); this.Bindings.Add(BindingNames.User, user); this.Bindings.Add(BindingNames.UserFormLogin, userFormLogin); this.Bindings.Add(BindingNames.NewPassword, NotPassword); CultureInfo userCulture = UserSettings.GetUserCultureInfo(user.Username); CultureInfo c1ConsoleUiLanguage = UserSettings.GetUserC1ConsoleUiLanguage(user.Username); List <KeyValuePair> regionLanguageList = StringResourceSystemFacade.GetSupportedCulturesList(); Dictionary <string, string> culturesDictionary = StringResourceSystemFacade.GetAllCultures(); this.Bindings.Add("AllCultures", culturesDictionary); this.Bindings.Add("CultureName", userCulture.Name); this.Bindings.Add("C1ConsoleUiCultures", regionLanguageList); this.Bindings.Add("C1ConsoleUiLanguageName", c1ConsoleUiLanguage.Name); if (UserSettings.GetActiveLocaleCultureInfos(user.Username).Any() && (user.Username != UserSettings.Username)) { this.Bindings.Add("ActiveLocaleName", UserSettings.GetCurrentActiveLocaleCultureInfo(user.Username).Name); this.Bindings.Add("ActiveLocaleList", DataLocalizationFacade.ActiveLocalizationCultures.ToDictionary(f => f.Name, DataLocalizationFacade.GetCultureTitle)); } var clientValidationRules = new Dictionary <string, List <ClientValidationRule> > { { "Username", ClientValidationRuleFacade.GetClientValidationRules(user, "Username") }, { "Group", ClientValidationRuleFacade.GetClientValidationRules(user, "Group") } }; IFormMarkupProvider markupProvider = new FormDefinitionFileMarkupProvider(@"\Administrative\EditUserStep1.xml"); XDocument formDocument; using (var reader = markupProvider.GetReader()) { formDocument = XDocument.Load(reader); } XElement bindingsElement = formDocument.Root.Element(DataTypeDescriptorFormsHelper.CmsNamespace + FormKeyTagNames.Bindings); XElement layoutElement = formDocument.Root.Element(DataTypeDescriptorFormsHelper.CmsNamespace + FormKeyTagNames.Layout); XElement tabPanelsElement = layoutElement.Element(DataTypeDescriptorFormsHelper.MainNamespace + "TabPanels"); List <XElement> placeHolderElements = tabPanelsElement.Elements(DataTypeDescriptorFormsHelper.MainNamespace + "PlaceHolder").ToList(); UpdateFormDefinitionWithUserGroups(user, bindingsElement, placeHolderElements[1]); UpdateFormDefinitionWithActivePerspectives(user, bindingsElement, placeHolderElements[2]); //UpdateFormDefinitionWithGlobalPermissions(user, bindingsElement, placeHolderElements[1]); if (DataLocalizationFacade.ActiveLocalizationCultures.Any()) { UpdateFormDefinitionWithActiveLocales(user, bindingsElement, placeHolderElements[1]); } string formDefinition = formDocument.GetDocumentAsString(); this.DeliverFormData( user.Username, StandardUiContainerTypes.Document, formDefinition, this.Bindings, clientValidationRules ); }
private void SetupFormXml() { XDocument formDocument; var markupProvider = new FormDefinitionFileMarkupProvider(XmlFilePath); using (var reader = markupProvider.GetReader()) { formDocument = XDocument.Load(reader); } if (formDocument.Root == null) { return; } var model = ModelsFacade.GetModel <FormModel>(FieldEntityToken.FormName); var field = model.Fields.Get(FieldEntityToken.FieldName); var bindingsXElement = formDocument.Root.Element(Namespaces.BindingForms10 + FormKeyTagNames.Bindings); var layoutElement = formDocument.Root.Element(Namespaces.BindingForms10 + FormKeyTagNames.Layout); if (bindingsXElement == null || layoutElement == null) { return; } var tabPanelsElement = layoutElement.Element(Namespaces.BindingFormsStdUiControls10 + "TabPanels"); if (tabPanelsElement == null) { return; } var basicFieldGroup = tabPanelsElement.Element(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder").Element(Namespaces.BindingFormsStdUiControls10 + "FieldGroup"); if (field.Attributes.OfType <PlaceholderTextAttribute>().Any()) { var binding = "PlaceholderText"; AddDynamicBinding(bindingsXElement, binding, GetValue(binding) ?? field.PlaceholderText); AddTextBox(basicFieldGroup, "Placeholder text", binding); } if (field.Attributes.OfType <FieldHelpAttribute>().Any()) { var binding = "Help"; AddDynamicBinding(bindingsXElement, binding, GetValue(binding) ?? field.Help); AddTextBox(basicFieldGroup, "Help", binding); } var validationAttributes = field.Attributes.OfType <FormValidationAttribute>(); if (!validationAttributes.Any()) { DeliverFormData(FieldEntityToken.FieldName, StandardUiContainerTypes.Document, formDocument.ToString(), Bindings, BindingsValidationRules); return; } basicFieldGroup.Attribute("Label").Remove(); tabPanelsElement.Element(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder").Add(new XAttribute("Label", "Basic")); var fieldGroup = new XElement(Namespaces.BindingFormsStdUiControls10 + "FieldGroup"); foreach (var attr in validationAttributes) { var name = attr.GetType().Name; var label = attr.AttributeName(); var binding = "Validation-" + name; AddTextBox(fieldGroup, label, binding); AddDynamicBinding(bindingsXElement, binding, GetValue("Validation." + name) ?? attr.GetValidationMessage(field)); } tabPanelsElement.Add( new XElement(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder", new XAttribute("Label", "Validation"), fieldGroup ) ); DeliverFormData(FieldEntityToken.FieldName, StandardUiContainerTypes.Document, formDocument.ToString(), Bindings, BindingsValidationRules); }
private void editStateCodeActivity_ExecuteCode(object sender, EventArgs e) { if (!PermissionsFacade.GetPermissionsForCurrentUser(EntityToken).Contains(PermissionType.Publish)) { var formData = WorkflowFacade.GetFormData(InstanceId, true); if (formData.ExcludedEvents == null) { formData.ExcludedEvents = new List <string>(); } formData.ExcludedEvents.Add("SaveAndPublish"); } IPage selectedPage; if (!BindingExist("SelectedPage")) { selectedPage = GetDataItemFromEntityToken <IPage>(); if (selectedPage.PublicationStatus == GenericPublishProcessController.Published) { selectedPage.PublicationStatus = GenericPublishProcessController.Draft; } Bindings.Add("SelectedPage", selectedPage); } else { selectedPage = GetBinding <IPage>("SelectedPage"); } if (!BindingExist("UrlTitleIsRequired")) { var isRootPage = PageManager.GetParentId(selectedPage.Id) == Guid.Empty; Bindings["UrlTitleIsRequired"] = !isRootPage; Bindings["IsRootPage"] = isRootPage; } IFormMarkupProvider markupProvider = new FormDefinitionFileMarkupProvider(@"\Administrative\EditPage.xml"); XDocument formDocument; using (var reader = markupProvider.GetReader()) { formDocument = XDocument.Load(reader); } var bindingsXElement = formDocument.Root.Element(DataTypeDescriptorFormsHelper.CmsNamespace + FormKeyTagNames.Bindings); var layoutXElement = formDocument.Root.Element(DataTypeDescriptorFormsHelper.CmsNamespace + FormKeyTagNames.Layout); var tabPanelsXElement = layoutXElement.Element(DataTypeDescriptorFormsHelper.MainNamespace + "TabPanels"); IEnumerable <ICompositionContainer> compositionContainers = selectedPage.GetAllowedMetaDataContainers().Evaluate(); var compositionTabs = new Dictionary <Guid, XElement>(); foreach (var compositionContainer in compositionContainers) { var element = new XElement(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder"); element.Add(new XAttribute("Label", StringResourceSystemFacade.ParseString(compositionContainer.Label))); compositionTabs.Add(compositionContainer.Id, element); } var clientValidationRules = new Dictionary <string, List <ClientValidationRule> >(); var pageMetaDataDefinitions = selectedPage.GetAllowedMetaDataDefinitions(); foreach (var pageMetaDataDefinition in pageMetaDataDefinitions) { var metaDatTypeId = pageMetaDataDefinition.MetaDataTypeId; var dataTypeDescriptor = DynamicTypeManager.GetDataTypeDescriptor(metaDatTypeId); Verify.IsNotNull(dataTypeDescriptor, "Failed to get meta data type by id '{0}'. If data type was purposely removed, in order to fix this exception you should remove IPageMetaDataDefinition records that reference this data type.", metaDatTypeId); var metaDataType = TypeManager.TryGetType(dataTypeDescriptor.TypeManagerTypeName); Verify.IsNotNull(metaDataType, "Failed to get meta data type '{0}', id: {1}. If it has been removed, references from '{2}' have to be removed as well", dataTypeDescriptor.TypeManagerTypeName, metaDatTypeId, typeof(IPageMetaDataDefinition).Name); var helper = CreateDataTypeDescriptorFormsHelper(pageMetaDataDefinition, dataTypeDescriptor); var metaData = selectedPage.GetMetaData(pageMetaDataDefinition.Name, metaDataType); if (metaData == null) { metaData = DataFacade.BuildNew(metaDataType); PageMetaDataFacade.AssignMetaDataSpecificValues(metaData, pageMetaDataDefinition.Name, selectedPage); var localizedData = metaData as ILocalizedControlled; if (localizedData != null) { localizedData.SourceCultureName = UserSettings.ActiveLocaleCultureInfo.Name; } var publishControlled = metaData as IPublishControlled; publishControlled.PublicationStatus = GenericPublishProcessController.Draft; helper.UpdateWithNewBindings(Bindings); helper.ObjectToBindings(metaData, Bindings); } else { helper.UpdateWithBindings(metaData, Bindings); } bindingsXElement.Add(helper.BindingXml.Elements()); compositionTabs[pageMetaDataDefinition.MetaDataContainerId].Add(helper.PanelXml); clientValidationRules.AddDictionary(helper.GetBindingsValidationRules(metaData)); } var previewTabPanel = tabPanelsXElement.Elements().Last(); foreach (var element in compositionTabs.Values) { previewTabPanel.AddBeforeSelf(element); } IDictionary <string, string> transitionNames = new Dictionary <string, string>(); transitionNames.Add(GenericPublishProcessController.Draft, StringResourceSystemFacade.GetString("Composite.Management", "PublishingStatus.draft")); transitionNames.Add(GenericPublishProcessController.AwaitingApproval, StringResourceSystemFacade.GetString("Composite.Management", "PublishingStatus.awaitingApproval")); var username = UserValidationFacade.GetUsername(); var userPermissionDefinitions = PermissionTypeFacade.GetUserPermissionDefinitions(username); var userGroupPermissionDefinitions = PermissionTypeFacade.GetUserGroupPermissionDefinitions(username); var currentPermissionTypes = PermissionTypeFacade.GetCurrentPermissionTypes(UserValidationFacade.GetUserToken(), EntityToken, userPermissionDefinitions, userGroupPermissionDefinitions); foreach (var permissionType in currentPermissionTypes) { if (GenericPublishProcessController.AwaitingPublicationActionPermissionType.Contains(permissionType)) { transitionNames.Add(GenericPublishProcessController.AwaitingPublication, StringResourceSystemFacade.GetString("Composite.Management", "PublishingStatus.awaitingPublication")); break; } } var contents = DataFacade.GetData <IPagePlaceholderContent>(f => f.PageId == selectedPage.Id && f.VersionId == selectedPage.VersionId).ToList(); var namedXhtmlFragments = contents.ToDictionary(content => content.PlaceHolderId, content => content.Content ?? ""); UpdateBinding("SelectablePageTypeIds", GetSelectablePageTypes()); UpdateBinding("SelectableTemplateIds", GetSelectablePageTemplates()); UpdateBinding("NamedXhtmlFragments", namedXhtmlFragments); UpdateBinding("StateOptions", transitionNames); var formDefinition = formDocument.GetDocumentAsString(); DeliverFormData( selectedPage.Title, StandardUiContainerTypes.Document, formDefinition, Bindings, clientValidationRules ); }
public XmlReader GetSearchFormDefinition(EntityToken entityToken) { IFormMarkupProvider markupProvider = new FormDefinitionFileMarkupProvider("/Administrative/AllFunctionsElementProviderSearchForm.xml"); return(markupProvider.GetReader()); }