3b7e016f33de29c387908ac7fcdbcb21d833fc5a
[odoo/odoo.git] / addons / point_of_sale / static / src / xml / pos.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- vim:fdl=1:
3 -->
4 <templates id="template" xml:space="preserve">
5
6     <t t-name="PosWidget">
7         <div class="pos">
8             <div class="pos-topheader">
9                 <div class="pos-branding">
10                     <img class="pos-logo" src="/point_of_sale/static/src/img/logo.png" />
11                     <span class="placeholder-UsernameWidget"></span>
12                 </div>
13                 <div class="pos-rightheader">
14                     <span class="placeholder-OrderSelectorWidget"></span>
15                     <!-- here goes header buttons -->
16                 </div>
17             </div>
18
19             <div class="pos-content">
20
21                 <div class="pos-leftpane">
22                     <div class='window'>
23                         <div class='subwindow'>
24                             <div class='subwindow-container'>
25                                 <div class='subwindow-container-fix'>
26                                     <div class="placeholder-OrderWidget"></div>
27                                 </div>
28                             </div>
29                         </div>
30
31                         <div class='subwindow collapsed'>
32                             <div class='subwindow-container'>
33                                 <div class='subwindow-container-fix pads'>
34                                     <div class="control-buttons oe_hidden"></div>
35                                     <div class="placeholder-ActionpadWidget"></div>
36                                     <div class="placeholder-NumpadWidget"></div>
37                                 </div>
38                             </div>
39                         </div>
40
41                     </div>
42                 </div>
43
44                 <div class="rightpane">
45                     <div class='window'>
46                         <div class='subwindow'>
47                             <div class='subwindow-container'>
48                                 <div class='subwindow-container-fix screens'>
49                                 </div>
50                             </div>
51                         </div>
52                     </div>
53                 </div>
54
55                 <div class="placeholder-OnscreenKeyboardWidget"></div>
56             </div>
57
58             <div class="loader">
59                 <div class='loader-feedback oe_hidden'>
60                     <h1 class='message'>Loading</h1>
61                     <div class='progressbar'>
62                         <div class='progress' width='50%'></div>
63                     </div>
64                     <div class='oe_hidden button skip'>
65                         Skip
66                     </div>
67                 </div>
68             </div>
69
70             &lt;!--[if IE]&gt;
71             <div class='not-supported-browser'>
72                 <div class='message'>
73                     <img src='/point_of_sale/static/src/img/pos_screenshot.jpg' />
74                     <p>
75                         The Point of Sale is not supported by Microsoft Internet Explorer. Please use
76                         a modern browser like <a href="http://www.mozilla.org/firefox/" target="_blank">Mozilla Firefox</a> 
77                         or <a href="http://www.google.com/chrome" target="_blank">Google Chrome</a>. 
78                     </p>
79                 </div>
80             </div>
81             &lt;![endif]--&gt;
82         </div>
83     </t>
84
85     <t t-name="SynchNotificationWidget">
86         <div class="oe_status js_synch">
87             <span class='js_msg oe_hidden'>0</span>
88             <div class="js_connected oe_icon oe_green">
89                 <i class='fa fa-fw fa-wifi'></i>
90             </div>
91             <div class="js_connecting oe_icon oe_hidden">
92                 <i class='fa fa-fw fa-spin fa-spinner'></i>
93             </div>
94             <div class="js_disconnected oe_icon oe_red oe_hidden">
95                 <i class='fa fa-fw fa-wifi'></i>
96             </div>
97         </div>
98     </t>
99
100     <t t-name="ProxyStatusWidget">
101         <div class="oe_status js_proxy">
102             <span class='js_msg oe_orange oe_hidden'></span>
103             <div class="js_connected oe_icon oe_green">
104                 <i class='fa fa-fw fa-sitemap'></i>
105             </div>
106             <div class="js_connecting oe_icon oe_hidden">
107                 <i class='fa fa-fw fa-spin fa-spinner'></i>
108             </div>
109             <div class="js_warning oe_icon oe_orange oe_hidden">
110                 <i class='fa fa-fw fa-sitemap'></i>
111             </div>
112             <div class="js_disconnected oe_icon oe_red oe_hidden">
113                 <i class='fa fa-fw fa-sitemap'></i>
114             </div>
115         </div>
116     </t>
117
118     <t t-name="HeaderButtonWidget">
119         <div class="header-button">
120             <t t-esc="widget.label" />
121         </div>
122     </t>
123
124     <t t-name="PosCloseWarning">
125         <div>There are pending operations that could not be saved into the database, are you sure you want to exit?</div>
126     </t>
127
128     <t t-name="ActionpadWidget">
129         <div class="actionpad">
130             <button class='button set-customer'>
131                 <i class='fa fa-user' /> Customer
132             </button>
133             <button class='button pay'>
134                 <i class='fa fa-chevron-right' /> Payment
135             </button>
136         </div>
137     </t>
138
139     <t t-name="NumpadWidget">
140         <div class="numpad">
141             <button class="input-button number-char">1</button>
142             <button class="input-button number-char">2</button>
143             <button class="input-button number-char">3</button>
144             <button class="mode-button" data-mode='quantity'>Qty</button>
145             <br />
146             <button class="input-button number-char">4</button>
147             <button class="input-button number-char">5</button>
148             <button class="input-button number-char">6</button>
149             <button class="mode-button" data-mode='discount'>Disc</button>
150             <br />
151             <button class="input-button number-char">7</button>
152             <button class="input-button number-char">8</button>
153             <button class="input-button number-char">9</button>
154             <button class="mode-button" data-mode='price'>Price</button>
155             <br />
156             <button class="input-button numpad-minus" >+/-</button>
157             <button class="input-button number-char">0</button>
158             <button class="input-button number-char">.</button>
159             <button class="input-button numpad-backspace">
160                 <img src="/point_of_sale/static/src/img/backspace.png" width="24" height="21" />
161             </button>
162             <br />
163         </div>
164     </t>
165
166     <t t-name="CategoryButton">
167         <span class='category-button js-category-switch' t-att-data-category-id="category.id" >
168             <div class="category-img">
169                 <img t-att-src="image_url" />
170             </div>
171             <div class="category-name">
172                 <t t-esc="category.name"/>
173             </div>
174         </span>
175     </t>
176
177     <t t-name="CategorySimpleButton">
178         <span class='category-simple-button js-category-switch' t-att-data-category-id="category.id" >
179             <t t-esc="category.name"/>
180         </span>
181     </t>
182
183     <t t-name="ProductCategoriesWidget">
184         <div>
185         <header class='rightpane-header'>
186             <div class="breadcrumbs">
187                 <span class="breadcrumb">
188                     <span class=" breadcrumb-button js-category-switch">
189                         <img src="/point_of_sale/static/src/img/home.png" class="breadcrumb-homeimg" />
190                     </span>
191                 </span>
192                 <t t-foreach="widget.breadcrumb" t-as="category">
193                     <span class="breadcrumb">
194                         <img src="/point_of_sale/static/src/img/bc-arrow-big.png" class="breadcrumb-arrow" />
195                         <span class="breadcrumb-button js-category-switch" t-att-data-category-id="category.id">
196                             <t t-esc="category.name"/>
197                         </span>
198                     </span>
199                 </t>
200             </div>
201             <div class="searchbox">
202                 <input placeholder="Search Products" />
203                 <span class="search-clear"></span>
204             </div>
205         </header>
206         <t t-if="widget.subcategories.length > 0">
207             <div class="categories">
208                 <div class="category-list">
209                 </div>
210             </div>
211         </t>
212         </div>
213     </t>
214
215     <t t-name="ProductListWidget">
216         <div class='product-list-container'>
217             <div class="product-list-scroller touch-scrollable">
218                 <div class="product-list">
219                 </div>
220             </div>
221             <span class="placeholder-ScrollbarWidget" />
222         </div>
223     </t>
224
225     <t t-name="ProductScreenWidget">
226         <div class="product-screen screen">
227             <table class="layout-table">
228
229                 <tr class="header-row">
230                     <td class="header-cell">
231                         <span class="placeholder-ProductCategoriesWidget" />
232                     </td>
233                 </tr>
234
235                 <tr class="content-row">
236                     <td class="content-cell">
237                         <div class="content-container">
238                             <span class="placeholder-ProductListWidget" />
239                         </div>
240                     </td>
241                 </tr>
242
243             </table>
244         </div>
245     </t>
246
247     <t t-name="ScaleScreenWidget">
248         <div class="scale-screen screen">
249             <div class="screen-content">
250                 <div class="top-content">
251                     <span class='button back'>
252                         <i class='fa fa-angle-double-left'></i>
253                         Back
254                     </span>
255                     <h1 class='product-name'><t t-esc="widget.get_product_name()" /></h1>
256                 </div>
257                 <div class="centered-content">
258                     <div class='weight js-weight'>
259                         <t t-esc="widget.get_product_weight_string()" />
260                     </div>
261                     <div class='product-price'>
262                         <t t-esc="widget.format_currency(widget.get_product_price()) + '/Kg'" />
263                     </div>
264                     <div class='computed-price'>
265                         123.14 â‚¬
266                     </div>
267                     <div class='buy-product'>
268                         Order
269                         <i class='fa fa-angle-double-right'></i>
270                     </div>
271                 </div>
272             </div>
273         </div>
274     </t>
275
276     <t t-name="ClientLine">
277         <tr class='client-line' t-att-data-id='partner.id'>
278             <td><t t-esc='partner.name' /></td>
279             <td><t t-esc='partner.address' /></td>
280             <td><t t-esc='partner.phone or partner.mobile or ""' /></td>
281         </tr>
282     </t>
283
284     <t t-name="ClientDetailsEdit">
285         <section class='client-details edit'>
286             <div class='client-picture'>
287                 <t t-if='!partner.id'>
288                     <i class='fa fa-camera'></i>
289                 </t>
290                 <t t-if='partner.id'>
291                     <img t-att-src='widget.partner_icon_url(partner.id)' />
292                 </t>
293                 <input type='file' class='image-uploader'></input>   
294             </div>
295             <input class='detail client-name' name='name' t-att-value='partner.name' placeholder='Name'></input>
296             <div class='edit-buttons'>
297                 <div class='button undo'><i class='fa fa-undo' /></div>
298                 <div class='button save'><i class='fa fa-floppy-o' /></div>
299             </div>
300             <div class='client-details-box clearfix'>
301                 <div class='client-details-left'>
302                     <div class='client-detail'>
303                         <span class='label'>Street</span>
304                         <input class='detail client-address-street' name='street'       t-att-value='partner.street' placeholder='Street'></input>
305                     </div>
306                     <div class='client-detail'>
307                         <span class='label'>City</span>
308                         <input class='detail client-address-city'   name='city'         t-att-value='partner.city' placeholder='City'></input>
309                     </div>
310                     <div class='client-detail'>
311                         <span class='label'>Postcode</span>
312                         <input class='detail client-address-zip'    name='zip'          t-att-value='partner.zip' placeholder='ZIP'></input>
313                     </div>
314                     <div class='client-detail'>
315                         <span class='label'>Country</span>
316                         <select class='detail client-address-country' name='country_id'>
317                             <option value=''>None</option>
318                             <t t-foreach='widget.pos.countries' t-as='country'>
319                                 <option t-att-value='country.id' t-att-selected="partner_country_id ? ((country.id === partner.country_id[0]) ? true : undefined) : undefined"> 
320                                     <t t-esc='country.name'/>
321                                 </option>
322                             </t>
323                         </select>
324                     </div>
325                 </div>
326                 <div class='client-details-right'>
327                     <div class='client-detail'>
328                         <span class='label'>Email</span>
329                         <input class='detail client-email'  name='email'    type='email'    t-att-value='partner.email || ""'></input>
330                     </div>
331                     <div class='client-detail'>
332                         <span class='label'>Phone</span>
333                         <input class='detail client-phone'  name='phone'    type='tel'      t-att-value='partner.phone || ""'></input>
334                     </div>
335                     <div class='client-detail'>
336                         <span class='label'>Barcode</span>
337                         <input class='detail barcode'       name='barcode'    t-att-value='partner.barcode || ""'></input>
338                     </div>
339                     <div class='client-detail'>
340                         <span class='label'>Tax ID</span>
341                         <input class='detail vat'           name='vat'     t-att-value='partner.vat || ""'></input>
342                     </div>
343                 </div>
344             </div>
345         </section>
346     </t>
347     <t t-name="ClientDetails">
348         <section class='client-details'>
349             <div class='client-picture'>
350                 <img t-att-src='widget.partner_icon_url(partner.id)' />
351             </div>
352             <div class='client-name'><t t-esc='partner.name' /></div>
353             <div class='edit-buttons'>
354                 <div class='button edit'><i class='fa fa-pencil-square' /></div>
355             </div>
356             <div class='client-details-box clearfix'>
357                 <div class='client-details-left'>
358                     <div class='client-detail'>
359                         <span class='label'>Address</span>
360                         <span class='detail client-address'><t t-esc='partner.address' /></span>
361                     </div>
362                     <div class='client-detail'>
363                         <span class='label'>Email</span>
364                         <span class='detail client-email'><t t-esc='partner.email' /></span>
365                     </div>
366                     <div class='client-detail'>
367                         <span class='label'>Phone</span>
368                         <t t-if='partner.phone'>
369                             <span class='detail client-phone'><t t-esc='partner.phone' /></span>
370                         </t>
371                         <t t-if='!partner.phone'>
372                             <span class='detail client-phone empty'>N/A</span>
373                         </t>
374                     </div>
375                 </div>
376                 <div class='client-details-right'>
377                     <div class='client-detail'>
378                         <span class='label'>Barcode</span>
379                         <t t-if='partner.barcode'>
380                             <span class='detail client-id'><t t-esc='partner.barcode'/></span>
381                         </t>
382                         <t t-if='!partner.barcode'>
383                             <span class='detail client-id empty'>N/A</span>
384                         </t>
385                     </div>
386                     <div class='client-detail'>
387                         <span class='label'>Tax ID</span>
388                         <t t-if='partner.vat'>
389                             <span class='detail vat'><t t-esc='partner.vat'/></span>
390                         </t>
391                         <t t-if='!partner.vat'>
392                             <span class='detail vat empty'>N/A</span>
393                         </t>
394                     </div>
395                 </div>
396             </div>
397         </section>
398     </t>
399
400     <t t-name="ClientListScreenWidget">
401         <div class="clientlist-screen screen">
402             <div class="screen-content">
403                 <section class="top-content">
404                     <span class='button back'>
405                         <i class='fa fa-angle-double-left'></i>
406                         Cancel
407                     </span>
408                     <span class='searchbox'>
409                         <input placeholder='Search Customers' />
410                         <span class='search-clear'></span>
411                     </span>
412                     <span class='searchbox'></span>
413                     <span class='button new-customer'>
414                         <i class='fa fa-user'></i>
415                         <i class='fa fa-plus'></i>
416                     </span>
417                     <span class='button next oe_hidden highlight'>
418                         Select Customer
419                         <i class='fa fa-angle-double-right'></i>
420                     </span>
421                 </section>
422                 <section class="full-content">
423                     <div class='window'>
424                         <section class='subwindow collapsed'>
425                             <div class='subwindow-container'>
426                                 <div class='subwindow-container-fix client-details-contents'>
427                                 </div>
428                             </div>
429                         </section>
430                         <section class='subwindow'>
431                             <div class='subwindow-container'>
432                                 <div class='subwindow-container-fix touch-scrollable scrollable-y'>
433                                     <table class='client-list'>
434                                         <thead>
435                                             <tr>
436                                                 <th>Name</th>
437                                                 <th>Address</th>
438                                                 <th>Phone</th>
439                                             </tr>
440                                         </thead>
441                                         <tbody class='client-list-contents'>
442                                         </tbody>
443                                     </table>
444                                 </div>
445                             </div>
446                         </section>
447                     </div>
448                 </section>
449             </div>
450         </div>
451     </t>
452
453     <t t-name="PaymentScreen-Paymentlines">
454         <t t-if="!paymentlines.length">
455             <div class='paymentlines-empty'>
456                 <div class='total'>
457                     <t t-esc="widget.format_currency(order.get_total_with_tax())"/>
458                 </div>
459                 <div class='message'>
460                     Please select a payment method. 
461                 </div>
462             </div>
463         </t>
464
465         <t t-if="paymentlines.length">
466             <table class='paymentlines'>
467                 <colgroup>
468                     <col class='due' />
469                     <col class='tendered' />
470                     <col class='change' />
471                     <col class='method' />
472                     <col class='controls' />
473                 </colgroup>
474                 <thead>
475                     <tr class='label'>
476                         <th>Due</th>
477                         <th>Tendered</th>
478                         <th>Change</th>
479                         <th>Method</th>
480                         <th></th>
481                     </tr>
482                 </thead>
483                 <tbody>
484                     <t t-foreach='paymentlines' t-as='line'>
485                         <t t-if='line.selected'>
486                             <tr class='paymentline selected'>
487                                 <td class='col-due'> <t t-esc='widget.format_currency_no_symbol(order.get_due(line))' /> </td>
488                                 <td class='col-tendered edit'> 
489                                     <t t-esc='widget.inputbuffer' />
490                                     <!-- <t t-esc='line.get_amount()' /> -->
491                                 </td>
492                                 <t t-if='order.get_change(line)'>
493                                     <td class='col-change highlight' > 
494                                         <t t-esc='widget.format_currency_no_symbol(order.get_change(line))' />
495                                     </td>
496                                 </t>
497                                 <t t-if='!order.get_change(line)'>
498                                     <td class='col-change' ></td>
499                                 </t>
500                                     
501                                 <td class='col-name' > <t t-esc='line.name' /> </td>
502                                 <td class='delete-button' t-att-data-cid='line.cid'> <i class='fa fa-times-circle' /> </td>
503                             </tr>
504                         </t>
505                         <t t-if='!line.selected'>
506                             <tr class='paymentline' t-att-data-cid='line.cid'>
507                                 <td class='col-due'> <t t-esc='widget.format_currency_no_symbol(order.get_due(line))' /> </td>
508                                 <td class='col-tendered'> <t t-esc='widget.format_currency_no_symbol(line.get_amount())' /> </td>
509                                 <td class='col-change'> 
510                                     <t t-if='order.get_change(line)'>
511                                         <t t-esc='widget.format_currency_no_symbol(order.get_change(line))' />
512                                      </t>
513                                 </td>
514                                 <td class='col-name'> <t t-esc='line.name' /> </td>
515                                 <td class='delete-button' t-att-data-cid='line.cid'> <i class='fa fa-times-circle' /> </td>
516                             </tr>
517                         </t>
518                     </t>
519                 </tbody>
520             </table>
521         </t>
522
523     </t>
524
525     <t t-name="PaymentScreen-Numpad">
526         <div class="numpad">
527             <button class="input-button number-char" data-action='1'>1</button>
528             <button class="input-button number-char" data-action='2'>2</button>
529             <button class="input-button number-char" data-action='3'>3</button>
530             <button class="mode-button" data-action='+10'>+10</button>
531             <br />
532             <button class="input-button number-char" data-action='4'>4</button>
533             <button class="input-button number-char" data-action='5'>5</button>
534             <button class="input-button number-char" data-action='6'>6</button>
535             <button class="mode-button" data-action='+20'>+20</button>
536             <br />
537             <button class="input-button number-char" data-action='7'>7</button>
538             <button class="input-button number-char" data-action='8'>8</button>
539             <button class="input-button number-char" data-action='9'>9</button>
540             <button class="mode-button" data-action='+50'>+50</button>
541             <br />
542             <button class="input-button numpad-char" data-action='CLEAR' >C</button>
543             <button class="input-button number-char" data-action='0'>0</button>
544             <button class="input-button number-char" data-action='.'>.</button>
545             <button class="input-button numpad-backspace" data-action='BACKSPACE' >
546                 <img src="/point_of_sale/static/src/img/backspace.png" width="24" height="21" />
547             </button>
548             <br />
549         </div>
550     </t>
551
552     <t t-name="PaymentScreen-Paymentmethods">
553         <div class='paymentmethods'>
554             <t t-foreach="widget.pos.cashregisters" t-as="cashregister">
555                 <div class="button paymentmethod" t-att-data-id="cashregister.journal_id[0]">
556                     <t t-esc="cashregister.journal_id[1]" />
557                 </div>
558             </t>
559         </div>
560
561     </t>
562
563     <t t-name="PaymentScreenWidget">
564         <div class='payment-screen screen'>
565             <div class='screen-content'>
566                 <div class='top-content'>
567                     <span class='button back'>
568                         <i class='fa fa-angle-double-left'></i>
569                         Back
570                     </span>
571                     <h1>Payment</h1>
572                     <span class='button next'>
573                         Validate
574                         <i class='fa fa-angle-double-right'></i>
575                     </span>
576                 </div>
577                 <div class='left-content pc40 touch-scrollable scrollable-y'>
578
579                     <div class='paymentmethods-container'>
580                     </div>
581
582                 </div>
583                 <div class='right-content pc60 touch-scrollable scrollable-y'>
584
585                     <section class='paymentlines-container'>
586                     </section>
587
588                     <section class='payment-numpad'>
589                     </section>
590
591                     <div class='payment-buttons'>
592                         <div class='button js_set_customer'>
593                             <i class='fa fa-user' />Customer
594                         </div>
595                         <t t-if='widget.pos.config.iface_invoicing'>
596                             <t t-if='widget.pos.get_order()'>
597                                 <div t-attf-class='button js_invoice #{ widget.pos.get_order().is_to_invoice() ? "highlight" : ""} '>
598                                     <i class='fa fa-file-text-o' /> Invoice
599                                 </div>
600                             </t>
601                         </t>
602                         <t t-if='widget.pos.config.iface_cashdrawer'>
603                             <div class='button js_invoice'>
604                                 <i class='fa fa-archive' /> Open Cashbox
605                             </div>
606                         </t>
607                      </div>
608                  </div>
609              </div>
610          </div>
611      </t>
612         
613     <t t-name="ReceiptScreenWidget">
614         <div class='receipt-screen screen'>
615             <div class='screen-content'>
616                 <div class='top-content'>
617                     <h1>Receipt</h1>
618                     <span class='button next'>
619                         Next Order
620                         <i class='fa fa-angle-double-right'></i>
621                     </span>
622                 </div>
623                 <div class="centered-content">
624                     <div class="button print">
625                         <i class='fa fa-print'></i> Print
626                     </div>
627                     <div class="pos-receipt-container">
628                     </div>
629                 </div>
630             </div>
631         </div>
632     </t>
633
634     <t t-name="XmlReceipt">
635         <receipt align='center' width='40' value-thousands-separator='' >
636             <t t-if='receipt.company.logo'>
637                 <img t-att-src='receipt.company.logo' />
638                 <br/>
639             </t>
640             <t t-if='!receipt.company.logo'>
641                 <h1><t t-esc='receipt.company.name' /></h1>
642                 <br/>
643             </t>
644             <div font='b'>
645                 <t t-if='receipt.shop.name'>
646                     <div><t t-esc='receipt.shop.name' /></div>
647                 </t>
648                 <t t-if='receipt.company.contact_address'>
649                     <div><t t-esc='receipt.company.contact_address' /></div>
650                 </t>
651                 <t t-if='receipt.company.phone'>
652                     <div>Tel:<t t-esc='receipt.company.phone' /></div>
653                 </t>
654                 <t t-if='receipt.company.vat'>
655                     <div>VAT:<t t-esc='receipt.company.vat' /></div>
656                 </t>
657                 <t t-if='receipt.company.email'>
658                     <div><t t-esc='receipt.company.email' /></div>
659                 </t>
660                 <t t-if='receipt.company.website'>
661                     <div><t t-esc='receipt.company.website' /></div>
662                 </t>
663                 <t t-if='receipt.header_xml'>
664                     <t t-raw='receipt.header_xml' />
665                 </t>
666                 <t t-if='!receipt.header_xml and receipt.header'>
667                     <div><t t-esc='receipt.header' /></div>
668                 </t>
669                 <t t-if='receipt.cashier'>
670                     <div class='cashier'>
671                         <div>--------------------------------</div>
672                         <div>Served by <t t-esc='receipt.cashier' /></div>
673                     </div>
674                 </t>
675             </div>
676             <br /><br />
677
678             <!-- Orderlines -->
679
680             <div class='orderlines' line-ratio='0.6'>
681                 <t t-foreach='receipt.orderlines' t-as='line'>
682                     <t t-set='simple' t-value='line.discount === 0 and line.unit_name === "Unit(s)" and line.quantity === 1' />
683                     <t t-if='simple'>
684                         <line>
685                             <left><t t-esc='line.product_name' /></left>
686                             <right><value><t t-esc='line.price_display' /></value></right>
687                         </line>
688                     </t>
689                     <t t-if='!simple'>
690                         <line><left><t t-esc='line.product_name' /></left></line>
691                         <t t-if='line.discount !== 0'>
692                             <line indent='1'><left>Discount: <t t-esc='line.discount' />%</left></line>
693                         </t>
694                         <line indent='1'>
695                             <left>
696                                 <value value-decimals='3' value-autoint='on'>
697                                     <t t-esc='line.quantity' />
698                                 </value>
699                                 <t t-if='line.unit_name !== "Unit(s)"'>
700                                     <t t-esc='line.unit_name' /> 
701                                 </t>
702                                 x 
703                                 <value value-decimals='2'>
704                                     <t t-esc='line.price' />
705                                 </value>
706                             </left>
707                             <right>
708                                 <value><t t-esc='line.price_display' /></value>
709                             </right>
710                         </line>
711                     </t>
712                 </t>
713             </div>
714
715             <!-- Subtotal -->
716
717             <t t-set='taxincluded' t-value='Math.abs(receipt.subtotal - receipt.total_with_tax) &lt;= 0.000001' />
718             <t t-if='!taxincluded'>
719                 <line><right>--------</right></line>
720                 <line><left>Subtotal</left><right> <value><t t-esc="receipt.subtotal" /></value></right></line>
721                 <t t-foreach='receipt.tax_details' t-as='tax'>
722                     <line>
723                         <left><t t-esc='tax.name' /></left>
724                         <right><value><t t-esc='tax.amount' /></value></right>
725                     </line>
726                 </t>
727             </t>
728
729             <!-- Total -->
730
731             <line><right>--------</right></line>
732             <line class='total' size='double-height'>
733                 <left><pre>        TOTAL</pre></left>
734                 <right><value><t t-esc='receipt.total_with_tax' /></value></right>
735             </line>
736             <br/><br/>
737
738             <!-- Payment Lines -->
739
740             <t t-foreach='receipt.paymentlines' t-as='line'>
741                 <line>
742                     <left><t t-esc='line.journal' /></left>
743                     <right><value><t t-esc='line.amount'/></value></right>
744                 </line>
745             </t>
746             <br/> 
747
748             <line size='double-height'>
749                 <left><pre>        CHANGE</pre></left>
750                 <right><value><t t-esc='receipt.change' /></value></right>
751             </line>
752             <br/>
753             
754             <!-- Extra Payment Info -->
755
756             <t t-if='receipt.total_discount'>
757                 <line>
758                     <left>Discounts</left>
759                     <right><value><t t-esc='receipt.total_discount'/></value></right>
760                 </line>
761             </t>
762             <t t-if='taxincluded'>
763                 <t t-foreach='receipt.tax_details' t-as='tax'>
764                     <line>
765                         <left><t t-esc='tax.name' /></left>
766                         <right><value><t t-esc='tax.amount' /></value></right>
767                     </line>
768                 </t>
769                 <line>
770                     <left>Total Taxes</left>
771                     <right><value><t t-esc='receipt.total_tax'/></value></right>
772                 </line>
773             </t>
774
775             <div class='before-footer' />
776
777             <!-- Footer -->
778             <t t-if='receipt.footer_xml'>
779                 <t t-raw='receipt.footer_xml' />
780             </t>
781
782             <t t-if='!receipt.footer_xml and receipt.footer'>
783                 <br/>
784                 <t t-esc='receipt.footer' />
785                 <br/>
786                 <br/>
787             </t>
788
789             <div class='after-footer' />
790
791             <br/>
792             <div font='b'>
793                 <div><t t-esc='receipt.name' /></div>
794                 <div><t t-esc='receipt.date.localestring' /></div>
795             </div>
796
797         </receipt>
798     </t>
799
800     <t t-name="FullscreenPopupWidget">
801         <div class="modal-dialog">
802             <div class="popup popup-fullscreen">
803                 <p class="message">Fullscreen Setup</p>
804
805                 <t t-if='widget.ismobile()'>
806                     <p class="comment">
807                         The best way to make the point of sale fullscreen on mobile
808                         devices is to add the point of sale to your home screen. On 
809                         iPhone and iPad this is done by tapping <img src='/point_of_sale/static/src/img/ios-share-icon.png' />
810                         and then <i>Add to Homescreen</i>
811                     </p>
812                     <p class='comment'>
813                         This also works on Android with the Chrome Beta Browser, using the <i>Add to Homescreen</i> option 
814                         in the browser's menu.
815                     </p>
816                     <p class='comment'> 
817                         If you want to work in fullscreen just this time tap the <i>Go Fullscreen</i> button.
818                     </p>
819                 </t>
820
821                 <t t-if='!widget.ismobile()'>
822                     <p class="comment">
823                         The best way to make the point of sale fullscreen on desktop
824                         and laptops is to launch your browser in kiosk mode. Please
825                         refer to your browser's documentation for the specific 
826                         instructions.
827                     </p>
828                     <p class="comment">
829                         If you want to work in fullscreen just this time, click the <i> Go Fullscreen</i> button.
830                     </p>
831                 </t>
832
833                 <div class="footer">
834                     <div class="button fullscreen">
835                         Go Fullscreen
836                     </div>
837                     <div class="button cancel">
838                         Cancel
839                     </div>
840                 </div>
841             </div>
842         </div>
843     </t>
844
845     <t t-name="ErrorInvoiceTransferPopupWidget">
846         <div class="modal-dialog">
847             <div class="popup popup-invoice">
848                 <p class="message">The Order could not be sent to the server for invoicing. Invoices cannot be generated
849                     in offline mode. Please check your internet connection and try again.</p>
850                 <div class="footer">
851                     <div class="button">
852                         Ok
853                     </div>
854                 </div>
855             </div>
856         </div>
857     </t>
858
859     <t t-name="ErrorPopupWidget">
860         <div class="modal-dialog">
861             <div class="popup popup-error">
862                 <p class="message"><t t-esc=" widget.message || 'Error' " /></p>
863                 <p class="comment"><t t-esc=" widget.comment || '' "/></p>
864                 <div class="footer">
865                     <div class="button">
866                         Ok
867                     </div>
868                 </div>
869             </div>
870         </div>
871     </t>
872
873     <t t-name="ErrorTracebackPopupWidget">
874         <div class="modal-dialog">
875             <div class="popup popup-error">
876                 <p class="message"><t t-esc=" widget.message || 'Error' " /></p>
877                 <p class="comment traceback"><t t-esc=" widget.comment || '' "/></p>
878                 <div class="footer">
879                     <div class="button">
880                         Ok
881                     </div>
882                 </div>
883             </div>
884         </div>
885     </t>
886
887     <t t-name="ErrorTracebackPopupWidget">
888         <div class="modal-dialog">
889             <div class="popup popup-error">
890                 <p class="message"><t t-esc=" widget.message || 'Error' " /></p>
891                 <p class="comment traceback"><t t-esc=" widget.comment || '' "/></p>
892                 <div class="footer">
893                     <div class="button">
894                         Ok
895                     </div>
896                 </div>
897             </div>
898         </div>
899     </t>
900
901     <t t-name="ErrorBarcodePopupWidget">
902         <div class="modal-dialog">
903             <div class="popup popup-barcode">
904                 <p class="message">Unknown Barcode
905                     <br />
906                     <span class='barcode'><t t-esc="widget.barcode" /></span>
907                 </p>
908                 <p class="comment">
909                     The Point of Sale could not find any product, client, employee
910                     or action associated with the scanned barcode.
911                 </p>
912                 <div class="footer">
913                     <div class="button">
914                         Ok
915                     </div>
916                 </div>
917             </div>
918         </div>
919     </t>
920
921     <t t-name="ConfirmPopupWidget">
922         <div class="modal-dialog">
923             <div class="popup popup-confirm">
924                 <p class="message"><t t-esc=" widget.message || 'Confirm ?' " /></p>
925                 <p class="comment"><t t-esc=" widget.comment || '' "/></p>
926                 <div class="footer">
927                     <div class="button confirm">
928                         Confirm 
929                     </div>
930                     <div class="button cancel">
931                         Cancel 
932                     </div>
933                 </div>
934             </div>
935         </div>
936     </t>
937
938     <t t-name="TextInputPopupWidget">
939         <div class="modal-dialog">
940             <div class="popup popup-textinput">
941                 <p class="message"><t t-esc=" widget.message || '' " /></p>
942                 <input type='text' t-att-value="widget.value || ''"></input>
943                 <div class="footer">
944                     <div class="button confirm">
945                         Ok 
946                     </div>
947                     <div class="button cancel">
948                         Cancel 
949                     </div>
950                 </div>
951             </div>
952         </div>
953     </t>
954
955     <t t-name="TextAreaPopupWidget">
956         <div class="modal-dialog">
957             <div class="popup popup-textinput">
958                 <p class="message"><t t-esc=" widget.message || '' " /></p>
959                 <textarea rows="15" cols="50" t-att-value="widget.value || ''"></textarea>
960                 <div class="footer">
961                     <div class="button confirm">
962                         Ok 
963                     </div>
964                     <div class="button cancel">
965                         Cancel 
966                     </div>
967                 </div>
968             </div>
969         </div>
970     </t>
971
972     <t t-name="UnsentOrdersPopupWidget">
973         <div class="modal-dialog">
974             <div class="popup popup-unsent-orders">
975                 <p class="message">Unsent Orders</p>
976                 <t t-if='widget.pos.db.get_orders().length === 0'>
977                     <p class='comment'>
978                         There are no unsent orders
979                     </p>
980                 </t>
981                 <t t-if='widget.pos.db.get_orders().length > 0'>
982                     <p class='comment traceback'>
983                         <t t-esc='JSON.stringify(widget.pos.db.get_orders(),null,2)' />
984                     </p>
985                 </t>
986                 <div class="footer">
987                     <div class="button confirm">
988                         Ok
989                     </div>
990                 </div>
991             </div>
992         </div>
993     </t>
994
995     <t t-name="UnpaidOrdersPopupWidget">
996         <div class="modal-dialog">
997             <div class="popup popup-unpaid-orders">
998                 <p class="message">Unpaid Orders</p>
999                 <t t-if='widget.pos.db.get_unpaid_orders().length === 0'>
1000                     <p class='comment'>
1001                         There are no unpaid orders
1002                     </p>
1003                 </t>
1004                 <t t-if='widget.pos.db.get_unpaid_orders().length > 0'>
1005                     <p class='comment traceback'>
1006                         <t t-esc='JSON.stringify(widget.pos.db.get_unpaid_orders(),null,2)' />
1007                     </p>
1008                 </t>
1009                 <div class="footer">
1010                     <div class="button confirm">
1011                         Ok
1012                     </div>
1013                 </div>
1014             </div>
1015         </div>
1016     </t>
1017
1018     <t t-name="SelectionPopupWidget">
1019         <div class="modal-dialog">
1020             <div class="popup popup-selection">
1021                 <p class="message"><t t-esc=" widget.message || 'Select' " /></p>
1022                 <div class='selection scrollable-y touch-scrollable'>
1023                     <t t-foreach="widget.list || []" t-as="item">
1024                         <div class='selection-item' t-att-data-item-index='item_index'>
1025                             <t t-esc='item.label'/>
1026                         </div>
1027                     </t>
1028                 </div>
1029                 <div class="footer">
1030                     <div class="button cancel">
1031                         Cancel 
1032                     </div>
1033                 </div>
1034             </div>
1035         </div>
1036     </t>
1037
1038     <t t-name="NumberPopupWidget">
1039         <div class="modal-dialog">
1040             <div class="popup popup-number">
1041                 <p class="message"><t t-esc=" widget.message || '' " /></p>
1042                 <div class='popup-input value active'>
1043                     <t t-esc='widget.inputbuffer' />
1044                 </div>
1045                 <div class='popup-numpad'>
1046                     <button class="input-button number-char" data-action='1'>1</button>
1047                     <button class="input-button number-char" data-action='2'>2</button>
1048                     <button class="input-button number-char" data-action='3'>3</button>
1049                     <button class="mode-button add" data-action='+10'>+10</button>
1050                     <br />
1051                     <button class="input-button number-char" data-action='4'>4</button>
1052                     <button class="input-button number-char" data-action='5'>5</button>
1053                     <button class="input-button number-char" data-action='6'>6</button>
1054                     <button class="mode-button add" data-action='+20'>+20</button>
1055                     <br />
1056                     <button class="input-button number-char" data-action='7'>7</button>
1057                     <button class="input-button number-char" data-action='8'>8</button>
1058                     <button class="input-button number-char" data-action='9'>9</button>
1059                     <button class="mode-button add" data-action='+50'>+50</button>
1060                     <br />
1061                     <button class="input-button numpad-char" data-action='CLEAR' >C</button>
1062                     <button class="input-button number-char" data-action='0'>0</button>
1063                     <button class="input-button number-char dot" data-action='.'>.</button>
1064                     <button class="input-button numpad-backspace" data-action='BACKSPACE' >
1065                         <img src="/point_of_sale/static/src/img/backspace.png" width="24" height="21" />
1066                     </button>
1067                     <br />
1068                 </div>
1069                 <div class="footer">
1070                     <div class="button confirm">
1071                         Ok
1072                     </div>
1073                     <div class="button cancel">
1074                         Cancel 
1075                     </div>
1076                 </div>
1077             </div>
1078         </div>
1079     </t>
1080
1081     <t t-name="Product">
1082         <span class='product' t-att-data-product-id="product.id">
1083             <div class="product-img">
1084                 <img t-att-src='image_url' /> 
1085                 <t t-if="!product.to_weight">
1086                     <span class="price-tag">
1087                         <t t-esc="widget.format_currency(product.price,'Product Price')"/>
1088                     </span>
1089                 </t>
1090                 <t t-if="product.to_weight">
1091                     <span class="price-tag">
1092                         <t t-esc="widget.format_currency(product.price,'Product Price')+'/Kg'"/>
1093                     </span>
1094                 </t>
1095             </div>
1096             <div class="product-name">
1097                 <t t-esc="product.display_name"/>
1098             </div>
1099         </span>
1100     </t>
1101
1102     <t t-name="Orderline">
1103         <li t-attf-class="orderline #{ line.selected ? 'selected' : '' }">
1104             <span class="product-name">
1105                 <t t-esc="line.get_product().display_name"/>
1106             </span>
1107             <span class="price">
1108                 <t t-esc="widget.format_currency(line.get_display_price())"/>
1109             </span>
1110             <ul class="info-list">
1111                 <t t-if="line.get_quantity_str() !== '1' || line.selected ">
1112                     <li class="info">
1113                         <em>
1114                             <t t-esc="line.get_quantity_str()" />
1115                         </em>
1116                         <t t-esc="line.get_unit().name" />
1117                         at
1118                         <t t-esc="widget.format_currency(line.get_unit_display_price(),'Product Price')" />
1119                         /
1120                         <t t-esc="line.get_unit().name" />
1121                     </li>
1122                 </t>
1123                 <t t-if="line.get_discount_str() !== '0'">
1124                     <li class="info">
1125                         With a 
1126                         <em>
1127                             <t t-esc="line.get_discount_str()" />%
1128                         </em>
1129                         discount
1130                     </li>
1131                 </t>
1132             </ul>
1133         </li>
1134     </t>
1135
1136     <t t-name="OrderWidget">
1137         <div class="order-container">
1138             <div class="order-scroller touch-scrollable">
1139                 <div class="order">
1140                     <ul class="orderlines">
1141                         <t t-if="orderlines.length === 0">
1142                             <li class="orderline empty">
1143                                 Your shopping cart is empty
1144                             </li>
1145                         </t>
1146                     </ul>
1147                     <div class="summary clearfix">
1148                         <div t-attf-class="line #{orderlines.length === 0 ? 'empty' : ''}">
1149                             <div class='entry total'>
1150                                 <span class="label">Total: </span> <span class="value">0.00 â‚¬</span>
1151                                 <div class='subentry'>Taxes: <span class="value">0.00€</span></div>
1152                             </div>
1153                         </div>
1154                     </div>
1155                 </div>
1156             </div>
1157         </div>
1158     </t>
1159
1160
1161
1162     <t t-name="DebugWidget">
1163         <div class="debug-widget">
1164             <h1>Debug Window</h1>
1165             <div class="toggle">â–¾</div>
1166             <div class="content">
1167                 <p class="category">Electronic Scale</p>
1168                 <ul>
1169                     <li><input type="text" class="weight"></input></li>
1170                     <li class="button set_weight">Set Weight</li>
1171                     <li class="button reset_weight">Reset</li>
1172                 </ul>
1173
1174                 <p class="category">Barcode Scanner</p>
1175                 <ul>
1176                     <li><input type="text" class="ean"></input></li>
1177                     <li class="button custom_ean">Custom Ean13</li>
1178                     <li class="button admin_badge">Admin Badge</li>
1179                     <li class="button client_badge">Client Badge</li>
1180                     <li class="button soda_33cl">Soda 33cl</li>
1181                     <li class="button oranges_kg">3.141Kg Oranges</li>
1182                     <li class="button lemon_price">1.54€ Lemon</li>
1183                     <li class="button unknown_product">Unknown Product</li>
1184                     <li class="button invalid_ean">Invalid Ean</li>
1185                     <li class="button reference">Reference</li>
1186                 </ul>
1187
1188                 <p class="category">Unsent Orders</p>
1189                 <ul>
1190                     <li class="button show_orders">Show All Unsent Orders</li>
1191                     <li class="button delete_orders">Delete All Unsent Orders</li>
1192                 </ul>
1193                 <p class="category">Unpaid Orders</p>
1194                 <ul>
1195                     <li class="button show_unpaid_orders">Show All Unpaid Orders</li>
1196                     <li class="button delete_unpaid_orders">Delete All Unpaid Orders</li>
1197                 </ul>
1198
1199                 <p class="category">Hardware Status</p>
1200                 <ul>
1201                     <li class="status weighting">Weighting</li>
1202                 </ul>
1203                 <p class="category">Hardware Events</p>
1204                 <ul>
1205                     <li class="event open_cashbox">Open Cashbox</li>
1206                     <li class="event print_receipt">Print Receipt</li>
1207                     <li class="event scale_read">Read Weighting Scale</li>
1208                 </ul>
1209             </div>
1210         </div>
1211     </t>
1212
1213
1214     <t t-name="Paymentline">
1215         <div t-attf-class="paymentline #{line.selected ? 'selected' : ''}">
1216             <div class='paymentline-name'>
1217                 <t t-esc="line.name"/>
1218             </div>
1219             <input class='paymentline-input' type="number" step="0.01" t-att-value="line.get_amount_str()" />
1220             <span  class='paymentline-delete'>
1221                 <img src="/point_of_sale/static/src/img/search_reset.gif" />
1222             </span>
1223         </div>
1224     </t>
1225
1226     <t t-name="PaymentlineOld">
1227         <tr t-attf-class="paymentline #{line.selected ? 'selected' : ''}">
1228             <td class="paymentline-type">
1229                 <t t-esc="line.name"/>
1230             </td>
1231             <td class="paymentline-amount pos-right-align">
1232                 <input type="number" step="0.01" t-att-value="line.get_amount_str()" />
1233                 <span class='delete-payment-line'><img src="/point_of_sale/static/src/img/search_reset.gif" /></span>
1234             </td>
1235         </tr>
1236     </t>
1237
1238     <t t-name="OrderSelectorWidget">
1239         <div class="order-selector">
1240             <span class="orders touch-scrollable">
1241
1242                 <t t-foreach="widget.pos.get_order_list()" t-as="order">
1243                     <t t-if='order === widget.pos.get_order()'>
1244                         <span class="order-button select-order selected" t-att-data-uid="order.uid">
1245                             <span class='order-sequence'>
1246                                 <t t-esc='order.sequence_number' />
1247                             </span>
1248                             <t t-if="order.get_client()">
1249                                 <i class='fa fa-user'/>
1250                             </t>
1251                             <t t-esc="(order.get_client() ? order.get_client_name()+' : ':'') + order.creation_date.toString('t')"/>
1252                         </span>
1253                     </t>
1254                     <t t-if='order !== widget.pos.get_order()'>
1255                         <span class="order-button select-order" t-att-data-uid="order.uid">
1256                             <span class='order-sequence'>
1257                                 <t t-esc='order.sequence_number' />
1258                             </span>
1259                         </span>
1260                     </t>
1261                 </t>
1262             
1263             </span>
1264             <span class="order-button square neworder-button">
1265                 <i class='fa fa-plus' />
1266             </span>
1267             <span class="order-button square deleteorder-button">
1268                 <i class='fa fa-minus' />
1269             </span>
1270         </div>
1271     </t>
1272
1273     <t t-name="UsernameWidget">
1274         <span class="username">
1275             <t t-esc="widget.get_name()" />
1276         </span>
1277     </t>
1278
1279     <t t-name="PosTicket">
1280         <div class="pos-sale-ticket">
1281             
1282             <div class="pos-center-align"><t t-esc="moment().format('L LT')"/> <t t-esc="order.name"/></div>
1283             <br />
1284             <t t-esc="widget.pos.company.name"/><br />
1285             Phone: <t t-esc="widget.pos.company.phone || ''"/><br />
1286             User: <t t-esc="widget.pos.cashier ? widget.pos.cashier.name : widget.pos.user.name"/><br />
1287             Shop: <t t-esc="widget.pos.shop.name"/><br />
1288             <br />
1289             <t t-if="receipt.header">
1290                 <div style='text-align:center'>
1291                     <t t-esc="receipt.header" />
1292                 </div>
1293                 <br />
1294             </t>
1295             <table>
1296                 <colgroup>
1297                     <col width='50%' />
1298                     <col width='25%' />
1299                     <col width='25%' />
1300                 </colgroup>
1301                 <tr t-foreach="orderlines" t-as="orderline">
1302                     <td>
1303                         <t t-esc="orderline.get_product().display_name"/>
1304                          <t t-if="orderline.get_discount() > 0">
1305                             <div class="pos-disc-font">
1306                                 With a <t t-esc="orderline.get_discount()"/>% discount
1307                             </div>
1308                         </t>
1309                     </td>
1310                     <td class="pos-right-align">
1311                         <t t-esc="orderline.get_quantity_str_with_unit()"/>
1312                     </td>
1313                     <td class="pos-right-align">
1314                         <t t-esc="widget.format_currency(orderline.get_display_price())"/>
1315                     </td>
1316                 </tr>
1317             </table>
1318             <br />
1319             <table>
1320                 <tr>
1321                     <td>Subtotal:</td>
1322                     <td class="pos-right-align">
1323                         <t t-esc="widget.format_currency(order.get_subtotal())"/>
1324                     </td>
1325                 </tr>
1326                 <t t-foreach="order.get_tax_details()" t-as="taxdetail">
1327                     <tr>
1328                         <td><t t-esc="taxdetail.name" /></td>
1329                         <td class="pos-right-align">
1330                             <t t-esc="widget.format_currency(taxdetail.amount)" />
1331                         </td>
1332                     </tr>
1333                 </t>
1334                 <tr>
1335                     <td>Discount:</td>
1336                     <td class="pos-right-align">
1337                         <t t-esc="widget.format_currency(order.get_total_discount())"/>
1338                     </td>
1339                 </tr>
1340                 <tr class="emph">
1341                     <td>Total:</td>
1342                     <td class="pos-right-align">
1343                         <t t-esc="widget.format_currency(order.get_total_with_tax())"/>
1344                     </td>
1345                 </tr>
1346             </table>
1347             <br />
1348             <table>
1349                 <tr t-foreach="paymentlines" t-as="line">
1350                     <td>
1351                         <t t-esc="line.name"/>
1352                     </td>
1353                     <td class="pos-right-align">
1354                         <t t-esc="widget.format_currency(line.get_amount())"/>
1355                     </td>
1356                 </tr>
1357             </table>
1358             <br />
1359             <table>
1360                 <tr><td>Change:</td><td class="pos-right-align">
1361                     <t t-esc="widget.format_currency(order.get_change())"/>
1362                     </td></tr>
1363             </table>
1364             <t t-if="receipt.footer">
1365                 <br />
1366                 <div style='text-align:center'>
1367                     <t t-esc="receipt.footer" />
1368                 </div>
1369             </t>
1370         </div>
1371     </t>
1372
1373     <!-- Onscreen Keyboard : 
1374          http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-keyboard-with-css-and-jquery/ -->
1375     <t t-name="OnscreenKeyboardFull">
1376         <div class="keyboard_frame">
1377             <ul class="keyboard full_keyboard">
1378                 <li class="symbol"><span class="off">`</span><span class="on">~</span></li>
1379                 <li class="symbol"><span class="off">1</span><span class="on">!</span></li>
1380                 <li class="symbol"><span class="off">2</span><span class="on">@</span></li>
1381                 <li class="symbol"><span class="off">3</span><span class="on">#</span></li>
1382                 <li class="symbol"><span class="off">4</span><span class="on">$</span></li>
1383                 <li class="symbol"><span class="off">5</span><span class="on">%</span></li>
1384                 <li class="symbol"><span class="off">6</span><span class="on">^</span></li>
1385                 <li class="symbol"><span class="off">7</span><span class="on">&amp;</span></li>
1386                 <li class="symbol"><span class="off">8</span><span class="on">*</span></li>
1387                 <li class="symbol"><span class="off">9</span><span class="on">(</span></li>
1388                 <li class="symbol"><span class="off">0</span><span class="on">)</span></li>
1389                 <li class="symbol"><span class="off">-</span><span class="on">_</span></li>
1390                 <li class="symbol"><span class="off">=</span><span class="on">+</span></li>
1391                 <li class="delete lastitem">delete</li>
1392                 <li class="tab firstitem">tab</li>
1393                 <li class="letter">q</li>
1394                 <li class="letter">w</li>
1395                 <li class="letter">e</li>
1396                 <li class="letter">r</li>
1397                 <li class="letter">t</li>
1398                 <li class="letter">y</li>
1399                 <li class="letter">u</li>
1400                 <li class="letter">i</li>
1401                 <li class="letter">o</li>
1402                 <li class="letter">p</li>
1403                 <li class="symbol"><span class="off">[</span><span class="on">{</span></li>
1404                 <li class="symbol"><span class="off">]</span><span class="on">}</span></li>
1405                 <li class="symbol lastitem"><span class="off">\</span><span class="on">|</span></li>
1406                 <li class="capslock firstitem">caps lock</li>
1407                 <li class="letter">a</li>
1408                 <li class="letter">s</li>
1409                 <li class="letter">d</li>
1410                 <li class="letter">f</li>
1411                 <li class="letter">g</li>
1412                 <li class="letter">h</li>
1413                 <li class="letter">j</li>
1414                 <li class="letter">k</li>
1415                 <li class="letter">l</li>
1416                 <li class="symbol"><span class="off">;</span><span class="on">:</span></li>
1417                 <li class="symbol"><span class="off">'</span><span class="on">&quot;</span></li>
1418                 <li class="return lastitem">return</li>
1419                 <li class="left-shift firstitem">shift</li>
1420                 <li class="letter">z</li>
1421                 <li class="letter">x</li>
1422                 <li class="letter">c</li>
1423                 <li class="letter">v</li>
1424                 <li class="letter">b</li>
1425                 <li class="letter">n</li>
1426                 <li class="letter">m</li>
1427                 <li class="symbol"><span class="off">,</span><span class="on">&lt;</span></li>
1428                 <li class="symbol"><span class="off">.</span><span class="on">&gt;</span></li>
1429                 <li class="symbol"><span class="off">/</span><span class="on">?</span></li>
1430                 <li class="right-shift lastitem">shift</li>
1431                 <li class="space firstitem lastitem">&amp;nbsp;</li>
1432             </ul>
1433             <p class="close_button">close</p>
1434         </div>
1435     </t>
1436
1437     <t t-name="OnscreenKeyboardSimple">
1438         <div class="keyboard_frame">
1439             <ul class="keyboard simple_keyboard">
1440                 <li class="symbol firstitem row_qwerty"><span class="off">q</span><span class="on">1</span></li>
1441                 <li class="symbol"><span class="off">w</span><span class="on">2</span></li>
1442                 <li class="symbol"><span class="off">e</span><span class="on">3</span></li>
1443                 <li class="symbol"><span class="off">r</span><span class="on">4</span></li>
1444                 <li class="symbol"><span class="off">t</span><span class="on">5</span></li>
1445                 <li class="symbol"><span class="off">y</span><span class="on">6</span></li>
1446                 <li class="symbol"><span class="off">u</span><span class="on">7</span></li>
1447                 <li class="symbol"><span class="off">i</span><span class="on">8</span></li>
1448                 <li class="symbol"><span class="off">o</span><span class="on">9</span></li>
1449                 <li class="symbol lastitem"><span class="off">p</span><span class="on">0</span></li>
1450
1451                 <li class="symbol firstitem row_asdf"><span class="off">a</span><span class="on">@</span></li>
1452                 <li class="symbol"><span class="off">s</span><span class="on">#</span></li>
1453                 <li class="symbol"><span class="off">d</span><span class="on">%</span></li>
1454                 <li class="symbol"><span class="off">f</span><span class="on">*</span></li>
1455                 <li class="symbol"><span class="off">g</span><span class="on">/</span></li>
1456                 <li class="symbol"><span class="off">h</span><span class="on">-</span></li>
1457                 <li class="symbol"><span class="off">j</span><span class="on">+</span></li>
1458                 <li class="symbol"><span class="off">k</span><span class="on">(</span></li>
1459                 <li class="symbol lastitem"><span class="off">l</span><span class="on">)</span></li>
1460
1461                 <li class="symbol firstitem row_zxcv"><span class="off">z</span><span class="on">?</span></li>
1462                 <li class="symbol"><span class="off">x</span><span class="on">!</span></li>
1463                 <li class="symbol"><span class="off">c</span><span class="on">"</span></li>
1464                 <li class="symbol"><span class="off">v</span><span class="on">'</span></li>
1465                 <li class="symbol"><span class="off">b</span><span class="on">:</span></li>
1466                 <li class="symbol"><span class="off">n</span><span class="on">;</span></li>
1467                 <li class="symbol"><span class="off">m</span><span class="on">,</span></li>
1468                 <li class="delete lastitem">delete</li>
1469
1470                 <li class="numlock firstitem row_space"><span class="off">123</span><span class="on">ABC</span></li>
1471                 <li class="space">&amp;nbsp;</li>
1472                 <li class="symbol"><span class="off">.</span><span class="on">.</span></li>
1473                 <li class="return lastitem">return</li>
1474             </ul>
1475             <p class="close_button">close</p>
1476         </div>
1477     </t>
1478
1479 </templates>