using System; using CMS.CMSHelper; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.DocumentEngine; using CMS.UIControls; using CMS.WorkflowEngine; using CMS.ExtendedControls; [RegisterTitle("content.ui.propertiesattachments")] public partial class CMSModules_Content_CMSDesk_Properties_Attachments : CMSPropertiesPage { #region "Page events" protected override void OnInit(EventArgs e) { base.OnInit(e); DocumentManager.OnAfterAction += DocumentManager_OnAfterAction; if (!CMSContext.CurrentUser.IsAuthorizedPerUIElement("CMS.Content", "Properties.Attachments")) { RedirectToCMSDeskUIElementAccessDenied("CMS.Content", "Properties.Attachments"); } // Enable split mode EnableSplitMode = true; // Ensure correct padding CurrentMaster.PanelContent.CssClass = ""; // Mark selected tab UIContext.PropertyTab = PropertyTabEnum.Attachments; } protected void Page_Load(object sender, EventArgs e) { if (Node != null) { // Register WebDAV script if (CMSContext.IsWebDAVEnabled(CMSContext.CurrentSiteName) && RequestHelper.IsWindowsAuthentication()) { // Register scripts string script = "function RefreshForm(){" + Page.ClientScript.GetPostBackEventReference(btnRefresh, "") + " }"; ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "RefreshForm", ScriptHelper.GetScript(script)); ScriptHelper.RegisterWebDAV(Page); } ucAttachments.Container.CssClass = "PageContent"; ucAttachments.DocumentID = Node.DocumentID; ucAttachments.NodeParentNodeID = Node.NodeParentID; ucAttachments.NodeClassName = Node.NodeClassName; // Resize attachment due to site settings string siteName = CMSContext.CurrentSiteName; ucAttachments.ResizeToHeight = ImageHelper.GetAutoResizeToHeight(siteName); ucAttachments.ResizeToWidth = ImageHelper.GetAutoResizeToWidth(siteName); ucAttachments.ResizeToMaxSideSize = ImageHelper.GetAutoResizeToMaxSideSize(siteName); ucAttachments.PageSize = "10,25,50,100,##ALL##"; pnlContent.Enabled = !DocumentManager.ProcessingAction; } } protected override void OnPreRender(EventArgs e) { base.OnPreRender(e); if (Node != null) { ucAttachments.Enabled = DocumentManager.AllowSave; } } void DocumentManager_OnAfterAction(object sender, DocumentManagerEventArgs e) { // Refresh content if (e.ActionName == DocumentComponentEvents.UNDO_CHECKOUT) { ucAttachments.ReloadData(); } } /// /// Refresh button click event handler. /// protected void btnRefresh_Click(object sender, EventArgs e) { if (Node != null) { // Check permission to modify document if (CMSContext.CurrentUser.IsAuthorizedPerDocument(Node, NodePermissionsEnum.Modify) == AuthorizationResultEnum.Allowed) { // Ensure version for later detection whether node is published Node.VersionManager.EnsureVersion(Node, Node.IsPublished); // Get workflow manager WorkflowManager wm = WorkflowManager.GetInstance(Tree); // Tree refresh is needed only if node was archived or published WorkflowStepInfo currentStep = wm.GetStepInfo(Node); bool refreshTree = (currentStep != null) && (currentStep.StepIsArchived || currentStep.StepIsPublished); // Move to edit step wm.MoveToFirstStep(Node, null); // Refresh frames and tree string script = "if(window.FramesRefresh){FramesRefresh(" + refreshTree.ToString().ToLowerCSafe() + ", " + Node.NodeID + ");}"; ScriptHelper.RegisterStartupScript(this, typeof(string), "refreshAction", ScriptHelper.GetScript(script)); } } } #endregion }