From 6356531207d93424e0051e0fd3346859753d5ec6 Mon Sep 17 00:00:00 2001 From: Jordan Lane Date: Thu, 29 Oct 2015 10:22:34 +0000 Subject: [PATCH 01/82] Focus new folder input automatically http://issues.umbraco.org/issue/U4-7070 --- .../src/views/common/dialogs/mediapicker.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/mediapicker.html b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/mediapicker.html index 597dcdaa4b..8ea8390154 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/mediapicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/mediapicker.html @@ -100,10 +100,11 @@ + on-blur="showFolderInput = false" + focus-when="{{showFolderInput}}"> From 23fcc1ac55f6533309f9c7d97160bc7ac3428189 Mon Sep 17 00:00:00 2001 From: OptimisticCoder Date: Thu, 29 Oct 2015 10:28:49 +0000 Subject: [PATCH 02/82] Added message on back office, when JS is disabled. " JAVASCRIPT IS DISABLED. PLEASE ENABLE TO CONTINUE!" --- src/Umbraco.Web.UI/umbraco/Views/Default.cshtml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml b/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml index 048b08085b..8cfa9c043b 100644 --- a/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml +++ b/src/Umbraco.Web.UI/umbraco/Views/Default.cshtml @@ -52,6 +52,7 @@ +
From f8e101ec13b62ffde001c735f7d519d2730f8357 Mon Sep 17 00:00:00 2001 From: Benas Brazdziunas Date: Thu, 29 Oct 2015 10:43:04 +0000 Subject: [PATCH 03/82] U4-6511 make MNTP icon clickable --- .../src/common/directives/umbtreeitem.directive.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js index c46bca74a5..41de761620 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js @@ -39,7 +39,7 @@ angular.module("umbraco.directives") //NOTE: This ins element is used to display the search icon if the node is a container/listview and the tree is currently in dialog //'' + '' + - '' + + '' + '' + //NOTE: These are the 'option' elipses '' + From aac208c0e85085faa68d1c113fee7a5da05a1ba7 Mon Sep 17 00:00:00 2001 From: Marcin Zajkowski Date: Thu, 29 Oct 2015 10:53:29 +0000 Subject: [PATCH 04/82] U4-6282 Add note to Register Partial Macro --- .../PartialViewMacros/Templates/RegisterMember.cshtml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml index 988641d324..787cfbfcc7 100644 --- a/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml +++ b/src/Umbraco.Web.UI/Umbraco/PartialViewMacros/Templates/RegisterMember.cshtml @@ -75,13 +75,16 @@ else @if (registerModel.MemberProperties != null) { + @* + It will only displays properties marked as "Member can edit" on the "Info" tab of the Member Type. + *@ for (var i = 0; i < registerModel.MemberProperties.Count; i++) { @Html.LabelFor(m => registerModel.MemberProperties[i].Value, registerModel.MemberProperties[i].Name) - @* - By default this will render a textbox but if you want to change the editor template for this property you can + @* + By default this will render a textbox but if you want to change the editor template for this property you can easily change it. For example, if you wanted to render a custom editor for this field called "MyEditor" you would - create a file at ~/Views/Shared/EditorTemplates/MyEditor.cshtml", then you will change the next line of code to + create a file at ~/Views/Shared/EditorTemplates/MyEditor.cshtml", then you will change the next line of code to render your specific editor template like: @Html.EditorFor(m => profileModel.MemberProperties[i].Value, "MyEditor") *@ From 3f23865e0a36a555d71e778cd608742b34dbbfaf Mon Sep 17 00:00:00 2001 From: Alejandro Ocampo Date: Thu, 29 Oct 2015 11:06:31 +0000 Subject: [PATCH 05/82] Fixing "U4-5560 White space issue in content tree" --- .../src/common/directives/umbtreeitem.directive.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js index c46bca74a5..88424a3152 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js @@ -38,7 +38,7 @@ angular.module("umbraco.directives") '
' + //NOTE: This ins element is used to display the search icon if the node is a container/listview and the tree is currently in dialog //'' + - '' + + ' ' + '' + '' + //NOTE: These are the 'option' elipses From 00fc5a5bb2b32e5572024bf55f11e98cca5b69c6 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 12:22:20 +0100 Subject: [PATCH 06/82] U4-3774 / U4-4752 - Added a change password form to the user dialog --- src/Umbraco.Web.UI.Client/src/less/grid.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/grid.less b/src/Umbraco.Web.UI.Client/src/less/grid.less index 5871412ee2..0c966573de 100644 --- a/src/Umbraco.Web.UI.Client/src/less/grid.less +++ b/src/Umbraco.Web.UI.Client/src/less/grid.less @@ -155,7 +155,7 @@ body { } #speechbubble { - z-index: 1000; + z-index: 1060; position: absolute; bottom: 100px; left: 0; @@ -266,4 +266,4 @@ body { margin-left: 40px; width: 85%!important; } -} \ No newline at end of file +} From 61044b6018e3582e03c48c66ad60cffe3420d759 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 12:23:47 +0100 Subject: [PATCH 07/82] U4-3774 / U4-4752 - Added a change password form to the user dialog --- src/Umbraco.Web.UI.Client/src/less/main.less | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/main.less b/src/Umbraco.Web.UI.Client/src/less/main.less index fcdc683182..74010962f3 100644 --- a/src/Umbraco.Web.UI.Client/src/less/main.less +++ b/src/Umbraco.Web.UI.Client/src/less/main.less @@ -148,6 +148,11 @@ h5{ padding-top: 5px; margin-left: 240px; } + +.umb-user-panel .controls-row { + margin-left: 0px; +} + .controls-row label { display: inline-block } @@ -525,4 +530,4 @@ height:1px; margin: 10px 0; overflow: hidden; -} \ No newline at end of file +} From 5cfe9e85f8a4fce24539f6ee7a7249730427b65d Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 12:27:32 +0100 Subject: [PATCH 08/82] U4-3774 / U4-4752 - Added a change password form to the user dialog --- .../views/common/dialogs/user.controller.js | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.controller.js index 68579bb442..2002dc4ad9 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.controller.js @@ -1,5 +1,5 @@ angular.module("umbraco") - .controller("Umbraco.Dialogs.UserController", function ($scope, $location, $timeout, userService, historyService, eventsService, externalLoginInfo, authResource) { + .controller("Umbraco.Dialogs.UserController", function ($scope, $location, $timeout, userService, historyService, eventsService, externalLoginInfo, authResource, currentUserResource, formHelper) { $scope.history = historyService.getCurrent(); $scope.version = Umbraco.Sys.ServerVariables.application.version + " assembly: " + Umbraco.Sys.ServerVariables.application.assemblyVersion; @@ -102,4 +102,44 @@ angular.module("umbraco") }); - }); \ No newline at end of file + //create the initial model for change password property editor + $scope.changePasswordModel = { + alias: "_umb_password", + view: "changepassword", + config: {}, + value: {} + }; + + //go get the config for the membership provider and add it to the model + currentUserResource.getMembershipProviderConfig().then(function (data) { + $scope.changePasswordModel.config = data; + //ensure the hasPassword config option is set to true (the user of course has a password already assigned) + //this will ensure the oldPassword is shown so they can change it + $scope.changePasswordModel.config.hasPassword = true; + $scope.changePasswordModel.config.disableToggle = true; + }); + + ////this is the model we will pass to the service + //$scope.profile = {}; + + $scope.changePassword = function () { + + if (formHelper.submitForm({ scope: $scope })) { + currentUserResource.changePassword($scope.changePasswordModel.value).then(function (data) { + + //if the password has been reset, then update our model + if (data.value) { + $scope.changePasswordModel.value.generatedPassword = data.value; + } + + formHelper.resetForm({ scope: $scope, notifications: data.notifications }); + + }, function (err) { + + formHelper.handleError(err); + + }); + } + }; + + }); From f65b0df3e21ee6db7c9068a4ec7b77a23ea92889 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 12:28:23 +0100 Subject: [PATCH 09/82] U4-3774 / U4-4752 - Added a change password form to the user dialog --- .../src/views/common/dialogs/user.html | 35 ++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html index 8346acfabb..afd836538a 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html @@ -18,18 +18,25 @@
- -
+ + + +
External login providers
@@ -53,7 +60,7 @@ ng-click="unlink($event, login.authType, login.linkedProviderKey)" class="btn btn-block btn-social" ng-class="login.properties.SocialStyle" - id="{{login.authType}}" + id="Button1" name="provider" value="{{login.authType}}"> @@ -63,6 +70,24 @@
+
+
+ +

