diff options
| author | Joseph Caburnay <jcb@odoo.com> | 2020-07-09 12:07:14 +0000 |
|---|---|---|
| committer | Joseph Caburnay <jcb@odoo.com> | 2020-08-05 13:35:08 +0000 |
| commit | 9ea0aca6ea30fe42e1a7e0a4eaeb79f92a521152 (patch) | |
| tree | b3c969ef00f0bbc637d94c124202a96887df450a /addons/pos_restaurant/static/src/js/Screens/TicketScreen.js | |
| parent | 71f719a61ea34252abdc9f1b2fb2caf8e62c7917 (diff) | |
[IMP] point_of_sale,pos_*: top bar improvements and ticket list
The following changes are made in this task:
1. Remove order tabs and replace with ticket list.
2. Top bar color change.
3. Search bar in the product screen is moved in the top bar.
4. List of sub-categories are now in the same line as the category
breadcrumbs.
closes odoo/odoo#55100
Task-id: 2276678
Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Diffstat (limited to 'addons/pos_restaurant/static/src/js/Screens/TicketScreen.js')
| -rw-r--r-- | addons/pos_restaurant/static/src/js/Screens/TicketScreen.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/addons/pos_restaurant/static/src/js/Screens/TicketScreen.js b/addons/pos_restaurant/static/src/js/Screens/TicketScreen.js new file mode 100644 index 00000000000..2d5c3e004b2 --- /dev/null +++ b/addons/pos_restaurant/static/src/js/Screens/TicketScreen.js @@ -0,0 +1,54 @@ +odoo.define('pos_restaurant.TicketScreen', function (require) { + 'use strict'; + + const TicketScreen = require('point_of_sale.TicketScreen'); + const Registries = require('point_of_sale.Registries'); + const { posbus } = require('point_of_sale.utils'); + + const PosResTicketScreen = (TicketScreen) => + class extends TicketScreen { + close() { + super.close(); + if (!this.env.pos.config.iface_floorplan) { + // Make sure the 'table-set' event is triggered + // to properly rerender the components that listens to it. + posbus.trigger('table-set'); + } + } + getTable(order) { + return `${order.table.floor.name} (${order.table.name})`; + } + get _searchFields() { + if (!this.env.pos.config.iface_floorplan) { + return super._searchFields; + } + return Object.assign({}, super._searchFields, { + Table: (order) => `${order.table.floor.name} (${order.table.name})`, + }); + } + _setOrder(order) { + if (!this.env.pos.config.iface_floorplan) { + super._setOrder(order); + } else if (order !== this.env.pos.get_order()) { + // Only call set_table if the order is not the same as the current order. + // This is to prevent syncing to the server because syncing is only intended + // when going back to the floorscreen or opening a table. + this.env.pos.set_table(order.table, order); + } + } + get showNewTicketButton() { + return this.env.pos.config.iface_floorplan ? Boolean(this.env.pos.table) : super.showNewTicketButton; + } + get orderList() { + if (this.env.pos.table) { + return super.orderList; + } else { + return this.env.pos.get('orders').models; + } + } + }; + + Registries.Component.extend(TicketScreen, PosResTicketScreen); + + return TicketScreen; +}); |
