diff options
| author | Christophe Matthieu <chm@odoo.com> | 2017-08-31 14:39:52 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@odoo.com> | 2017-08-31 16:26:11 +0200 |
| commit | 95c2bd33a2e4bc5995b77c64c961e97db809e7f2 (patch) | |
| tree | 27c6d4104ae973ad293f0b8e5742f231f8362ff1 /addons/web/static/src/js/fields | |
| parent | 6f60a9a1792f4390c883bc1dff5f595c84183e12 (diff) | |
[IMP] web: lazy load nvd3, ace and fullCalendar lib to reduce asset size
Diffstat (limited to 'addons/web/static/src/js/fields')
| -rw-r--r-- | addons/web/static/src/js/fields/abstract_field.js | 11 | ||||
| -rw-r--r-- | addons/web/static/src/js/fields/basic_fields.js | 35 |
2 files changed, 26 insertions, 20 deletions
diff --git a/addons/web/static/src/js/fields/abstract_field.js b/addons/web/static/src/js/fields/abstract_field.js index 9b484354544..bdb745298b2 100644 --- a/addons/web/static/src/js/fields/abstract_field.js +++ b/addons/web/static/src/js/fields/abstract_field.js @@ -30,10 +30,13 @@ odoo.define('web.AbstractField', function (require) { * @module web.AbstractField */ +var ajax = require('web.ajax'); var field_utils = require('web.field_utils'); var Widget = require('web.Widget'); var AbstractField = Widget.extend({ + cssLibs: [], + jsLibs: [], events: { 'keydown': '_onKeydown', }, @@ -173,6 +176,14 @@ var AbstractField = Widget.extend({ return self._render(); }); }, + /** + * Loads the libraries listed in this.jsLibs and this.cssLibs + * + * @override + */ + willStart: function () { + return $.when(ajax.loadLibs(this), this._super.apply(this, arguments)); + }, //-------------------------------------------------------------------------- // Public diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 4c4671275f2..7b15d30202d 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -8,7 +8,6 @@ odoo.define('web.basic_fields', function (require) { */ var AbstractField = require('web.AbstractField'); -var ajax = require('web.ajax'); var config = require('web.config'); var core = require('web.core'); var crash_manager = require('web.crash_manager'); @@ -1949,6 +1948,14 @@ var FieldToggleBoolean = AbstractField.extend({ var JournalDashboardGraph = AbstractField.extend({ className: "o_dashboard_graph", + cssLibs: [ + '/web/static/lib/nvd3/nv.d3.css' + ], + jsLibs: [ + '/web/static/lib/nvd3/d3.v3.js', + '/web/static/lib/nvd3/nv.d3.js', + '/web/static/src/js/libs/nvd3.js' + ], init: function () { this._super.apply(this, arguments); this.graph_type = this.attrs.graph_type; @@ -2069,7 +2076,6 @@ var JournalDashboardGraph = AbstractField.extend({ this._customizeChart(); } }, - }); /** @@ -2282,26 +2288,15 @@ var FieldDomain = AbstractField.extend({ */ var AceEditor = DebouncedField.extend({ template: "AceEditor", + jsLibs: [ + '/web/static/lib/ace/ace.odoo-custom.js', + [ + '/web/static/lib/ace/mode-python.js', + '/web/static/lib/ace/mode-xml.js' + ] + ], events: {}, // events are triggered manually for this debounced widget /** - * @override willStart from AbstractField (Widget) - * Loads the ace library if not already loaded. - * - * @returns {Deferred} - */ - willStart: function () { - var loadJSDef; - if (!window.ace) { - loadJSDef = ajax.loadJS('/web/static/lib/ace/ace.odoo-custom.js').then(function () { - return $.when( - ajax.loadJS('/web/static/lib/ace/mode-python.js'), - ajax.loadJS('/web/static/lib/ace/mode-xml.js') - ); - }); - } - return $.when(this._super.apply(this, arguments), loadJSDef); - }, - /** * @override start from AbstractField (Widget) * * @returns {Deferred} |
