Ejemplo n.º 1
0
    /// <summary>
    /// Loads form layout of document, bizform, systemtable or alternative form.
    /// </summary>
    protected void LoadData()
    {
        if (DataClassID > 0)
        {
            if (!IsAlternative)
            {
                classInfo = DataClassInfoProvider.GetDataClassInfo(DataClassID);
                UIContext.EditedObject = classInfo;
            }
            else
            {
                altFormInfo            = AlternativeFormInfoProvider.GetAlternativeFormInfo(ObjectID);
                UIContext.EditedObject = altFormInfo;
            }

            if (!RequestHelper.IsPostBack())
            {
                LayoutTypeEnum layoutType = LayoutTypeEnum.Html;

                InitTypeSelector();

                if (!IsAlternative)
                {
                    if (classInfo != null)
                    {
                        // Load layout of document, bizform or systemtable
                        FormLayout = classInfo.ClassFormLayout;
                        layoutType = classInfo.ClassFormLayoutType;
                    }
                }
                else
                {
                    if (altFormInfo != null)
                    {
                        // Load layout of alternative form
                        FormLayout = altFormInfo.FormLayout;
                        layoutType = altFormInfo.FormLayoutType;
                    }
                }

                radCustomLayout.Checked     = LayoutIsSet;
                drpLayoutType.SelectedValue = layoutType.ToString();

                // Switch visibility of layout editors based on layout type
                plcHTML.Visible = drpLayoutType.SelectedValue.EqualsCSafe(LayoutTypeEnum.Html.ToString(), StringComparison.InvariantCultureIgnoreCase);
                plcASCX.Visible = !plcHTML.Visible;
            }

            if (radCustomLayout.Checked)
            {
                InitDialog();
            }

            radAutoLayout.Checked = !radCustomLayout.Checked;
        }
        else
        {
            UIContext.EditedObject = null;
        }
    }
Ejemplo n.º 2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get alternative form ID from URL
        int altFormId = QueryHelper.GetInteger("altformid", 0);

        CurrentMaster.BodyClass += " FieldEditorBody";

        // Get alternative form
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(altFormId);

        if (afi != null)
        {
            // Get name of the edited class
            string className = DataClassInfoProvider.GetClassName(afi.FormClassID);

            // Initialize field editor
            altFormFieldEditor.Mode = FieldEditorModeEnum.SystemTable;
            altFormFieldEditor.ShowFieldVisibility = (className.ToLowerCSafe().Trim() == SiteObjectType.USER.ToLowerCSafe());
            altFormFieldEditor.AlternativeFormID   = altFormId;
            altFormFieldEditor.DisplayedControls   = FieldEditorControlsEnum.SystemTables;

            if (className.ToLowerCSafe().Trim() == PredefinedObjectType.SKU)
            {
                altFormFieldEditor.ShowInheritanceSettings = true;
            }
        }
    }
Ejemplo n.º 3
0
    /// <summary>
    /// Upgrades form category properties.
    /// </summary>
    private static void UpgradeFormCategories()
    {
        try
        {
            var resourceStringRegex       = new Regex(@"(?<tag><cms:FormCategory[^>]*\s)(GroupingText)?ResourceString\s*=");
            var resourceStringReplacement = "${tag}CategoryTitleResourceString=";

            var groupingTextRegex       = new Regex(@"(?<tag><cms:FormCategory[^>]*\s)GroupingText\s*=");
            var groupingTextReplacement = "${tag}CategoryTitle=";

            var classes = DataClassInfoProvider.GetClasses().Where("[ClassFormLayout] != '' AND [ClassFormLayout] LIKE '%cms:FormCategory%'");
            foreach (var dci in classes)
            {
                dci.ClassFormLayout = resourceStringRegex.Replace(dci.ClassFormLayout, resourceStringReplacement);
                dci.ClassFormLayout = groupingTextRegex.Replace(dci.ClassFormLayout, groupingTextReplacement);

                DataClassInfoProvider.SetDataClassInfo(dci);
            }

            var altForms = AlternativeFormInfoProvider.GetAlternativeForms("[FormLayout] != '' AND [FormLayout] LIKE '%cms:FormCategory%'", null);
            foreach (var afi in altForms)
            {
                afi.FormLayout = resourceStringRegex.Replace(afi.FormLayout, resourceStringReplacement);
                afi.FormLayout = groupingTextRegex.Replace(afi.FormLayout, groupingTextReplacement);

                AlternativeFormInfoProvider.SetAlternativeFormInfo(afi);
            }
        }
        catch (Exception ex)
        {
            EventLogProvider.LogException("Upgrade - Form categories", "Upgrade", ex);
        }
    }
