Merge branch 'dev-v7' into 7.3.0
Conflicts: src/umbraco.cms/businesslogic/Dictionary.cs
This commit is contained in:
@@ -47,19 +47,6 @@ ECHO Performing MSBuild and producing Umbraco binaries zip files
|
||||
ECHO Setting node_modules folder to hidden to prevent VS13 from crashing on it while loading the websites project
|
||||
attrib +h ..\src\Umbraco.Web.UI.Client\node_modules
|
||||
|
||||
ECHO Adding dummy files to include in the NuGet package so that empty folders actually get created
|
||||
SET dummytext=This file is only here so that the containing folder will be included in the NuGet package, it is safe to delete.
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\App_Code\dummy.txt
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\App_Data\dummy.txt
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\App_Plugins\dummy.txt
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\css\dummy.txt
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\masterpages\dummy.txt
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\media\dummy.txt
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\scripts\dummy.txt
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\usercontrols\dummy.txt
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\Views\Partials\dummy.txt
|
||||
ECHO %dummytext% > .\_BuildOutput\WebApp\Views\MacroPartials\dummy.txt
|
||||
|
||||
ECHO Adding Web.config transform files to the NuGet package
|
||||
REN .\_BuildOutput\WebApp\MacroScripts\Web.config Web.config.transform
|
||||
REN .\_BuildOutput\WebApp\Views\Web.config Web.config.transform
|
||||
|
||||
@@ -20,14 +20,8 @@
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<file src="..\_BuildOutput\Configs\**" target="Content\config" exclude="..\_BuildOutput\Configs\Web.config.transform" />
|
||||
<file src="..\_BuildOutput\WebApp\css\**" target="Content\css" />
|
||||
<file src="..\_BuildOutput\WebApp\masterpages\**" target="Content\masterpages" />
|
||||
<file src="..\_BuildOutput\WebApp\media\**" target="Content\media" />
|
||||
<file src="..\_BuildOutput\WebApp\scripts\**" target="Content\scripts" />
|
||||
<file src="..\_BuildOutput\WebApp\usercontrols\**" target="Content\usercontrols" />
|
||||
<file src="..\_BuildOutput\Configs\**" target="Content\Config" exclude="..\_BuildOutput\Configs\Web.config.transform" />
|
||||
<file src="..\_BuildOutput\WebApp\Views\**" target="Content\Views" exclude="..\_BuildOutput\WebApp\Views\Web.config" />
|
||||
<file src="..\_BuildOutput\WebApp\xslt\**" target="Content\xslt" />
|
||||
<file src="..\_BuildOutput\WebApp\default.aspx" target="Content\default.aspx" />
|
||||
<file src="..\_BuildOutput\WebApp\Global.asax" target="Content\Global.asax" />
|
||||
<file src="..\_BuildOutput\WebApp\Web.config" target="UmbracoFiles\Web.config" />
|
||||
@@ -35,7 +29,7 @@
|
||||
<file src="..\_BuildOutput\WebApp\App_Plugins\**" target="UmbracoFiles\App_Plugins" />
|
||||
<file src="..\_BuildOutput\WebApp\bin\amd64\**" target="UmbracoFiles\bin\amd64" />
|
||||
<file src="..\_BuildOutput\WebApp\bin\x86\**" target="UmbracoFiles\bin\x86" />
|
||||
<file src="..\_BuildOutput\WebApp\config\splashes\**" target="UmbracoFiles\config\splashes" />
|
||||
<file src="..\_BuildOutput\WebApp\config\splashes\**" target="UmbracoFiles\Config\splashes" />
|
||||
<file src="..\_BuildOutput\WebApp\umbraco\**" target="UmbracoFiles\umbraco" />
|
||||
<file src="..\_BuildOutput\WebApp\umbraco_client\**" target="UmbracoFiles\umbraco_client" />
|
||||
<file src="tools\install.ps1" target="tools\install.ps1" />
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
_ _ __ __ ____ _____ _____ ____
|
||||
| | | | \/ | _ \| __ \ /\ / ____/ __ \
|
||||
| | | | \ / | |_) | |__) | / \ | | | | | |
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
"": "underscore-min.{js,map}"
|
||||
},
|
||||
"jquery": {
|
||||
"": "dist/jquery.min.{js,map}"
|
||||
"": "jquery.min.{js,map}"
|
||||
},
|
||||
"jquery-file-upload": {
|
||||
"": "**/jquery.{fileupload,fileupload-process,fileupload-angular,fileupload-image}.js"
|
||||
|
||||
@@ -137,6 +137,32 @@ angular.module("umbraco.directives")
|
||||
}, 400);
|
||||
|
||||
});
|
||||
|
||||
// pin toolbar to top of screen if we have focus and it scrolls off the screen
|
||||
var pinToolbar = function () {
|
||||
|
||||
var _toolbar = $(editor.editorContainer).find(".mce-toolbar");
|
||||
var toolbarHeight = _toolbar.height();
|
||||
|
||||
var _tinyMce = $(editor.editorContainer);
|
||||
var tinyMceRect = _tinyMce[0].getBoundingClientRect();
|
||||
var tinyMceTop = tinyMceRect.top;
|
||||
var tinyMceBottom = tinyMceRect.bottom;
|
||||
|
||||
if (tinyMceTop < 100 && (tinyMceBottom > (100 + toolbarHeight))) {
|
||||
_toolbar
|
||||
.css("visibility", "visible")
|
||||
.css("position", "fixed")
|
||||
.css("top", "100px")
|
||||
.css("margin-top", "0");
|
||||
} else {
|
||||
_toolbar
|
||||
.css("visibility", "visible")
|
||||
.css("position", "absolute")
|
||||
.css("top", "auto")
|
||||
.css("margin-top", (-toolbarHeight - 2) + "px");
|
||||
}
|
||||
};
|
||||
|
||||
//when we leave the editor (maybe)
|
||||
editor.on('blur', function (e) {
|
||||
@@ -152,6 +178,7 @@ angular.module("umbraco.directives")
|
||||
}
|
||||
|
||||
_toolbar.css("visibility", "hidden");
|
||||
$('.umb-panel-body').off('scroll', pinToolbar);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -159,17 +186,12 @@ angular.module("umbraco.directives")
|
||||
editor.on('focus', function (e) {
|
||||
angularHelper.safeApply(scope, function () {
|
||||
|
||||
var _toolbar = $(editor.editorContainer)
|
||||
.find(".mce-toolbar");
|
||||
|
||||
if(scope.onFocus){
|
||||
scope.onFocus();
|
||||
}
|
||||
|
||||
var toolbarHeight = -_toolbar.height() - 2;
|
||||
_toolbar
|
||||
.css("visibility", "visible")
|
||||
.css("margin-top", toolbarHeight + "px");
|
||||
pinToolbar();
|
||||
$('.umb-panel-body').on('scroll', pinToolbar);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -177,17 +199,12 @@ angular.module("umbraco.directives")
|
||||
editor.on('click', function (e) {
|
||||
angularHelper.safeApply(scope, function () {
|
||||
|
||||
var _toolbar = $(editor.editorContainer)
|
||||
.find(".mce-toolbar");
|
||||
|
||||
if(scope.onClick){
|
||||
scope.onClick();
|
||||
}
|
||||
|
||||
var toolbarHeight = -_toolbar.height() - 2;
|
||||
_toolbar
|
||||
.css("visibility", "visible")
|
||||
.css("margin-top", toolbarHeight + "px");
|
||||
pinToolbar();
|
||||
$('.umb-panel-body').on('scroll', pinToolbar);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* @restrict E
|
||||
* @function
|
||||
**/
|
||||
function umbImageFolder($rootScope, assetsService, $timeout, $log, umbRequestHelper, mediaResource, imageHelper) {
|
||||
function umbImageFolder($rootScope, assetsService, $timeout, $log, umbRequestHelper, mediaResource, imageHelper, notificationsService) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
replace: true,
|
||||
@@ -53,10 +53,9 @@ function umbImageFolder($rootScope, assetsService, $timeout, $log, umbRequestHel
|
||||
scope.images = data.items;
|
||||
});
|
||||
}
|
||||
|
||||
//when one is finished
|
||||
scope.$on('fileuploaddone', function(e, data) {
|
||||
scope.$apply(function() {
|
||||
|
||||
function checkComplete(e, data) {
|
||||
scope.$apply(function () {
|
||||
//remove the amount of files complete
|
||||
//NOTE: function is here instead of in the loop otherwise jshint blows up
|
||||
function findFile(file) { return file === data.files[i]; }
|
||||
@@ -66,13 +65,13 @@ function umbImageFolder($rootScope, assetsService, $timeout, $log, umbRequestHel
|
||||
}
|
||||
|
||||
//when none are left resync everything
|
||||
var remaining = _.filter(scope.files, function(file) { return file.completed !== true; });
|
||||
var remaining = _.filter(scope.files, function (file) { return file.completed !== true; });
|
||||
if (remaining.length === 0) {
|
||||
|
||||
scope.progress = 100;
|
||||
|
||||
//just the ui transition isn't too abrupt, just wait a little here
|
||||
$timeout(function() {
|
||||
$timeout(function () {
|
||||
scope.progress = 0;
|
||||
scope.files = [];
|
||||
scope.uploading = false;
|
||||
@@ -88,7 +87,11 @@ function umbImageFolder($rootScope, assetsService, $timeout, $log, umbRequestHel
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
//when one is finished
|
||||
scope.$on('fileuploaddone', function(e, data) {
|
||||
checkComplete(e, data);
|
||||
});
|
||||
|
||||
//This handler gives us access to the file 'preview', this is the only handler that makes this available for whatever reason
|
||||
@@ -100,6 +103,21 @@ function umbImageFolder($rootScope, assetsService, $timeout, $log, umbRequestHel
|
||||
});
|
||||
});
|
||||
|
||||
//This is a bit of a hack to check for server errors, currently if there's a non
|
||||
//known server error we will tell them to check the logs, otherwise we'll specifically
|
||||
//check for the file size error which can only be done with dodgy string checking
|
||||
scope.$on('fileuploadfail', function (e, data) {
|
||||
if (data.jqXHR.status === 500 && data.jqXHR.responseText.indexOf("Maximum request length exceeded") >= 0) {
|
||||
notificationsService.error(data.errorThrown, "The image file size was too big, check with your site administrator to adjust the maximum size allowed");
|
||||
|
||||
}
|
||||
else {
|
||||
notificationsService.error(data.errorThrown, data.jqXHR.statusText);
|
||||
}
|
||||
|
||||
checkComplete(e, data);
|
||||
});
|
||||
|
||||
//This executes prior to the whole processing which we can use to get the UI going faster,
|
||||
//this also gives us the start callback to invoke to kick of the whole thing
|
||||
scope.$on('fileuploadadd', function(e, data) {
|
||||
|
||||
@@ -221,8 +221,14 @@ function umbRequestHelper($http, $q, umbDataFormatter, angularHelper, dialogServ
|
||||
//when there's a 500 (unhandled) error show a YSOD overlay if debugging is enabled.
|
||||
if (status >= 500 && status < 600) {
|
||||
|
||||
//show a ysod dialog
|
||||
if (Umbraco.Sys.ServerVariables["isDebuggingEnabled"] === true) {
|
||||
//This is a bit of a hack to check if the error is due to a file being uploaded that is too large,
|
||||
// we have to just check for the existence of a string value but currently that is the best way to
|
||||
// do this since it's very hacky/difficult to catch this on the server
|
||||
if (data.indexOf("Maximum request length exceeded") >= 0) {
|
||||
notificationsService.error("Server error", "The image file size was too big, check with your site administrator to adjust the maximum size allowed");
|
||||
}
|
||||
else if (Umbraco.Sys.ServerVariables["isDebuggingEnabled"] === true) {
|
||||
//show a ysod dialog
|
||||
dialogService.ysodDialog({
|
||||
errorMsg: 'An error occurred',
|
||||
data: data
|
||||
|
||||
@@ -160,8 +160,7 @@
|
||||
border-top: 1px solid @grayLighter;
|
||||
|
||||
padding: 10px 0 10px 0;
|
||||
|
||||
margin-bottom: 17px;
|
||||
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
left: 100px;
|
||||
|
||||
@@ -266,6 +266,10 @@ div.not-allowed > i.icon,div.not-allowed > a{
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
// override small icon color
|
||||
.umb-tree li.current > div:before {
|
||||
color: @blueLight;
|
||||
}
|
||||
div.is-container:before{
|
||||
content:"\e04e";
|
||||
font-family: 'icomoon';
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
// -------------------------
|
||||
@blue: #2e8aea;
|
||||
@blueDark: #0064cd;
|
||||
@blueLight: #add8e6;
|
||||
@green: #46a546;
|
||||
@red: #9d261d;
|
||||
@yellow: #ffc40d;
|
||||
|
||||
@@ -509,8 +509,11 @@ angular.module("umbraco")
|
||||
|
||||
if(area.grid > 0){
|
||||
var currentArea = row.areas[areaIndex];
|
||||
area.config = currentArea.config;
|
||||
area.styles = currentArea.styles;
|
||||
|
||||
if (currentArea) {
|
||||
area.config = currentArea.config;
|
||||
area.styles = currentArea.styles;
|
||||
}
|
||||
|
||||
//copy over existing controls into the new areas
|
||||
if(row.areas.length > areaIndex && row.areas[areaIndex].controls){
|
||||
|
||||
@@ -891,6 +891,7 @@
|
||||
<Content Include="Umbraco_Client\Installer\Images\pbar.gif" />
|
||||
<Content Include="Umbraco_Client\Installer\Images\zoom-in.png" />
|
||||
<Content Include="Umbraco_Client\Installer\Js\PackageInstaller.js" />
|
||||
<Content Include="Umbraco_Client\PunyCode\punycode.min.js" />
|
||||
<Content Include="Umbraco_Client\Splitbutton\InsertMacroSplitButton.js" />
|
||||
<Content Include="Umbraco_Client\Tablesorting\img\asc.gif" />
|
||||
<Content Include="Umbraco_Client\Tablesorting\img\desc.gif" />
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace umbraco
|
||||
/// <param name="tree">The tree.</param>
|
||||
public override void Render(ref XmlTree tree)
|
||||
{
|
||||
string[,] items = { { "BrowseRepository.aspx", "Install from repository" }, { "CreatePackage.aspx", "Createdjjj Packages" }, { "installedPackages.aspx", "Installedjj packages" }, { "StarterKits.aspx", "Starter kit" }, { "installer.aspx", "Install local package" } };
|
||||
string[,] items = { { "BrowseRepository.aspx", "Install from repository" }, { "CreatePackage.aspx", "Created Packages" }, { "installedPackages.aspx", "Installed packages" }, { "StarterKits.aspx", "Starter kit" }, { "installer.aspx", "Install local package" } };
|
||||
|
||||
|
||||
for (int i = 0; i <= items.GetUpperBound(0); i++)
|
||||
|
||||
@@ -69,6 +69,7 @@ namespace umbraco.cms.businesslogic
|
||||
{
|
||||
throw new ArgumentException("No key " + key + " exists in dictionary");
|
||||
}
|
||||
var item = DictionaryItems[key];
|
||||
}
|
||||
|
||||
public DictionaryItem(Guid id)
|
||||
|
||||
Reference in New Issue
Block a user