Exemple #1
0
    /// <summary>
    /// Validates the form data. Checks the code name format and if the code name is unique.
    /// </summary>
    public bool ValidateData()
    {
        // Check the required fields for emptiness
        bool isValid = EditForm.ValidateData();

        if (isValid)
        {
            if ((EditForm.EditedObject == null) || (EditForm.ParentObject == null))
            {
                UIFormControl.ShowError(GetString("general.saveerror"));
                return(false);
            }

            // Create a temporary variant object in order to check the code name format rules and uniqueness
            MVTVariantInfo variant = new MVTVariantInfo();
            variant.MVTVariantName           = VariantCodeName;
            variant.MVTVariantID             = EditForm.EditedObject.GetIntegerValue("MVTVariantID", 0);
            variant.MVTVariantPageTemplateID = EditForm.ParentObject.GetIntegerValue("PageTemplateID", 0);

            // Validate the codename format
            if (!ValidationHelper.IsCodeName(VariantCodeName))
            {
                isValid = false;
                UIFormControl.ShowError(String.Format(GetString("general.codenamenotvalid"), VariantCodeName));
            }
            // Check if the code name already exists
            else if (!variant.CheckUniqueCodeName())
            {
                isValid = false;
                UIFormControl.ShowError(String.Format(GetString("general.codenamenotunique"), VariantCodeName));
            }
        }

        return(isValid);
    }
    /// <summary>
    /// Handles UniGrid's OnAction event.
    /// </summary>
    /// <param name="actionName">Name of the action which should be performed</param>
    /// <param name="actionArgument">ID of the item the action should be performed with</param>
    protected void gridElem_OnAction(string actionName, object actionArgument)
    {
        int mvtvariantId = ValidationHelper.GetInteger(actionArgument, 0);

        if (mvtvariantId > 0)
        {
            switch (actionName.ToLowerCSafe())
            {
            case "delete":
                if (CheckPermissions("CMS.MVTest", PERMISSION_MANAGE))
                {
                    // Get the web part instance Guid in order to clear the webpart's cache
                    Guid           webPartInstanceGuid = Guid.Empty;
                    MVTVariantInfo vi = MVTVariantInfoProvider.GetMVTVariantInfo(mvtvariantId);

                    // Delete the object
                    MVTVariantInfoProvider.DeleteMVTVariantInfo(mvtvariantId);
                    RaiseOnDelete();

                    // Log widget variant synchronization
                    if ((vi != null) && (vi.MVTVariantDocumentID > 0))
                    {
                        // Log synchronization
                        DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, tree);
                    }
                }
                break;
            }
        }
    }
    /// <summary>
    /// Checks code name in template uniqueness.
    /// </summary>
    /// <param name="codeName">New code name</param>
    /// <returns>True if code name is unique</returns>
    private bool CheckUniqueCodeName(string codeName)
    {
        var dummyMVT = new MVTVariantInfo
        {
            MVTVariantName           = codeName,
            MVTVariantPageTemplateID = mTemplateID,
            MVTVariantDocumentID     = (variantType == VariantTypeEnum.Widget) ? Node.DocumentID : 0
        };

        return(dummyMVT.CheckUniqueValues());
    }
Exemple #4
0
    /// <summary>
    /// Handles the OnAfterSave event of the EditForm control.
    /// </summary>
    void EditForm_OnAfterSave(object sender, EventArgs e)
    {
        if (UIFormControl.EditedObject != null)
        {
            // Clear cache
            CacheHelper.TouchKey("om.mvtvariant|bytemplateid|" + (UIFormControl.EditedObject as MVTVariantInfo).MVTVariantPageTemplateID);

            // Log widget variant synchronization
            MVTVariantInfo variantInfo = (MVTVariantInfo)UIFormControl.EditedObject;
            if (variantInfo.MVTVariantDocumentID > 0)
            {
                // Log synchronization
                TreeProvider tree = new TreeProvider(CMSContext.CurrentUser);
                TreeNode     node = tree.SelectSingleDocument(variantInfo.MVTVariantDocumentID);
                DocumentSynchronizationHelper.LogDocumentChange(node, TaskTypeEnum.UpdateDocument, tree);
            }
        }
    }
Exemple #5
0
    /// <summary>
    /// Handles UniGrid's OnAction event.
    /// </summary>
    /// <param name="actionName">Name of the action which should be performed</param>
    /// <param name="actionArgument">ID of the item the action should be performed with</param>
    protected void gridElem_OnAction(string actionName, object actionArgument)
    {
        int mvtvariantId = ValidationHelper.GetInteger(actionArgument, 0);

        if (mvtvariantId > 0)
        {
            switch (actionName.ToLower())
            {
            case "delete":
                if (CheckPermissions("CMS.MVTest", CMSAdminControl.PERMISSION_MODIFY))
                {
                    // Get the web part instance Guid in order to clear the webpart's cache
                    Guid           webPartInstanceGuid = Guid.Empty;
                    MVTVariantInfo vi = MVTVariantInfoProvider.GetMVTVariantInfo(mvtvariantId);

                    // Delete the object
                    MVTVariantInfoProvider.DeleteMVTVariantInfo(mvtvariantId);
                    this.RaiseOnDelete();

                    // Log widget variant synchronization
                    if ((vi != null) && (vi.MVTVariantDocumentID > 0))
                    {
                        // Log synchronization
                        DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, tree);
                    }

                    // Clear web part variants from the cache
                    if (vi != null)
                    {
                        CMSContext.CurrentDocument = null;
                        ReloadWebPartCache(vi.MVTVariantZoneID, vi.MVTVariantInstanceGUID);
                    }
                }
                break;
            }
        }
    }
