WIP installer refactor, updates to template skinning dialog

[TFS Changeset #77202]
This commit is contained in:
starfighter83
2010-09-15 13:48:54 +00:00
parent 234840b7c4
commit 6c172e79d0
3 changed files with 131 additions and 7 deletions

View File

@@ -1,20 +1,21 @@
<%@ Page Language="C#" MasterPageFile="../masterpages/umbracoDialog.Master" AutoEventWireup="true" CodeBehind="TemplateSkinning.aspx.cs" Inherits="umbraco.presentation.umbraco.dialogs.TemplateSkinning" %>
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
<%@ Register TagPrefix="umb" Namespace="ClientDependency.Core.Controls" Assembly="ClientDependency.Core" %>
<%@ Import Namespace="umbraco.cms.businesslogic.packager.repositories" %>
<asp:Content ID="Content1" ContentPlaceHolderID="body" runat="server">
<cc1:Pane ID="p_apply" runat="server" Visible="false">
<cc1:PropertyPanel ID="PropertyPanel1" runat="server" Text="Select a skin">
<asp:DropDownList ID="dd_skins" runat="server" /> <asp:LinkButton OnClick="openRepo" runat="server">Download more skins</asp:LinkButton>
<asp:DropDownList ID="dd_skins" runat="server" /> <asp:LinkButton OnClick="openRepo" runat="server" ID="bt_repo">Download more skins</asp:LinkButton>
</cc1:PropertyPanel>
<cc1:PropertyPanel ID="PropertyPanel2" runat="server" Text=" ">
<br />
<asp:Button ID="Button1" runat="server" OnClick="apply" />
<asp:Button ID="Button1" runat="server" Text="Apply" OnClick="apply" />
<asp:PlaceHolder ID="ph_rollback" runat="server" Visible="false">
<em>or</em> <asp:LinkButton ID="lb_rollback" OnClick="rollback" runat="server">Rollback current skin</asp:LinkButton>
@@ -24,7 +25,32 @@
</cc1:Pane>
<cc1:Pane ID="p_download" runat="server" Visible="false">
...connect to repo and list all skins available, mark those already installed...
<div id="skins">
<asp:Repeater ID="rep_starterKitDesigns" runat="server">
<HeaderTemplate>
<ul id="starterKitDesigns">
</HeaderTemplate>
<ItemTemplate>
<li>
<img src="<%# ((Skin)Container.DataItem).Thumbnail %>" alt="<%# ((Skin)Container.DataItem).Text %>" />
<span><%# ((Skin)Container.DataItem).Text %></span>
<br />
<asp:Button ID="Button1" runat="server" Text="Download and apply" CommandArgument="<%# ((Skin)Container.DataItem).RepoGuid %>" OnClick="SelectStarterKitDesign"/>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</div>
</cc1:Pane>
</asp:Content>

View File

@@ -14,6 +14,14 @@ namespace umbraco.presentation.umbraco.dialogs
{
private int templateID = 0;
private cms.businesslogic.packager.repositories.Repository repo;
private string repoGuid = "65194810-1f85-11dd-bd0b-0800200c9a66";
public TemplateSkinning()
{
repo = cms.businesslogic.packager.repositories.Repository.getByGuid(repoGuid);
}
protected void Page_Load(object sender, EventArgs e)
{
templateID = int.Parse(Request["id"]);
@@ -51,16 +59,88 @@ namespace umbraco.presentation.umbraco.dialogs
return FindTemplateRoot(t.Parent);
}
protected void openRepo(object sender, EventArgs e) { }
protected void openRepo(object sender, EventArgs e) {
Guid? g = Skinning.StarterKitGuid(templateID);
if (g == null || !Skinning.HasAvailableSkins(templateID))
{
bt_repo.Visible = false;
}
else
{
if (repo.HasConnection())
{
try
{
rep_starterKitDesigns.DataSource = repo.Webservice.Skins(g.ToString());
rep_starterKitDesigns.DataBind();
}
catch (Exception ex)
{
BusinessLogic.Log.Add(BusinessLogic.LogTypes.Debug, -1, ex.ToString());
//ShowConnectionError();
}
}
else
{
//ShowConnectionError();
}
}
p_apply.Visible = false;
p_download.Visible = true;
}
protected void SelectStarterKitDesign(object sender, EventArgs e)
{
Guid kitGuid = new Guid(((Button)sender).CommandArgument);
cms.businesslogic.packager.Installer installer = new cms.businesslogic.packager.Installer();
if (repo.HasConnection())
{
cms.businesslogic.packager.Installer p = new cms.businesslogic.packager.Installer();
string tempFile = p.Import(repo.fetch(kitGuid.ToString()));
p.LoadConfig(tempFile);
int pID = p.CreateManifest(tempFile, kitGuid.ToString(), repoGuid);
p.InstallFiles(pID, tempFile);
p.InstallBusinessLogic(pID, tempFile);
p.InstallCleanUp(pID, tempFile);
library.RefreshContent();
if (cms.businesslogic.skinning.Skinning.GetAllSkins().Count > 0)
{
cms.businesslogic.skinning.Skinning.ActivateAsCurrentSkin(cms.businesslogic.skinning.Skinning.GetAllSkins()[0]);
}
Page.Response.Redirect(library.NiceUrl(int.Parse(UmbracoContext.Current.PageId.ToString())));
}
else
{
//ShowConnectionError();
}
}
protected void apply(object sender, EventArgs e) {
if (dd_skins.SelectedIndex > 0)
{
Skinn
Skin s = Skin.CreateFromAlias(dd_skins.SelectedValue);
Skinning.ActivateAsCurrentSkin(s);
}
}
protected void rollback(object sender, EventArgs e) { }
protected void rollback(object sender, EventArgs e) {
Skinning.RollbackSkin(templateID);
}
}
}

View File

@@ -39,6 +39,15 @@ namespace umbraco.presentation.umbraco.dialogs {
/// </remarks>
protected global::System.Web.UI.WebControls.DropDownList dd_skins;
/// <summary>
/// bt_repo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.LinkButton bt_repo;
/// <summary>
/// PropertyPanel2 control.
/// </summary>
@@ -83,5 +92,14 @@ namespace umbraco.presentation.umbraco.dialogs {
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::umbraco.uicontrols.Pane p_download;
/// <summary>
/// rep_starterKitDesigns control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Repeater rep_starterKitDesigns;
}
}