Ejemplo n.º 4
0
    /// <summary>
    /// Saves form layout.
    /// </summary>
    protected void SaveData()
    {
        bool saved   = false;
        bool deleted = false;

        // Get form layout
        string layout = FormLayout;

        // Delete layout if editor is hidden
        if (!CustomLayoutEnabled)
        {
            deleted = LayoutIsSet;
            layout  = null;
        }

        if (DataClassID > 0)
        {
            if (!IsAlternative)
            {
                DataClassInfo dci = DataClassInfoProvider.GetDataClass(DataClassID);
                CMSPage.EditedObject = dci;
                if (dci != null)
                {
                    // Update dataclass form layout and save object
                    dci.ClassFormLayout = layout;
                    DataClassInfoProvider.SetDataClass(dci);
                    saved = true;
                }
            }
            else
            {
                AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(ObjectID);
                CMSPage.EditedObject = afi;
                if (afi != null)
                {
                    // Update alternative form layout and save object
                    afi.FormLayout = layout;
                    AlternativeFormInfoProvider.SetAlternativeFormInfo(afi);
                    saved = true;
                }
            }

            // Display info if successfully saved
            if (saved)
            {
                if (!deleted)
                {
                    ShowChangesSaved();
                }
                else
                {
                    ShowConfirmation(GetString("DocumentType_Edit_Form.LayoutDeleted"));
                }
            }
        }
        else
        {
            CMSPage.EditedObject = null;
        }
    }
Ejemplo n.º 5
0
 /// <summary>
 /// Loads form layout of document, bizform, systemtable or alternative form.
 /// </summary>
 protected void LoadData()
 {
     if (DataClassID > 0)
     {
         if (!IsAlternative)
         {
             DataClassInfo dci = DataClassInfoProvider.GetDataClass(DataClassID);
             CMSPage.EditedObject = dci;
             if (dci != null)
             {
                 // Load layout of document, bizform or systemtable
                 FormLayout = dci.ClassFormLayout;
             }
         }
         else
         {
             AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(ObjectID);
             CMSPage.EditedObject = afi;
             if (afi != null)
             {
                 // Load layout of alternative form
                 FormLayout = afi.FormLayout;
             }
         }
     }
     else
     {
         CMSPage.EditedObject = null;
     }
 }
Ejemplo n.º 6
0
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        this.myProfile.IsLiveSite = true;

        if (this.StopProcessing)
        {
            this.myProfile.StopProcessing = true;
        }
        else
        {
            // Get alternative form info
            AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(AlternativeFormName);
            if (afi != null)
            {
                this.myProfile.AlternativeFormName = this.AlternativeFormName;
                this.myProfile.AllowEditVisibility = this.AllowEditVisibility;
            }
            else
            {
                lblError.Text      = String.Format(GetString("altform.formdoesntexists"), AlternativeFormName);
                lblError.Visible   = true;
                plcContent.Visible = false;
            }
        }
    }
    /// <summary>
    /// Fills alternative form list according to selection in class CMSDropDownList.
    /// </summary>
    protected void LoadAltFormsList()
    {
        int     formClassId = ValidationHelper.GetInteger(drpClass.SelectedValue, 0);
        DataSet ds          = AlternativeFormInfoProvider.GetAlternativeForms("FormClassID=" + formClassId, "FormName");

        lstAlternativeForms.Items.Clear();

        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                AlternativeFormInfo afi = new AlternativeFormInfo(dr);
                if (afi != null)
                {
                    if ((afi.FormDisplayName != String.Empty) && (afi.FormName != String.Empty))
                    {
                        lstAlternativeForms.Items.Add(new ListItem(ResHelper.LocalizeString(afi.FormDisplayName), afi.FullName));
                    }
                }
            }
            lstAlternativeForms.SelectedValue = null;
            lstAlternativeForms.DataBind();
        }

        ds.Dispose();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        altFormId = QueryHelper.GetInteger("altformid", 0);

        // Validate
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(altFormId);

        EditedObject = afi;
        if (afi == null)
        {
            return;
        }

        // Init values
        if (!RequestHelper.IsPostBack())
        {
            nameElem.DisplayName = afi.FormDisplayName;
            nameElem.CodeName    = afi.FormName;
        }
        nameElem.ShowSubmitButton = true;
        nameElem.Click           += new EventHandler(nameElem_Click);

        if (QueryHelper.GetInteger("saved", 0) == 1)
        {
            lblInfo.Visible = true;
            lblInfo.Text    = GetString("general.changessaved");

            // Reload header if changes were saved
            ScriptHelper.RefreshTabHeader(Page, null);
        }
    }
