/// <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) { if (!CheckPermissions("CMS.ContentPersonalization", "Manage")) { return; } int variantId = ValidationHelper.GetInteger(actionArgument, 0); if (variantId > 0) { string action = actionName.ToLowerCSafe(); switch (action) { case "delete": { // Get the instance in order to clear the cache ContentPersonalizationVariantInfo vi = ContentPersonalizationVariantInfoProvider.GetContentPersonalizationVariant(variantId); // Delete the object ContentPersonalizationVariantInfoProvider.DeleteContentPersonalizationVariant(variantId); RaiseOnAction(string.Empty, null); // Log widget variant synchronization if ((vi != null) && (vi.VariantDocumentID > 0)) { // Log synchronization DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, tree); } } break; case "up": case "down": { // Get the instance in order to clear the cache ContentPersonalizationVariantInfo vi = ContentPersonalizationVariantInfoProvider.GetContentPersonalizationVariant(variantId); // Use try/catch due to license check try { if (action == "up") { // Move up ContentPersonalizationVariantInfoProvider.MoveVariantUp(variantId); } else { // Move down ContentPersonalizationVariantInfoProvider.MoveVariantDown(variantId); } RaiseOnAction(string.Empty, null); // Log widget variant synchronization if (vi.VariantDocumentID > 0) { // Log synchronization DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, tree); } } catch (Exception ex) { lblError.Visible = true; lblError.Text = ex.Message; } } break; } } }
/// <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) { if (!CheckPermissions("CMS.ContentPersonalization", PERMISSION_MODIFY)) { return; } int variantId = ValidationHelper.GetInteger(actionArgument, 0); if (variantId > 0) { string action = actionName.ToLowerCSafe(); switch (action) { case "delete": { // Get the instance in order to clear the cache ContentPersonalizationVariantInfo vi = ContentPersonalizationVariantInfoProvider.GetContentPersonalizationVariant(variantId); // Delete the object ContentPersonalizationVariantInfoProvider.DeleteContentPersonalizationVariant(variantId); RaiseOnAction(string.Empty, null); // Log widget variant synchronization if ((vi != null) && (vi.VariantDocumentID > 0)) { // Log synchronization DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, tree); } } break; case "up": case "down": { // Get the instance in order to clear the cache ContentPersonalizationVariantInfo vi = ContentPersonalizationVariantInfoProvider.GetContentPersonalizationVariant(variantId); // Use try/catch due to license check try { if (action == "up") { // Move up ContentPersonalizationVariantInfoProvider.MoveVariantUp(variantId); } else { // Move down ContentPersonalizationVariantInfoProvider.MoveVariantDown(variantId); } // Reload the variants in the current cached pageInfo if ((Node != null) && (vi != null)) { // Get the PageInfo of the current document PageInfo pi = PageInfoProvider.GetPageInfo(CMSContext.CurrentSiteName, Node.NodeAliasPath, CMSContext.PreferredCultureCode, null, Node.NodeID, tree.CombineWithDefaultCulture); // Reload the zone/web part variants when moving up/down if ((pi != null) && (pi.UsedPageTemplateInfo != null) && (pi.UsedPageTemplateInfo.TemplateInstance != null)) { // Reload web part, widget variants if (vi.VariantInstanceGUID != Guid.Empty) { WebPartInstance webPartInstance = pi.UsedPageTemplateInfo.TemplateInstance.GetWebPart(vi.VariantInstanceGUID); if (webPartInstance != null) { webPartInstance.LoadVariants(true, VariantModeEnum.ContentPersonalization); } } // Reload zone variants else { WebPartZoneInstance zoneInstance = pi.UsedPageTemplateInfo.TemplateInstance.GetZone(vi.VariantZoneID); if (zoneInstance != null) { zoneInstance.LoadVariants(true, VariantModeEnum.ContentPersonalization); } } } RaiseOnAction(string.Empty, null); // Log widget variant synchronization if (vi.VariantDocumentID > 0) { // Log synchronization DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, tree); } } } catch (Exception ex) { lblError.Visible = true; lblError.Text = ex.Message; } } break; } } }