diff options
| author | Fabien Meghazi <fme@openerp.com> | 2014-05-06 12:36:49 +0200 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2014-05-06 12:36:49 +0200 |
| commit | c033b660e8f6d7863ca51852cbb059f710eaca26 (patch) | |
| tree | 1df46e03d29eac5af9f6992c1b845c7967402a23 /addons/web/static/src/js/openerpframework.js | |
| parent | 2b67c9c77bd9259033a0b963632f8350c4237fcb (diff) | |
[ADD] openerp.loadBundle()
bzr revid: fme@openerp.com-20140506103649-wrfa25boj2chy6gl
Diffstat (limited to 'addons/web/static/src/js/openerpframework.js')
| -rw-r--r-- | addons/web/static/src/js/openerpframework.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/addons/web/static/src/js/openerpframework.js b/addons/web/static/src/js/openerpframework.js index 5dcc2197944..f190fefeba3 100644 --- a/addons/web/static/src/js/openerpframework.js +++ b/addons/web/static/src/js/openerpframework.js @@ -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() { |