Ejemplo n.º 9
0
    /// <summary>
    /// Click event - updates new values.
    /// </summary>
    /// <param name="sender">Sender</param>
    /// <param name="e">Params</param>
    protected void nameElem_Click(object sender, EventArgs e)
    {
        // Check 'EditForm' permission
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.form", "EditForm"))
        {
            RedirectToCMSDeskAccessDenied("cms.form", "EditForm");
        }

        // Code name validation
        string err = new Validator().IsIdentificator(nameElem.CodeName, GetString("general.erroridentificatorformat")).Result;

        if (err != String.Empty)
        {
            lblError.Visible = true;
            lblError.Text    = err;
            lblInfo.Visible  = false;
            return;
        }

        // Validate form id
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(altFormId);

        EditedObject = afi;
        if (afi == null)
        {
            return;
        }

        // Checking for duplicate items
        DataSet ds = AlternativeFormInfoProvider.GetAlternativeForms("FormName='" + SqlHelperClass.GetSafeQueryString(nameElem.CodeName, false) +
                                                                     "' AND FormClassID=" + afi.FormClassID, null);

        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            if (!((ds.Tables.Count == 1) && (ds.Tables[0].Rows.Count == 1) && (
                      ValidationHelper.GetInteger(ds.Tables[0].Rows[0]["FormID"], 0) == altFormId)))
            {
                lblError.Visible = true;
                lblError.Text    = GetString("general.codenameexists");
                lblInfo.Visible  = false;
                return;
            }
        }

        afi.FormDisplayName = nameElem.DisplayName;
        afi.FormName        = nameElem.CodeName;
        AlternativeFormInfoProvider.SetAlternativeFormInfo(afi);

        // Required to log staging task, alternative form is not binded to bizform as child
        using (CMSActionContext context = new CMSActionContext())
        {
            context.CreateVersion = false;

            // Log synchronization
            BizFormInfo bfi = BizFormInfoProvider.GetBizFormInfo(formId);
            SynchronizationHelper.LogObjectChange(bfi, TaskTypeEnum.UpdateObject);
        }

        URLHelper.Redirect("AlternativeForms_Edit_General.aspx?altformid=" + altFormId + "&formid=" + formId + "&saved=1");
    }
Ejemplo n.º 10
0
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        myProfile.IsLiveSite = true;

        if (StopProcessing)
        {
            myProfile.StopProcessing = true;
        }
        else
        {
            // Get alternative form info
            AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(AlternativeFormName);
            if (afi != null)
            {
                myProfile.AlternativeFormName        = AlternativeFormName;
                myProfile.AllowEditVisibility        = AllowEditVisibility;
                myProfile.AfterSaveRedirectURL       = AfterSaveRedirectURL;
                myProfile.SubmitButtonResourceString = SubmitButtonResourceString;
                myProfile.FormCSSClass           = FormCSSClass;
                myProfile.MarkRequiredFields     = MarkRequiredFields;
                myProfile.UseColonBehindLabel    = UseColonBehindLabel;
                myProfile.ValidationErrorMessage = GetString("general.errorvalidationerror");
            }
            else
            {
                lblError.Text      = String.Format(GetString("altform.formdoesntexists"), AlternativeFormName);
                lblError.Visible   = true;
                plcContent.Visible = false;
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(mAlternativeFormId);

        UIContext.EditedObject = afi;

        if (afi == null)
        {
            return;
        }

        DataClassInfo dci = DataClassInfoProvider.GetDataClassInfo(afi.FormClassID);

        if (dci == null)
        {
            ShowError(GetString("general.invalidid"));
        }
        else
        {
            string formDef          = dci.ClassFormDefinition;
            string coupledClassName = null;

            if (afi.FormCoupledClassID > 0)
            {
                // If coupled class is defined combine form definitions
                DataClassInfo coupledDci = DataClassInfoProvider.GetDataClassInfo(afi.FormCoupledClassID);
                if (coupledDci != null)
                {
                    formDef          = FormHelper.MergeFormDefinitions(formDef, coupledDci.ClassFormDefinition);
                    coupledClassName = coupledDci.ClassName;
                }
            }

            var resource = ResourceInfo.Provider.Get(QueryHelper.GetInteger("moduleid", 0));

            // Allow development mode only for non-system tables
            fieldEditor.DevelopmentMode = (resource != null) && resource.IsEditable;

            // Set original form definition
            fieldEditor.OriginalFormDefinition = formDef;

            // Merge class and alternative form definitions
            formDef = FormHelper.MergeFormDefinitions(formDef, afi.FormDefinition);

            // Initialize field editor mode and load form definition
            fieldEditor.AlternativeFormFullName = afi.FullName;
            fieldEditor.FormDefinition          = formDef;

            // Specify set of controls which should be offered for field types
            fieldEditor.DisplayedControls = mDisplayedControls;
            fieldEditor.ClassName         = dci.ClassName;
            fieldEditor.CoupledClassName  = coupledClassName;

            // Handle definition update (move up, move down, delete, OK button)
            fieldEditor.OnAfterDefinitionUpdate += fieldEditor_OnAfterDefinitionUpdate;
            fieldEditor.OnFieldNameChanged      += fieldEditor_OnFieldNameChanged;
        }
    }
Ejemplo n.º 12
0
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (this.StopProcessing)
        {
            // Do nothing
        }
        else
        {
            // Set default visibility
            pnlRegForm.Visible = true;
            lblInfo.Visible    = false;

            // WAI validation
            lblCaptcha.AssociatedControlClientID = captchaElem.InputClientID;

            // Get alternative form info
            AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(AlternativeForm);
            if (afi != null)
            {
                formUser.AlternativeFormFullName = this.AlternativeForm;
                formUser.Info = new UserInfo();
                formUser.Info.ClearData();
                formUser.ClearAfterSave         = false;
                formUser.Visible                = true;
                formUser.ValidationErrorMessage = this.RegistrationErrorMessage;
                formUser.IsLiveSite             = true;
                // Reload form if not in PortalEngine environment and if post back
                if ((this.StandAlone) && (RequestHelper.IsPostBack()))
                {
                    formUser.ReloadData();
                }

                captchaElem.Visible = this.DisplayCaptcha;
                lblCaptcha.Visible  = this.DisplayCaptcha;
                plcCaptcha.Visible  = this.DisplayCaptcha;

                btnRegister.Text   = this.ButtonText;
                btnRegister.Click += btnRegister_Click;

                formUser.OnBeforeSave += formUser_OnBeforeSave;

                lblInfo.CssClass  = "EditingFormInfoLabel";
                lblError.CssClass = "EditingFormErrorLabel";

                if (formUser.BasicForm != null)
                {
                    // Set the live site context
                    formUser.BasicForm.ControlContext.ContextName = CMS.SiteProvider.ControlContext.LIVE_SITE;
                }
            }
            else
            {
                lblError.Text      = String.Format(GetString("altform.formdoesntexists"), AlternativeForm);
                lblError.Visible   = true;
                pnlRegForm.Visible = false;
            }
        }
    }
