From 1eedcaedad3a528c6eea48571b9eb215b5a5d225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20van=20der=20Essen?= Date: Wed, 29 Aug 2012 14:56:40 +0200 Subject: [PATCH 1/3] [IMP] point_of_sale: TODO changes bzr revid: fva@openerp.com-20120829125640-5bml13zupja3w30b --- addons/point_of_sale/static/src/js/TODO.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/point_of_sale/static/src/js/TODO.txt b/addons/point_of_sale/static/src/js/TODO.txt index edadbe188ea..5eeb4c2606a 100644 --- a/addons/point_of_sale/static/src/js/TODO.txt +++ b/addons/point_of_sale/static/src/js/TODO.txt @@ -49,9 +49,9 @@ TODO AUG 20 v L'impression est foireuse * CLIENT - - create a new branch + v create a new branch - Self-checkout welcome screen - - removal of products for the root category + ~ removal of products for the root category - Terminal de payement - Code à barres - Vidanges From 846ec67adc911b32712039c09225142195aa70ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20van=20der=20Essen?= Date: Fri, 31 Aug 2012 16:31:59 +0200 Subject: [PATCH 2/3] [WIP] point_of_sale: disable validation button when order not fully paid bzr revid: fva@openerp.com-20120831143159-a64527c3a1a8chk0 --- addons/point_of_sale/static/src/js/screens.js | 2 ++ addons/point_of_sale/static/src/js/widgets.js | 24 ++++++++++++++++--- addons/point_of_sale/static/src/xml/pos.xml | 4 ++-- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js index 4d4e09575ea..ff07da30822 100644 --- a/addons/point_of_sale/static/src/js/screens.js +++ b/addons/point_of_sale/static/src/js/screens.js @@ -735,6 +735,7 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa this.validate_button = this.add_action_button({ label: 'Validate', + name: 'validation', icon: '/point_of_sale/static/src/img/icons/png48/validate.png', click: function(){ self.validateCurrentOrder(); @@ -806,6 +807,7 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa this.$('#payment-paid-total').html(paidTotal.toFixed(2)); this.$('#payment-remaining').html(remaining.toFixed(2)); this.$('#payment-change').html(change.toFixed(2)); + this.pos_widget.action_bar.set_button_disabled('validation', remaining > 0); }, set_numpad_state: function(numpadState) { if (this.numpadState) { diff --git a/addons/point_of_sale/static/src/js/widgets.js b/addons/point_of_sale/static/src/js/widgets.js index 5b98865a971..5de1fd8b3fe 100644 --- a/addons/point_of_sale/static/src/js/widgets.js +++ b/addons/point_of_sale/static/src/js/widgets.js @@ -370,14 +370,21 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa this.label = options.label || 'button'; this.rightalign = options.rightalign || false; this.click_action = options.click; + this.disabled = options.disabled || false; if(options.icon){ this.icon = options.icon; this.template = this.icon_template; } }, + set_disabled: function(disabled){ + if(this.disabled != disabled){ + this.disabled = !!disabled; + this.renderElement(); + } + }, renderElement: function(){ this._super(); - if(this.click_action){ + if(this.click_action && !this.disabled){ this.$el.click(_.bind(this.click_action, this)); } }, @@ -388,12 +395,12 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa init: function(parent, options){ this._super(parent,options); this.button_list = []; - this.fake_buttons = {}; + this.buttons = {}; this.visibility = {}; }, set_element_visible: function(element, visible, action){ if(visible != this.visibility[element]){ - this.visibility[element] = visible; + this.visibility[element] = !!visible; if(visible){ this.$('.'+element).show(); }else{ @@ -401,14 +408,22 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa } } if(visible && action){ + this.action[element] = action; this.$('.'+element).off('click').click(action); } }, + set_button_disabled: function(name, disabled){ + var b = this.buttons[name]; + if(b){ + b.set_disabled(disabled); + } + }, destroy_buttons:function(){ for(var i = 0; i < this.button_list.length; i++){ this.button_list[i].destroy(); } this.button_list = []; + this.buttons = {}; return this; }, get_button_count: function(){ @@ -417,6 +432,9 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa add_new_button: function(button_options){ var button = new module.ActionButtonWidget(this,button_options); this.button_list.push(button); + if(button_options.name){ + this.buttons[name] = button; + } button.appendTo(this.$('.pos-actionbar-button-list')); return button; }, diff --git a/addons/point_of_sale/static/src/xml/pos.xml b/addons/point_of_sale/static/src/xml/pos.xml index 81f929d50e2..bbe278758d5 100644 --- a/addons/point_of_sale/static/src/xml/pos.xml +++ b/addons/point_of_sale/static/src/xml/pos.xml @@ -540,7 +540,7 @@ -
  • +
  • @@ -548,7 +548,7 @@ -
  • +
  • From 9cfe5665a5648693547da4bf0b0b9d2fb0547aaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20van=20der=20Essen?= Date: Fri, 31 Aug 2012 16:56:06 +0200 Subject: [PATCH 3/3] [DONE] point_of_sale: disable validation button when order not fully paid bzr revid: fva@openerp.com-20120831145606-nrk44gs60lab4k3l --- addons/point_of_sale/static/src/css/pos.css | 6 ++++-- addons/point_of_sale/static/src/js/screens.js | 6 +++++- addons/point_of_sale/static/src/js/widgets.js | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/addons/point_of_sale/static/src/css/pos.css b/addons/point_of_sale/static/src/css/pos.css index a9baf041942..bfe2ef7f9dc 100644 --- a/addons/point_of_sale/static/src/css/pos.css +++ b/addons/point_of_sale/static/src/css/pos.css @@ -1072,12 +1072,14 @@ -webkit-transition-timing-function: ease-out; } -.point-of-sale .pos-actionbar .button.disabled{ - color:#AAA; +.point-of-sale .pos-actionbar .button.disabled *{ + opacity: 0.5; } .point-of-sale .pos-actionbar .button.disabled:hover{ border: 1px solid #cacaca; border-radius: 4px; + color: #555; + cursor: default; background: #e2e2e2; background: -webkit-linear-gradient(#f0f0f0, #e2e2e2); diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js index ff07da30822..9a2071c6335 100644 --- a/addons/point_of_sale/static/src/js/screens.js +++ b/addons/point_of_sale/static/src/js/screens.js @@ -741,6 +741,8 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa self.validateCurrentOrder(); }, }); + + this.updatePaymentSummary(); }, close: function(){ this._super(); @@ -807,7 +809,9 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa this.$('#payment-paid-total').html(paidTotal.toFixed(2)); this.$('#payment-remaining').html(remaining.toFixed(2)); this.$('#payment-change').html(change.toFixed(2)); - this.pos_widget.action_bar.set_button_disabled('validation', remaining > 0); + if(this.pos_widget.action_bar){ + this.pos_widget.action_bar.set_button_disabled('validation', remaining > 0); + } }, set_numpad_state: function(numpadState) { if (this.numpadState) { diff --git a/addons/point_of_sale/static/src/js/widgets.js b/addons/point_of_sale/static/src/js/widgets.js index 5de1fd8b3fe..6de31c88dfd 100644 --- a/addons/point_of_sale/static/src/js/widgets.js +++ b/addons/point_of_sale/static/src/js/widgets.js @@ -433,7 +433,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa var button = new module.ActionButtonWidget(this,button_options); this.button_list.push(button); if(button_options.name){ - this.buttons[name] = button; + this.buttons[button_options.name] = button; } button.appendTo(this.$('.pos-actionbar-button-list')); return button;