예제 #1
0
        /// <summary>
        /// Retrieves form for creating or updating master page zone elements.
        /// </summary>
        /// <param name="context">Form context.</param>
        /// <returns>Form object.</returns>
        private Form GetMasterPageZoneElementForm(string context)
        {
            // Construct form data, consisting of master page zone element form action button labels
            MasterPageZoneElementFormData formData = new MasterPageZoneElementFormData { Labels = new Dictionary<string, string>() };
            formData.Labels.Add("update", MasterPageResource.UpdateZoneElementButtonLabel);
            formData.Labels.Add("create", MasterPageResource.CreateZoneElementButtonLabel);
            formData.MasterPageZoneElement = new MasterPageZoneElement();

            // Get all elements
            long tenantId = _authenticationService.TenantId;
            IEnumerable<MasterPage> masterPages = _masterPageService.ListElementsByMasterPage(tenantId);

            // Construct form
            string data = JsonConvert.SerializeObject(formData);
            Form form = new Form { Fields = new Dictionary<string, IFormField>(), Id = FormId.ToString(), Context = context, Data = data };
            form.Fields.Add("elementId", new SelectListField<string>
            {
                Name = "elementId",
                Label = MasterPageResource.ElementIdLabel,
                Items = GetElementIdListFieldItems(masterPages),
                Required = true,
                RequiredErrorMessage = MasterPageResource.ElementIdRequiredMessage
            });
            form.Fields.Add("beginRender", new MultiLineTextField
            {
                Name = "beginRenderZoneElement",
                Label = MasterPageResource.ZoneElementBeginRenderLabel,
                Rows = 4
            });
            form.Fields.Add("endRender", new MultiLineTextField
            {
                Name = "endRenderZoneElement",
                Label = MasterPageResource.ZoneElementEndRenderLabel,
                Rows = 4
            });

            // Return result
            return form;
        }