Ejemplo n.º 13
0
    private void listElem_OnDelete(object sender, object actionArgument)
    {
        // Check 'EditForm' permission
        if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("cms.form", "EditForm", SiteInfoProvider.GetSiteName(formInfo.FormSiteID)))
        {
            RedirectToAccessDenied("cms.form", "EditForm");
        }

        AlternativeFormInfoProvider.DeleteAlternativeFormInfo(ValidationHelper.GetInteger(actionArgument, 0));
    }
    /// <summary>
    /// After form definition update event handler.
    /// </summary>
    private void fieldEditor_OnAfterDefinitionUpdate(object sender, EventArgs e)
    {
        // Perform OnBeforeSave if defined
        if (OnBeforeSave != null)
        {
            OnBeforeSave(this, EventArgs.Empty);
        }

        // Stop processing if set from outside
        if (StopProcessing)
        {
            return;
        }

        // Get alternative form info object and data class info object
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(mAlternativeFormId);

        if (afi != null)
        {
            DataClassInfo dci = DataClassInfoProvider.GetDataClassInfo(afi.FormClassID);

            if (dci != null)
            {
                string formDefinition = dci.ClassFormDefinition;

                if (afi.FormCoupledClassID > 0)
                {
                    // Combine form definitions of class and its coupled class
                    DataClassInfo coupledDci = DataClassInfoProvider.GetDataClassInfo(afi.FormCoupledClassID);
                    if (coupledDci != null)
                    {
                        formDefinition = FormHelper.MergeFormDefinitions(formDefinition, coupledDci.ClassFormDefinition);
                    }
                }

                // Compare original and alternative form definitions - store differences only
                afi.FormDefinition = FormHelper.GetFormDefinitionDifference(formDefinition, fieldEditor.FormDefinition, true);
                // Update alternative form info in database
                AlternativeFormInfoProvider.SetAlternativeFormInfo(afi);
            }
            else
            {
                ShowError(GetString("general.invalidid"));
            }
        }

        // Perform OnAfterSave if defined
        if (OnAfterSave != null)
        {
            OnAfterSave(this, EventArgs.Empty);
        }
    }
Ejemplo n.º 15
0
    void nameElem_Click(object sender, EventArgs e)
    {
        // Check 'EditForm' permission
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.form", "EditForm"))
        {
            RedirectToCMSDeskAccessDenied("cms.form", "EditForm");
        }

        // Code name validation
        string err = new Validator().IsIdentificator(nameElem.CodeName, GetString("general.erroridentificatorformat")).Result;

        if (err != String.Empty)
        {
            lblError.Visible = true;
            lblError.Text    = err;
            return;
        }

        // Checking for duplicate items
        DataSet ds = AlternativeFormInfoProvider.GetAlternativeForms("FormName='" + nameElem.CodeName +
                                                                     "' AND FormClassID=" + classId, null);

        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            lblError.Visible = true;
            lblError.Text    = GetString("general.codenameexists");
            return;
        }

        // Create new info object
        AlternativeFormInfo afi = new AlternativeFormInfo();

        afi.FormID          = 0;
        afi.FormGUID        = Guid.NewGuid();
        afi.FormClassID     = classId;
        afi.FormName        = nameElem.CodeName;
        afi.FormDisplayName = nameElem.DisplayName;

        AlternativeFormInfoProvider.SetAlternativeFormInfo(afi);

        // Required to log staging task, alternative form is not binded to bizform as child
        using (CMSActionContext context = new CMSActionContext())
        {
            context.CreateVersion = false;

            // Log synchronization
            SynchronizationHelper.LogObjectChange(bfi, TaskTypeEnum.UpdateObject);
        }

        URLHelper.Redirect("AlternativeForms_Frameset.aspx?formid=" + formId.ToString() +
                           "&altformid=" + afi.FormID + "&saved=1");
    }