Exemple #6
0
    /// <summary>
    /// Raises event postback event.
    /// </summary>
    /// <param name="eventArgument">Event argument</param>
    /// <param name="uniqueCode">Unique code</param>
    /// <param name="variantId">Variant ID</param>
    public void RaisePostBackEvent(string eventArgument, string uniqueCode, int variantId)
    {
        // Check permissions
        if (!CheckPermissions("Manage") ||
            stopProcessing)
        {
            return;
        }

        // Get the argument
        string arg = eventArgument.ToLowerCSafe();

        if (arg == "remove")
        {
            // Remove variant action
            int documentId = 0;

            if (VariantMode == VariantModeEnum.MVT)
            {
                // Is MVT zone => remove the MVT variant
                MVTVariantInfo variantObj = MVTVariantInfoProvider.GetMVTVariantInfo(variantId);
                if (variantObj != null)
                {
                    // Delete the variant
                    MVTVariantInfoProvider.DeleteMVTVariantInfo(variantObj);
                    documentId = variantObj.MVTVariantDocumentID;
                }
            }
            else if (VariantMode == VariantModeEnum.ContentPersonalization)
            {
                // Is Content personalization zone => remove the Content personalization variant
                ContentPersonalizationVariantInfo variantObj = ContentPersonalizationVariantInfoProvider.GetContentPersonalizationVariant(variantId);
                if (variantObj != null)
                {
                    // Delete the variant
                    ContentPersonalizationVariantInfoProvider.DeleteContentPersonalizationVariant(variantObj);
                    documentId = variantObj.VariantDocumentID;
                }
            }
            else
            {
                return;
            }

            // Log widget variant synchronization
            if (documentId > 0)
            {
                TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
                TreeNode     node = DocumentHelper.GetDocument(documentId, tree);
                DocumentSynchronizationHelper.LogDocumentChange(node, TaskTypeEnum.UpdateDocument, tree);
            }

            switch (SliderMode)
            {
            // Remove zone variant
            case VariantTypeEnum.Zone:
                if ((WebPartZoneControl != null) && (WebPartZoneControl.ZoneInstance != null))
                {
                    // Remove the variant from WebPartZoneControl.ZoneInstance.ZoneInstanceVariants.
                    // It is necessary to remove the variants from the PartInstanceVariants list manually because the PageLoad method has already run
                    // and the PartInstanceVariants list was populated with the old values.
                    WebPartZoneControl.RemoveVariantFromCache(variantId);
                }
                break;

            // Remove web part or widget variant
            case VariantTypeEnum.WebPart:
            case VariantTypeEnum.Widget:
                if ((WebPartControl != null) && (WebPartControl.PartInstance != null))
                {
                    // Remove the variant from WebPartControls.PartInstance.PartInstanceVariants.
                    // It is necessary to remove the variants from the PartInstanceVariants list manually because the PageLoad method has already run
                    // and the PartInstanceVariants list was populated with the old values.
                    WebPartControl.RemoveVariantFromCache(variantId);

                    // If there are no other variants present, set the VariantMode to None to allow refreshing the add variant buttons.
                    if ((WebPartControl.PartInstance.PartInstanceVariants == null) || (WebPartControl.PartInstance.PartInstanceVariants.Count == 0))
                    {
                        mVariantMode = VariantModeEnum.None;
                    }
                }
                break;

            default:
                break;
            }

            // Refresh the variant slider position => choose the last variant
            ltrScript.Text = ScriptHelper.GetScript(
                @"cpVariantSliderPositionElem = GetCPVariantSliderPositionElem();
                UpdateVariantPosition('" + uniqueCode + @"', '-1');
                SaveSlidersConfiguration();");
        }
    }
    /// <summary>
    /// Validates the form data. Checks the code name format and if the code name is unique.
    /// </summary>
    public bool ValidateData()
    {
        // Check the required fields for emptiness
        bool isValid = EditForm.ValidateData();

        if (isValid)
        {
            if ((EditForm.EditedObject == null) || (EditForm.ParentObject == null))
            {
                UIFormControl.ShowError(GetString("general.saveerror"));
                return false;
            }

            // Create a temporary variant object in order to check the code name format rules and uniqueness
            MVTVariantInfo variant = new MVTVariantInfo();
            variant.MVTVariantName = VariantCodeName;
            variant.MVTVariantID = EditForm.EditedObject.GetIntegerValue("MVTVariantID", 0);
            variant.MVTVariantPageTemplateID = EditForm.ParentObject.GetIntegerValue("PageTemplateID", 0);

            // Validate the codename format
            if (!ValidationHelper.IsCodeName(VariantCodeName))
            {
                isValid = false;
                UIFormControl.ShowError(String.Format(GetString("general.codenamenotvalid"), VariantCodeName));
            }
            // Check if the code name already exists
            else if (!variant.CheckUniqueCodeName())
            {
                isValid = false;
                UIFormControl.ShowError(String.Format(GetString("general.codenamenotunique"), VariantCodeName));
            }
        }

        return isValid;
    }
 /// <summary>
 /// Checks code name in template uniqueness.
 /// </summary>
 /// <param name="codeName">New code name</param>
 /// <returns>True if code name is unique</returns>
 private bool CheckUniqueCodeName(string codeName)
 {
     var dummyMVT = new MVTVariantInfo
     {
         MVTVariantName = codeName,
         MVTVariantPageTemplateID = mTemplateID,
         MVTVariantDocumentID = (variantType == VariantTypeEnum.Widget) ? Node.DocumentID : 0
     };
     return dummyMVT.CheckUniqueValues();
 }