Change password

+ + + + + + + + +
+
+
    @@ -78,4 +103,4 @@ Umbraco version {{version}}
-
\ No newline at end of file +
From 64518774c6600efcc0d578a0e7e1095564061238 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 12:29:24 +0100 Subject: [PATCH 10/82] U4-3774 / U4-4752 - Added a change password form to the user dialog --- .../src/views/dashboard/ChangePassword.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/dashboard/ChangePassword.html b/src/Umbraco.Web.UI.Client/src/views/dashboard/ChangePassword.html index 9588ebd714..7008012a9e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/dashboard/ChangePassword.html +++ b/src/Umbraco.Web.UI.Client/src/views/dashboard/ChangePassword.html @@ -3,15 +3,16 @@ ng-submit="changePassword()" val-form-manager> -

Change password

+

Change password

- + - From 74dac71e8a2f3deb5cac24ebd1707bcc181a719f Mon Sep 17 00:00:00 2001 From: Tom Pipe Date: Thu, 29 Oct 2015 11:31:53 +0000 Subject: [PATCH 11/82] Fixes U4-6167 - Show path of selected node --- .../propertyeditors/contentpicker/contentpicker.controller.js | 4 ++-- .../views/propertyeditors/contentpicker/contentpicker.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js index 48f4ed5bda..8c271d096f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js @@ -150,7 +150,7 @@ function contentPickerController($scope, dialogService, entityResource, editorSt if (currIds.indexOf(item.id) < 0) { item.icon = iconHelper.convertFromLegacyIcon(item.icon); - $scope.renderModel.push({ name: item.name, id: item.id, icon: item.icon }); + $scope.renderModel.push({ name: item.name, id: item.id, icon: item.icon, path: item.path }); } }; @@ -182,7 +182,7 @@ function contentPickerController($scope, dialogService, entityResource, editorSt if (entity) { entity.icon = iconHelper.convertFromLegacyIcon(entity.icon); - $scope.renderModel.push({ name: entity.name, id: entity.id, icon: entity.icon }); + $scope.renderModel.push({ name: entity.name, id: entity.id, icon: entity.icon, path: entity.path }); } diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html index c5de0a69db..1c0f19ca24 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html @@ -6,7 +6,7 @@ ui-sortable ng-model="renderModel"> -
  • +
  • From 308d5ba3443cb25c459972c0a99dc6142ff1174d Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 12:32:57 +0100 Subject: [PATCH 12/82] U4-3774 / U4-4752 - Added a change password form to the user dialog --- src/Umbraco.Web.UI/umbraco/config/lang/nl.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml b/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml index 0320df479e..2d5e2c2e2c 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/nl.xml @@ -985,6 +985,7 @@ Om een vertalingstaak te sluiten, ga aub naar het detailoverzicht en klik op de Gebruikerstype Gebruikerstypes Auteur + Wijzig Je profiel Je recente historie From 4de4eb9cc8cbc6abeea05102df6d6cdf232b7fe1 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 12:34:05 +0100 Subject: [PATCH 13/82] U4-3774 / U4-4752 - Added a change password form to the user dialog --- src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 8f493d2582..582bb077ef 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -1057,6 +1057,7 @@ To manage your website, simply open the Umbraco back office and start adding con User types Writer Translator + Change Your profile Your recent history Session expires in From 71dc1110d85ca06cd010cd6b5d25cbd8ddbd5fd2 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 12:38:00 +0100 Subject: [PATCH 14/82] U4-3774 / U4-4752 - Added a change password form to the user dialog --- src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml index 69c7e605da..c9dcd1554a 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml @@ -1055,6 +1055,7 @@ To manage your website, simply open the Umbraco back office and start adding con User types Writer Translator + Change Your profile Your recent history Session expires in From 7b5ad9a5c69f605cdcbdd497c8a66ad06cf4018a Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 12:44:30 +0100 Subject: [PATCH 15/82] U4-3774 / U4-4752 - Added a change password form to the user dialog --- src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html index afd836538a..7bbc106f98 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html @@ -60,7 +60,7 @@ ng-click="unlink($event, login.authType, login.linkedProviderKey)" class="btn btn-block btn-social" ng-class="login.properties.SocialStyle" - id="Button1" + id="{{login.authType}}" name="provider" value="{{login.authType}}"> From 3f835fe19c11d39aa09a311475e7687416d2f026 Mon Sep 17 00:00:00 2001 From: ryanmcdonough Date: Thu, 29 Oct 2015 12:00:43 +0000 Subject: [PATCH 16/82] RTE now respects CSS Directory AppSetting. Fixes #U4-5617 --- .../src/common/directives/grid/grid.rte.directive.js | 2 +- .../src/views/propertyeditors/rte/rte.controller.js | 3 +-- src/Umbraco.Web/Editors/BackOfficeController.cs | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/grid/grid.rte.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/grid/grid.rte.directive.js index 257901fade..26b9a8f9bd 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/grid/grid.rte.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/grid/grid.rte.directive.js @@ -56,7 +56,7 @@ angular.module("umbraco.directives") if(scope.configuration && scope.configuration.stylesheets){ angular.forEach(scope.configuration.stylesheets, function(stylesheet, key){ - stylesheets.push("/css/" + stylesheet + ".css"); + stylesheets.push(Umbraco.Sys.ServerVariables.umbracoSettings.cssPath + "/" + stylesheet + ".css"); await.push(stylesheetResource.getRulesByName(stylesheet).then(function (rules) { angular.forEach(rules, function (rule) { var r = {}; diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js index 45812ceef2..80545ff336 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.controller.js @@ -64,8 +64,7 @@ angular.module("umbraco") //queue rules loading angular.forEach(editorConfig.stylesheets, function (val, key) { - stylesheets.push("../css/" + val + ".css?" + new Date().getTime()); - + stylesheets.push(Umbraco.Sys.ServerVariables.umbracoSettings.cssPath + "/" + val + ".css?" + new Date().getTime()); await.push(stylesheetResource.getRulesByName(val).then(function (rules) { angular.forEach(rules, function (rule) { var r = {}; diff --git a/src/Umbraco.Web/Editors/BackOfficeController.cs b/src/Umbraco.Web/Editors/BackOfficeController.cs index 689f859462..678e67fb5c 100644 --- a/src/Umbraco.Web/Editors/BackOfficeController.cs +++ b/src/Umbraco.Web/Editors/BackOfficeController.cs @@ -341,6 +341,7 @@ namespace Umbraco.Web.Editors string.Join(",", UmbracoConfig.For.UmbracoSettings().Content.ImageFileTypes) }, {"keepUserLoggedIn", UmbracoConfig.For.UmbracoSettings().Security.KeepUserLoggedIn}, + {"cssPath", IOHelper.ResolveUrl(SystemDirectories.Css).TrimEnd('/')}, } }, { From 1040f234dc9429b79b8d19e601608a797ffc5578 Mon Sep 17 00:00:00 2001 From: ryanmcdonough Date: Thu, 29 Oct 2015 12:09:29 +0000 Subject: [PATCH 17/82] Update grid.rte.directive.js --- .../src/common/directives/grid/grid.rte.directive.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/grid/grid.rte.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/grid/grid.rte.directive.js index 26b9a8f9bd..d125258157 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/grid/grid.rte.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/grid/grid.rte.directive.js @@ -56,7 +56,7 @@ angular.module("umbraco.directives") if(scope.configuration && scope.configuration.stylesheets){ angular.forEach(scope.configuration.stylesheets, function(stylesheet, key){ - stylesheets.push(Umbraco.Sys.ServerVariables.umbracoSettings.cssPath + "/" + stylesheet + ".css"); + stylesheets.push(Umbraco.Sys.ServerVariables.umbracoSettings.cssPath + "/" + stylesheet + ".css"); await.push(stylesheetResource.getRulesByName(stylesheet).then(function (rules) { angular.forEach(rules, function (rule) { var r = {}; From eb093ca4a6bfb1e92f7146dbeaeebadc07698e94 Mon Sep 17 00:00:00 2001 From: "gerwin.bouwhuis" Date: Thu, 29 Oct 2015 13:23:43 +0100 Subject: [PATCH 18/82] change : find the correct alternative recursive field --- src/Umbraco.Web/umbraco.presentation/item.cs | 89 +++++++++----------- 1 file changed, 40 insertions(+), 49 deletions(-) diff --git a/src/Umbraco.Web/umbraco.presentation/item.cs b/src/Umbraco.Web/umbraco.presentation/item.cs index 720e2ba9de..1edc6cca17 100644 --- a/src/Umbraco.Web/umbraco.presentation/item.cs +++ b/src/Umbraco.Web/umbraco.presentation/item.cs @@ -62,60 +62,51 @@ namespace umbraco else { // Loop through XML children we need to find the fields recursive - if (helper.FindAttribute(attributes, "recursive") == "true") + var recursive = helper.FindAttribute(attributes, "recursive") == "true"; + + if (publishedContent == null) { - if (publishedContent == null) - { - var recursiveVal = GetRecursiveValueLegacy(elements); - _fieldContent = recursiveVal.IsNullOrWhiteSpace() ? _fieldContent : recursiveVal; - } - else - { - var pval = publishedContent.GetPropertyValue(_fieldName, true); - var rval = pval == null ? string.Empty : pval.ToString(); - _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; - } + var recursiveVal = GetRecursiveValueLegacy(elements); + _fieldContent = recursiveVal.IsNullOrWhiteSpace() ? _fieldContent : recursiveVal; + } + + //check for published content and get its value using that + if (publishedContent != null && (publishedContent.HasProperty(_fieldName) || recursive)) + { + var pval = publishedContent.GetPropertyValue(_fieldName, recursive); + var rval = pval == null ? string.Empty : pval.ToString(); + _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; } else { - //check for published content and get its value using that - if (publishedContent != null && publishedContent.HasProperty(_fieldName)) - { - var pval = publishedContent.GetPropertyValue(_fieldName); - var rval = pval == null ? string.Empty : pval.ToString(); - _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; - } - else - { - //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) - var elt = elements[_fieldName]; - if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) - _fieldContent = elt.ToString().Trim(); - } - - //now we check if the value is still empty and if so we'll check useIfEmpty - if (string.IsNullOrEmpty(_fieldContent)) - { - var altFieldName = helper.FindAttribute(attributes, "useIfEmpty"); - if (string.IsNullOrEmpty(altFieldName) == false) - { - if (publishedContent != null && publishedContent.HasProperty(altFieldName)) - { - var pval = publishedContent.GetPropertyValue(altFieldName); - var rval = pval == null ? string.Empty : pval.ToString(); - _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; - } - else - { - //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) - var elt = elements[altFieldName]; - if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) - _fieldContent = elt.ToString().Trim(); - } - } - } - + //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) + var elt = elements[_fieldName]; + if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) + _fieldContent = elt.ToString().Trim(); } + + //now we check if the value is still empty and if so we'll check useIfEmpty + if (string.IsNullOrEmpty(_fieldContent)) + { + var altFieldName = helper.FindAttribute(attributes, "useIfEmpty"); + if (string.IsNullOrEmpty(altFieldName) == false) + { + if (publishedContent != null && (publishedContent.HasProperty(altFieldName) || recursive)) + { + var pval = publishedContent.GetPropertyValue(altFieldName, recursive); + var rval = pval == null ? string.Empty : pval.ToString(); + _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; + } + else + { + //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) + var elt = elements[altFieldName]; + if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) + _fieldContent = elt.ToString().Trim(); + } + } + } + } ParseItem(attributes); From 93d89535aa55817b40f92358851cbb2abf0ac43d Mon Sep 17 00:00:00 2001 From: "gerwin.bouwhuis" Date: Thu, 29 Oct 2015 13:32:50 +0100 Subject: [PATCH 19/82] undo --- src/Umbraco.Web/umbraco.presentation/item.cs | 85 +++++++++++--------- 1 file changed, 47 insertions(+), 38 deletions(-) diff --git a/src/Umbraco.Web/umbraco.presentation/item.cs b/src/Umbraco.Web/umbraco.presentation/item.cs index 1edc6cca17..720e2ba9de 100644 --- a/src/Umbraco.Web/umbraco.presentation/item.cs +++ b/src/Umbraco.Web/umbraco.presentation/item.cs @@ -62,51 +62,60 @@ namespace umbraco else { // Loop through XML children we need to find the fields recursive - var recursive = helper.FindAttribute(attributes, "recursive") == "true"; - - if (publishedContent == null) + if (helper.FindAttribute(attributes, "recursive") == "true") { - var recursiveVal = GetRecursiveValueLegacy(elements); - _fieldContent = recursiveVal.IsNullOrWhiteSpace() ? _fieldContent : recursiveVal; - } - - //check for published content and get its value using that - if (publishedContent != null && (publishedContent.HasProperty(_fieldName) || recursive)) - { - var pval = publishedContent.GetPropertyValue(_fieldName, recursive); - var rval = pval == null ? string.Empty : pval.ToString(); - _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; + if (publishedContent == null) + { + var recursiveVal = GetRecursiveValueLegacy(elements); + _fieldContent = recursiveVal.IsNullOrWhiteSpace() ? _fieldContent : recursiveVal; + } + else + { + var pval = publishedContent.GetPropertyValue(_fieldName, true); + var rval = pval == null ? string.Empty : pval.ToString(); + _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; + } } else { - //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) - var elt = elements[_fieldName]; - if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) - _fieldContent = elt.ToString().Trim(); - } - - //now we check if the value is still empty and if so we'll check useIfEmpty - if (string.IsNullOrEmpty(_fieldContent)) - { - var altFieldName = helper.FindAttribute(attributes, "useIfEmpty"); - if (string.IsNullOrEmpty(altFieldName) == false) + //check for published content and get its value using that + if (publishedContent != null && publishedContent.HasProperty(_fieldName)) { - if (publishedContent != null && (publishedContent.HasProperty(altFieldName) || recursive)) - { - var pval = publishedContent.GetPropertyValue(altFieldName, recursive); - var rval = pval == null ? string.Empty : pval.ToString(); - _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; - } - else - { - //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) - var elt = elements[altFieldName]; - if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) - _fieldContent = elt.ToString().Trim(); - } + var pval = publishedContent.GetPropertyValue(_fieldName); + var rval = pval == null ? string.Empty : pval.ToString(); + _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; + } + else + { + //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) + var elt = elements[_fieldName]; + if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) + _fieldContent = elt.ToString().Trim(); } - } + //now we check if the value is still empty and if so we'll check useIfEmpty + if (string.IsNullOrEmpty(_fieldContent)) + { + var altFieldName = helper.FindAttribute(attributes, "useIfEmpty"); + if (string.IsNullOrEmpty(altFieldName) == false) + { + if (publishedContent != null && publishedContent.HasProperty(altFieldName)) + { + var pval = publishedContent.GetPropertyValue(altFieldName); + var rval = pval == null ? string.Empty : pval.ToString(); + _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; + } + else + { + //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) + var elt = elements[altFieldName]; + if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) + _fieldContent = elt.ToString().Trim(); + } + } + } + + } } ParseItem(attributes); From 6c29ad854c091de8e995472606bd6bcd7c14df5b Mon Sep 17 00:00:00 2001 From: Alejandro Ocampo Date: Thu, 29 Oct 2015 12:48:40 +0000 Subject: [PATCH 20/82] Fixing "U4-6426 CTRL click should open in a new window" --- .../src/common/directives/umbsections.directive.js | 14 ++++++++++++-- .../src/common/directives/umbtreeitem.directive.js | 13 +++++++++++-- .../src/views/directives/umb-sections.html | 6 +++--- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbsections.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbsections.directive.js index dffa973f77..b885dd28ee 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbsections.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbsections.directive.js @@ -94,14 +94,24 @@ function sectionsDirective($timeout, $window, navigationService, treeService, se navigationService.showHelpDialog(); }; - scope.sectionClick = function (section) { + scope.sectionClick = function (event, section) { + + if (event.ctrlKey || + event.shiftKey || + event.metaKey || // apple + (event.button && event.button === 1) // middle click, >IE9 + everyone else + ) { + return; + } + + if (navigationService.userDialog) { navigationService.userDialog.close(); } if (navigationService.helpDialog) { navigationService.helpDialog.close(); } - + navigationService.hideSearch(); navigationService.showTree(section.alias); $location.path("/" + section.alias); diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js index c46bca74a5..f8a1284c69 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/umbtreeitem.directive.js @@ -40,7 +40,7 @@ angular.module("umbraco.directives") //'' + '' + '' + - '' + + '' + //NOTE: These are the 'option' elipses '' + '
    ' + @@ -148,8 +148,17 @@ angular.module("umbraco.directives") and emits it as a treeNodeSelect element if there is a callback object defined on the tree */ - scope.select = function(n, ev) { + scope.select = function (n, ev) { + if (ev.ctrlKey || + ev.shiftKey || + ev.metaKey || // apple + (ev.button && ev.button === 1) // middle click, >IE9 + everyone else + ) { + return; + } + emitEvent("treeNodeSelect", { element: element, tree: scope.tree, node: n, event: ev }); + ev.preventDefault(); }; /** diff --git a/src/Umbraco.Web.UI.Client/src/views/directives/umb-sections.html b/src/Umbraco.Web.UI.Client/src/views/directives/umb-sections.html index a8ed1749df..d88e208cea 100644 --- a/src/Umbraco.Web.UI.Client/src/views/directives/umb-sections.html +++ b/src/Umbraco.Web.UI.Client/src/views/directives/umb-sections.html @@ -9,7 +9,7 @@
  • {{section.name}} @@ -36,9 +36,9 @@
  • - + {{section.name}}
  • From 697daab4d75f28a8bb2640af66f35094d26e4ff5 Mon Sep 17 00:00:00 2001 From: "gerwin.bouwhuis" Date: Thu, 29 Oct 2015 13:50:30 +0100 Subject: [PATCH 21/82] change :get the correct alternative recursive field --- src/Umbraco.Web/umbraco.presentation/item.cs | 89 +++++++++----------- 1 file changed, 40 insertions(+), 49 deletions(-) diff --git a/src/Umbraco.Web/umbraco.presentation/item.cs b/src/Umbraco.Web/umbraco.presentation/item.cs index 720e2ba9de..1edc6cca17 100644 --- a/src/Umbraco.Web/umbraco.presentation/item.cs +++ b/src/Umbraco.Web/umbraco.presentation/item.cs @@ -62,60 +62,51 @@ namespace umbraco else { // Loop through XML children we need to find the fields recursive - if (helper.FindAttribute(attributes, "recursive") == "true") + var recursive = helper.FindAttribute(attributes, "recursive") == "true"; + + if (publishedContent == null) { - if (publishedContent == null) - { - var recursiveVal = GetRecursiveValueLegacy(elements); - _fieldContent = recursiveVal.IsNullOrWhiteSpace() ? _fieldContent : recursiveVal; - } - else - { - var pval = publishedContent.GetPropertyValue(_fieldName, true); - var rval = pval == null ? string.Empty : pval.ToString(); - _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; - } + var recursiveVal = GetRecursiveValueLegacy(elements); + _fieldContent = recursiveVal.IsNullOrWhiteSpace() ? _fieldContent : recursiveVal; + } + + //check for published content and get its value using that + if (publishedContent != null && (publishedContent.HasProperty(_fieldName) || recursive)) + { + var pval = publishedContent.GetPropertyValue(_fieldName, recursive); + var rval = pval == null ? string.Empty : pval.ToString(); + _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; } else { - //check for published content and get its value using that - if (publishedContent != null && publishedContent.HasProperty(_fieldName)) - { - var pval = publishedContent.GetPropertyValue(_fieldName); - var rval = pval == null ? string.Empty : pval.ToString(); - _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; - } - else - { - //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) - var elt = elements[_fieldName]; - if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) - _fieldContent = elt.ToString().Trim(); - } - - //now we check if the value is still empty and if so we'll check useIfEmpty - if (string.IsNullOrEmpty(_fieldContent)) - { - var altFieldName = helper.FindAttribute(attributes, "useIfEmpty"); - if (string.IsNullOrEmpty(altFieldName) == false) - { - if (publishedContent != null && publishedContent.HasProperty(altFieldName)) - { - var pval = publishedContent.GetPropertyValue(altFieldName); - var rval = pval == null ? string.Empty : pval.ToString(); - _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; - } - else - { - //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) - var elt = elements[altFieldName]; - if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) - _fieldContent = elt.ToString().Trim(); - } - } - } - + //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) + var elt = elements[_fieldName]; + if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) + _fieldContent = elt.ToString().Trim(); } + + //now we check if the value is still empty and if so we'll check useIfEmpty + if (string.IsNullOrEmpty(_fieldContent)) + { + var altFieldName = helper.FindAttribute(attributes, "useIfEmpty"); + if (string.IsNullOrEmpty(altFieldName) == false) + { + if (publishedContent != null && (publishedContent.HasProperty(altFieldName) || recursive)) + { + var pval = publishedContent.GetPropertyValue(altFieldName, recursive); + var rval = pval == null ? string.Empty : pval.ToString(); + _fieldContent = rval.IsNullOrWhiteSpace() ? _fieldContent : rval; + } + else + { + //get the vaue the legacy way (this will not parse locallinks, etc... since that is handled with ipublishedcontent) + var elt = elements[altFieldName]; + if (elt != null && string.IsNullOrEmpty(elt.ToString()) == false) + _fieldContent = elt.ToString().Trim(); + } + } + } + } ParseItem(attributes); From e9567e7adc420c728dfdc530d0e6468c1610837a Mon Sep 17 00:00:00 2001 From: Tom Pipe Date: Thu, 29 Oct 2015 12:52:36 +0000 Subject: [PATCH 22/82] Fixes U4-6928 - Persist Creator ID of member --- src/Umbraco.Web/Editors/MemberController.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Umbraco.Web/Editors/MemberController.cs b/src/Umbraco.Web/Editors/MemberController.cs index 7d231c46f2..4405f257c4 100644 --- a/src/Umbraco.Web/Editors/MemberController.cs +++ b/src/Umbraco.Web/Editors/MemberController.cs @@ -6,6 +6,7 @@ using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; +using System.Web; using System.Web.Http; using System.Web.Http.ModelBinding; using System.Web.Security; @@ -284,6 +285,9 @@ namespace Umbraco.Web.Editors case ContentSaveAction.SaveNew: MembershipCreateStatus status; CreateWithMembershipProvider(contentItem, out status); + + // save the ID of the creator + contentItem.PersistedContent.CreatorId = Security.CurrentUser.Id; break; default: //we don't support anything else for members From 3b404a2f760c6dd7dc668fb7de2c0eb91f28e469 Mon Sep 17 00:00:00 2001 From: Damiaan Date: Thu, 29 Oct 2015 13:54:16 +0100 Subject: [PATCH 23/82] U4-7314 Change name of "Textbox Multiple" to "Large textbox" or "Textarea" --- src/Umbraco.Core/Constants-PropertyEditors.cs | 4 ++-- .../Migrations/Initial/BaseDataCreation.cs | 2 +- .../Migrations/SqlScripts/MySqlTotal-480.sql | 2 +- .../SqlScripts/SqlCe-SchemaAndData-4110.sql | Bin 422856 -> 422840 bytes .../SqlScripts/SqlServerTotal-480.sql | 2 +- .../textfieldMultipleDataType.cs | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Core/Constants-PropertyEditors.cs b/src/Umbraco.Core/Constants-PropertyEditors.cs index a719e845b1..09f4cc1734 100644 --- a/src/Umbraco.Core/Constants-PropertyEditors.cs +++ b/src/Umbraco.Core/Constants-PropertyEditors.cs @@ -310,13 +310,13 @@ namespace Umbraco.Core public const string TextboxAlias = "Umbraco.Textbox"; /// - /// Guid for the Textbox multiple datatype. + /// Guid for the Textarea datatype. /// [Obsolete("GUIDs are no longer used to reference Property Editors, use the Alias constant instead. This will be removed in future versions")] public const string TextboxMultiple = "67DB8357-EF57-493E-91AC-936D305E0F2A"; /// - /// Alias for the Textbox multiple datatype. + /// Alias for the Textarea datatype. /// public const string TextboxMultipleAlias = "Umbraco.TextboxMultiple"; diff --git a/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs b/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs index fbe7675836..e62f206bf7 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Initial/BaseDataCreation.cs @@ -108,7 +108,7 @@ namespace Umbraco.Core.Persistence.Migrations.Initial _database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -21, Trashed = false, ParentId = -1, UserId = 0, Level = 0, Path = "-1,-21", SortOrder = 0, UniqueId = new Guid("BF7C7CBC-952F-4518-97A2-69E9C7B33842"), Text = "Recycle Bin", NodeObjectType = new Guid(Constants.ObjectTypes.MediaRecycleBin), CreateDate = DateTime.Now }); _database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -92, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-92", SortOrder = 35, UniqueId = new Guid("f0bc4bfb-b499-40d6-ba86-058885a5178c"), Text = "Label", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now }); _database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -90, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-90", SortOrder = 34, UniqueId = new Guid("84c6b441-31df-4ffe-b67e-67d5bc3ae65a"), Text = "Upload", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now }); - _database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -89, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-89", SortOrder = 33, UniqueId = new Guid("c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3"), Text = "Textbox multiple", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now }); + _database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -89, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-89", SortOrder = 33, UniqueId = new Guid("c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3"), Text = "Textarea", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now }); _database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -88, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-88", SortOrder = 32, UniqueId = new Guid("0cc0eba1-9960-42c9-bf9b-60e150b429ae"), Text = "Textstring", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now }); _database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -87, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-87", SortOrder = 4, UniqueId = new Guid("ca90c950-0aff-4e72-b976-a30b1ac57dad"), Text = "Richtext editor", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now }); _database.Insert("umbracoNode", "id", false, new NodeDto { NodeId = -51, Trashed = false, ParentId = -1, UserId = 0, Level = 1, Path = "-1,-51", SortOrder = 2, UniqueId = new Guid("2e6d3631-066e-44b8-aec4-96f09099b2b5"), Text = "Numeric", NodeObjectType = new Guid(Constants.ObjectTypes.DataType), CreateDate = DateTime.Now }); diff --git a/src/Umbraco.Tests/Migrations/SqlScripts/MySqlTotal-480.sql b/src/Umbraco.Tests/Migrations/SqlScripts/MySqlTotal-480.sql index 49af66b93b..96eff1eccb 100644 --- a/src/Umbraco.Tests/Migrations/SqlScripts/MySqlTotal-480.sql +++ b/src/Umbraco.Tests/Migrations/SqlScripts/MySqlTotal-480.sql @@ -482,7 +482,7 @@ ALTER TABLE umbracoUser2NodePermission ADD CONSTRAINT PK_umbracoUser2NodePermiss INSERT INTO umbracoNode (id, trashed, parentID, nodeUser, level, path, sortOrder, uniqueID, text, nodeObjectType, createDate) VALUES (-92, 0, -1, 0, 11, '-1,-92', 37, 'f0bc4bfb-b499-40d6-ba86-058885a5178c', 'Label', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '2004/09/30 14:01:49.920'), (-90, 0, -1, 0, 11, '-1,-90', 35, '84c6b441-31df-4ffe-b67e-67d5bc3ae65a', 'Upload', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '2004/09/30 14:01:49.920'), - (-89, 0, -1, 0, 11, '-1,-89', 34, 'c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3', 'Textbox multiple', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '2004/09/30 14:01:49.920'), + (-89, 0, -1, 0, 11, '-1,-89', 34, 'c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3', 'Textarea', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '2004/09/30 14:01:49.920'), (-88, 0, -1, 0, 11, '-1,-88', 33, '0cc0eba1-9960-42c9-bf9b-60e150b429ae', 'Textstring', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '2004/09/30 14:01:49.920'), (-87, 0, -1, 0, 11, '-1,-87', 32, 'ca90c950-0aff-4e72-b976-a30b1ac57dad', 'Richtext editor', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '2004/09/30 14:01:49.920'), (-51, 0, -1, 0, 11, '-1,-51', 4, '2e6d3631-066e-44b8-aec4-96f09099b2b5', 'Numeric', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '2004/09/30 14:01:49.920'), diff --git a/src/Umbraco.Tests/Migrations/SqlScripts/SqlCe-SchemaAndData-4110.sql b/src/Umbraco.Tests/Migrations/SqlScripts/SqlCe-SchemaAndData-4110.sql index e4c3d47ee28e25e5ceae54bee9111f9c14a08270..ee157be2a7727816291ced4cab1a95fadc67e061 100644 GIT binary patch delta 51 zcmX@{Tyn>A$qf$@*%KLx7*ZJ$H|xiqWNbc=+Gy!fS7grfn+ug0RTtz B6&e5l delta 53 zcmdn-T=K+o$qf$@S(6y@87d|_mRD~65TC->yeYYTQ!*nEGXXI(5VHU=>-J5_Y-|Dm Dkqj1w diff --git a/src/Umbraco.Tests/Migrations/SqlScripts/SqlServerTotal-480.sql b/src/Umbraco.Tests/Migrations/SqlScripts/SqlServerTotal-480.sql index c729a7ffbc..d4923489b2 100644 --- a/src/Umbraco.Tests/Migrations/SqlScripts/SqlServerTotal-480.sql +++ b/src/Umbraco.Tests/Migrations/SqlScripts/SqlServerTotal-480.sql @@ -624,7 +624,7 @@ ALTER TABLE [umbracoNode] DROP CONSTRAINT [FK_umbracoNode_umbracoNode] SET IDENTITY_INSERT [umbracoNode] ON INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-92, 0, -1, 0, 11, N'-1,-92', 37, 'f0bc4bfb-b499-40d6-ba86-058885a5178c', N'Label', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920') INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-90, 0, -1, 0, 11, N'-1,-90', 35, '84c6b441-31df-4ffe-b67e-67d5bc3ae65a', N'Upload', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920') -INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-89, 0, -1, 0, 11, N'-1,-89', 34, 'c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3', N'Textbox multiple', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920') +INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-89, 0, -1, 0, 11, N'-1,-89', 34, 'c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3', N'Textarea', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920') INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-88, 0, -1, 0, 11, N'-1,-88', 33, '0cc0eba1-9960-42c9-bf9b-60e150b429ae', N'Textstring', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920') INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-87, 0, -1, 0, 11, N'-1,-87', 32, 'ca90c950-0aff-4e72-b976-a30b1ac57dad', N'Richtext editor', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920') INSERT INTO [umbracoNode] ([id], [trashed], [parentID], [nodeUser], [level], [path], [sortOrder], [uniqueID], [text], [nodeObjectType], [createDate]) VALUES (-51, 0, -1, 0, 11, N'-1,-51', 4, '2e6d3631-066e-44b8-aec4-96f09099b2b5', N'Numeric', '30a2a501-1978-4ddb-a57b-f7efed43ba3c', '20040930 14:01:49.920') diff --git a/src/umbraco.editorControls/textfieldmultiple/textfieldMultipleDataType.cs b/src/umbraco.editorControls/textfieldmultiple/textfieldMultipleDataType.cs index dab2000c04..0e2291a4f4 100644 --- a/src/umbraco.editorControls/textfieldmultiple/textfieldMultipleDataType.cs +++ b/src/umbraco.editorControls/textfieldmultiple/textfieldMultipleDataType.cs @@ -42,7 +42,7 @@ namespace umbraco.editorControls.textfieldmultiple public override string DataTypeName { - get {return "Textbox multiple";} + get {return "Textarea";} } public override interfaces.IDataPrevalue PrevalueEditor From b65f653c91f622fcfe025afcff34a731d2e37736 Mon Sep 17 00:00:00 2001 From: Tom Pipe Date: Thu, 29 Oct 2015 13:08:37 +0000 Subject: [PATCH 24/82] Fixes U4-1959 --- src/Umbraco.Core/ActionsResolver.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Core/ActionsResolver.cs b/src/Umbraco.Core/ActionsResolver.cs index ff34f62c60..2da95a3416 100644 --- a/src/Umbraco.Core/ActionsResolver.cs +++ b/src/Umbraco.Core/ActionsResolver.cs @@ -11,7 +11,7 @@ namespace Umbraco.Core /// /// A resolver to return all IAction objects /// - internal sealed class ActionsResolver : LazyManyObjectsResolverBase + public sealed class ActionsResolver : LazyManyObjectsResolverBase { /// /// Constructor From 97e9cd4be0013544042675a905fa438fc94331f0 Mon Sep 17 00:00:00 2001 From: Andy Rose Date: Thu, 29 Oct 2015 13:54:12 +0000 Subject: [PATCH 25/82] U4-6980: Only assume a masterpage template if a MVC hasn't already been created --- .../Persistence/Repositories/TemplateRepository.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs index 0a0dbe37dd..8d0d091621 100644 --- a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs @@ -682,14 +682,14 @@ namespace Umbraco.Core.Persistence.Repositories public RenderingEngine DetermineTemplateRenderingEngine(ITemplate template) { var engine = _templateConfig.DefaultRenderingEngine; + var viewHelper = new ViewHelper(_viewsFileSystem); - if (template.Content.IsNullOrWhiteSpace() == false && MasterPageHelper.IsMasterPageSyntax(template.Content)) + if (template.Content.IsNullOrWhiteSpace() == false && MasterPageHelper.IsMasterPageSyntax(template.Content) && !viewHelper.ViewExists(template)) { - //there is a design but its definitely a webforms design + //there is a design but its definitely a webforms design and we haven't got a MVC view already for it return RenderingEngine.WebForms; } - var viewHelper = new ViewHelper(_viewsFileSystem); var masterPageHelper = new MasterPageHelper(_masterpagesFileSystem); switch (engine) From e86aaefaafa1f5027f8acb15056bd0c782da5ce8 Mon Sep 17 00:00:00 2001 From: Andy Rose Date: Thu, 29 Oct 2015 13:54:12 +0000 Subject: [PATCH 26/82] U4-6980: Only assume a masterpage template if a MVC hasn't already been created --- .../Persistence/Repositories/TemplateRepository.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs index 0a0dbe37dd..8d0d091621 100644 --- a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs @@ -682,14 +682,14 @@ namespace Umbraco.Core.Persistence.Repositories public RenderingEngine DetermineTemplateRenderingEngine(ITemplate template) { var engine = _templateConfig.DefaultRenderingEngine; + var viewHelper = new ViewHelper(_viewsFileSystem); - if (template.Content.IsNullOrWhiteSpace() == false && MasterPageHelper.IsMasterPageSyntax(template.Content)) + if (template.Content.IsNullOrWhiteSpace() == false && MasterPageHelper.IsMasterPageSyntax(template.Content) && !viewHelper.ViewExists(template)) { - //there is a design but its definitely a webforms design + //there is a design but its definitely a webforms design and we haven't got a MVC view already for it return RenderingEngine.WebForms; } - var viewHelper = new ViewHelper(_viewsFileSystem); var masterPageHelper = new MasterPageHelper(_masterpagesFileSystem); switch (engine) From 4796827f028da8fd5d89ae459280145340a93dc5 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 15:05:24 +0100 Subject: [PATCH 27/82] U4-1117 - Fixed any errors when renaming /umbraco to something else --- .../Configurations/DashboardSettings/Dashboard.config | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Tests/Configurations/DashboardSettings/Dashboard.config b/src/Umbraco.Tests/Configurations/DashboardSettings/Dashboard.config index a9ffdf78ee..9d393b0a87 100644 --- a/src/Umbraco.Tests/Configurations/DashboardSettings/Dashboard.config +++ b/src/Umbraco.Tests/Configurations/DashboardSettings/Dashboard.config @@ -28,7 +28,7 @@ - /umbraco/dashboard/ExamineManagement.ascx + dashboard/ExamineManagement.ascx @@ -85,7 +85,7 @@ - /umbraco/dashboard/latestEdits.ascx + dashboard/latestEdits.ascx @@ -104,11 +104,11 @@ views/dashboard/members/membersdashboardintro.html - /umbraco/members/membersearch.ascx + members/membersearch.ascx views/dashboard/members/membersdashboardvideos.html - \ No newline at end of file + From ed4a9f84f016e265dacac936fccc6b37343d821f Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 16:18:14 +0100 Subject: [PATCH 28/82] U4-1117 - Fixed any errors when renaming /umbraco to something else We removed the ~/umbraco from the reserved path settings key. We could'nt find the location where the same setting is set in the web.config. The variable is no longer needed as the "umbracoPath" value is automatically inserted into the reserved path setting. --- src/Umbraco.Tests/App.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Tests/App.config b/src/Umbraco.Tests/App.config index aa8ed6b0a7..33285877e9 100644 --- a/src/Umbraco.Tests/App.config +++ b/src/Umbraco.Tests/App.config @@ -56,7 +56,7 @@ - + @@ -203,4 +203,4 @@ - \ No newline at end of file + From a7bb8e0d0021c16a063b22f33ef41962c86248de Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 16:20:17 +0100 Subject: [PATCH 29/82] U4-1117 - Fixed any errors when renaming /umbraco to something else --- .../src/canvasdesigner/canvasdesigner.controller.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/canvasdesigner/canvasdesigner.controller.js b/src/Umbraco.Web.UI.Client/src/canvasdesigner/canvasdesigner.controller.js index c0646fed0f..ceee2a2a9e 100644 --- a/src/Umbraco.Web.UI.Client/src/canvasdesigner/canvasdesigner.controller.js +++ b/src/Umbraco.Web.UI.Client/src/canvasdesigner/canvasdesigner.controller.js @@ -24,7 +24,7 @@ var app = angular.module("Umbraco.canvasdesigner", ['colorpicker', 'ui.slider', ]; $scope.previewDevice = $scope.devices[0]; - var apiController = "/Umbraco/Api/Canvasdesigner/"; + var apiController = "../Api/Canvasdesigner/"; /*****************************************************************************/ /* Preview devices */ @@ -40,7 +40,7 @@ var app = angular.module("Umbraco.canvasdesigner", ['colorpicker', 'ui.slider', /*****************************************************************************/ $scope.exitPreview = function () { - window.top.location.href = "/umbraco/endPreview.aspx?redir=%2f" + $scope.pageId; + window.top.location.href = "../endPreview.aspx?redir=%2f" + $scope.pageId; }; /*****************************************************************************/ From 6fd17843372a9740cd287b2b55586f70dcc0a9d7 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 16:21:25 +0100 Subject: [PATCH 30/82] U4-1117 - Fixed any errors when renaming /umbraco to something else --- .../src/canvasdesigner/index.html | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/canvasdesigner/index.html b/src/Umbraco.Web.UI.Client/src/canvasdesigner/index.html index e078f0cc46..ab7a5b0fdb 100644 --- a/src/Umbraco.Web.UI.Client/src/canvasdesigner/index.html +++ b/src/Umbraco.Web.UI.Client/src/canvasdesigner/index.html @@ -2,9 +2,9 @@ Umbraco Canvas Designer - - - + + + @@ -20,7 +20,7 @@
    - +
      @@ -125,7 +125,7 @@
      {{item.name}}
      -
      +
    @@ -154,8 +154,8 @@

    Styles saved and published

    - - + + From f7979fa19d9d835e85f397aa301b1e1d84d0c896 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 16:22:05 +0100 Subject: [PATCH 31/82] U4-1117 - Fixed any errors when renaming /umbraco to something else --- src/Umbraco.Web.UI.Client/src/less/canvasdesigner.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/canvasdesigner.less b/src/Umbraco.Web.UI.Client/src/less/canvasdesigner.less index b28522db1c..5bbb7caea5 100644 --- a/src/Umbraco.Web.UI.Client/src/less/canvasdesigner.less +++ b/src/Umbraco.Web.UI.Client/src/less/canvasdesigner.less @@ -2,8 +2,8 @@ /******* font-face *******/ @font-face { - src: url('/Umbraco/assets/fonts/helveticons/helveticons.eot') !important; - src: url('/Umbraco/assets/fonts/helveticons/helveticons.eot?#iefix') format('embedded-opentype'), url('/Umbraco/assets/fonts/helveticons/helveticons.ttf') format('truetype'), url('/Umbraco/assets/fonts/helveticons/helveticons.svg#icomoon') format('svg') !important; + src: url('assets/fonts/helveticons/helveticons.eot') !important; + src: url('assets/fonts/helveticons/helveticons.eot?#iefix') format('embedded-opentype'), url('/Umbraco/assets/fonts/helveticons/helveticons.ttf') format('truetype'), url('/Umbraco/assets/fonts/helveticons/helveticons.svg#icomoon') format('svg') !important; } /****************************/ From 25f049e167993100fd3395d04c32dd2fd0b71589 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 16:22:39 +0100 Subject: [PATCH 32/82] U4-1117 - Fixed any errors when renaming /umbraco to something else --- src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html index 8346acfabb..13a12456c1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/user.html @@ -22,7 +22,7 @@ -
    \ No newline at end of file +
    From 6b0c94948e627d4bf9fa24e886eb00dc21625897 Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 16:23:30 +0100 Subject: [PATCH 33/82] U4-1117 - Fixed any errors when renaming /umbraco to something else --- src/Umbraco.Web.UI/config/Dashboard.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI/config/Dashboard.config b/src/Umbraco.Web.UI/config/Dashboard.config index 93e510f7f8..6e69449c4b 100644 --- a/src/Umbraco.Web.UI/config/Dashboard.config +++ b/src/Umbraco.Web.UI/config/Dashboard.config @@ -96,7 +96,7 @@ contour - /umbraco/plugins/umbracocontour/formsdashboard.ascx + plugins/umbracocontour/formsdashboard.ascx - \ No newline at end of file + From 62b99ffc591bf039d0bddc40773d4d7d2b98e96a Mon Sep 17 00:00:00 2001 From: Jeffrey Schoemaker Date: Thu, 29 Oct 2015 16:24:16 +0100 Subject: [PATCH 34/82] U4-1117 - Fixed any errors when renaming /umbraco to something else --- .../umbraco/developer/RelationTypes/EditRelationType.aspx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/developer/RelationTypes/EditRelationType.aspx b/src/Umbraco.Web.UI/umbraco/developer/RelationTypes/EditRelationType.aspx index 8b5605921f..59687309a5 100644 --- a/src/Umbraco.Web.UI/umbraco/developer/RelationTypes/EditRelationType.aspx +++ b/src/Umbraco.Web.UI/umbraco/developer/RelationTypes/EditRelationType.aspx @@ -28,8 +28,8 @@ table.relations td.DataType {} /* direction icons */ - table.relations td.parentToChild { background-image: url('/umbraco/developer/RelationTypes/Images/ParentToChild.png'); } - table.relations td.bidirectional { background-image: url('/umbraco/developer/RelationTypes/Images/Bidirectional.png'); } + table.relations td.parentToChild { background-image: url('../../developer/RelationTypes/Images/ParentToChild.png'); } + table.relations td.bidirectional { background-image: url('../../developer/RelationTypes/Images/Bidirectional.png'); }