Ejemplo n.º 16
0
    /// <summary>
    /// Click event - updates new values.
    /// </summary>
    /// <param name="sender">Sender</param>
    /// <param name="e">Params</param>
    void btnOK_Click(object sender, EventArgs e)
    {
        // Code name validation
        string err = new Validator().IsIdentificator(txtCodeName.Text, GetString("general.erroridentificatorformat")).Result;

        if (err != String.Empty)
        {
            lblError.Visible = true;
            lblError.Text    = err;
            lblInfo.Visible  = false;
            return;
        }

        // Validate form id
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(altFormId);

        EditedObject = afi;
        if (afi == null)
        {
            return;
        }

        // Checking for duplicate items
        DataSet ds = AlternativeFormInfoProvider.GetAlternativeForms("FormName='" + SqlHelperClass.GetSafeQueryString(txtCodeName.Text, false) +
                                                                     "' AND FormClassID=" + afi.FormClassID, null);

        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            if (!((ds.Tables.Count == 1) && (ds.Tables[0].Rows.Count == 1) && (
                      ValidationHelper.GetInteger(ds.Tables[0].Rows[0]["FormID"], 0) == altFormId)))
            {
                lblError.Visible = true;
                lblError.Text    = GetString("general.codenameexists");
                lblInfo.Visible  = false;
                return;
            }
        }

        afi.FormDisplayName = txtDisplayName.Text;
        afi.FormName        = txtCodeName.Text;
        AlternativeFormInfoProvider.SetAlternativeFormInfo(afi);

        lblInfo.Visible = true;
        lblInfo.Text    = GetString("general.changessaved");

        // Reload header if changes were saved
        ScriptHelper.RefreshTabHeader(Page, null);
    }
Ejemplo n.º 17
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Validate query params against hash value and check if control ID is not potential XSS threat
        string txtClientId = QueryHelper.GetString("txtelem", "");
        string lblClientId = QueryHelper.GetString("lblelem", "");
        Regex  re          = RegexHelper.GetRegex(@"[\w\d_$$]*");

        if (!QueryHelper.ValidateHash("hash") || !re.IsMatch(txtClientId) || !re.IsMatch(lblClientId))
        {
            pnlContent.Visible = false;
            btnOk.Visible      = false;
            return;
        }

        if (!RequestHelper.IsPostBack())
        {
            DataSet dsClasses = AlternativeFormInfoProvider.GetClassesWithAlternativeForms();

            drpClass.DataSource     = dsClasses;
            drpClass.DataValueField = "FormClassID";
            drpClass.DataTextField  = "ClassName";
            drpClass.DataBind();

            if (!DataHelper.DataSourceIsEmpty(dsClasses))
            {
                // Try to preselect class from drop-down list
                string className = QueryHelper.GetString("classname", string.Empty);
                if (className != string.Empty)
                {
                    drpClass.SelectedIndex = drpClass.Items.IndexOf(drpClass.Items.FindByText(className));
                }
                else
                {
                    drpClass.SelectedIndex = 0;
                }
                // Load alternative forms for selected class
                LoadAltFormsList();
            }
        }

        btnOk.OnClientClick     = "SelectCurrentAlternativeForm('" + txtClientId + "','" + lblClientId + "'); return false;";
        btnCancel.OnClientClick = "Cancel(); return false;";

        CurrentMaster.Title.TitleText  = GetString("altforms.selectaltform");
        CurrentMaster.Title.TitleImage = GetImageUrl("Design/Selectors/selectaltform.png");

        ltlScript.Text = ScriptHelper.GetScript("var lstAlternativeForms = document.getElementById('" + lstAlternativeForms.ClientID + "');");
    }
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            // Get group info
            GroupInfo gi = null;
            if (((GroupName == "") || GroupName == GroupInfoProvider.CURRENT_GROUP) && (CommunityContext.CurrentGroup != null))
            {
                gi = CommunityContext.CurrentGroup;
            }
            else
            {
                gi = GroupInfoProvider.GetGroupInfo(GroupName, SiteContext.CurrentSiteName);
            }

            if (gi != null)
            {
                // Get alternative form info
                AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(AlternativeFormName);
                if (afi != null)
                {
                    // Initialize data form
                    formElem.Visible = true;
                    formElem.Info    = gi;
                    formElem.AlternativeFormFullName = AlternativeFormName;
                    formElem.SubmitButton.Visible    = false;
                    formElem.IsLiveSite = true;
                }
                else
                {
                    lblError.Text      = String.Format(GetString("altform.formdoesntexists"), AlternativeFormName);
                    lblError.Visible   = true;
                    plcContent.Visible = false;
                }
            }
            else
            {
                // Hide data form
                formElem.Visible     = false;
                lblNoProfile.Visible = true;
                lblNoProfile.Text    = NoProfileText;
            }
        }
    }
    /// <summary>
    /// Updates an existing alternative forms form definitions. Appends existing custom fields to new version definitions.
    /// </summary>
    private static void UpdateAlternativeForms()
    {
        DataSet classes = GetFormDefinitions(true);

        if (!DataHelper.DataSourceIsEmpty(classes))
        {
            foreach (DataRow row in classes.Tables[0].Rows)
            {
                string objectName    = DataHelper.GetStringValue(row, FORM_DEFINITION_NAME_COLUMN);
                string newDefinition = DataHelper.GetStringValue(row, FORM_DEFINITION_VALUE_COLUMN);

                if (!string.IsNullOrEmpty(objectName) && !string.IsNullOrEmpty(newDefinition))
                {
                    var altForm = AlternativeFormInfoProvider.GetAlternativeFormInfo(objectName);
                    if (altForm != null)
                    {
                        var mainDci             = DataClassInfoProvider.GetDataClassInfo(altForm.FormClassID);
                        var classFormDefinition = mainDci.ClassFormDefinition;

                        if (altForm.FormCoupledClassID > 0)
                        {
                            // If coupled class is defined combine form definitions
                            var coupledDci = DataClassInfoProvider.GetDataClassInfo(altForm.FormCoupledClassID);
                            if (coupledDci != null)
                            {
                                classFormDefinition = FormHelper.MergeFormDefinitions(classFormDefinition, coupledDci.ClassFormDefinition);
                            }
                        }

                        var oldVersionDefinition = FormHelper.MergeFormDefinitions(classFormDefinition, altForm.FormDefinition);
                        var newVersionDefinition = FormHelper.MergeFormDefinitions(classFormDefinition, newDefinition);

                        var newVersionFi = new FormInfo(newVersionDefinition);
                        var oldVersionFi = new FormInfo(oldVersionDefinition);

                        CopyCustomFields(oldVersionFi, newVersionFi, true);

                        // Save the modified form definition
                        altForm.FormDefinition = FormHelper.GetFormDefinitionDifference(classFormDefinition, newVersionFi.GetXmlDefinition(), true);
                        altForm.Update();
                    }
                }
            }
        }
    }
