From 5600a79007565d364f878ef18de5476cd7033db8 Mon Sep 17 00:00:00 2001 From: Mohammed Shekha Date: Fri, 2 May 2014 18:53:49 +0530 Subject: [PATCH 1/9] [IMP]Improved the database manager, instead of calling html_template, created separate html file which is rendered using jinja2, so that we don't need html_template once pos and edit support render_bootstrap_template. bzr revid: msh@tinyerp.com-20140502132349-bw9zdyaou4yf8o7q --- addons/web/controllers/main.py | 70 +---------------------- addons/web/views/database_manager.html | 79 ++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 68 deletions(-) create mode 100644 addons/web/views/database_manager.html diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 6dcc069fcc2..863fba90758 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -745,75 +745,9 @@ class Database(http.Controller): def manager(self, **kw): # TODO: migrate the webclient's database manager to server side views request.session.logout() - css = """ - - - - - - - - - - - """ - js = """ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - """ - - r = html_template % { - 'js': js, - 'css': css, + return env.get_template("database_manager.html").render({ 'modules': simplejson.dumps(module_boot()), - 'init': """ - var wc = new s.web.WebClient(null, { action: 'database_manager' }); - wc.appendTo($(document.body)); - """ - } - return r + }) @http.route('/web/database/get_list', type='json', auth="none") def get_list(self): diff --git a/addons/web/views/database_manager.html b/addons/web/views/database_manager.html new file mode 100644 index 00000000000..5734f60bc62 --- /dev/null +++ b/addons/web/views/database_manager.html @@ -0,0 +1,79 @@ + + + + + + OpenERP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From c033b660e8f6d7863ca51852cbb059f710eaca26 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 6 May 2014 12:36:49 +0200 Subject: [PATCH 2/9] [ADD] openerp.loadBundle() bzr revid: fme@openerp.com-20140506103649-wrfa25boj2chy6gl --- addons/web/static/src/js/core.js | 23 ++--------- addons/web/static/src/js/openerpframework.js | 40 ++++++++++++++++++++ 2 files changed, 44 insertions(+), 19 deletions(-) diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index c64da7e5810..29f6c3e4d9e 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -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($('', { - '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(); } 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($('', { + '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() { From f6e33eca1388c5aaa96086a8d14b512084ed138e Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 6 May 2014 14:28:40 +0200 Subject: [PATCH 3/9] [IMP] do_warn on ClientAction not found bzr revid: fme@openerp.com-20140506122840-01b9xtewp4wcv42g --- addons/web/static/src/js/views.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index b9015f6b311..753d52d497a 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -451,6 +451,9 @@ instance.web.ActionManager = instance.web.Widget.extend({ ir_actions_client: function (action, options) { var self = this; var ClientWidget = instance.web.client_actions.get_object(action.tag); + if (!ClientWidget) { + return self.do_warn("Action Error", "Could not find client action '" + action.tag + "'."); + } if (!(ClientWidget.prototype instanceof instance.web.Widget)) { var next; From b393c4ac18eb3b057e2a7a79e076fe5e0cff1fb0 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Tue, 6 May 2014 17:33:00 +0200 Subject: [PATCH 4/9] [FIX] jQuery.ui - boostrap conflicts bzr revid: fme@openerp.com-20140506153300-0p1gwnrxihpb4y3r --- addons/web/views/webclient_templates.xml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml index 2c3a16ac13f..f3a490c9286 100644 --- a/addons/web/views/webclient_templates.xml +++ b/addons/web/views/webclient_templates.xml @@ -23,6 +23,17 @@ + +