Adjusted assetsService to deal with weird yepnope behaivior

This commit is contained in:
perploug
2014-02-19 00:05:52 +01:00
parent e69dea26a5
commit 82d5f7b72b

View File

@@ -44,6 +44,17 @@ angular.module('umbraco.services')
.factory('assetsService', function ($q, $log, angularHelper, umbRequestHelper, $rootScope, $http) {
var initAssetsLoaded = false;
var appendRnd = function(url){
//if we don't have a global umbraco obj yet, the app is bootstrapping
if(!Umbraco.Sys.ServerVariables.application){
return url;
}
var rnd = Umbraco.Sys.ServerVariables.isDebuggingEnabled ? (new Date()).getTime() : Umbraco.Sys.ServerVariables.application.version +"."+Umbraco.Sys.ServerVariables.application.cdf;
var _op = (url.indexOf("?")>0) ? "&" : "?";
url = url + _op + "umb__rnd=" + rnd;
return url;
};
return {
@@ -85,29 +96,23 @@ angular.module('umbraco.services')
* @param {Number} timeout in milliseconds
* @returns {Promise} Promise object which resolves when the file has loaded
*/
loadCss : function(path, scope, attributes, timeout){
var deferred = $q.defer();
var t = timeout || 5000;
var a = attributes || undefined;
loadCss : function(path, scope, attributes, timeout){
var deferred = $q.defer();
var t = timeout || 5000;
var a = attributes || undefined;
yepnope({
forceCSS: true,
load: path,
timeout: t,
attrs: a,
callback: function (url, result, key) {
if (!scope) {
deferred.resolve(true);
}else{
angularHelper.safeApply(scope, function () {
deferred.resolve(true);
});
}
}
});
yepnope.injectCss(appendRnd(path), function () {
if (!scope) {
deferred.resolve(true);
}else{
angularHelper.safeApply(scope, function () {
deferred.resolve(true);
});
}
},a,t);
return deferred.promise;
},
return deferred.promise;
},
/**
* @ngdoc method
@@ -127,30 +132,8 @@ angular.module('umbraco.services')
var deferred = $q.defer();
var t = timeout || 5000;
var a = attributes || undefined;
/*
yepnope({
forceJS: true,
load: path,
timeout: t,
attrs: a,
callback: function (url, result, key) {
if (!scope) {
deferred.resolve(true);
}else{
angularHelper.safeApply(scope, function () {
deferred.resolve(true);
});
}
}
});
*/
yepnope.injectJs(path, function () {
yepnope.injectJs(appendRnd(path), function () {
if (!scope) {
deferred.resolve(true);
}else{
@@ -158,7 +141,6 @@ angular.module('umbraco.services')
deferred.resolve(true);
});
}
},a,t);
@@ -181,14 +163,14 @@ angular.module('umbraco.services')
*/
load: function (pathArray, scope) {
var deferred = $q.defer();
var nonEmpty = _.reject(pathArray, function(item) {
return item === undefined || item === "";
});
//don't load anything if there's nothing to load
if (nonEmpty.length > 0) {
yepnope({
load: pathArray,
complete: function() {