using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CMS.CMSHelper;
using CMS.DocumentEngine;
using CMS.ExtendedControls;
using CMS.GlobalHelper;
using CMS.SettingsProvider;
using CMS.SiteProvider;
using CMS.UIControls;
using CMS.WorkflowEngine;
using CMS.FormControls;
using CMS.Controls;
using CMS.ExtendedControls.ActionsConfig;
using CMS.PortalEngine;
using TreeNode = CMS.DocumentEngine.TreeNode;
using System.Data;
public partial class CMSModules_Content_Controls_Wireframe : CMSUserControl
{
#region "Protected variables"
protected bool hasModifyPermission = true;
TreeNode node = null;
#endregion
#region "Properties"
///
/// Edit menu
///
public EditMenu EditMenu
{
get;
set;
}
///
/// Indicates whether the asynchronous post back occurs on the page.
///
private bool IsAsyncPostback
{
get
{
return ScriptManager.GetCurrent(Page).IsInAsyncPostBack;
}
}
#endregion
#region "Page events"
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
DocumentManager.OnSaveData += DocumentManager_OnSaveData;
}
protected void Page_Load(object sender, EventArgs e)
{
UIContext.PropertyTab = PropertyTabEnum.Wireframe;
// Register the scripts
ScriptHelper.RegisterProgress(Page);
// Init node
EditMenu.HandleWorkflow = false;
DocumentManager.HandleWorkflow = false;
node = DocumentManager.Node;
if (node != null)
{
if (node.NodeWireframeTemplateID > 0)
{
EditMenu.ShowRemoveWireframe = true;
}
else
{
// Document does not have the wireframe
ShowInformation(GetString("Wireframe.NotSet"));
EditMenu.ShowSave = false;
EditMenu.ShowCreateWireframe = true;
pnlForm.Visible = false;
}
}
pnlInherits.GroupingText = GetString("PageProperties.InheritLevels");
if (!RequestHelper.IsPostBack())
{
ReloadData();
}
}
protected override void OnPreRender(EventArgs e)
{
// Enable form
bool enable = hasModifyPermission && DocumentManager.AllowSave;
pnlForm.Enabled = enable;
base.OnPreRender(e);
}
#endregion
#region "Control handling"
protected void DocumentManager_OnSaveData(object sender, DocumentManagerEventArgs e)
{
node.SetValue("NodeWireframeComment", txtComment.Text);
node.SetValue("NodeWireframeInheritPageLevels", inheritElem.Value);
}
#endregion
#region "Methods"
private void ReloadData()
{
if (node != null)
{
if (node.IsRoot())
{
// Hide inheritance options for root node
pnlInherits.Visible = false;
}
else
{
inheritElem.Value = node.NodeWireframeInheritPageLevels;
}
CurrentUserInfo currentUser = CMSContext.CurrentUser;
// Check read permissions
if (currentUser.IsAuthorizedPerDocument(node, NodePermissionsEnum.Read) == AuthorizationResultEnum.Denied)
{
RedirectToAccessDenied(String.Format(GetString("cmsdesk.notauthorizedtoreaddocument"), node.NodeAliasPath));
}
// Check modify permissions
else if (!currentUser.IsAuthorizedPerResource("CMS.Design", "Wireframing") || (currentUser.IsAuthorizedPerDocument(node, NodePermissionsEnum.Modify) == AuthorizationResultEnum.Denied))
{
hasModifyPermission = false;
txtComment.Enabled = false;
EditMenu.Enabled = false;
}
txtComment.Text = node.GetStringValue("NodeWireframeComment", "");
}
}
#endregion
}