Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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);
        }