private Form GetUserForm(string context) { // Get page and element identifiers string[] parts = context.Split('|'); long pageId = Convert.ToInt64(parts[1]); long elementId = Convert.ToInt64(parts[2]); // Get form settings Guid elementTypeId = FormId; IAdvancedElementService elementService = (IAdvancedElementService)_elementFactory.GetElementService(elementTypeId); FormSettings formSettings = (FormSettings)elementService.New(_authenticationService.TenantId); formSettings.ElementId = elementId; elementService.Read(formSettings); // Construct form Form form = new Form { FieldSets = new List <FormFieldSet>(), Id = FormId.ToString(), Context = context, SubmitLabel = formSettings.SubmitButtonLabel }; // Populate fields from form settings foreach (FormElementField formElementField in formSettings.Fields) { FormFieldSet fieldSet = new FormFieldSet { Fields = new Dictionary <string, IFormField>() }; switch (formElementField.FieldType) { case FormElementFieldType.TextField: fieldSet.Fields.Add("field", new TextField { Name = "field_" + formElementField.FormFieldId, Label = formElementField.Label, Required = formElementField.Required, RequiredErrorMessage = string.Format(ElementResource.FormFieldRequiredMessage, formElementField.Label) }); break; case FormElementFieldType.MultiLineTextField: fieldSet.Fields.Add("field", new MultiLineTextField { Name = "field_" + formElementField.FormFieldId, Label = formElementField.Label, Required = formElementField.Required, RequiredErrorMessage = string.Format(ElementResource.FormFieldRequiredMessage, formElementField.Label), Rows = 5 }); break; } form.FieldSets.Add(fieldSet); } // Return form return(form); }
private IDictionary <string, FormFieldSet> GetNamedFieldSets(IEnumerable <Page> foldersAndDocuments) { IDictionary <string, FormFieldSet> fieldSets = new Dictionary <string, FormFieldSet>(); FormFieldSet fieldSet = new FormFieldSet { Fields = new Dictionary <string, IFormField>() }; fieldSet.Fields.Add("name", GetNameTextField(0, null)); fieldSet.Fields.Add("tab", GetPageSelectListField(0, foldersAndDocuments.FirstOrDefault().PageId, foldersAndDocuments)); fieldSets.Add("newTab", fieldSet); return(fieldSets); }
private IDictionary <string, FormFieldSet> GetNamedFieldSets(IEnumerable <ElementType> elementTypes) { IDictionary <string, FormFieldSet> fieldSets = new Dictionary <string, FormFieldSet>(); FormFieldSet fieldSet = new FormFieldSet { Fields = new Dictionary <string, IFormField>() }; fieldSet.Fields.Add("name", GetNameTextField(0, null)); fieldSet.Fields.Add("elementType", GetElementTypeSelectListField(0, null, null, elementTypes)); fieldSets.Add("newElement", fieldSet); return(fieldSets); }
private IList <FormFieldSet> GetFieldSets(NavBarSettings settings, IEnumerable <Page> foldersAndDocuments) { List <FormFieldSet> fieldSets = new List <FormFieldSet>(); foreach (NavBarTab tab in settings.Tabs) { FormFieldSet fieldSet = new FormFieldSet { Fields = new Dictionary <string, IFormField>() }; fieldSet.Fields.Add("name", GetNameTextField(tab.NavBarTabId, tab.Name)); fieldSet.Fields.Add("tab", GetPageSelectListField(tab.NavBarTabId, tab.PageId, foldersAndDocuments)); fieldSets.Add(fieldSet); } return(fieldSets); }
private IList <FormFieldSet> GetFieldSets(Dictionary <Guid, ElementType> elementTypesById, PageZone pageZone) { List <FormFieldSet> fieldSets = new List <FormFieldSet>(); foreach (PageZoneElement pageZoneElement in pageZone.PageZoneElements) { FormFieldSet fieldSet = new FormFieldSet { Fields = new Dictionary <string, IFormField>() }; IElementSettings element = _elementService.Read(pageZoneElement.TenantId, pageZoneElement.ElementTypeId, pageZoneElement.ElementId); fieldSet.Fields.Add("name", GetNameTextField(pageZoneElement.PageZoneElementId, element.Name)); fieldSet.Fields.Add("elementType", GetElementTypeSelectListField(pageZoneElement.PageZoneElementId, pageZoneElement.ElementTypeId, elementTypesById, null)); fieldSets.Add(fieldSet); } return(fieldSets); }
private List <PageZoneElementInfo> GetElements(Form form) { List <PageZoneElementInfo> elements = new List <PageZoneElementInfo>(); for (int index = 0; index < form.FieldSets.Count; index++) { FormFieldSet fieldSet = form.FieldSets[index]; Guid elementTypeId = new Guid(((SelectListField <string>)fieldSet.Fields["elementType"]).Value); long pageZoneElementId = Math.Max(Convert.ToInt64(((TextField)fieldSet.Fields["name"]).Name.Split('_')[1]), 0); string name = ((TextField)fieldSet.Fields["name"]).Value; elements.Add(new PageZoneElementInfo { ElementTypeId = elementTypeId, PageZoneElementId = pageZoneElementId, Name = name, SortOrder = index }); } return(elements); }
private List <NavBarTab> GetTabs(long tenantId, long elementId, Form form) { List <NavBarTab> tabs = new List <NavBarTab>(); for (int index = 0; index < form.FieldSets.Count; index++) { FormFieldSet fieldSet = form.FieldSets[index]; long pageId = Convert.ToInt64(((SelectListField <string>)fieldSet.Fields["tab"]).Value); long navBarTabId = Math.Max(Convert.ToInt64(((SelectListField <string>)fieldSet.Fields["tab"]).Name.Split('_')[1]), 0); tabs.Add(new NavBarTab { ElementId = elementId, Name = ((TextField)fieldSet.Fields["name"]).Value, NavBarTabId = navBarTabId, PageId = pageId, SortOrder = index, TenantId = tenantId, }); } return(tabs); }
private List <FormElementField> GetFields(long elementId, Form form) { List <FormElementField> fields = new List <FormElementField>(); for (int index = 0; index < form.FieldSets.Count; index++) { FormFieldSet fieldSet = form.FieldSets[index]; FormElementFieldType fieldType; Enum.TryParse <FormElementFieldType>(((SelectListField <string>)fieldSet.Fields["type"]).Value, out fieldType); long formFieldId = Math.Max(Convert.ToInt64(((TextField)fieldSet.Fields["label"]).Name.Split('_')[1]), 0); fields.Add(new FormElementField { ElementId = elementId, Label = ((TextField)fieldSet.Fields["label"]).Value, Required = ((BooleanField)fieldSet.Fields["required"]).Value, SortOrder = index, FieldType = fieldType, FormFieldId = formFieldId }); } return(fields); }
private Form GetAdminForm(string context) { // Check permissions _authorizationService.AuthorizeUserForFunction(Functions.UpdatePageElements); // Get page and element identifiers string[] parts = context.Split('|'); long pageId = Convert.ToInt64(parts[1]); long elementId = Convert.ToInt64(parts[2]); // Get current form settings IAdvancedElementService elementService = (IAdvancedElementService)_elementFactory.GetElementService(FormId); FormSettings formSettings = (FormSettings)elementService.New(_authenticationService.TenantId); formSettings.ElementId = elementId; elementService.Read(formSettings); // Construct main form Form form = new Form { Fields = new Dictionary <string, IFormField>(), Id = FormId.ToString(), Context = context, FieldSets = new List <FormFieldSet>() }; form.Fields.Add("recipientEmail", new MultiLineTextField { Name = "recipientEmail", Label = ElementResource.FormRecipientEmailLabel, Required = true, RequiredErrorMessage = ElementResource.FormRecipientEmailRequiredMessage, Value = formSettings.RecipientEmail, Rows = 4 }); form.Fields.Add("submitButtonLabel", new TextField { Name = "submitButtonLabel", Label = ElementResource.FormSubmitButtonLabelLabel, Required = true, RequiredErrorMessage = ElementResource.FormSubmitButtonLabelRequiredMessage, MaxLength = FormLengths.SubmitButtonLabelMaxLength, MaxLengthErrorMessage = string.Format(ElementResource.FormSubmitButtonLabelMaxLengthMessage, "submitButtonLabel", FormLengths.SubmitButtonLabelMaxLength), Value = formSettings.SubmitButtonLabel }); form.Fields.Add("submittedMessage", new TextField { Name = "submittedMessage", Label = ElementResource.FormSubmittedMessageLabel, Required = true, RequiredErrorMessage = ElementResource.FormSubmittedMessageRequiredMessage, Value = formSettings.SubmittedMessage }); form.SubmitLabel = ElementResource.FormButtonLabel; // Add form fields foreach (FormElementField field in formSettings.Fields) { FormFieldSet fieldSet = new FormFieldSet { Fields = new Dictionary <string, IFormField>() }; fieldSet.Fields.Add("label", new TextField { Name = string.Format("field_{0}_label", field.FormFieldId), Label = ElementResource.FormFieldLabelLabel, Required = true, RequiredErrorMessage = ElementResource.FormFieldLabelRequiredMessage, Value = field.Label }); fieldSet.Fields.Add("type", new SelectListField <string> { Name = string.Format("field_{0}_type", field.FormFieldId), Label = ElementResource.FormFieldTypeLabel, Value = field.FieldType.ToString(), Items = new List <ListFieldItem <string> > { new ListFieldItem <string> { Name = ElementResource.FormFieldTypeTextLabel, Value = FormElementFieldType.TextField.ToString() }, new ListFieldItem <string> { Name = ElementResource.FormFieldTypeMultiLineLabel, Value = FormElementFieldType.MultiLineTextField.ToString() }, } }); fieldSet.Fields.Add("required", new BooleanField { Name = string.Format("field_{0}_required", field.FormFieldId), Label = ElementResource.FormFieldRequiredLabel, Value = field.Required }); form.FieldSets.Add(fieldSet); } // Fields set containing default fields for a new form field form.NamedFieldSets = new Dictionary <string, FormFieldSet>(); FormFieldSet namedFieldSet = new FormFieldSet { Fields = new Dictionary <string, IFormField>() }; long formFieldId = 0; namedFieldSet.Fields.Add("label", new TextField { Name = string.Format("field_{0}_label", formFieldId), Label = ElementResource.FormFieldLabelLabel, Required = true, RequiredErrorMessage = ElementResource.FormFieldLabelRequiredMessage, Value = ElementResource.FormFieldLabelDefaultValue }); namedFieldSet.Fields.Add("type", new SelectListField <string> { Name = string.Format("field_{0}_type", formFieldId), Label = ElementResource.FormFieldTypeLabel, Value = FormElementFieldType.TextField.ToString(), Items = new List <ListFieldItem <string> > { new ListFieldItem <string> { Name = ElementResource.FormFieldTypeTextLabel, Value = FormElementFieldType.TextField.ToString() }, new ListFieldItem <string> { Name = ElementResource.FormFieldTypeMultiLineLabel, Value = FormElementFieldType.MultiLineTextField.ToString() }, } }); namedFieldSet.Fields.Add("required", new BooleanField { Name = string.Format("field_{0}_required", formFieldId), Label = ElementResource.FormFieldRequiredLabel, Value = false }); form.NamedFieldSets.Add("newField", namedFieldSet); // Return result return(form); }