[ADD] openerp.loadBundle()
bzr revid: fme@openerp.com-20140506103649-wrfa25boj2chy6gl
This commit is contained in:
parent
2b67c9c77b
commit
c033b660e8
|
@ -345,31 +345,16 @@ instance.web.Session.include( /** @lends instance.web.Session# */{
|
|||
load_css: function (files) {
|
||||
var self = this;
|
||||
_.each(files, function (file) {
|
||||
$('head').append($('<link>', {
|
||||
'href': self.url(file, null),
|
||||
'rel': 'stylesheet',
|
||||
'type': 'text/css'
|
||||
}));
|
||||
openerp.loadCSS(self.url(file, null));
|
||||
});
|
||||
},
|
||||
load_js: function(files) {
|
||||
var self = this;
|
||||
var d = $.Deferred();
|
||||
if(files.length !== 0) {
|
||||
if (files.length !== 0) {
|
||||
var file = files.shift();
|
||||
var tag = document.createElement('script');
|
||||
tag.type = 'text/javascript';
|
||||
tag.src = self.url(file, null);
|
||||
tag.onload = tag.onreadystatechange = function() {
|
||||
if ( (tag.readyState && tag.readyState != "loaded" && tag.readyState != "complete") || tag.onload_done )
|
||||
return;
|
||||
tag.onload_done = true;
|
||||
self.load_js(files).done(function () {
|
||||
d.resolve();
|
||||
});
|
||||
};
|
||||
var head = document.head || document.getElementsByTagName('head')[0];
|
||||
head.appendChild(tag);
|
||||
var url = self.url(file, null);
|
||||
openerp.loadJS(url).done(d.resolve);
|
||||
} else {
|
||||
d.resolve();
|
||||
}
|
||||
|
|
|
@ -933,6 +933,46 @@ openerp.jsonpRpc = function(url, fct_name, params, settings) {
|
|||
});
|
||||
};
|
||||
|
||||
openerp.loadCSS = function (url) {
|
||||
if (!$('link[href="' + url + '"]').length) {
|
||||
$('head').append($('<link>', {
|
||||
'href': url,
|
||||
'rel': 'stylesheet',
|
||||
'type': 'text/css'
|
||||
}));
|
||||
}
|
||||
};
|
||||
openerp.loadJS = function (url) {
|
||||
var def = $.Deferred();
|
||||
if ($('script[src="' + url + '"]').length) {
|
||||
def.resolve();
|
||||
} else {
|
||||
var script = document.createElement('script');
|
||||
script.type = 'text/javascript';
|
||||
script.src = url;
|
||||
script.onload = script.onreadystatechange = function() {
|
||||
if ((script.readyState && script.readyState != "loaded" && script.readyState != "complete") || script.onload_done) {
|
||||
return;
|
||||
}
|
||||
script.onload_done = true;
|
||||
def.resolve(url);
|
||||
};
|
||||
script.onerror = function () {
|
||||
console.error("Error loading file", script.src);
|
||||
def.reject(url);
|
||||
};
|
||||
var head = document.head || document.getElementsByTagName('head')[0];
|
||||
head.appendChild(script);
|
||||
}
|
||||
return def;
|
||||
};
|
||||
openerp.loadBundle = function (name) {
|
||||
return $.when(
|
||||
openerp.loadCSS('/web/css/' + name),
|
||||
openerp.loadJS('/web/js/' + name)
|
||||
);
|
||||
};
|
||||
|
||||
var realSetTimeout = function(fct, millis) {
|
||||
var finished = new Date().getTime() + millis;
|
||||
var wait = function() {
|
||||
|
|
Loading…
Reference in New Issue