Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ad99d164c9 | |||
| ae3205c429 | |||
| 10c71a7381 | |||
| 9875c37cf2 | |||
| 67e36a0d60 | |||
| bcca0528c0 | |||
| 4f04692afa | |||
| 9909b10edb | |||
| 4e6c4d6f7f |
@@ -46,7 +46,7 @@
|
||||
<add application="settings" alias="scripts" title="Scripts" type="Umbraco.Web.Trees.ScriptTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4"
|
||||
xdt:Locator="Match(application,alias)"
|
||||
xdt:Transform="SetAttributes()" />
|
||||
<add application="settings" alias="dictionary" title="Dictionary" type="Umbraco.Web.Trees.SettingsDictionaryTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6"
|
||||
<add application="settings" alias="dictionary" title="Dictionary" type="Umbraco.Web.Trees.DictionaryTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6"
|
||||
xdt:Locator="Match(application,alias)"
|
||||
xdt:Transform="SetAttributes()" />
|
||||
<add alias="dictionary" application="settings"
|
||||
|
||||
+2
-2
@@ -11,5 +11,5 @@ using System.Resources;
|
||||
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
|
||||
[assembly: AssemblyFileVersion("7.11.0")]
|
||||
[assembly: AssemblyInformationalVersion("7.11.0")]
|
||||
[assembly: AssemblyFileVersion("7.11.1")]
|
||||
[assembly: AssemblyInformationalVersion("7.11.1")]
|
||||
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Configuration
|
||||
{
|
||||
public class UmbracoVersion
|
||||
{
|
||||
private static readonly Version Version = new Version("7.11.0");
|
||||
private static readonly Version Version = new Version("7.11.1");
|
||||
|
||||
/// <summary>
|
||||
/// Gets the current version of Umbraco.
|
||||
|
||||
+1
-31
@@ -140,37 +140,7 @@ function umbTreeDirective($compile, $log, $q, $rootScope, treeService, notificat
|
||||
//Filter the path for root node ids (we don't want to pass in -1 or 'init')
|
||||
|
||||
args.path = _.filter(args.path, function (item) { return (item !== "init" && item !== "-1"); });
|
||||
|
||||
//Once those are filtered we need to check if the current user has a special start node id,
|
||||
// if they do, then we're going to trim the start of the array for anything found from that start node
|
||||
// and previous so that the tree syncs properly. The tree syncs from the top down and if there are parts
|
||||
// of the tree's path in there that don't actually exist in the dom/model then syncing will not work.
|
||||
|
||||
userService.getCurrentUser().then(function (userData) {
|
||||
|
||||
var startNodes = [];
|
||||
for (var i = 0; i < userData.startContentIds; i++) {
|
||||
startNodes.push(userData.startContentIds[i]);
|
||||
}
|
||||
for (var j = 0; j < userData.startMediaIds; j++) {
|
||||
startNodes.push(userData.startMediaIds[j]);
|
||||
}
|
||||
|
||||
_.each(startNodes, function (i) {
|
||||
var found = _.find(args.path, function (p) {
|
||||
return String(p) === String(i);
|
||||
});
|
||||
if (found) {
|
||||
args.path = args.path.splice(_.indexOf(args.path, found));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
loadPath(args.path, args.forceReload, args.activate);
|
||||
|
||||
});
|
||||
|
||||
|
||||
loadPath(args.path, args.forceReload, args.activate);
|
||||
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
+13
-13
@@ -318,25 +318,25 @@ angular.module("umbraco")
|
||||
mediaItem.thumbnail = mediaHelper.resolveFileFromEntity(mediaItem, true);
|
||||
mediaItem.image = mediaHelper.resolveFileFromEntity(mediaItem, false);
|
||||
// set properties to match a media object
|
||||
if (mediaItem.metaData &&
|
||||
mediaItem.metaData.umbracoWidth &&
|
||||
mediaItem.metaData.umbracoHeight) {
|
||||
|
||||
mediaItem.properties = [
|
||||
{
|
||||
mediaItem.properties = [];
|
||||
if (mediaItem.metaData) {
|
||||
if (mediaItem.metaData.umbracoWidth && mediaItem.metaData.umbracoHeight) {
|
||||
mediaItem.properties.push({
|
||||
alias: "umbracoWidth",
|
||||
value: mediaItem.metaData.umbracoWidth.Value
|
||||
},
|
||||
{
|
||||
});
|
||||
mediaItem.properties.push({
|
||||
alias: "umbracoHeight",
|
||||
value: mediaItem.metaData.umbracoHeight.Value
|
||||
},
|
||||
{
|
||||
alias: 'umbracoFile',
|
||||
});
|
||||
}
|
||||
if (mediaItem.metaData.umbracoFile) {
|
||||
mediaItem.properties.push({
|
||||
alias: "umbracoFile",
|
||||
editor: mediaItem.metaData.umbracoFile.PropertyEditorAlias,
|
||||
value: mediaItem.metaData.umbracoFile.Value
|
||||
}
|
||||
];
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
// update images
|
||||
|
||||
@@ -16,6 +16,10 @@ function booleanEditorController($scope, $rootScope, assetsService) {
|
||||
|
||||
setupViewModel();
|
||||
|
||||
if( $scope.model && !$scope.model.value ) {
|
||||
$scope.model.value = ($scope.renderModel.value === true) ? '1' : '0';
|
||||
}
|
||||
|
||||
//here we declare a special method which will be called whenever the value has changed from the server
|
||||
//this is instead of doing a watch on the model.value = faster
|
||||
$scope.model.onValueChanged = function (newVal, oldVal) {
|
||||
|
||||
@@ -492,6 +492,7 @@
|
||||
<Content Include="Umbraco\Config\Lang\tr.xml" />
|
||||
<Content Include="Umbraco\Config\Lang\zh_tw.xml" />
|
||||
<Content Include="Umbraco\create.aspx" />
|
||||
<Content Include="Umbraco\Developer\Packages\installer.aspx" />
|
||||
<Content Include="Umbraco\Logout.aspx" />
|
||||
<Content Include="Umbraco\umbraco.aspx" />
|
||||
<Content Include="Umbraco_Client\Application\JQuery\jquery.unobtrusive-ajax.min.js" />
|
||||
@@ -1034,9 +1035,9 @@ xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.1\x86\*.* "$(TargetDir)x86\"
|
||||
<WebProjectProperties>
|
||||
<UseIIS>True</UseIIS>
|
||||
<AutoAssignPort>True</AutoAssignPort>
|
||||
<DevelopmentServerPort>7110</DevelopmentServerPort>
|
||||
<DevelopmentServerPort>7111</DevelopmentServerPort>
|
||||
<DevelopmentServerVPath>/</DevelopmentServerVPath>
|
||||
<IISUrl>http://localhost:7110</IISUrl>
|
||||
<IISUrl>http://localhost:7111</IISUrl>
|
||||
<NTLMAuthentication>False</NTLMAuthentication>
|
||||
<UseCustomServer>False</UseCustomServer>
|
||||
<CustomServerUrl>
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<%@ Page Language="c#" MasterPageFile="../../masterpages/umbracoPage.Master"
|
||||
AutoEventWireup="True" Inherits="umbraco.presentation.developer.packages.Installer" Trace="false" ValidateRequest="false" %>
|
||||
<%@ Register TagPrefix="cc1" Namespace="umbraco.uicontrols" Assembly="controls" %>
|
||||
|
||||
<asp:Content ContentPlaceHolderID="body" runat="server">
|
||||
<cc1:UmbracoPanel ID="Panel1" Text="Install package" runat="server" Width="496px" Height="584px">
|
||||
<cc1:Pane ID="pane_installing" runat="server" Visible="false" Text=""></cc1:Pane>
|
||||
<cc1:Pane ID="pane_optional" runat="server" Visible="false" />
|
||||
</cc1:UmbracoPanel>
|
||||
</asp:Content>
|
||||
@@ -16,7 +16,7 @@
|
||||
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, umbraco" iconClosed="" iconOpen="" initialize="false" sortOrder="0" />
|
||||
<add application="settings" alias="scripts" title="Scripts" type="Umbraco.Web.Trees.ScriptTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
|
||||
<add application="settings" alias="languages" title="Languages" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.LanguageTreeController, umbraco" sortOrder="5" />
|
||||
<add application="settings" alias="dictionary" title="Dictionary" type="Umbraco.Web.Trees.SettingsDictionaryTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6" />
|
||||
<add application="settings" alias="dictionary" title="Dictionary" type="Umbraco.Web.Trees.DictionaryTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6" />
|
||||
<add initialize="true" sortOrder="7" alias="mediaTypes" application="settings" title="Media Types" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MediaTypeTreeController, umbraco" />
|
||||
<add initialize="true" sortOrder="8" alias="contentBlueprints" application="settings" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.ContentBlueprintTreeController, umbraco" />
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<add application="settings" alias="stylesheetProperty" title="Stylesheet Property" type="umbraco.loadStylesheetProperty, umbraco" iconClosed="" iconOpen="" initialize="false" sortOrder="0" />
|
||||
<add application="settings" alias="scripts" title="Scripts" type="Umbraco.Web.Trees.ScriptTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
|
||||
<add application="settings" alias="languages" title="Languages" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.LanguageTreeController, umbraco" sortOrder="5" />
|
||||
<add application="settings" alias="dictionary" title="Dictionary" type="Umbraco.Web.Trees.SettingsDictionaryTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6" />
|
||||
<add application="settings" alias="dictionary" title="Dictionary" type="Umbraco.Web.Trees.DictionaryTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="6" />
|
||||
<add initialize="true" sortOrder="7" alias="mediaTypes" application="settings" title="Media Types" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MediaTypeTreeController, umbraco" />
|
||||
<add initialize="true" sortOrder="8" alias="contentBlueprints" application="settings" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.ContentBlueprintTreeController, umbraco" />
|
||||
<!--Developer-->
|
||||
|
||||
+22
-1
@@ -5,11 +5,32 @@ using umbraco.BusinessLogic.Actions;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Web.Models.Trees;
|
||||
using Umbraco.Web.WebApi.Filters;
|
||||
|
||||
namespace Umbraco.Web.Trees
|
||||
{
|
||||
public class DictionaryTreeBaseController : TreeController
|
||||
[UmbracoTreeAuthorize(Constants.Trees.Dictionary)]
|
||||
[Mvc.PluginController("UmbracoTrees")]
|
||||
[CoreTree]
|
||||
[Tree(Constants.Applications.Settings, Constants.Trees.Dictionary, null, sortOrder: 3)]
|
||||
public class DictionaryTreeController : TreeController
|
||||
{
|
||||
protected override TreeNode CreateRootNode(FormDataCollection queryStrings)
|
||||
{
|
||||
var root = base.CreateRootNode(queryStrings);
|
||||
|
||||
// the default section is settings, falling back to this if we can't
|
||||
// figure out where we are from the querystring parameters
|
||||
var section = Constants.Applications.Settings;
|
||||
if (queryStrings["application"] != null)
|
||||
section = queryStrings["application"];
|
||||
|
||||
// this will load in a custom UI instead of the dashboard for the root node
|
||||
root.RoutePath = $"{section}/{Constants.Trees.Dictionary}/list";
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The method called to render the contents of the tree structure
|
||||
/// </summary>
|
||||
@@ -1,24 +0,0 @@
|
||||
using System.Net.Http.Formatting;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Web.Models.Trees;
|
||||
using Umbraco.Web.WebApi.Filters;
|
||||
|
||||
namespace Umbraco.Web.Trees
|
||||
{
|
||||
[UmbracoTreeAuthorize(Constants.Trees.Dictionary)]
|
||||
[Tree(Constants.Applications.Settings, Constants.Trees.Dictionary, null, sortOrder: 3)]
|
||||
[Mvc.PluginController("UmbracoTrees")]
|
||||
[CoreTree]
|
||||
public class SettingsDictionaryTreeController : DictionaryTreeBaseController
|
||||
{
|
||||
protected override TreeNode CreateRootNode(FormDataCollection queryStrings)
|
||||
{
|
||||
var root = base.CreateRootNode(queryStrings);
|
||||
|
||||
// this will load in a custom UI instead of the dashboard for the root node
|
||||
root.RoutePath = $"{Constants.Applications.Settings}/{Constants.Trees.Dictionary}/list";
|
||||
|
||||
return root;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
using System.Net.Http.Formatting;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Web.Models.Trees;
|
||||
using Umbraco.Web.WebApi.Filters;
|
||||
|
||||
namespace Umbraco.Web.Trees
|
||||
{
|
||||
[UmbracoTreeAuthorize(Constants.Trees.Dictionary)]
|
||||
[Tree(Constants.Applications.Translation, Constants.Trees.Dictionary, null, sortOrder: 3)]
|
||||
[Mvc.PluginController("UmbracoTrees")]
|
||||
[CoreTree]
|
||||
public class TranslationDictionaryTreeController : DictionaryTreeBaseController
|
||||
{
|
||||
protected override TreeNode CreateRootNode(FormDataCollection queryStrings)
|
||||
{
|
||||
var root = base.CreateRootNode(queryStrings);
|
||||
|
||||
// this will load in a custom UI instead of the dashboard for the root node
|
||||
root.RoutePath = $"{Constants.Applications.Translation}/{Constants.Trees.Dictionary}/list";
|
||||
|
||||
return root;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -528,9 +528,7 @@
|
||||
<Compile Include="Models\Mapping\PropertyTypeGroupResolver.cs" />
|
||||
<Compile Include="Security\Identity\PreviewAuthenticationMiddleware.cs" />
|
||||
<Compile Include="SingletonHttpContextAccessor.cs" />
|
||||
<Compile Include="Trees\DictionaryTreeBaseController.cs" />
|
||||
<Compile Include="Trees\SettingsDictionaryTreeController.cs" />
|
||||
<Compile Include="Trees\TranslationDictionaryTreeController.cs" />
|
||||
<Compile Include="Trees\DictionaryBaseController.cs" />
|
||||
<Compile Include="Trees\MacroTreeController.cs" />
|
||||
<Compile Include="Trees\UserTreeController.cs" />
|
||||
<Compile Include="Suspendable.cs" />
|
||||
@@ -543,6 +541,9 @@
|
||||
<Compile Include="Trees\XsltTreeController.cs" />
|
||||
<Compile Include="umbraco.presentation\SafeXmlReaderWriter.cs" />
|
||||
<Compile Include="Trees\ScriptTreeController.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\developer\Packages\installer.aspx.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UmbracoDefaultOwinStartup.cs" />
|
||||
<Compile Include="IUmbracoContextAccessor.cs" />
|
||||
<Compile Include="Models\ContentEditing\Relation.cs" />
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using System.Web.UI;
|
||||
using umbraco.BasePages;
|
||||
using umbraco.BusinessLogic;
|
||||
using umbraco.cms.presentation.Trees;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Web;
|
||||
|
||||
namespace umbraco.presentation.developer.packages
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for packager.
|
||||
/// </summary>
|
||||
[Obsolete("This should not be used and will be removed in v8, this is kept here only for backwards compat reasons, this page should never be rendered/used")]
|
||||
public class Installer : UmbracoEnsuredPage
|
||||
{
|
||||
|
||||
private Control _configControl;
|
||||
private readonly cms.businesslogic.packager.Installer _installer;
|
||||
protected uicontrols.Pane pane_installing;
|
||||
protected uicontrols.Pane pane_optional;
|
||||
|
||||
public Installer()
|
||||
{
|
||||
CurrentApp = DefaultApps.developer.ToString();
|
||||
_installer = new cms.businesslogic.packager.Installer(UmbracoUser.Id);
|
||||
}
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Request.GetItemAsString("installing")))
|
||||
return;
|
||||
|
||||
pane_optional.Visible = false;
|
||||
pane_installing.Visible = true;
|
||||
ProcessInstall(Request.GetItemAsString("installing"));
|
||||
}
|
||||
|
||||
private void ProcessInstall(string currentStep)
|
||||
{
|
||||
var dir = Request.GetItemAsString("dir");
|
||||
|
||||
int.TryParse(Request.GetItemAsString("pId"), out var packageId);
|
||||
|
||||
switch (currentStep.ToLowerInvariant())
|
||||
{
|
||||
case "custominstaller":
|
||||
var customControl = Request.GetItemAsString("customControl");
|
||||
|
||||
if (customControl.IsNullOrWhiteSpace() == false)
|
||||
{
|
||||
pane_optional.Visible = false;
|
||||
|
||||
_configControl = LoadControl(SystemDirectories.Root + customControl);
|
||||
_configControl.ID = "packagerConfigControl";
|
||||
|
||||
pane_optional.Controls.Add(_configControl);
|
||||
pane_optional.Visible = true;
|
||||
|
||||
if (IsPostBack == false)
|
||||
{
|
||||
//We still need to clean everything up which is normally done in the Finished Action
|
||||
PerformPostInstallCleanup(packageId, dir);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
//if the custom installer control is empty here (though it should never be because we've already checked for it previously)
|
||||
//then we should run the normal FinishedAction
|
||||
PerformFinishedAction(packageId, dir);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void PerformPostInstallCleanup(int packageId, string dir)
|
||||
{
|
||||
_installer.InstallCleanUp(packageId, dir);
|
||||
|
||||
// Update ClientDependency version
|
||||
var clientDependencyConfig = new Umbraco.Core.Configuration.ClientDependencyConfiguration(LoggerResolver.Current.Logger);
|
||||
clientDependencyConfig.IncreaseVersionNumber();
|
||||
|
||||
//clear the tree cache - we'll do this here even though the browser will reload, but just in case it doesn't can't hurt.
|
||||
ClientTools.ClearClientTreeCache().RefreshTree("packager");
|
||||
TreeDefinitionCollection.Instance.ReRegisterTrees();
|
||||
BusinessLogic.Actions.Action.ReRegisterActionsAndHandlers();
|
||||
}
|
||||
|
||||
private void PerformFinishedAction(int packageId, string dir)
|
||||
{
|
||||
pane_optional.Visible = false;
|
||||
PerformPostInstallCleanup(packageId, dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user