Files
Umbraco-CMS/umbraco/presentation/umbraco/LiveEditing/Modules/SkinModule/SkinModule.cs
2010-09-28 10:19:50 +00:00

78 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using umbraco.presentation.LiveEditing.Modules;
using ClientDependency.Core;
using System.Web.UI.WebControls;
using umbraco.presentation.LiveEditing.Controls;
using umbraco.IO;
using System.Web.UI;
using umbraco.cms.businesslogic.skinning;
using ClientDependency.Core.Controls;
using umbraco.presentation.umbraco.controls;
namespace umbraco.presentation.umbraco.LiveEditing.Modules.SkinModule
{
[ClientDependency(200, ClientDependencyType.Javascript, "modal/modal.js", "UmbracoClient")]
[ClientDependency(200, ClientDependencyType.Css, "modal/style.css", "UmbracoClient")]
public class SkinModule : BaseModule
{
protected LabelButton m_SkinButton = new LabelButton();
protected Panel m_SkinModal;
public SkinModule(LiveEditingManager manager)
: base(manager)
{ }
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
EnsureChildControls();
}
protected override void CreateChildControls()
{
base.CreateChildControls();
Skin ActiveSkin = Skin.CreateFromAlias(Skinning.GetCurrentSkinAlias(nodeFactory.Node.GetCurrent().template));
m_SkinModal = new Panel();
m_SkinModal.ID = "LeSkinModal";
m_SkinModal.Attributes.Add("style", "display: none");
m_SkinModal.Controls.Add(new UserControl().LoadControl(String.Format("{0}/LiveEditing/Modules/SKinModule/SkinCustomizer.ascx", SystemDirectories.Umbraco)));
Controls.Add(m_SkinModal);
m_SkinButton.ID = "LeSkinButton";
m_SkinButton.CssClass = "button";
m_SkinButton.ToolTip = ActiveSkin != null && ActiveSkin.Dependencies.Count > 0 ? "Customize skin" : "Change skin";
m_SkinButton.ImageUrl = String.Format("{0}/LiveEditing/Modules/SKinModule/skin.png", SystemDirectories.Umbraco);
string s = (ActiveSkin != null && ActiveSkin.Dependencies.Count > 0 ? "setTasksClientScripts();" : "") + "jQuery('#" + m_SkinModal.ClientID + @"').show();" + "jQuery('#" + m_SkinModal.ClientID + @"').ModalWindowShow('" + ui.GetText("skin") + "',true,500,400,50,0, ['.modalbuton'], null);";
m_SkinButton.OnClientClick = s +"return false;";
Controls.Add(m_SkinButton);
if (!string.IsNullOrEmpty(UmbracoContext.Current.Request["skinning"]))
{
ScriptManager.RegisterClientScriptBlock(
this,
this.GetType(),
"ShowSkinModule",
"function ShowSkinModule(){" + s + "}",
true);
ClientDependencyLoader.Instance.RegisterDependency(500, "LiveEditing/Modules/SkinModule/js/SkinModuleShowOnStartup.js", "UmbracoRoot", ClientDependencyType.Javascript);
}
}
}
}