Ejemplo n.º 20
0
    private void listElem_OnDelete(object sender, object actionArgument)
    {
        // Check 'EditForm' permission
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.form", "EditForm"))
        {
            RedirectToCMSDeskAccessDenied("cms.form", "EditForm");
        }
        AlternativeFormInfoProvider.DeleteAlternativeFormInfo(ValidationHelper.GetInteger(actionArgument, 0));

        // Required to log staging task, alternative form is not bound to bizform as child
        using (CMSActionContext context = new CMSActionContext())
        {
            context.CreateVersion = false;

            // Log synchronization
            SynchronizationHelper.LogObjectChange(bfi, TaskTypeEnum.UpdateObject);
        }
    }
Ejemplo n.º 21
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get alternative form ID from URL
        int altFormId = QueryHelper.GetInteger("altformid", 0);

        CurrentMaster.BodyClass += " FieldEditorBody";

        // Get alternative form
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(altFormId);

        if (afi != null)
        {
            // Initialize field editor
            altFormFieldEditor.AlternativeFormID = altFormId;
        }

        ScriptHelper.HideVerticalTabs(this);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(mAlternativeFormId);

        CMSPage.EditedObject = afi;

        if (afi != null)
        {
            DataClassInfo dci = DataClassInfoProvider.GetDataClass(afi.FormClassID);
            if (dci != null)
            {
                string formDef          = dci.ClassFormDefinition;
                string coupledClassName = null;
                if (afi.FormCoupledClassID > 0)
                {
                    // If coupled class is defined combine form definitions
                    DataClassInfo coupledDci = DataClassInfoProvider.GetDataClass(afi.FormCoupledClassID);
                    if (coupledDci != null)
                    {
                        formDef          = FormHelper.MergeFormDefinitions(formDef, coupledDci.ClassFormDefinition, true);
                        coupledClassName = coupledDci.ClassName;
                    }
                }

                // Merge class and alternative form definitions
                formDef = FormHelper.MergeFormDefinitions(formDef, afi.FormDefinition);

                // Initialize field editor mode and load form definition
                fieldEditor.IsAlternativeForm       = true;
                fieldEditor.AlternativeFormFullName = afi.FullName;
                fieldEditor.FormDefinition          = formDef;
                // Specify set of controls which should be offered for field types
                fieldEditor.DisplayedControls = mDisplayedControls;
                fieldEditor.ClassName         = dci.ClassName;
                fieldEditor.CoupledClassName  = coupledClassName;
                // Handle definition update (move up, move down, delete, OK button)
                fieldEditor.OnAfterDefinitionUpdate += fieldEditor_OnAfterDefinitionUpdate;
            }
            else
            {
                ShowErrorMessage();
            }
        }
    }
