From 4ae5425fb84b6ce99876da83e7138df650bac70b Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 29 Oct 2013 17:11:28 +0100 Subject: [PATCH] [FIX] Buggy qweb template loading bzr revid: fme@openerp.com-20131029161128-ko0ocpa0h6kziooh --- addons/website/static/src/js/website.ace.js | 2 +- .../website/static/src/js/website.editor.js | 2 +- addons/website/static/src/js/website.js | 35 ++++++++----------- addons/website/static/src/js/website.menu.js | 2 +- addons/website/static/src/js/website.seo.js | 2 +- .../website/static/src/js/website.snippets.js | 2 +- addons/website/static/src/js/website.tour.js | 2 +- .../static/src/js/website.translator.js | 2 +- 8 files changed, 21 insertions(+), 28 deletions(-) diff --git a/addons/website/static/src/js/website.ace.js b/addons/website/static/src/js/website.ace.js index 02f5eb68d5e..685ace69467 100644 --- a/addons/website/static/src/js/website.ace.js +++ b/addons/website/static/src/js/website.ace.js @@ -6,7 +6,7 @@ var hash = "#advanced-view-editor"; var website = openerp.website; - website.templates.push('/website/static/src/xml/website.ace.xml'); + website.add_template_file('/website/static/src/xml/website.ace.xml'); website.ready().then(function () { if (window.location.hash.indexOf(hash) >= 0) { diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js index b3c568c16fc..2019b295193 100644 --- a/addons/website/static/src/js/website.editor.js +++ b/addons/website/static/src/js/website.editor.js @@ -4,7 +4,7 @@ var website = openerp.website; // $.fn.data automatically parses value, '0'|'1' -> 0|1 - website.templates.push('/website/static/src/xml/website.editor.xml'); + website.add_template_file('/website/static/src/xml/website.editor.xml'); website.dom_ready.done(function () { var is_smartphone = $(document.body)[0].clientWidth < 767; diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js index f628683954e..b53e900f57a 100644 --- a/addons/website/static/src/js/website.js +++ b/addons/website/static/src/js/website.js @@ -5,10 +5,6 @@ // The following line can be removed in 2017 openerp.website = website; - var templates = website.templates = [ - '/website/static/src/xml/website.xml' - ]; - website.get_context = function (dict) { var html = document.documentElement; return _.extend({ @@ -18,23 +14,21 @@ }; /* ----- TEMPLATE LOADING ---- */ - website.add_template = function(template) { - templates.push(template); - }; - website.load_templates = function(templates) { - var dones = _(templates).map(function (t) { - return new $.Deferred(function (d) { - openerp.qweb.add_template(t, function(err) { - if (err) { - d.reject(err); - } else { - d.resolve(); - } - }); + var templates_def = $.Deferred().resolve(); + website.add_template_file = function(template) { + templates_def = templates_def.then(function() { + var def = $.Deferred(); + openerp.qweb.add_template(template, function(err) { + if (err) { + def.reject(err); + } else { + def.resolve(); + } }); + return def; }); - return $.when.apply(null, dones); }; + website.add_template_file('/website/static/src/xml/website.xml'); website.reload = function () { location.hash = "scrollTop=" + window.document.body.scrollTop; if (location.search.indexOf("enable_editor") > -1) { @@ -111,15 +105,14 @@ */ website.ready = function() { if (!all_ready) { - var tpl = website.load_templates(templates); - all_ready = dom_ready.then(function () { + all_ready = $.when(dom_ready, templates_def).then(function () { if ($('html').data('editable')) { website.id = $('html').data('website-id'); website.session = new openerp.Session(); var modules = ['website']; return openerp._t.database.load_translations(website.session, modules, website.get_context().lang); } - }).always(tpl).promise(); + }).promise(); } return all_ready; }; diff --git a/addons/website/static/src/js/website.menu.js b/addons/website/static/src/js/website.menu.js index 606554a3779..1c863d0e085 100644 --- a/addons/website/static/src/js/website.menu.js +++ b/addons/website/static/src/js/website.menu.js @@ -3,7 +3,7 @@ var website = openerp.website; website.menu = {}; - website.templates.push('/website/static/src/xml/website.menu.xml'); + website.add_template_file('/website/static/src/xml/website.menu.xml'); website.menu.EditMenuDialog = website.editor.Dialog.extend({ template: 'website.menu.dialog.edit', diff --git a/addons/website/static/src/js/website.seo.js b/addons/website/static/src/js/website.seo.js index 342837f43c1..ecfc3d77b1c 100644 --- a/addons/website/static/src/js/website.seo.js +++ b/addons/website/static/src/js/website.seo.js @@ -2,7 +2,7 @@ 'use strict'; var website = openerp.website; - website.templates.push('/website/static/src/xml/website.seo.xml'); + website.add_template_file('/website/static/src/xml/website.seo.xml'); website.EditorBar.include({ events: _.extend({}, website.EditorBar.prototype.events, { diff --git a/addons/website/static/src/js/website.snippets.js b/addons/website/static/src/js/website.snippets.js index c29325c8de8..82b316c92fd 100644 --- a/addons/website/static/src/js/website.snippets.js +++ b/addons/website/static/src/js/website.snippets.js @@ -2,7 +2,7 @@ 'use strict'; var website = openerp.website; - website.templates.push('/website/static/src/xml/website.snippets.xml'); + website.add_template_file('/website/static/src/xml/website.snippets.xml'); website.EditorBar.include({ start: function () { diff --git a/addons/website/static/src/js/website.tour.js b/addons/website/static/src/js/website.tour.js index f5d3237c28d..489855b419f 100644 --- a/addons/website/static/src/js/website.tour.js +++ b/addons/website/static/src/js/website.tour.js @@ -2,7 +2,7 @@ 'use strict'; var website = openerp.website; - website.templates.push('/website/static/src/xml/website.tour.xml'); + website.add_template_file('/website/static/src/xml/website.tour.xml'); website.tour = { render: function render (template, dict) { diff --git a/addons/website/static/src/js/website.translator.js b/addons/website/static/src/js/website.translator.js index 7e237598530..f07f2a0119a 100644 --- a/addons/website/static/src/js/website.translator.js +++ b/addons/website/static/src/js/website.translator.js @@ -2,7 +2,7 @@ 'use strict'; var website = openerp.website; - website.templates.push('/website/static/src/xml/website.translator.xml'); + website.add_template_file('/website/static/src/xml/website.translator.xml'); var nodialog = 'website_translator_nodialog'; website.EditorBar.include({