protected void Page_Load(object sender, EventArgs e) { ScriptHelper.RegisterDialogScript(Page); ScriptHelper.RegisterApplicationConstants(Page); // Get the object type string param = ContextMenu.Parameter; string objectType = null; bool showMoveActions = false; if (param != null) { string[] parameters = param.Split(';'); objectType = parameters[0]; showMoveActions = (parameters.Length >= 3) && ValidationHelper.GetBoolean(parameters[2], false); } // Get empty info GeneralizedInfo emptyObject = null; ObjectTypeInfo ti = null; if (objectType != null) { var uiContextSiteId = ValidationHelper.GetInteger(UIContext["SiteID"], 0); emptyObject = UniGridFunctions.GetEmptyObjectWithSiteID(objectType, uiContextSiteId); ti = emptyObject.TypeInfo; // Get correct info for listings if (ti.Inherited) { emptyObject = UniGridFunctions.GetEmptyObjectWithSiteID(ti.OriginalObjectType, uiContextSiteId); } } if (emptyObject == null) { Visible = false; return; } var curUser = MembershipContext.AuthenticatedUser; string curSiteName = SiteContext.CurrentSiteName; string menuId = ContextMenu.MenuID; if (ti.OrderColumn != ObjectTypeInfo.COLUMN_NAME_UNKNOWN && showMoveActions) { iMoveUp.Attributes.Add("onclick", "ContextMoveObject_" + ClientID + "('#moveup', GetContextMenuParameter('" + menuId + "'))"); iMoveDown.Attributes.Add("onclick", "ContextMoveObject_" + ClientID + "('#movedown', GetContextMenuParameter('" + menuId + "'))"); } else { iMoveUp.Visible = false; iMoveDown.Visible = false; } // Relationships if (ti.HasObjectRelationships) { iRelationships.Attributes.Add("onclick", "ContextRelationships(GetContextMenuParameter('" + menuId + "'));"); } else { iRelationships.Visible = false; } // Export if (ti.ImportExportSettings.AllowSingleExport) { if (curUser.IsAuthorizedPerResource("cms.globalpermissions", "ExportObjects", curSiteName)) { iExport.Attributes.Add("onclick", "ContextExportObject(GetContextMenuParameter('" + menuId + "'), false);"); } else { iExport.Visible = false; } if (ti.GUIDColumn != ObjectTypeInfo.COLUMN_NAME_UNKNOWN) { if (curUser.IsAuthorizedPerResource("cms.globalpermissions", "BackupObjects", curSiteName)) { iBackup.Attributes.Add("onclick", "ContextExportObject(GetContextMenuParameter('" + menuId + "'), true);"); } else { iBackup.Visible = false; } if (curUser.IsAuthorizedPerResource("cms.globalpermissions", "RestoreObjects", curSiteName)) { iRestore.Attributes.Add("onclick", "ContextRestoreObject(GetContextMenuParameter('" + menuId + "'), true);"); } else { iRestore.Visible = false; } } else { iBackup.Visible = false; iRestore.Visible = false; } } else { iExport.Visible = false; iBackup.Visible = false; iRestore.Visible = false; } // Versioning if (ObjectVersionManager.AllowObjectRestore(emptyObject) && UniGridFunctions.ObjectSupportsDestroy(emptyObject) && curUser.IsAuthorizedPerObject(PermissionsEnum.Destroy, emptyObject, curSiteName)) { iDestroy.Attributes.Add("onclick", "ContextDestroyObject_" + ClientID + "(GetContextMenuParameter('" + menuId + "'))"); } else { iDestroy.Visible = false; } // Clonning if (emptyObject.AllowClone) { iClone.Attributes.Add("onclick", "ContextCloneObject" + "(GetContextMenuParameter('" + menuId + "'))"); } else { iClone.Visible = false; } bool ancestor = iRelationships.Visible; sepCloneDestroy.Visible = (iClone.Visible || iDestroy.Visible) && ancestor; ancestor |= (iClone.Visible || iDestroy.Visible); sepExport.Visible = (iBackup.Visible || iRestore.Visible || iExport.Visible) && ancestor; ancestor |= (iBackup.Visible || iRestore.Visible || iExport.Visible); sepMove.Visible = (iMoveUp.Visible || iMoveDown.Visible) && ancestor; Visible = iRelationships.Visible || iExport.Visible || iBackup.Visible || iDestroy.Visible || iClone.Visible || iMoveUp.Visible || iMoveDown.Visible; }