From ab6f79e75914636b7921afeeb8fa48e31aa92383 Mon Sep 17 00:00:00 2001 From: "RGA(OpenERP)" <> Date: Fri, 20 Dec 2013 15:49:40 +0530 Subject: [PATCH] [IMP] legend widget bzr revid: rgaopenerp-20131220101940-90ialtu8fqcdborg --- addons/web/static/src/js/view_form.js | 17 ++++++------ addons/web/static/src/xml/base.xml | 6 ++--- addons/web_kanban/static/src/js/kanban.js | 32 +++++++++++++++++++++++ 3 files changed, 44 insertions(+), 11 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 0d3a38b5c17..d31f8ff2145 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2344,17 +2344,18 @@ instance.web.form.Legend = instance.web.form.FieldChar.extend({ 'widget': self, 'legend_value': legend_value, }); - self.$el.html(content); - self.$el.find("li").click(self.execute_action.bind(self)); + this.$el.html(content); + this.$el.find('li').click(self.execute_action.bind(self)); }, execute_action: function(e){ - e.preventDefault(); var self = this; - $this = $(e.target) - var value = $this.data('value') || $this.parent().data('value'); - return this.view.dataset.call_button(self.options.action, [this.view.datarecord.id, value, this.view.dataset.get_context()]).done(function(r) { - self.view.reload(); - }); + var li = $(e.target).closest( "li" ); + if (li.length){ + var value = li.data('value'); + return this.view.dataset.call_button(self.options.action, [this.view.datarecord.id, value, this.view.dataset.get_context()]).done(function(r) { + self.view.reload(); + }); + } } }); instance.web.form.FieldID = instance.web.form.FieldChar.extend({ diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index bf185cd6df0..12b247534a8 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1043,7 +1043,7 @@ @@ -1053,12 +1053,12 @@ diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 4106ed21ffa..ec5c8cce204 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -1230,7 +1230,39 @@ instance.web_kanban.AbstractField = instance.web.Widget.extend(instance.web_kanb }, }); +instance.web_kanban.Legend = instance.web_kanban.AbstractField.extend({ + init: function(parent, field, $node) { + this._super.apply(this, arguments); + this.parent = parent; + this.name = $node.attr('name') + }, + renderElement: function() { + var self = this; + var legend_field = this.options.legend_field; + var legend_field_value = this.parent.record[legend_field].raw_value + var content = QWeb.render("Legend." + self.name, { + 'widget': self, + 'legend_value': legend_field_value, + }); + this.$el.html(content); + this.$el.click(self.execute_action.bind(self)); + }, + execute_action: function(e){ + e.preventDefault(); + var li = $(e.target).closest( "li" ); + if (li.length){ + var parent = this.parent + var value = li.data('value'); + return parent.view.dataset.call_button(this.options.action, [parent.id, value, parent.view.dataset.get_context()]).done(function(r) { + parent.do_reload(); + }); + } + } +}); + + instance.web_kanban.fields_registry = new instance.web.Registry({}); +instance.web_kanban.fields_registry.add('legend','instance.web_kanban.Legend'); }; // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: