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 40a1a2cc6d..ca389a74a7 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 @@ -125,7 +125,7 @@ function link(scope, el, attr, ngModel) { // Load in ace library - assetsService.load(['lib/ace-builds/src-min-noconflict/ace.js', 'lib/ace-builds/src-min-noconflict/ext-language_tools.js']).then(function () { + 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)) { throw new Error('ui-ace need ace to work... (o rly?)'); } else { diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbclipboard.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbclipboard.directive.js index bb49a60eca..575b5bd698 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbclipboard.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbclipboard.directive.js @@ -101,7 +101,7 @@ var clipboard; var target = element[0]; - assetsService.loadJs("lib/clipboard/clipboard.min.js") + assetsService.loadJs("lib/clipboard/clipboard.min.js", scope) .then(function () { if(scope.umbClipboardTarget) { diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbdatetimepicker.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbdatetimepicker.directive.js index 7047fdb0a2..19ab789363 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbdatetimepicker.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbdatetimepicker.directive.js @@ -92,10 +92,10 @@ Use this directive to render a date time picker scope.hasTranscludedContent = element.find('.js-datePicker__transcluded-content')[0].children.length > 0; // load css file for the date picker - assetsService.loadCss('lib/datetimepicker/bootstrap-datetimepicker.min.css'); + assetsService.loadCss('lib/datetimepicker/bootstrap-datetimepicker.min.css', scope); // load the js file for the date picker - assetsService.loadJs('lib/datetimepicker/bootstrap-datetimepicker.js').then(function () { + assetsService.loadJs('lib/datetimepicker/bootstrap-datetimepicker.js', scope).then(function () { // init date picker initDatePicker(); }); diff --git a/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js b/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js index 16330f5493..3b49df10a6 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/assets.service.js @@ -129,14 +129,12 @@ angular.module('umbraco.services') asset.state = "loading"; LazyLoad.css(appendRnd(path), function () { if (!scope) { - asset.state = "loaded"; - asset.deferred.resolve(true); - } else { - asset.state = "loaded"; - angularHelper.safeApply(scope, function () { - asset.deferred.resolve(true); - }); + scope = $rootScope; } + asset.state = "loaded"; + angularHelper.safeApply(scope, function () { + asset.deferred.resolve(true); + }); }); } else if (asset.state === "loaded") { asset.deferred.resolve(true); @@ -171,14 +169,12 @@ angular.module('umbraco.services') LazyLoad.js(appendRnd(path), function () { if (!scope) { - asset.state = "loaded"; - asset.deferred.resolve(true); - } else { - asset.state = "loaded"; - angularHelper.safeApply(scope, function () { - asset.deferred.resolve(true); - }); + scope = $rootScope; } + asset.state = "loaded"; + angularHelper.safeApply(scope, function () { + asset.deferred.resolve(true); + }); }); } else if (asset.state === "loaded") { @@ -234,8 +230,7 @@ angular.module('umbraco.services') assets.push(asset); } - //we need to always push to the promises collection to monitor correct - //execution + //we need to always push to the promises collection to monitor correct execution promises.push(asset.deferred.promise); } }); @@ -256,8 +251,7 @@ angular.module('umbraco.services') function assetLoaded(asset) { asset.state = "loaded"; if (!scope) { - asset.deferred.resolve(true); - return; + scope = $rootScope; } angularHelper.safeApply(scope, function () { @@ -280,4 +274,4 @@ angular.module('umbraco.services') }; return service; -}); \ No newline at end of file +}); diff --git a/src/Umbraco.Web.UI.Client/src/common/services/user.service.js b/src/Umbraco.Web.UI.Client/src/common/services/user.service.js index eda46fbb71..80565c23e3 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/user.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/user.service.js @@ -278,8 +278,6 @@ angular.module('umbraco.services') /** Loads the Moment.js Locale for the current user. */ loadMomentLocaleForCurrentUser: function () { - var deferred = $q.defer(); - function loadLocales(currentUser, supportedLocales) { var locale = currentUser.locale.toLowerCase(); @@ -294,11 +292,14 @@ angular.module('umbraco.services') localeUrls.push('lib/moment/' + majorLocale); } } - assetsService.load(localeUrls).then(function () { - deferred.resolve(localeUrls); - }); - } else { - deferred.resolve(['']); + return assetsService.load(localeUrls, $rootScope); + } + else { + //return a noop promise + var deferred = $q.defer(); + var promise = deferred.promise; + deferred.resolve(true); + return promise; } } @@ -307,11 +308,11 @@ angular.module('umbraco.services') supportedLocales: javascriptLibraryService.getSupportedLocalesForMoment() } - $q.all(promises).then(function (values) { - loadLocales(values.currentUser, values.supportedLocales); + return $q.all(promises).then(function (values) { + return loadLocales(values.currentUser, values.supportedLocales); }); - return deferred.promise; + }, diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/approvedcolorpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/approvedcolorpicker.controller.js index 95a39e04aa..5e5363ae6c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/approvedcolorpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/approvedcolorpicker.controller.js @@ -1,6 +1,6 @@ angular.module("umbraco") .controller("Umbraco.Dialogs.ApprovedColorPickerController", function ($scope, $http, umbPropEditorHelper, assetsService) { - assetsService.loadJs("lib/cssparser/cssparser.js") + assetsService.loadJs("lib/cssparser/cssparser.js", $scope) .then(function () { var cssPath = $scope.dialogData.cssPath; @@ -19,7 +19,7 @@ angular.module("umbraco") $scope.classes.splice(0, 0, "noclass"); }) - assetsService.loadCss("/App_Plugins/Lecoati.uSky.Grid/lib/uSky.Grid.ApprovedColorPicker.css"); - assetsService.loadCss(cssPath); + assetsService.loadCss("/App_Plugins/Lecoati.uSky.Grid/lib/uSky.Grid.ApprovedColorPicker.css", $scope); + assetsService.loadCss(cssPath, $scope); }); -}); \ No newline at end of file +}); diff --git a/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js b/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js index 2cb4e7be50..a57078bc9e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/dashboard/dashboard.tabs.controller.js @@ -95,7 +95,7 @@ function startUpDynamicContentController($timeout, dashboardResource, assetsServ })); //proxy remote css through the local server - assetsService.loadCss( dashboardResource.getRemoteDashboardCssUrl("content") ); + assetsService.loadCss(dashboardResource.getRemoteDashboardCssUrl("content"), $scope); dashboardResource.getRemoteDashboardContent("content").then( function (data) { diff --git a/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/edit.controller.js index 8b326db4f5..266bc3264b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/edit.controller.js @@ -249,7 +249,7 @@ function init() { //we need to load this somewhere, for now its here. - assetsService.loadCss("lib/ace-razor-mode/theme/razor_chrome.css"); + assetsService.loadCss("lib/ace-razor-mode/theme/razor_chrome.css", $scope); if ($routeParams.create) { @@ -355,4 +355,4 @@ } angular.module("umbraco").controller("Umbraco.Editors.PartialViewMacros.EditController", partialViewMacrosEditController); -})(); \ No newline at end of file +})(); diff --git a/src/Umbraco.Web.UI.Client/src/views/partialviews/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/partialviews/edit.controller.js index d10c0e23be..960549aabf 100644 --- a/src/Umbraco.Web.UI.Client/src/views/partialviews/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/partialviews/edit.controller.js @@ -242,7 +242,7 @@ function init() { //we need to load this somewhere, for now its here. - assetsService.loadCss("lib/ace-razor-mode/theme/razor_chrome.css"); + assetsService.loadCss("lib/ace-razor-mode/theme/razor_chrome.css", $scope); if ($routeParams.create) { diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/multicolorpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/multicolorpicker.controller.js index dd25741aeb..98e649729c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/multicolorpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/colorpicker/multicolorpicker.controller.js @@ -105,5 +105,5 @@ }; //load the separate css for the editor to avoid it blocking our js loading - assetsService.loadCss("lib/spectrum/spectrum.css"); + assetsService.loadCss("lib/spectrum/spectrum.css", $scope); }); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js index 6c1e596014..1e0493e8f1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js @@ -112,7 +112,7 @@ function dateTimePickerController($scope, notificationsService, assetsService, a //get the current user to see if we can localize this picker userService.getCurrentUser().then(function (user) { - assetsService.loadCss('lib/datetimepicker/bootstrap-datetimepicker.min.css').then(function() { + assetsService.loadCss('lib/datetimepicker/bootstrap-datetimepicker.min.css', $scope).then(function() { var filesToLoad = ["lib/datetimepicker/bootstrap-datetimepicker.js"]; diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/googlemaps/googlemaps.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/googlemaps/googlemaps.controller.js index 1d6261c10a..f32c188d63 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/googlemaps/googlemaps.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/googlemaps/googlemaps.controller.js @@ -2,7 +2,7 @@ angular.module("umbraco") .controller("Umbraco.PropertyEditors.GoogleMapsController", function ($element, $rootScope, $scope, notificationsService, dialogService, assetsService, $log, $timeout) { - assetsService.loadJs('https://www.google.com/jsapi') + assetsService.loadJs('https://www.google.com/jsapi', $scope) .then(function () { google.load("maps", "3", { @@ -94,4 +94,4 @@ angular.module("umbraco") //update the display val again if it has changed from the server initMap(); }; - }); \ No newline at end of file + }); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/markdowneditor/markdowneditor.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/markdowneditor/markdowneditor.controller.js index 7a3abdd0e6..155fa3d854 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/markdowneditor/markdowneditor.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/markdowneditor/markdowneditor.controller.js @@ -74,7 +74,7 @@ function MarkdownEditorController($scope, $element, assetsService, dialogService }); //load the seperat css for the editor to avoid it blocking our js loading TEMP HACK - assetsService.loadCss("lib/markdown/markdown.css"); + assetsService.loadCss("lib/markdown/markdown.css", $scope); }) } diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.controller.js index 65a62f599c..e1c9ce9ba2 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.prevalues.controller.js @@ -117,5 +117,5 @@ angular.module("umbraco").controller("Umbraco.PrevalueEditors.RteController", }); // load TinyMCE skin which contains css for font-icons - assetsService.loadCss("lib/tinymce/skins/umbraco/skin.min.css"); - }); \ No newline at end of file + assetsService.loadCss("lib/tinymce/skins/umbraco/skin.min.css", $scope); + }); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/slider/slider.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/slider/slider.controller.js index 321ac13555..95b74a2ced 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/slider/slider.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/slider/slider.controller.js @@ -211,7 +211,7 @@ }); //load the separate css for the editor to avoid it blocking our js loading - assetsService.loadCss("lib/slider/bootstrap-slider.css"); - assetsService.loadCss("lib/slider/bootstrap-slider-custom.css"); + assetsService.loadCss("lib/slider/bootstrap-slider.css", $scope); + assetsService.loadCss("lib/slider/bootstrap-slider-custom.css", $scope); } angular.module("umbraco").controller("Umbraco.PropertyEditors.SliderController", sliderController); diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js index 7ca067f9ca..b2ac308249 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/tags/tags.controller.js @@ -7,7 +7,7 @@ angular.module("umbraco") $scope.isLoading = true; $scope.tagToAdd = ""; - assetsService.loadJs("lib/typeahead.js/typeahead.bundle.min.js").then(function () { + assetsService.loadJs("lib/typeahead.js/typeahead.bundle.min.js", $scope).then(function () { $scope.isLoading = false; diff --git a/src/Umbraco.Web.UI.Client/src/views/scripts/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/scripts/edit.controller.js index c284100cb2..68fd2d0107 100644 --- a/src/Umbraco.Web.UI.Client/src/views/scripts/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/scripts/edit.controller.js @@ -92,7 +92,7 @@ function init() { //we need to load this somewhere, for now its here. - assetsService.loadCss("lib/ace-razor-mode/theme/razor_chrome.css"); + assetsService.loadCss("lib/ace-razor-mode/theme/razor_chrome.css", $scope); if ($routeParams.create) { codefileResource.getScaffold("scripts", $routeParams.id).then(function (script) { @@ -199,4 +199,4 @@ } angular.module("umbraco").controller("Umbraco.Editors.Scripts.EditController", ScriptsEditController); -})(); \ No newline at end of file +})(); diff --git a/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js index 5d2129668e..36f64c11ee 100644 --- a/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js @@ -105,7 +105,7 @@ vm.init = function () { //we need to load this somewhere, for now its here. - assetsService.loadCss("lib/ace-razor-mode/theme/razor_chrome.css"); + assetsService.loadCss("lib/ace-razor-mode/theme/razor_chrome.css", $scope); //load templates - used in the master template picker templateResource.getAll()