diff options
| author | Xavier Morel <xmo@openerp.com> | 2011-08-25 14:34:45 +0200 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2011-08-25 14:34:45 +0200 |
| commit | b8cd28fb355de91b9ec736be4f42d77afef0a137 (patch) | |
| tree | ed521a6c35032c7a85a8b9fad12d1334f50afe0a /addons/base_dashboard/static | |
| parent | b5a429d008536f6410e82b24ee12ec481b6d6397 (diff) | |
[FIX] widgets client action handler: one action per widget
bzr revid: xmo@openerp.com-20110825123445-ayhaeipasl4imvqt
Diffstat (limited to 'addons/base_dashboard/static')
| -rw-r--r-- | addons/base_dashboard/static/src/js/dashboard.js | 59 | ||||
| -rw-r--r-- | addons/base_dashboard/static/src/xml/base_dashboard.xml | 9 |
2 files changed, 32 insertions, 36 deletions
diff --git a/addons/base_dashboard/static/src/js/dashboard.js b/addons/base_dashboard/static/src/js/dashboard.js index e5b06a13461..3f9da51b157 100644 --- a/addons/base_dashboard/static/src/js/dashboard.js +++ b/addons/base_dashboard/static/src/js/dashboard.js @@ -372,39 +372,36 @@ openerp.base_dashboard.ApplicationTiles = openerp.base.View.extend({ } }); openerp.base.client_actions.add( - 'board.home.widgets', 'openerp.base_dashboard.Widgets'); -openerp.base_dashboard.Widgets = openerp.base.View.extend({ - template: 'HomeWidgets', + 'board.home.widgets', 'openerp.base_dashboard.Widget'); +openerp.base_dashboard.Widget = openerp.base.View.extend(/** @lends openerp.base_dashboard.Widgets# */{ + template: 'HomeWidget', + /** + * Initializes a "HomeWidget" client widget: handles the display of a given + * res.widget objects in an OpenERP view (mainly a dashboard). + * + * @constructs + * @extends openerp.base.View + * @param {Object} parent + * @param {Object} options + * @param {Number} options.widget_id + */ + init: function (parent, options) { + this._super(parent); + this.widget_id = options.widget_id; + }, start: function () { - return new openerp.base.DataSetSearch( - this, 'res.widget.user', null, - ['|', ['user_id', '=', false], - ['user_id', '=', parseInt(this.session.uid, 10)]]) - .read_slice(['widget_id', 'user_id'], {}, this.on_widgets_list_loaded); + return new openerp.base.DataSet(this, 'res.widget').read_ids( + [this.widget_id], ['title'], this.on_widget_loaded); }, - on_widgets_list_loaded: function (user_widgets) { - var self = this; - var widget_user = {}; - _(user_widgets).each(function (widget) { - widget['widget_id'] = widget['widget_id'][0]; - widget_user[widget['widget_id']] = { - removable: widget['user_id'] !== false, - user_widget_id: widget['id'] - }; - }); - new openerp.base.DataSetSearch(this, 'res.widget') - .read_ids(_(user_widgets).pluck('widget_id'), ['title'], function (widgets) { - _(widgets).each(function (widget) { - _.extend(widget, widget_user[widget['id']]); - }); - var url = _.sprintf( - '/base_dashboard/widgets/content?session_id=%s&widget_id=', - self.session.session_id); - self.$element.html(QWeb.render('HomeWidgets', { - widgets: widgets, - url: url - })); - }); + on_widget_loaded: function (widgets) { + var widget = widgets[0]; + var url = _.sprintf( + '/base_dashboard/widgets/content?session_id=%s&widget_id=%d', + this.session.session_id, widget.id); + this.$element.html(QWeb.render('HomeWidget.content', { + widget: widget, + url: url + })); } }); }; diff --git a/addons/base_dashboard/static/src/xml/base_dashboard.xml b/addons/base_dashboard/static/src/xml/base_dashboard.xml index 51657dfd068..b60e466964b 100644 --- a/addons/base_dashboard/static/src/xml/base_dashboard.xml +++ b/addons/base_dashboard/static/src/xml/base_dashboard.xml @@ -107,10 +107,9 @@ </td> </tr> </table> -<div t-name="HomeWidgets" class="oe-dashboard-home-widgets"/> -<div t-name="HomeWidgets.content" class="oe-dashboard-home-widgets-widget" - t-foreach="widgets" t-as="widget"> +<div t-name="HomeWidget" class="oe-dashboard-home-widget"/> +<t t-name="HomeWidget.content"> <h3><t t-esc="widget.title"/></h3> - <iframe width="100%" frameborder="0" t-att-src="url + widget.id"/> -</div> + <iframe width="100%" frameborder="0" t-att-src="url"/> +</t> </template> |