Ejemplo n.º 23
0
    void btnOK_Click(object sender, EventArgs e)
    {
        // Code name validation
        string err = new Validator().IsIdentificator(this.txtCodeName.Text, GetString("general.erroridentificatorformat")).Result;

        if (err != String.Empty)
        {
            lblError.Visible = true;
            lblError.Text    = err;
            return;
        }

        // Checking for duplicate items
        DataSet ds = AlternativeFormInfoProvider.GetAlternativeForms("FormName='" + SqlHelperClass.GetSafeQueryString(this.txtCodeName.Text, false) +
                                                                     "' AND FormClassID=" + classId, null);

        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            lblError.Visible = true;
            lblError.Text    = GetString("general.codenameexists");
            return;
        }

        // Create new info object
        AlternativeFormInfo afi = new AlternativeFormInfo();

        afi.FormID          = 0;
        afi.FormGUID        = Guid.NewGuid();
        afi.FormClassID     = classId;
        afi.FormName        = this.txtCodeName.Text;
        afi.FormDisplayName = this.txtDisplayName.Text;

        DataClassInfo dci = DataClassInfoProvider.GetDataClass(SiteObjectType.USERSETTINGS);

        if (dci != null)
        {
            afi.FormCoupledClassID = (this.chkCombineUserSettings.Checked) ? dci.ClassID : 0;
        }

        AlternativeFormInfoProvider.SetAlternativeFormInfo(afi);

        URLHelper.Redirect("Frameset.aspx?classid=" + classId + "&altformid=" + afi.FormID + "&saved=1");
    }
Ejemplo n.º 24
0
    protected void nameElem_Click(object sender, EventArgs e)
    {
        // Code name validation
        string err = new Validator().IsIdentificator(nameElem.CodeName, GetString("general.erroridentificatorformat")).Result;

        if (err != String.Empty)
        {
            lblError.Visible = true;
            lblError.Text    = err;
            return;
        }

        // Checking for duplicate items
        DataSet ds = AlternativeFormInfoProvider.GetAlternativeForms("FormName='" + SqlHelperClass.GetSafeQueryString(nameElem.CodeName, false) +
                                                                     "' AND FormClassID=" + classId, null);

        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            lblError.Visible = true;
            lblError.Text    = GetString("general.codenameexists");
            return;
        }

        // Create new info object
        AlternativeFormInfo alternativeFormInfo = new AlternativeFormInfo();

        alternativeFormInfo.FormID          = 0;
        alternativeFormInfo.FormGUID        = Guid.NewGuid();
        alternativeFormInfo.FormClassID     = classId;
        alternativeFormInfo.FormName        = nameElem.CodeName;
        alternativeFormInfo.FormDisplayName = nameElem.DisplayName;

        try
        {
            AlternativeFormInfoProvider.SetAlternativeFormInfo(alternativeFormInfo);
            URLHelper.Redirect("AlternativeForms_Frameset.aspx?classid=" + classId + "&altformid=" + alternativeFormInfo.FormID + "&saved=1");
        }
        catch (Exception ex)
        {
            lblError.Visible = true;
            lblError.Text    = ex.Message;
        }
    }
Ejemplo n.º 25
0
    /// <summary>
    /// Initializes filter form.
    /// </summary>
    private void InitializeFilterForm()
    {
        // If ClassID is not used don't initialize
        if (ClassID != UniSelector.US_NONE_RECORD)
        {
            if (ClassID > 0)
            {
                var className = DataClassInfoProvider.GetClassName(ClassID);
                var formName  = className + ".filter";
                var form      = AlternativeFormInfoProvider.GetAlternativeFormInfo(formName);
                formName += (form != null) ? "+cms.document.simplefilter" : "+cms.document.filter";

                gridDocuments.FilterFormName = formName;
            }
            else
            {
                gridDocuments.FilterFormName = "cms.document.filter";
            }
        }
    }
Ejemplo n.º 26
0
 /// <summary>
 /// Initializes the control properties.
 /// </summary>
 protected void SetupControl()
 {
     if (StopProcessing)
     {
         // Do nothing
     }
     else
     {
         // Get user info
         UserInfo ui = GetUser();
         if (ui != null)
         {
             // Get alternative form info
             AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(AlternativeFormName);
             if (afi != null)
             {
                 // Initialize data form
                 formElem.Visible = true;
                 formElem.Info    = ui;
                 formElem.AlternativeFormFullName = AlternativeFormName;
                 formElem.IsLiveSite           = true;
                 formElem.ApplyVisibility      = ApplyVisibility;
                 formElem.VisibilityFormName   = VisibilityFormName;
                 formElem.SubmitButton.Visible = false;
             }
             else
             {
                 lblError.Text      = String.Format(GetString("altform.formdoesntexists"), AlternativeFormName);
                 lblError.Visible   = true;
                 plcContent.Visible = false;
             }
         }
         else
         {
             // Hide data form
             formElem.Visible     = false;
             lblNoProfile.Visible = true;
             lblNoProfile.Text    = NoProfileText;
         }
     }
 }
