From e38e5d65773e7570373f11f1bb50f08a9dfa3f82 Mon Sep 17 00:00:00 2001 From: Warren Buckley Date: Thu, 10 Dec 2020 00:21:34 +0000 Subject: [PATCH] V8: Angular Divorce: isUndefined (#7856) * Bye bye angular.isUndefinied & hello Utilities.isUndefined * Add utilities.js to lazyload initialise scripts * Remove utilities.js as copied over client folder --- .../directives/components/umbaceeditor.directive.js | 2 +- .../directives/components/umbcolorswatches.directive.js | 6 +++--- .../src/common/filters/umbCmsJoinArray.filter.js | 2 +- .../src/common/filters/umbwordlimit.filter.js | 2 +- src/Umbraco.Web.UI.Client/src/install.loader.js | 8 ++++++-- .../src/installer/steps/database.controller.js | 2 +- .../infiniteeditors/linkpicker/linkpicker.controller.js | 2 +- .../test/lib/angular/angular-mocks.js | 4 ++-- src/Umbraco.Web/JavaScript/JsInitialize.js | 4 +++- src/Umbraco.Web/JavaScript/PreviewInitialize.js | 3 +++ 10 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbaceeditor.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbaceeditor.directive.js index 10fc44c2c6..070ffd4ddd 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbaceeditor.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbaceeditor.directive.js @@ -126,7 +126,7 @@ // Load in ace library assetsService.load(['lib/ace-builds/src-min-noconflict/ace.js', 'lib/ace-builds/src-min-noconflict/ext-language_tools.js'], scope).then(function () { - if (angular.isUndefined(window.ace)) { + if (Utilities.isUndefined(window.ace)) { throw new Error('ui-ace need ace to work... (o rly?)'); } else { // init editor diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbcolorswatches.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbcolorswatches.directive.js index 9d7927f59a..d6eda76940 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbcolorswatches.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbcolorswatches.directive.js @@ -30,15 +30,15 @@ Use this directive to generate color swatches to pick from. function link(scope, el, attr, ctrl) { // Set default to true if not defined - if (angular.isUndefined(scope.useColorClass)) { + if (Utilities.isUndefined(scope.useColorClass)) { scope.useColorClass = false; } // Set default to "btn" if not defined - if (angular.isUndefined(scope.colorClassNamePrefix)) { + if (Utilities.isUndefined(scope.colorClassNamePrefix)) { scope.colorClassNamePrefix = "btn"; } - + scope.setColor = function (color, $index, $event) { if (scope.onSelect) { // did the value change? diff --git a/src/Umbraco.Web.UI.Client/src/common/filters/umbCmsJoinArray.filter.js b/src/Umbraco.Web.UI.Client/src/common/filters/umbCmsJoinArray.filter.js index a519f81054..870e497541 100644 --- a/src/Umbraco.Web.UI.Client/src/common/filters/umbCmsJoinArray.filter.js +++ b/src/Umbraco.Web.UI.Client/src/common/filters/umbCmsJoinArray.filter.js @@ -13,7 +13,7 @@ */ angular.module("umbraco.filters").filter('umbCmsJoinArray', function () { return function join(array, separator, prop) { - return (!angular.isUndefined(prop) ? array.map(function (item) { + return (!Utilities.isUndefined(prop) ? array.map(function (item) { return item[prop]; }) : array).join(separator || ''); }; diff --git a/src/Umbraco.Web.UI.Client/src/common/filters/umbwordlimit.filter.js b/src/Umbraco.Web.UI.Client/src/common/filters/umbwordlimit.filter.js index 93f0bddc96..bd597b21d0 100644 --- a/src/Umbraco.Web.UI.Client/src/common/filters/umbwordlimit.filter.js +++ b/src/Umbraco.Web.UI.Client/src/common/filters/umbwordlimit.filter.js @@ -17,7 +17,7 @@ return collection; } - if (angular.isUndefined(property)) { + if (Utilities.isUndefined(property)) { return collection; } diff --git a/src/Umbraco.Web.UI.Client/src/install.loader.js b/src/Umbraco.Web.UI.Client/src/install.loader.js index 997c8cbe84..8c17b8cd64 100644 --- a/src/Umbraco.Web.UI.Client/src/install.loader.js +++ b/src/Umbraco.Web.UI.Client/src/install.loader.js @@ -1,6 +1,6 @@ LazyLoad.js([ 'lib/jquery/jquery.min.js', - + 'lib/angular/angular.js', 'lib/angular-cookies/angular-cookies.js', 'lib/angular-touch/angular-touch.js', @@ -8,10 +8,14 @@ LazyLoad.js([ 'lib/angular-messages/angular-messages.js', 'lib/angular-aria/angular-aria.min.js', 'lib/underscore/underscore-min.js', - 'lib/angular-ui-sortable/sortable.js', + 'lib/angular-ui-sortable/sortable.js', + + 'js/utilities.js', + 'js/installer.app.js', 'js/umbraco.directives.js', 'js/umbraco.installer.js' + ], function () { jQuery(document).ready(function () { angular.bootstrap(document, ['umbraco']); diff --git a/src/Umbraco.Web.UI.Client/src/installer/steps/database.controller.js b/src/Umbraco.Web.UI.Client/src/installer/steps/database.controller.js index 687fce95ae..cbd2bb9242 100644 --- a/src/Umbraco.Web.UI.Client/src/installer/steps/database.controller.js +++ b/src/Umbraco.Web.UI.Client/src/installer/steps/database.controller.js @@ -10,7 +10,7 @@ angular.module("umbraco.install").controller("Umbraco.Installer.DataBaseControll { name: 'Custom connection string', id: -1 } ]; - if (angular.isUndefined(installerService.status.current.model.dbType) || installerService.status.current.model.dbType === null) { + if (Utilities.isUndefined(installerService.status.current.model.dbType) || installerService.status.current.model.dbType === null) { installerService.status.current.model.dbType = 0; } diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.controller.js index a9803b70f9..4106f7d096 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.controller.js @@ -147,7 +147,7 @@ angular.module("umbraco").controller("Umbraco.Editors.LinkPickerController", }); } - if (!angular.isUndefined($scope.model.target.isMedia)) { + if (!Utilities.isUndefined($scope.model.target.isMedia)) { delete $scope.model.target.isMedia; } } diff --git a/src/Umbraco.Web.UI.Client/test/lib/angular/angular-mocks.js b/src/Umbraco.Web.UI.Client/test/lib/angular/angular-mocks.js index 31310e1c46..9760a91c7c 100644 --- a/src/Umbraco.Web.UI.Client/test/lib/angular/angular-mocks.js +++ b/src/Umbraco.Web.UI.Client/test/lib/angular/angular-mocks.js @@ -1377,13 +1377,13 @@ function MockHttpExpectation(method, url, data, headers) { }; this.matchHeaders = function (h) { - if (angular.isUndefined(headers)) return true; + if (Utilities.isUndefined(headers)) return true; if (angular.isFunction(headers)) return headers(h); return angular.equals(headers, h); }; this.matchData = function (d) { - if (angular.isUndefined(data)) return true; + if (Utilities.isUndefined(data)) return true; if (data && angular.isFunction(data.test)) return data.test(d); if (data && !Utilities.isString(data)) return angular.toJson(data) == d; return data == d; diff --git a/src/Umbraco.Web/JavaScript/JsInitialize.js b/src/Umbraco.Web/JavaScript/JsInitialize.js index abe8147de8..dda97a131e 100644 --- a/src/Umbraco.Web/JavaScript/JsInitialize.js +++ b/src/Umbraco.Web/JavaScript/JsInitialize.js @@ -34,6 +34,8 @@ 'lib/umbraco/NamespaceManager.js', 'lib/umbraco/LegacySpeechBubble.js', + 'js/utilities.js', + 'js/app.js', 'js/umbraco.resources.js', @@ -43,5 +45,5 @@ 'js/umbraco.interceptors.js', 'js/umbraco.controllers.js', 'js/routes.js', - 'js/init.js' + 'js/init.js' ] diff --git a/src/Umbraco.Web/JavaScript/PreviewInitialize.js b/src/Umbraco.Web/JavaScript/PreviewInitialize.js index 0b0c24f378..644bf4ba35 100644 --- a/src/Umbraco.Web/JavaScript/PreviewInitialize.js +++ b/src/Umbraco.Web/JavaScript/PreviewInitialize.js @@ -3,6 +3,9 @@ '../lib/angular/angular.js', '../lib/underscore/underscore-min.js', '../lib/umbraco/Extensions.js', + + '../js/utilities.js', + '../js/app.js', '../js/umbraco.resources.js', '../js/umbraco.services.js',