diff --git a/addons/sale_crm/sale_crm_view.xml b/addons/sale_crm/sale_crm_view.xml index d169bf40b69..0493a603305 100644 --- a/addons/sale_crm/sale_crm_view.xml +++ b/addons/sale_crm/sale_crm_view.xml @@ -249,7 +249,7 @@
Invoiced - Forecast + Forecast

Not target invoicing defined diff --git a/addons/sale_crm/static/src/js/sale_crm.js b/addons/sale_crm/static/src/js/sale_crm.js index 7284dea57e9..431bd9a4a9d 100644 --- a/addons/sale_crm/static/src/js/sale_crm.js +++ b/addons/sale_crm/static/src/js/sale_crm.js @@ -3,14 +3,12 @@ openerp.sale_crm = function(openerp) { openerp.sale_crm.GaugeWidget = openerp.web_kanban.AbstractField.extend({ className: "oe_gage", start: function() { - var max = 100; - if (this.options.max_field) { - max = this.getParent().record[this.options.max_field].raw_value; - } - var label = ""; - if (this.options.label_field) { - label = this.getParent().record[this.options.label_field].raw_value; - } + var self = this; + console.log("start"); + + var parent = this.getParent(); + var max = this.options.max_field ? parent.record[this.options.max_field].raw_value : 100; + var label = this.options.label_field ? parent.record[this.options.label_field].raw_value : ""; var title = this.$node.html(); var val = this.field.value; var value = _.isArray(val) && val.length ? val[val.length-1] : val; @@ -38,6 +36,51 @@ openerp.sale_crm.GaugeWidget = openerp.web_kanban.AbstractField.extend({ "#a9d70b" ], }); + + var flag_open = false; + if (self.options.action_change) { + self.$el.click(function (event) { + event.stopPropagation(); + flag_open = false; + if (!parent.view.is_action_enabled('edit')) { + return; + } + if (!self.$el.find(".oe_justgage_edit").size()) { + var $svg = self.$el.find('svg'); + $div = $('
'); + $input = $('').val(value); + $div.append($input); + self.$el.prepend($div) + $input.focus() + .keydown(function (event) { + event.stopPropagation(); + if (event.keyCode == 13 || event.keyCode == 9) { + if ($input.val() != value) { + parent.view.dataset.call(self.options.action_change, [parent.id, $input.val()]).then(function () { + parent.do_reload(); + }); + } else { + $div.remove(); + } + } + }) + .click(function (event) { + event.stopPropagation(); + flag_open = false; + }) + .blur(function (event) { + if(!flag_open) { + self.$el.find(".oe_justgage_edit").remove(); + } else { + flag_open = false; + setTimeout(function () {$input.focus();}, 0); + } + }); + } + }).mousedown(function () { + flag_open = true; + }); + } }, }); openerp.web_kanban.fields_registry.add("gage", "openerp.sale_crm.GaugeWidget");