/// <summary> /// Provides version rollback. Called when the "Rollback version" button is pressed. /// Expects the CreateVersionedObject method to be run first. /// </summary> private bool RollbackVersion() { // Get the css stylesheet CssStylesheetInfo stylesheet = CssStylesheetInfoProvider.GetCssStylesheetInfo("MyNewVersionedStylesheet"); if (stylesheet != null) { // Prepare query parameters string where = "VersionObjectID =" + stylesheet.StylesheetID + " AND VersionObjectType = '" + stylesheet.ObjectType + "'"; string orderBy = "VersionModifiedWhen ASC"; int topN = 1; // Get dataset with versions according to the parameters DataSet versionDS = ObjectVersionHistoryInfoProvider.GetVersionHistories(where, orderBy, topN, null); if (!DataHelper.DataSourceIsEmpty(versionDS)) { // Get version ObjectVersionHistoryInfo version = new ObjectVersionHistoryInfo(versionDS.Tables[0].Rows[0]); // Roll back ObjectVersionManager.RollbackVersion(version.VersionID); return(true); } } return(false); }
protected void Page_Load(object sender, EventArgs e) { btnClose.Text = GetString("General.Close"); bool noCompare = ValidationHelper.GetBoolean(QueryHelper.GetString("nocompare", string.Empty), false); // Initialize view version control viewVersion.NoComparison = noCompare; int versionId = ValidationHelper.GetInteger(QueryHelper.GetString("versionhistoryid", string.Empty), 0); viewVersion.VersionCompareID = ValidationHelper.GetInteger(QueryHelper.GetString("comparehistoryid", string.Empty), 0); // Get version to initialize title ObjectVersionHistoryInfo version = ObjectVersionHistoryInfoProvider.GetVersionHistoryInfo(versionId); if (version != null) { string objectType = version.VersionObjectType; string objType = GetString("ObjectType." + objectType.Replace(".", "_")); string title = String.Format(GetString("objectversioning.viewversion.title"), objType, HTMLHelper.HTMLEncode(ResHelper.LocalizeString(version.VersionObjectDisplayName))); // Set title - do not display context help when comparison not available string helpTopic = noCompare ? null : "objectversioning_viewversion"; this.SetTitle("CMSModules/CMS_ObjectVersioning/viewversion.png", title, helpTopic, "Object versioning - View version"); viewVersion.Version = version; // Exclude site binding table data GeneralizedInfo infoObj = TranslationHelper.GetReadOnlyObject(objectType); viewVersion.ExcludedTableNames = CMSObjectHelper.GetTableName(infoObj.TypeInfo.SiteBindingObject); } // Set what data should be displayed bool showAll = ValidationHelper.GetBoolean(QueryHelper.GetBoolean("showall", false), false); viewVersion.ObjectDataOnly = !showAll; }
/// <summary> /// Button make version major click. /// </summary> protected void btnMakeMajor_Click(object sender, EventArgs e) { if (Object != null) { // Check permissions if (CheckPermissions && !AllowModify) { ShowError(GetString("History.ErrorNotAllowedToModify")); return; } ObjectVersionHistoryInfo version = ObjectVersionManager.GetLatestVersion(Object.TypeInfo.ObjectType, Object.Generalized.ObjectID); if (version != null) { if (ObjectVersionManager.MakeVersionMajor(version)) { ShowConfirmation(GetString("objectversioning.makeversionmajorinfo")); } ReloadData(); } else { ShowError(GetString("objectversioning.makeversionmajornoversion") + " " + GetString("objectversioning.objecthasnohistory")); } } else { UIContext.EditedObject = null; } }
/// <summary> /// Gets new table header cell which contains label and rollback image. /// </summary> /// <param name="suffixID">ID suffix</param> /// <param name="objectVersion">VersionHistoryInfo object</param> private TableHeaderCell GetRollbackTableHeaderCell(string suffixID, ObjectVersionHistoryInfo objectVersion) { TableHeaderCell tblHeaderCell = new TableHeaderCell(); // Label Label lblValue = new Label(); lblValue.ID = "lbl" + suffixID; lblValue.Text = HTMLHelper.HTMLEncode(GetVersionNumber(objectVersion.VersionNumber, objectVersion.VersionModifiedWhen)) + " "; tblHeaderCell.Controls.Add(lblValue); // Add rollback controls if user authorized to modify selected object if (objectVersion.CheckPermissions(PermissionsEnum.Modify, SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser)) { // Rollback image var imgRollback = new HyperLink(); imgRollback.ID = "imgRollback" + suffixID; imgRollback.CssClass = "table-header-action"; imgRollback.NavigateUrl = "#"; string tooltip = null; string confirmText = null; var info = ProviderHelper.GetInfoById(Version.VersionObjectType, Version.VersionObjectID); var rollbackEnabled = !SynchronizationHelper.IsCheckedOutByOtherUser(info); // Set image action and description according to roll back type if (chkDisplayAllData.Checked) { tooltip = GetString("objectversioning.versionlist.versionfullrollbacktooltip"); confirmText = GetString("objectversioning.versionlist.confirmfullrollback"); } else { tooltip = GetString("history.versionrollbacktooltip"); confirmText = GetString("Unigrid.ObjectVersionHistory.Actions.Rollback.Confirmation"); } imgRollback.Text = tooltip; imgRollback.Enabled = rollbackEnabled; // Prepare onclick script if (rollbackEnabled) { var confirmScript = "if (confirm(\"" + confirmText + "\")) { "; confirmScript += ControlsHelper.GetPostBackEventReference(this, objectVersion.VersionID + "|" + chkDisplayAllData.Checked) + "; } return false;"; imgRollback.Attributes.Add("onclick", confirmScript); } tblHeaderCell.Controls.Add(imgRollback); } return(tblHeaderCell); }
/// <summary> /// Destroys latest version from history. Called when the "Destroy version" button is pressed. /// Expects the CreateVersionedObject method to be run first. /// </summary> private bool DestroyVersion() { // Get the css stylesheet CssStylesheetInfo stylesheet = CssStylesheetInfoProvider.GetCssStylesheetInfo("MyNewVersionedStylesheet"); if (stylesheet != null) { // Get the latest version ObjectVersionHistoryInfo version = ObjectVersionManager.GetLatestVersion(stylesheet.ObjectType, stylesheet.StylesheetID); if (version != null) { // Destroy the latest version ObjectVersionManager.DestroyObjectVersion(version.VersionID); return(true); } } return(false); }
/// <summary> /// Restores object from recycle bin. Called when the "Restore object" button is pressed. /// Expects the DeleteObject method to be run first. /// </summary> private bool RestoreObject() { // Prepare query parameters string where = "VersionObjectType = '" + SiteObjectType.CSSSTYLESHEET + "' AND VersionDeletedByUserID = " + CMSContext.CurrentUser.UserID; string orderBy = "VersionDeletedWhen DESC"; int topN = 1; // Get dataset with versions according to the parameters DataSet versionDS = ObjectVersionHistoryInfoProvider.GetVersionHistories(where, orderBy, topN, null); if (!DataHelper.DataSourceIsEmpty(versionDS)) { // Get version ObjectVersionHistoryInfo version = new ObjectVersionHistoryInfo(versionDS.Tables[0].Rows[0]); // Restore the object ObjectVersionManager.RestoreObject(version.VersionID, true); return(true); } return(false); }
protected void Page_Load(object sender, EventArgs e) { // Even thought this page uses dialog master page, it always opens in new tab PageTitle.IsDialog = false; bool noCompare = ValidationHelper.GetBoolean(QueryHelper.GetString("nocompare", string.Empty), false); // Initialize view version control viewVersion.NoComparison = noCompare; int versionId = ValidationHelper.GetInteger(QueryHelper.GetString("versionhistoryid", string.Empty), 0); viewVersion.VersionCompareID = ValidationHelper.GetInteger(QueryHelper.GetString("comparehistoryid", string.Empty), 0); // Get version to initialize title ObjectVersionHistoryInfo version = ObjectVersionHistoryInfoProvider.GetVersionHistoryInfo(versionId); if (version != null) { string objectType = version.VersionObjectType; string objType = GetString("ObjectType." + objectType.Replace(".", "_")); string title = String.Format(GetString("objectversioning.viewversion.title"), objType, HTMLHelper.HTMLEncode(ResHelper.LocalizeString(version.VersionObjectDisplayName))); // Set title SetTitle(title); viewVersion.Version = version; // Exclude site binding table data GeneralizedInfo infoObj = ModuleManager.GetReadOnlyObject(objectType); viewVersion.ExcludedTableNames = ObjectHelper.GetSerializationTableName(infoObj.TypeInfo.SiteBindingObject); } // Set what data should be displayed bool showAll = ValidationHelper.GetBoolean(QueryHelper.GetBoolean("showall", false), false); viewVersion.ObjectDataOnly = !showAll; }
/// <summary> /// Button make version major click. /// </summary> protected void btnMakeMajor_Click(object sender, EventArgs e) { if (Object != null) { ObjectVersionHistoryInfo version = ObjectVersionManager.GetLatestVersion(Object.ObjectType, Object.ObjectID); if (version != null) { ObjectVersionManager.MakeVersionMajor(version); ReloadData(); lblInfo.Text = GetString("objectversioning.makeversionmajorinfo"); } else { lblError.Text = GetString("objectversioning.makeversionmajornoversion") + " " + GetString("objectversioning.objecthasnohistory"); } plcLabels.Visible = true; } else { CMSPage.EditedObject = null; } }
/// <summary> /// Handles the UniGrid's OnAction event. /// </summary> /// <param name="actionName">Name of item (button) that throws event</param> /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param> protected void ugRecycleBin_OnAction(string actionName, object actionArgument) { int versionHistoryId = ValidationHelper.GetInteger(actionArgument, 0); actionName = actionName.ToLowerCSafe(); switch (actionName) { case "restorechilds": case "restorewithoutbindings": case "restorecurrentsite": try { if (MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("cms.globalpermissions", "RestoreObjects")) { switch (actionName) { case "restorechilds": ObjectVersionManager.RestoreObject(versionHistoryId, true); break; case "restorewithoutbindings": ObjectVersionManager.RestoreObject(versionHistoryId, 0); break; case "restorecurrentsite": ObjectVersionManager.RestoreObject(versionHistoryId, SiteContext.CurrentSiteID); break; } ShowConfirmation(GetString("ObjectVersioning.Recyclebin.RestorationOK")); } else { ShowError(ResHelper.GetString("objectversioning.recyclebin.restorationfailedpermissions")); } } catch (CodeNameNotUniqueException ex) { ShowError(String.Format(GetString("objectversioning.restorenotuniquecodename"), (ex.Object != null) ? "('" + ex.Object.ObjectCodeName + "')" : null)); } catch (Exception ex) { ShowError(GetString("objectversioning.recyclebin.restorationfailed") + GetString("general.seeeventlog")); // Log to event log LogException("OBJECTRESTORE", ex); } break; case "destroy": ObjectVersionHistoryInfo verInfo = ObjectVersionHistoryInfoProvider.GetVersionHistoryInfo(versionHistoryId); if (verInfo != null) { // Get object site name string siteName = (CurrentSite != null) ? CurrentSite.SiteName : SiteInfoProvider.GetSiteName(verInfo.VersionObjectSiteID); if (CurrentUser.IsAuthorizedPerObject(PermissionsEnum.Destroy, verInfo.VersionObjectType, siteName)) { ObjectVersionManager.DestroyObjectHistory(verInfo.VersionObjectType, verInfo.VersionObjectID); ShowConfirmation(GetString("ObjectVersioning.Recyclebin.DestroyOK")); } else { ShowError(String.Format(ResHelper.GetString("objectversioning.recyclebin.destructionfailedpermissions"), HTMLHelper.HTMLEncode(ResHelper.LocalizeString(verInfo.VersionObjectDisplayName)))); } } break; } ugRecycleBin.ResetSelection(); }
/// <summary> /// Gets new table header cell which contains label and rollback image. /// </summary> /// <param name="suffixID">ID suffix</param> /// <param name="objectVersion">VersionHistoryInfo object</param> private TableHeaderCell GetRollbackTableHeaderCell(string suffixID, ObjectVersionHistoryInfo objectVersion) { TableHeaderCell tblHeaderCell = new TableHeaderCell(); // Label Label lblValue = new Label(); lblValue.ID = "lbl" + suffixID; lblValue.Text = HTMLHelper.HTMLEncode(GetVersionNumber(objectVersion.VersionNumber, objectVersion.VersionModifiedWhen)) + " "; tblHeaderCell.Controls.Add(lblValue); // Add rollback controls if user authorized to modify selected object if (objectVersion.CheckPermissions(PermissionsEnum.Modify, SiteContext.CurrentSiteName, MembershipContext.AuthenticatedUser)) { // Rollback image var imgRollback = new HyperLink(); imgRollback.ID = "imgRollback" + suffixID; imgRollback.CssClass = "table-header-action"; imgRollback.NavigateUrl = "#"; string tooltip = null; string confirmText = null; var info = BaseAbstractInfoProvider.GetInfoById(Version.VersionObjectType, Version.VersionObjectID); var rollbackEnabled = !SynchronizationHelper.IsCheckedOutByOtherUser(info); // Set image action and description according to roll back type if (chkDisplayAllData.Checked) { tooltip = GetString("objectversioning.versionlist.versionfullrollbacktooltip"); confirmText = GetString("objectversioning.versionlist.confirmfullrollback"); } else { tooltip = GetString("history.versionrollbacktooltip"); confirmText = GetString("Unigrid.ObjectVersionHistory.Actions.Rollback.Confirmation"); } imgRollback.Text = tooltip; imgRollback.Enabled = rollbackEnabled; // Prepare onclick script if (rollbackEnabled) { var confirmScript = "if (confirm(\"" + confirmText + "\")) { "; confirmScript += ControlsHelper.GetPostBackEventReference(this, objectVersion.VersionID + "|" + chkDisplayAllData.Checked) + "; return false; }"; imgRollback.Attributes.Add("onclick", confirmScript); } tblHeaderCell.Controls.Add(imgRollback); } return tblHeaderCell; }
/// <summary> /// Gets new table header cell which contains label and rollback image. /// </summary> /// <param name="suffixID">ID suffix</param> /// <param name="documentID">Document ID</param> /// <param name="versionID">Version history ID</param> /// <param name="action">Action</param> private TableHeaderCell GetRollbackTableHeaderCell(string suffixID, ObjectVersionHistoryInfo objectVersion) { TableHeaderCell tblHeaderCell = new TableHeaderCell(); // Label Label lblValue = new Label(); lblValue.ID = "lbl" + suffixID; lblValue.Text = HTMLHelper.HTMLEncode(GetVersionNumber(objectVersion.VersionNumber, objectVersion.VersionModifiedWhen)); // Panel Panel pnlLabel = new Panel(); pnlLabel.ID = "pnlLabel" + suffixID; pnlLabel.CssClass = "LeftAlign"; pnlLabel.Controls.Add(lblValue); tblHeaderCell.Controls.Add(pnlLabel); // Add rollback controls if user authorized to modify selected object if (UserInfoProvider.IsAuthorizedPerObject(objectVersion.VersionObjectType, PermissionsEnum.Modify, CMSContext.CurrentSiteName, CMSContext.CurrentUser)) { // Rollback panel Panel pnlImage = new Panel(); pnlImage.ID = "pnlRollback" + suffixID; pnlImage.CssClass = "RightAlign"; // Rollback image Image imgRollback = new Image(); imgRollback.ID = "imgRollback" + suffixID; string tooltip = null; string confirmText = null; var info = CMSObjectHelper.GetObjectById(Version.VersionObjectType, Version.VersionObjectID); var rollbackEnabled = !CMSObjectHelper.IsCheckedOutByOtherUser(info); // Set image action and description according to roll back type if (chkDisplayAllData.Checked) { tooltip = GetString("objectversioning.versionlist.versionfullrollbacktooltip"); confirmText = GetString("objectversioning.versionlist.confirmfullrollback"); imgRollback.ImageUrl = GetImageUrl(rollbackEnabled ? "CMSModules/CMS_RecycleBin/restorechilds.png" : "CMSModules/CMS_RecycleBin/restorechildsdisabled.png"); } else { tooltip = GetString("history.versionrollbacktooltip"); confirmText = GetString("Unigrid.ObjectVersionHistory.Actions.Rollback.Confirmation"); imgRollback.ImageUrl = GetImageUrl(rollbackEnabled ? "Design/Controls/UniGrid/Actions/undo.png" : "Design/Controls/UniGrid/Actions/undodisabled.png"); } imgRollback.AlternateText = tooltip; imgRollback.ToolTip = tooltip; imgRollback.Style.Add("cursor", "pointer"); // Prepare onclick script if (rollbackEnabled) { var confirmScript = "if (confirm(\"" + confirmText + "\")) { "; confirmScript += ControlsHelper.GetPostBackEventReference(this, objectVersion.VersionID + "|" + chkDisplayAllData.Checked) + "; return false; }"; imgRollback.Attributes.Add("onclick", confirmScript); } pnlImage.Controls.Add(imgRollback); tblHeaderCell.Controls.Add(pnlImage); } return(tblHeaderCell); }
protected void gridHistory_OnAction(string actionName, object actionArgument) { int versionHistoryId = ValidationHelper.GetInteger(actionArgument, 0); actionName = actionName.ToLowerCSafe(); switch (actionName.ToLowerCSafe()) { case "rollback": case "fullrollback": if (versionHistoryId > 0) { // Check permissions if (CheckPermissions && !AllowModify) { ShowError(GetString("History.ErrorNotAllowedToModify")); } else { try { var newVersionId = ObjectVersionManager.RollbackVersion(versionHistoryId, (actionName == "fullrollback")); ObjectVersionHistoryInfo newVersion = ObjectVersionHistoryInfo.Provider.Get(newVersionId); // Set object to null because after rollback it doesn't contain current data Object = null; gridHistory.ReloadData(); if (OnAfterRollback != null) { OnAfterRollback(this, null); } ShowConfirmation(GetString("objectversioning.rollbackOK")); ScriptHelper.RegisterStartupScript(this, typeof(string), "RefreshContent", ScriptHelper.GetScript("RefreshRelatedContent_" + ClientID + "();")); ScriptHelper.RefreshTabHeader(Page, newVersion.VersionObjectDisplayName); } catch (CodeNameNotUniqueException ex) { ShowError(String.Format(GetString("objectversioning.restorenotuniquecodename"), (ex.Object != null) ? "('" + ex.Object.ObjectCodeName + "')" : null)); } catch (Exception ex) { ShowError(GetString("objectversioning.recyclebin.restorationfailed") + " " + GetString("general.seeeventlog")); // Log to event log Service.Resolve <IEventLogService>().LogException("Object version list", "OBJECTRESTORE", ex); } } } break; case "destroy": if (versionHistoryId > 0) { // Check permissions if (CheckPermissions && !AllowDestroy) { ShowError(GetString("History.ErrorNotAllowedToDestroy")); } else { ObjectVersionManager.DestroyObjectVersion(versionHistoryId); ShowConfirmation(GetString("objectversioning.destroyOK")); } } break; } }
/// <summary> /// Provides version rollback. Called when the "Rollback version" button is pressed. /// Expects the CreateVersionedObject method to be run first. /// </summary> private bool RollbackVersion() { // Get the css stylesheet CssStylesheetInfo stylesheet = CssStylesheetInfoProvider.GetCssStylesheetInfo("MyNewVersionedStylesheet"); if (stylesheet != null) { // Prepare query parameters string where = "VersionObjectID =" + stylesheet.StylesheetID + " AND VersionObjectType = '" + stylesheet.TypeInfo.ObjectType + "'"; string orderBy = "VersionModifiedWhen ASC"; int topN = 1; // Get dataset with versions according to the parameters DataSet versionDS = ObjectVersionHistoryInfoProvider.GetVersionHistories(where, orderBy, topN, null); if (!DataHelper.DataSourceIsEmpty(versionDS)) { // Get version ObjectVersionHistoryInfo version = new ObjectVersionHistoryInfo(versionDS.Tables[0].Rows[0]); // Roll back ObjectVersionManager.RollbackVersion(version.VersionID); return true; } } return false; }
/// <summary> /// Restores object from recycle bin. Called when the "Restore object" button is pressed. /// Expects the DeleteObject method to be run first. /// </summary> private bool RestoreObject() { // Prepare query parameters string where = "VersionObjectType = '" + CssStylesheetInfo.OBJECT_TYPE + "' AND VersionDeletedByUserID = " + MembershipContext.AuthenticatedUser.UserID; string orderBy = "VersionDeletedWhen DESC"; int topN = 1; // Get dataset with versions according to the parameters DataSet versionDS = ObjectVersionHistoryInfoProvider.GetVersionHistories(where, orderBy, topN, null); if (!DataHelper.DataSourceIsEmpty(versionDS)) { // Get version ObjectVersionHistoryInfo version = new ObjectVersionHistoryInfo(versionDS.Tables[0].Rows[0]); // Restore the object ObjectVersionManager.RestoreObject(version.VersionID, true); return true; } return false; }
/// <summary> /// Gets new table header cell which contains label and rollback image. /// </summary> /// <param name="suffixID">ID suffix</param> /// <param name="documentID">Document ID</param> /// <param name="versionID">Version history ID</param> /// <param name="action">Action</param> private TableHeaderCell GetRollbackTableHeaderCell(string suffixID, ObjectVersionHistoryInfo objectVersion) { TableHeaderCell tblHeaderCell = new TableHeaderCell(); string tooltip = null; // Label Label lblValue = new Label(); lblValue.ID = "lbl" + suffixID; lblValue.Text = HTMLHelper.HTMLEncode(GetVersionNumber(objectVersion.VersionNumber, objectVersion.VersionModifiedWhen)); // Panel Panel pnlLabel = new Panel(); pnlLabel.ID = "pnlLabel" + suffixID; pnlLabel.CssClass = "LeftAlign"; pnlLabel.Controls.Add(lblValue); tblHeaderCell.Controls.Add(pnlLabel); // Add rollback controls if user authorized to modify selected object if (UserInfoProvider.IsAuthorizedPerObject(objectVersion.VersionObjectType, PermissionsEnum.Modify, CMSContext.CurrentSiteName, CMSContext.CurrentUser)) { // Rollback panel Panel pnlImage = new Panel(); pnlImage.ID = "pnlRollback" + suffixID; pnlImage.CssClass = "RightAlign"; // Rollback image Image imgRollback = new Image(); imgRollback.ID = "imgRollback" + suffixID; string confirmScript = null; // Set image action and description according to roll back type if (chkDisplayAllData.Checked) { imgRollback.ImageUrl = GetImageUrl("CMSModules/CMS_RecycleBin/restorechilds.png"); confirmScript = "if (confirm(\"" + GetString("objectversioning.versionlist.confirmfullrollback") + "\")) { "; confirmScript += ControlsHelper.GetPostBackEventReference(this, objectVersion.VersionID.ToString() + "|" + true) + "; return false; }"; tooltip = GetString("objectversioning.versionlist.versionfullrollbacktooltip"); } else { imgRollback.ImageUrl = GetImageUrl("Design/Controls/UniGrid/Actions/undo.png"); confirmScript = "if (confirm(\"" + GetString("Unigrid.ObjectVersionHistory.Actions.Rollback.Confirmation") + "\")) { "; confirmScript += ControlsHelper.GetPostBackEventReference(this, objectVersion.VersionID.ToString() + "|" + false) + "; return false; }"; tooltip = GetString("history.versionrollbacktooltip"); } imgRollback.Style.Add("cursor", "pointer"); imgRollback.AlternateText = tooltip; imgRollback.ToolTip = tooltip; // Prepare onclick script imgRollback.Attributes.Add("onclick", confirmScript); pnlImage.Controls.Add(imgRollback); tblHeaderCell.Controls.Add(pnlImage); } return tblHeaderCell; }
/// <summary> /// Handles the UniGrid's OnAction event. /// </summary> /// <param name="actionName">Name of item (button) that throws event</param> /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param> protected void ugRecycleBin_OnAction(string actionName, object actionArgument) { int versionHistoryId = ValidationHelper.GetInteger(actionArgument, 0); actionName = actionName.ToLower(); switch (actionName) { case "restorechilds": case "restorewithoutbindings": case "restorecurrentsite": try { if (CMSContext.CurrentUser.IsAuthorizedPerResource("cms.globalpermissions", "RestoreObjects")) { switch (actionName) { case "restorechilds": ObjectVersionManager.RestoreObject(versionHistoryId, true); break; case "restorewithoutbindings": ObjectVersionManager.RestoreObject(versionHistoryId, 0); break; case "restorecurrentsite": ObjectVersionManager.RestoreObject(versionHistoryId, CMSContext.CurrentSiteID); break; } lblInfo.Visible = true; lblInfo.Text = GetString("ObjectVersioning.Recyclebin.RestorationOK"); } else { lblError.Visible = true; lblError.Text = ResHelper.GetString("objectversioning.recyclebin.restorationfailedpermissions"); } } catch (CodeNameNotUniqueException ex) { lblError.Visible = true; lblError.Text = String.Format(GetString("objectversioning.restorenotuniquecodename"), (ex.Object != null) ? "('" + ex.Object.ObjectCodeName + "')" : null); } catch (Exception ex) { lblError.Visible = true; lblError.Text = GetString("objectversioning.recyclebin.restorationfailed") + GetString("general.seeeventlog"); // Log to event log LogException("OBJECTRESTORE", ex); } break; case "destroy": ObjectVersionHistoryInfo verInfo = ObjectVersionHistoryInfoProvider.GetVersionHistoryInfo(versionHistoryId); // Get object site name string siteName = null; if (CurrentSite != null) { siteName = CurrentSite.SiteName; } else { siteName = SiteInfoProvider.GetSiteName(verInfo.VersionObjectSiteID); } if ((verInfo != null) && CurrentUser.IsAuthorizedPerObject(PermissionsEnum.Destroy, verInfo.VersionObjectType, siteName)) { ObjectVersionManager.DestroyObjectHistory(verInfo.VersionObjectType, verInfo.VersionObjectID); lblInfo.Visible = true; lblInfo.Text = GetString("ObjectVersioning.Recyclebin.DestroyOK"); } else { lblError.Visible = true; lblError.Text = String.Format(ResHelper.GetString("objectversioning.recyclebin.destructionfailedpermissions"), HTMLHelper.HTMLEncode(ResHelper.LocalizeString(verInfo.VersionObjectDisplayName))); } break; } ugRecycleBin.ResetSelection(); pnlUpdateInfo.Update(); ReloadFilter((CurrentSite != null) ? CurrentSite.SiteID : -1, IsSingleSite, false); }