summaryrefslogtreecommitdiff
path: root/addons/website/static/src
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@odoo.com>2015-07-17 15:34:31 +0200
committerChristophe Matthieu <chm@odoo.com>2015-07-22 12:15:24 +0200
commit71732dceb6613dab28d6eef96fa155acc91af7ce (patch)
tree1f33280ca569fd23912a640a79ec8d878d934bfc /addons/website/static/src
parentdfad968515b523ebc900a0ba0fa1b111626f6149 (diff)
[IMP] web: module can be asynchronous loaded if it return a deferred
Each module can return a deferred. In that case, the module is marked as loaded only when the deferred is resolved, and its value is equal to the resolved value. The module can be rejected (unloaded). This will be logged in the console as info. Remove if_dom_contains from the website, the modules return a rejected deferred if the DOM doesn't contains the seleted values.
Diffstat (limited to 'addons/website/static/src')
-rw-r--r--addons/website/static/src/js/web_planner_website.js14
-rw-r--r--addons/website/static/src/js/website.js24
2 files changed, 10 insertions, 28 deletions
diff --git a/addons/website/static/src/js/web_planner_website.js b/addons/website/static/src/js/web_planner_website.js
index 7a3803bffd4..4a2abf1e3e8 100644
--- a/addons/website/static/src/js/web_planner_website.js
+++ b/addons/website/static/src/js/web_planner_website.js
@@ -10,9 +10,13 @@ var base = require('web_editor.base');
var qweb = core.qweb;
+if(!$('#oe_systray').length) {
+ return $.Deferred().reject("DOM doesn't contain '#oe_systray'");
+}
+
var PlannerDialog = planner.PlannerDialog;
-planner.WebistePlannerLauncher = Widget.extend({
+planner.WebsitePlannerLauncher = Widget.extend({
template: "PlannerLauncher",
events: {
'click .o_planner_progress': 'toggle_dialog'
@@ -58,12 +62,8 @@ PlannerDialog.include({
}
});
-base.dom_ready.done(function() {
- if($('#oe_systray').length) {
- ajax.loadXML('/web_planner/static/src/xml/web_planner.xml', qweb).then(function() {
- new planner.WebistePlannerLauncher().prependTo($('#oe_systray'));
- });
- }
+return ajax.loadXML('/web_planner/static/src/xml/web_planner.xml', qweb).then(function() {
+ new planner.WebsitePlannerLauncher().prependTo($('#oe_systray'));
});
});
diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js
index f54648de024..ddae7891266 100644
--- a/addons/website/static/src/js/website.js
+++ b/addons/website/static/src/js/website.js
@@ -23,6 +23,7 @@ browser += ","+$.browser.version;
if (/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase())) browser += ",mobile";
document.documentElement.setAttribute('data-browser', browser);
+
/* ----------------------------------------------------
Helpers
---------------------------------------------------- */
@@ -217,22 +218,6 @@ var init_kanban = function ($kanban) {
ajax.loadXML('/website/static/src/xml/website.xml', qweb);
/**
- * Execute a function if the dom contains at least one element matched
- * through the given jQuery selector. Will first wait for the dom to be ready.
- *
- * @param {String} selector A jQuery selector used to match the element(s)
- * @param {Function} fn Callback to execute if at least one element has been matched
- */
-var if_dom_contains = function(selector, fn) {
- base.dom_ready.then(function () {
- var elems = $(selector);
- if (elems.length) {
- fn(elems);
- }
- });
-};
-
-/**
* Cancel the auto run of Tour (test) and launch the tour after tob bar all bind events
*/
@@ -249,8 +234,7 @@ base.ready().then(function () {
* Returns a deferred resolved when the templates are loaded
* and the Widgets can be instanciated.
*/
-
-base.dom_ready.then(function () {
+
/* ----- PUBLISHING STUFF ---- */
$(document).on('click', '.js_publish_management .js_publish_btn', function () {
var $data = $(this).parents(".js_publish_management:first");
@@ -305,7 +289,6 @@ base.dom_ready.then(function () {
window.document.body.scrollTop = +location.hash.match(/scrollTop=([0-9]+)/)[1];
}
},0);
-});
/**
@@ -329,7 +312,6 @@ var TopBar = Widget.extend({
var data = {
prompt: prompt,
form: form,
- if_dom_contains: if_dom_contains,
TopBar: TopBar,
ready: function () {
console.warn("website.ready is deprecated: Please use require('web_editor.base').ready()");
@@ -341,5 +323,5 @@ return data;
});
$(function () {
- odoo.init();
+ _.defer(odoo.init);
});