diff options
| author | Dhruv Patel <dhp@odoo.com> | 2020-06-29 10:02:25 +0000 |
|---|---|---|
| committer | Julien Mougenot <jum@odoo.com> | 2020-08-14 13:12:07 +0000 |
| commit | bb9ef004524e21c642abdff16aa6caa9abbb37ba (patch) | |
| tree | 0138bb324a9ceb89652838f878582e0b596f2df8 | |
| parent | 26633ea8bb22a55c7dbb3acc75cde7371172d38b (diff) | |
[IMP] web: support action helper on gantt view
Currently, only List and Kanban view supports the action helper and
display the folder icon with the helper text.
With this commit we have also provided the action helper support for
other views. The logic for no content helper has been moved in
abstract_renderer.js so that it can be accessed by all views. This was
done mainly to give the action helper to the gantt view.
closes odoo/odoo#53902
Task: 2284779
Related: odoo/enterprise#11563
Signed-off-by: Mathieu Duckerts-Antoine <Polymorphe57@users.noreply.github.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Mohammed Shekha <msh@odoo.com>
5 files changed, 22 insertions, 37 deletions
diff --git a/addons/web/static/src/js/views/abstract_renderer.js b/addons/web/static/src/js/views/abstract_renderer.js index b1e30ca29bd..5e72a4827b7 100644 --- a/addons/web/static/src/js/views/abstract_renderer.js +++ b/addons/web/static/src/js/views/abstract_renderer.js @@ -133,6 +133,26 @@ return mvc.Renderer.extend({ this._suppressFocusableElements(); }, /** + * @private + * @param {Object} context + */ + _renderNoContentHelper: function (context) { + let templateName; + if (!context && this.noContentHelp) { + templateName = "web.ActionHelper"; + context = { noContentHelp: this.noContentHelp }; + } else { + templateName = "web.NoContentHelper"; + } + const template = document.createElement('template'); + // FIXME: retrieve owl qweb instance via the env set on Component s.t. + // it also works in the tests (importing 'web.env' wouldn't). This + // won't be necessary as soon as this will be written in owl. + const owlQWeb = owl.Component.env.qweb; + template.innerHTML = owlQWeb.renderToString(templateName, context); + this.el.append(template.content.firstChild); + }, + /** * Actual rendering. This method is meant to be overridden by concrete * renderers. * diff --git a/addons/web/static/src/js/views/basic/basic_renderer.js b/addons/web/static/src/js/views/basic/basic_renderer.js index d0778ded0fd..b324d2ea772 100644 --- a/addons/web/static/src/js/views/basic/basic_renderer.js +++ b/addons/web/static/src/js/views/basic/basic_renderer.js @@ -762,22 +762,6 @@ var BasicRenderer = AbstractRenderer.extend(WidgetAdapterMixin, { return $el; }, /** - * Renders the nocontent helper. - * - * This method is a helper for renderers that want to display a help - * message when no content is available. - * - * @private - * @returns {jQueryElement} - */ - _renderNoContentHelper: function () { - var $noContent = - $('<div>').html(this.noContentHelp).addClass('o_nocontent_help'); - return $('<div>') - .addClass('o_view_nocontent') - .append($noContent); - }, - /** * Instantiate custom widgets * * @private diff --git a/addons/web/static/src/js/views/graph/graph_renderer.js b/addons/web/static/src/js/views/graph/graph_renderer.js index 5cbe3f75324..118245f997b 100644 --- a/addons/web/static/src/js/views/graph/graph_renderer.js +++ b/addons/web/static/src/js/views/graph/graph_renderer.js @@ -896,25 +896,6 @@ return AbstractRenderer.extend({ }); }, /** - * @private - */ - _renderNoContentHelper: function (context) { - let templateName; - if (!context && this.noContentHelp) { - templateName = "web.ActionHelper"; - context = { noContentHelp: this.noContentHelp }; - } else { - templateName = "web.NoContentHelper"; - } - const template = document.createElement('template'); - // FIXME: retrieve owl qweb instance via the env set on Component s.t. - // it also works in the tests (importing 'web.env' wouldn't). This won't - // be necessary as soon as this rendering will be written in owl. - const OwlQweb = owl.Component.env.qweb; - template.innerHTML = OwlQweb.renderToString(templateName, context); - this.el.append(template.content.firstChild); - }, - /** * create pie chart * * @private diff --git a/addons/web/static/src/js/views/kanban/kanban_renderer.js b/addons/web/static/src/js/views/kanban/kanban_renderer.js index 8ea7abaa7af..555bbd665fa 100644 --- a/addons/web/static/src/js/views/kanban/kanban_renderer.js +++ b/addons/web/static/src/js/views/kanban/kanban_renderer.js @@ -490,7 +490,7 @@ var KanbanRenderer = BasicRenderer.extend({ var $noContentHelper = this.$('.o_view_nocontent'); if (displayNoContentHelper && !$noContentHelper.length) { - this.$el.append(this._renderNoContentHelper()); + this._renderNoContentHelper(); } if (!displayNoContentHelper && $noContentHelper.length) { $noContentHelper.remove(); diff --git a/addons/web/static/src/js/views/list/list_renderer.js b/addons/web/static/src/js/views/list/list_renderer.js index eaa06929d35..79e2fa10055 100644 --- a/addons/web/static/src/js/views/list/list_renderer.js +++ b/addons/web/static/src/js/views/list/list_renderer.js @@ -1114,7 +1114,7 @@ var ListRenderer = BasicRenderer.extend({ // display the no content helper if necessary if (!this._hasContent() && !!this.noContentHelp) { - this.$el.append(this._renderNoContentHelper()); + this._renderNoContentHelper(); } }, /** |
