diff options
| author | Arthur Maniet <arthurmaniet@me.com> | 2015-08-27 16:29:34 +0200 |
|---|---|---|
| committer | Arthur Maniet <arthurmaniet@me.com> | 2015-09-01 13:26:02 +0200 |
| commit | 121556dcea72be9f4829b46a9ca03e00866e7c92 (patch) | |
| tree | e1b8a58e70c0c5eda2e355b6f3820349556a31a7 /addons/barcodes/static/src/js/inherited_form_widget_button.js | |
| parent | 9cf6339b3e2fc489da067dbb878ccf2d2ed5446d (diff) | |
[ADD] barcodes/web: element button can use attribute barcode_trigger
A button can be triggered when a barcode corresponding to its attribute
'barcode_trigger' is scanned
Diffstat (limited to 'addons/barcodes/static/src/js/inherited_form_widget_button.js')
| -rw-r--r-- | addons/barcodes/static/src/js/inherited_form_widget_button.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/addons/barcodes/static/src/js/inherited_form_widget_button.js b/addons/barcodes/static/src/js/inherited_form_widget_button.js new file mode 100644 index 00000000000..6c85b9a92a8 --- /dev/null +++ b/addons/barcodes/static/src/js/inherited_form_widget_button.js @@ -0,0 +1,29 @@ +odoo.define('barcode.InheritedFormWidgetButton', function (require) { +"use strict"; + +var widgets = require('web.form_widgets'); +var BarcodeHandlerMixin = require('barcodes.BarcodeHandlerMixin'); + +// If the button has a barcode_trigger attribute, dynamically inherit +// BarcodeHandlerMixin and redefine on_barcode_scanned + +var ButtonBarcodeHandlerMixin = _.extend({}, BarcodeHandlerMixin, { + init: function(field_manager, node) { + if (node.attrs.barcode_trigger) { + BarcodeHandlerMixin.init.call(this, field_manager, node); + var self = this; + this.on_barcode_scanned = function(barcode) { + var match = barcode.match(/O-BTN\.(.+)/); + if (match && match[1] === self.node.attrs.barcode_trigger && self.$el.is(':visible')) { + self.on_click(); + } + }; + } else { + this._super(field_manager, node); + } + }, +}); + +widgets.WidgetButton.include(ButtonBarcodeHandlerMixin); + +}); |
