/* Copyright 2019 Kolushov Alexandr Copyright 2019 Anvar Kildebekov License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). */ odoo.define("pos_keyboard.tour", function(require) { "use strict"; var tour = require("web_tour.tour"); var core = require("web.core"); var _t = core._t; function open_pos_neworder() { return [ { trigger: "ul.o_menu_apps li.dropdown a.full", content: _t("Show Apps Menu"), position: "bottom", }, { trigger: '.o_app[data-menu-xmlid="point_of_sale.menu_point_root"], .oe_menu_toggler[data-menu-xmlid="point_of_sale.menu_point_root"]', content: _t( "Ready to launch your point of sale? Click here." ), position: "bottom", }, { trigger: ".o_pos_kanban button.oe_kanban_action_button", content: _t( "

Click to start the point of sale interface. It runs on tablets, laptops, or industrial hardware.

Once the session launched, the system continues to run without an internet connection.

" ), position: "bottom", }, { content: "Switch to table or make dummy action", trigger: ".table:not(.oe_invisible .neworder-button), .order-button.selected", position: "bottom", timeout: 30000, }, { content: "waiting for loading to finish", trigger: ".order-button.neworder-button", }, ]; } function add_product_to_order(product_name) { return [ { content: "buy " + product_name, trigger: '.product-list .product-name:contains("' + product_name + '")', }, { content: "the " + product_name + " have been added to the order", trigger: '.order .product-name:contains("' + product_name + '")', }, ]; } function simulate_keyup_event(number) { var event = $.Event("keyup"); event.which = number; event.keyCode = number; $("body").trigger(event); } function update_qty_for_product(qty) { return [ { content: "Make dummy action and update product qty", trigger: ".order-button.selected", run: function() { simulate_keyup_event(96 + qty); }, }, { content: "Check the qty", trigger: ".orderline.selected .info em:contains(" + qty + ")", }, ]; } function connect_disconnect_keyboard() { var stps = [ { content: "Open Payment-Screen", trigger: ".pay-circle", }, ]; if (odoo._modules.indexOf("pos_cashier_select") !== -1) { stps = stps.concat([ { trigger: '.modal-dialog.cashier .selection-item:contains("Admin")', content: "select first cashier", }, ]); } stps = stps.concat([ { content: "Close Payment-Screen", trigger: ".button:contains(Back)", }, ]); return stps; } function open_cashier_popup_and_close_it() { return [ { content: "Open cashier selection popup", trigger: ".username", }, { content: "Make dummy action and simulate escape button clicking", trigger: '.modal-dialog:not(".oe_hidden")', run: function() { simulate_keyup_event(27); setTimeout(function() { if ($('.modal-dialog:not(".oe_hidden")').length) { console.log("error"); } else { console.log("ok"); } }, 50); }, }, { content: "Make dummy action in order to properly pass the check for closed popups", trigger: ".order-button.selected", }, ]; } var steps = []; var quantity = 3; steps = steps.concat(open_pos_neworder()); steps = steps.concat(add_product_to_order("Miscellaneous")); steps = steps.concat(update_qty_for_product(quantity)); steps = steps.concat(connect_disconnect_keyboard()); steps = steps.concat(update_qty_for_product(quantity + 1)); steps = steps.concat(open_cashier_popup_and_close_it()); tour.register("pos_keyboard_tour", {test: true, url: "/web"}, steps); });