Ejemplo n.º 27
0
    /// <summary>
    /// Fills alternative form list according to selection in class selector.
    /// </summary>
    private void LoadAltFormsList()
    {
        int formClassId = ValidationHelper.GetInteger(drpClass.Value, 0);
        var altForms    = AlternativeFormInfoProvider.GetAlternativeForms()
                          .Columns("FormName", "FormDisplayName", "FormClassID")
                          .WhereEquals("FormClassID", formClassId)
                          .OrderBy("FormName");

        lstAlternativeForms.Items.Clear();

        foreach (var alternativeForm in altForms)
        {
            if ((alternativeForm.FormDisplayName != String.Empty) && (alternativeForm.FormName != String.Empty))
            {
                lstAlternativeForms.Items.Add(new ListItem(ResHelper.LocalizeString(alternativeForm.FormDisplayName), alternativeForm.FullName));
            }
        }

        lstAlternativeForms.SelectedValue = null;
        lstAlternativeForms.DataBind();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get alternative form ID from URL
        int altFormId = QueryHelper.GetInteger("altformid", 0);

        CurrentMaster.BodyClass += " FieldEditorBody";

        // Get alternative form
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(altFormId);

        if (afi != null)
        {
            // Get name of the edited class
            string className = DataClassInfoProvider.GetClassName(afi.FormClassID);

            // Initialize field editor
            altFormFieldEditor.AlternativeFormID   = altFormId;
            altFormFieldEditor.ShowFieldVisibility = className.Equals(UserInfo.OBJECT_TYPE, StringComparison.InvariantCultureIgnoreCase);
        }

        ScriptHelper.HideVerticalTabs(this);
    }
Ejemplo n.º 29
0
    /// <summary>
    /// Updates an existing alternative forms form definitions. Appends existing custom fields to new version definitions.
    /// </summary>
    private static void UpdateAlternativeForms()
    {
        var path  = Path.Combine(mWebsitePath, "App_Data\\CMSTemp\\Upgrade\\AlternativeForms");
        var forms = GetAllFiles(path);

        foreach (var formPath in forms)
        {
            var form    = Path.GetFileNameWithoutExtension(formPath);
            var altForm = AlternativeFormInfoProvider.GetAlternativeFormInfo(form);
            if (altForm != null)
            {
                var mainDci             = DataClassInfoProvider.GetDataClassInfo(altForm.FormClassID);
                var classFormDefinition = mainDci.ClassFormDefinition;

                if (altForm.FormCoupledClassID > 0)
                {
                    // If coupled class is defined combine form definitions
                    var coupledDci = DataClassInfoProvider.GetDataClassInfo(altForm.FormCoupledClassID);
                    if (coupledDci != null)
                    {
                        classFormDefinition = FormHelper.MergeFormDefinitions(classFormDefinition, coupledDci.ClassFormDefinition);
                    }
                }

                // Make sure that the false flag for extra fields is not used in future upgrades (8.0 further) since extra custom fields could be added to alternative forms since v8
                var oldVersionDefinition = FormHelper.MergeFormDefinitions(classFormDefinition, altForm.FormDefinition, false);
                var newVersionDefinition = FormHelper.MergeFormDefinitions(classFormDefinition, File.ReadAllText(formPath));

                var newVersionFi = new FormInfo(newVersionDefinition);
                var oldVersionFi = new FormInfo(oldVersionDefinition);

                CopyCustomFields(oldVersionFi, newVersionFi);

                // Save the modified form definition
                altForm.FormDefinition = FormHelper.GetFormDefinitionDifference(classFormDefinition, newVersionFi.GetXmlDefinition(), true);
                altForm.Update();
            }
        }
    }
Ejemplo n.º 30
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Check 'ReadForm' permission
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.form", "ReadForm"))
        {
            RedirectToCMSDeskAccessDenied("cms.form", "ReadForm");
        }

        altFormId = QueryHelper.GetInteger("altformid", 0);
        formId    = QueryHelper.GetInteger("formid", 0);

        // Validate
        AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(altFormId);

        EditedObject = afi;

        if (afi == null)
        {
            return;
        }

        // Init values
        if (!RequestHelper.IsPostBack())
        {
            nameElem.DisplayName = afi.FormDisplayName;
            nameElem.CodeName    = afi.FormName;
        }
        nameElem.ShowSubmitButton = true;
        nameElem.Click           += new EventHandler(nameElem_Click);

        if (QueryHelper.GetInteger("saved", 0) == 1)
        {
            lblInfo.Visible = true;
            lblInfo.Text    = GetString("general.changessaved");

            // Reload header if changes were saved
            ScriptHelper.RefreshTabHeader(Page, null);
        }
    }