1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
odoo.define('point_of_sale.tour.TicketScreenTourMethods', function (require) {
'use strict';
const { createTourMethods } = require('point_of_sale.tour.utils');
class Do {
clickNewTicket() {
return [{ trigger: '.ticket-screen .highlight' }];
}
clickDiscard() {
return [{ trigger: '.ticket-screen button.discard' }];
}
selectOrder(orderName) {
return [
{
trigger: `.ticket-screen .order-row > .col:nth-child(2):contains("${orderName}")`,
},
];
}
deleteOrder(orderName) {
return [
{
trigger: `.ticket-screen .orders > .order-row > .col:contains("${orderName}") ~ .col[name="delete"]`,
},
];
}
selectFilter(name) {
return [
{
trigger: `.pos-search-bar .filter`,
},
{
trigger: `.pos-search-bar .filter ul`,
run: () => {},
},
{
trigger: `.pos-search-bar .filter ul li:contains("${name}")`,
},
];
}
search(field, searchWord) {
return [
{
trigger: '.pos-search-bar input',
run: `text ${searchWord}`,
},
{
/**
* Manually trigger keydown event to show the search field list
* because the previous step do not trigger keydown event.
*/
trigger: '.pos-search-bar input',
run: function () {
document
.querySelector('.pos-search-bar input')
.dispatchEvent(new KeyboardEvent('keydown', { key: '' }));
},
},
{
trigger: `.pos-search-bar .search ul li:contains("${field}")`,
},
];
}
settleTips() {
return [
{
trigger: '.ticket-screen .buttons .settle-tips',
},
];
}
}
class Check {
checkStatus(orderName, status) {
return [
{
trigger: `.ticket-screen .order-row > .col:nth-child(2):contains("${orderName}") ~ .col:nth-child(6):contains(${status})`,
run: () => {},
},
];
}
/**
* Check if the nth row contains the given string.
* Note that 1st row is the header-row.
*/
nthRowContains(n, string) {
return [
{
trigger: `.ticket-screen .orders > .order-row:nth-child(${n}):contains("${string}")`,
run: () => {},
},
];
}
noNewTicketButton() {
return [
{
trigger: '.ticket-screen .controls .buttons:nth-child(1):has(.discard)',
run: () => {},
},
];
}
}
class Execute {}
return createTourMethods('TicketScreen', Do, Check, Execute);
});
|