1 <?xml version="1.0" encoding="UTF-8"?>
4 <templates id="template" xml:space="preserve">
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>
13 <div class="pos-rightheader">
14 <div class="order-selector">
15 <button class="order-button square neworder-button"><img src='/point_of_sale/static/src/img/plus.png' /></button>
16 <button class="order-button square deleteorder-button"><img src='/point_of_sale/static/src/img/minus.png' /></button>
17 <span class="orders"></span>
19 <!-- here goes header buttons -->
23 <div class="pos-content">
25 <div class="pos-leftpane">
27 <div class='subwindow'>
28 <div class='subwindow-container'>
29 <div class='subwindow-container-fix'>
30 <div class="placeholder-OrderWidget"></div>
35 <div class='subwindow collapsed'>
36 <div class='subwindow-container'>
37 <div class='subwindow-container-fix pads'>
38 <div class="placeholder-PaypadWidget"></div>
39 <div class="placeholder-NumpadWidget"></div>
44 <div class='subwindow collapsed'>
45 <div class='subwindow-container'>
46 <div class='subwindow-container-fix'>
47 <div class='placeholder-LeftActionBar'></div>
54 <div class="rightpane">
56 <div class='subwindow'>
57 <div class='subwindow-container'>
58 <div class='subwindow-container-fix screens'>
63 <div class='subwindow collapsed'>
64 <div class='subwindow-container'>
65 <div class='subwindow-container-fix'>
66 <div class='placeholder-RightActionBar'></div>
73 <div class="placeholder-OnscreenKeyboardWidget"></div>
77 <div class='loader-feedback oe_hidden'>
78 <h1 class='message'>Loading</h1>
79 <div class='progressbar'>
80 <div class='progress' width='50%'></div>
82 <div class='oe_hidden button skip'>
89 <div class='not-supported-browser'>
91 <img src='/point_of_sale/static/src/img/pos_screenshot.jpg' />
93 The Point of Sale is not supported by Microsoft Internet Explorer. Please use
94 a modern browser like <a href="http://www.mozilla.org/firefox/" target="_blank">Mozilla Firefox</a>
95 or <a href="http://www.google.com/chrome" target="_blank">Google Chrome</a>.
103 <t t-name="SynchNotificationWidget">
104 <div class="oe_status js_synch">
105 <span class='js_msg oe_hidden'>0</span>
106 <div class="js_connected oe_icon oe_green">
107 <i class='fa fa-fw fa-rss'></i>
109 <div class="js_connecting oe_icon oe_hidden">
110 <i class='fa fa-fw fa-spin fa-spinner'></i>
112 <div class="js_disconnected oe_icon oe_red oe_hidden">
113 <i class='fa fa-fw fa-rss'></i>
118 <t t-name="ProxyStatusWidget">
119 <div class="oe_status js_proxy">
120 <span class='js_msg oe_orange oe_hidden'></span>
121 <div class="js_connected oe_icon oe_green">
122 <i class='fa fa-fw fa-sitemap'></i>
124 <div class="js_connecting oe_icon oe_hidden">
125 <i class='fa fa-fw fa-spin fa-spinner'></i>
127 <div class="js_warning oe_icon oe_orange oe_hidden">
128 <i class='fa fa-fw fa-sitemap'></i>
130 <div class="js_disconnected oe_icon oe_red oe_hidden">
131 <i class='fa fa-fw fa-sitemap'></i>
136 <t t-name="HeaderButtonWidget">
137 <div class="header-button">
138 <t t-esc="widget.label" />
142 <t t-name="PosCloseWarning">
143 <div>There are pending operations that could not be saved into the database, are you sure you want to exit?</div>
146 <t t-name="PaypadWidget">
147 <div class="paypad touch-scrollable">
151 <t t-name="NumpadWidget">
153 <button class="input-button number-char">1</button>
154 <button class="input-button number-char">2</button>
155 <button class="input-button number-char">3</button>
156 <button class="mode-button" data-mode='quantity'>Qty</button>
158 <button class="input-button number-char">4</button>
159 <button class="input-button number-char">5</button>
160 <button class="input-button number-char">6</button>
161 <button class="mode-button" data-mode='discount'>Disc</button>
163 <button class="input-button number-char">7</button>
164 <button class="input-button number-char">8</button>
165 <button class="input-button number-char">9</button>
166 <button class="mode-button" data-mode='price'>Price</button>
168 <button class="input-button numpad-minus" >+/-</button>
169 <button class="input-button number-char">0</button>
170 <button class="input-button number-char">.</button>
171 <button class="input-button numpad-backspace">
172 <img src="/point_of_sale/static/src/img/backspace.png" width="24" height="21" />
178 <t t-name="CategoryButton">
179 <span class='category-button js-category-switch' t-att-data-category-id="category.id" >
180 <div class="category-img">
181 <img t-att-src="image_url" />
183 <div class="category-name">
184 <t t-esc="category.name"/>
189 <t t-name="CategorySimpleButton">
190 <span class='category-simple-button js-category-switch' t-att-data-category-id="category.id" >
191 <t t-esc="category.name"/>
195 <t t-name="ProductCategoriesWidget">
197 <header class='rightpane-header'>
198 <div class="breadcrumbs">
199 <span class="breadcrumb">
200 <span class=" breadcrumb-button js-category-switch">
201 <img src="/point_of_sale/static/src/img/home.png" class="breadcrumb-homeimg" />
204 <t t-foreach="widget.breadcrumb" t-as="category">
205 <span class="breadcrumb">
206 <img src="/point_of_sale/static/src/img/bc-arrow-big.png" class="breadcrumb-arrow" />
207 <span class="breadcrumb-button js-category-switch" t-att-data-category-id="category.id">
208 <t t-esc="category.name"/>
213 <div class="searchbox">
214 <input placeholder="Search Products" />
215 <span class="search-clear"></span>
218 <t t-if="widget.subcategories.length > 0">
219 <div class="categories">
220 <div class="category-list">
227 <t t-name="ProductListWidget">
228 <div class='product-list-container'>
229 <div class="product-list-scroller touch-scrollable">
230 <div class="product-list">
233 <span class="placeholder-ScrollbarWidget" />
237 <t t-name="ProductScreenWidget">
238 <div class="product-screen screen">
239 <table class="layout-table">
241 <tr class="header-row">
242 <td class="header-cell">
243 <span class="placeholder-ProductCategoriesWidget" />
247 <tr class="content-row">
248 <td class="content-cell">
249 <div class="content-container">
250 <span class="placeholder-ProductListWidget" />
259 <t t-name="ScaleScreenWidget">
260 <div class="scale-screen screen">
261 <div class="display">
262 <span class="weight">
264 <span class='js-weight'>
265 <t t-esc="widget.get_product_weight_string()" />
269 <span class="product-name">
270 <t t-esc="widget.get_product_name()" />
272 <div class="product-picture">
273 <span class="product-price">
274 <t t-esc="widget.format_currency(widget.get_product_price()) + '/Kg'" />
276 <t t-if="widget.get_product()">
277 <img t-att-src="widget.get_product_image_url()" />
284 <t t-name="PaymentScreenWidget">
285 <div class="payment-screen screen touch-scrollable">
286 <div class="pos-payment-container">
287 <div class='payment-due-total'></div>
288 <div class='payment-lines'></div>
289 <div class='payment-info'>
290 <div class="infoline">
291 <span class='left-block'>
294 <span class="right-block payment-paid-total"></span>
296 <div class="infoline">
297 <span class='left-block'>
300 <span class="right-block payment-remaining"></span>
302 <div class="infoline bigger" >
303 <span class='left-block'>
306 <span class="right-block payment-change"></span>
313 <t t-name="ReceiptScreenWidget">
314 <div class="receipt-screen screen touch-scrollable" >
315 <div class="pos-step-container">
316 <div class="pos-receipt-container">
322 <t t-name="XmlReceipt">
323 <receipt align='center' width='40' value-thousands-separator='' >
324 <t t-if='receipt.company.logo'>
325 <img t-att-src='receipt.company.logo' />
328 <t t-if='!receipt.company.logo'>
329 <h1><t t-esc='receipt.company.name' /></h1>
333 <t t-if='receipt.shop.name'>
334 <div><t t-esc='receipt.shop.name' /></div>
336 <t t-if='receipt.company.contact_address'>
337 <div><t t-esc='receipt.company.contact_address' /></div>
339 <t t-if='receipt.company.phone'>
340 <div>Tel:<t t-esc='receipt.company.phone' /></div>
342 <t t-if='receipt.company.vat'>
343 <div>VAT:<t t-esc='receipt.company.vat' /></div>
345 <t t-if='receipt.company.email'>
346 <div><t t-esc='receipt.company.email' /></div>
348 <t t-if='receipt.company.website'>
349 <div><t t-esc='receipt.company.website' /></div>
351 <t t-if='receipt.header'>
352 <div><t t-esc='receipt.header' /></div>
354 <t t-if='receipt.cashier'>
355 <div>--------------------------------</div>
356 <div>Served by <t t-esc='receipt.cashier' /></div>
363 <div line-ratio='0.6'>
364 <t t-foreach='receipt.orderlines' t-as='line'>
365 <t t-set='simple' t-value='line.discount === 0 and line.unit_name === "Unit(s)" and line.quantity === 1' />
368 <left><t t-esc='line.product_name' /></left>
369 <right><value><t t-esc='line.price_display' /></value></right>
373 <line><left><t t-esc='line.product_name' /></left></line>
374 <t t-if='line.discount !== 0'>
375 <line indent='1'><left>Discount: <t t-esc='line.discount' />%</left></line>
379 <value value-decimals='3' autoint='on'>
380 <t t-esc='line.quantity' />
382 <t t-if='line.unit_name !== "Unit(s)"'>
383 <t t-esc='line.unit_name' />
386 <value value-decimals='2'>
387 <t t-esc='line.price' />
391 <value><t t-esc='line.price_display' /></value>
400 <t t-set='taxincluded' t-value='Math.abs(receipt.subtotal - receipt.total_with_tax) <= 0.000001' />
401 <t t-if='!taxincluded'>
402 <line><right>--------</right></line>
403 <line><left>Subtotal</left><right> <value><t t-esc="receipt.subtotal" /></value></right></line>
404 <t t-foreach='receipt.tax_details' t-as='tax'>
406 <left><t t-esc='tax.name' /></left>
407 <right><value><t t-esc='tax.amount' /></value></right>
414 <line><right>--------</right></line>
415 <line size='double-height'>
416 <left><pre> TOTAL</pre></left>
417 <right><value><t t-esc='receipt.total_with_tax' /></value></right>
421 <!-- Payment Lines -->
423 <t t-foreach='receipt.paymentlines' t-as='line'>
425 <left><t t-esc='line.journal' /></left>
426 <right><value><t t-esc='line.amount'/></value></right>
431 <line size='double-height'>
432 <left><pre> CHANGE</pre></left>
433 <right><value><t t-esc='receipt.change' /></value></right>
437 <!-- Extra Payment Info -->
439 <t t-if='receipt.total_discount'>
441 <left>Discounts</left>
442 <right><value><t t-esc='receipt.total_discount'/></value></right>
445 <t t-if='taxincluded'>
446 <t t-foreach='receipt.tax_details' t-as='tax'>
448 <left><t t-esc='tax.name' /></left>
449 <right><value><t t-esc='tax.amount' /></value></right>
455 <t t-if='receipt.footer'>
457 <pre><t t-esc='receipt.footer' /></pre>
464 <div><t t-esc='receipt.name' /></div>
465 <div><t t-esc='receipt.date.localestring' /></div>
471 <t t-name="WelcomeScreenWidget">
472 <div class="welcome-screen screen">
473 <header class='rightpane-header'><h2>Welcome</h2></header>
475 <img src="/point_of_sale/static/src/img/scan.png" />
476 <p> Please scan an item or your member card </p>
479 <div class="goodbye-message">
480 <p>Thank you for shopping with us.</p>
485 <t t-name="ScanProductScreenWidget">
486 <div class="scan-product-screen screen touch-scrollable">
487 <header class='rightpane-header'><h2>Please scan an item</h2></header>
488 <img src="/point_of_sale/static/src/img/scan.png" />
492 <t t-name="ClientPaymentScreenWidget">
493 <div class="scan-product-screen screen">
494 <header class='rightpane-header'><h2>Payment</h2></header>
496 <img src="/point_of_sale/static/src/img/bancontact.png" />
497 <p>Please insert your card in the reader and follow the instructions to complete
503 <t t-name="ScaleInviteScreenWidget">
504 <div class="scale-invite-screen screen">
505 <header class='rightpane-header'><h2>Please put your product on the scale</h2></header>
506 <img src="/point_of_sale/static/src/img/scale.png" />
510 <t t-name="HelpPopupWidget">
511 <div class="modal-dialog">
512 <div class="popup popup-help">
513 <p class="message">Please be patient, help is on the way</p>
523 <t t-name="ChooseReceiptPopupWidget">
524 <div class="modal-dialog">
525 <div class="popup popup-help">
526 <p class="message">Welcome <t t-esc="widget.get_client_name()" /><br /> Choose your type of receipt:</p>
527 <div class = "button big-left receipt">
530 <div class = "button big-right invoice">
537 <t t-name="ProductErrorPopupWidget">
538 <div class="modal-dialog">
539 <div class="popup popup-help">
540 <p class="message">The scanned product was not recognized<br /> Please wait, a cashier is on the way</p>
550 <t t-name="ErrorSessionPopupWidget">
551 <div class="modal-dialog">
552 <div class="popup popup-help">
553 <p class="message">Sorry, we could not create a session for this user.</p>
558 <t t-name="ErrorNegativePricePopupWidget">
559 <div class="modal-dialog">
560 <div class="popup popup-help">
561 <p class="message">Your order has to be validated by a cashier.</p>
566 <t t-name="ErrorNoClientPopupWidget">
567 <div class="modal-dialog">
568 <div class="popup popup-help">
569 <p class="message">An anonymous order cannot be invoiced</p>
579 <t t-name="ErrorInvoiceTransferPopupWidget">
580 <div class="modal-dialog">
581 <div class="popup popup-help">
582 <p class="message">The Order could not be sent to the server for invoicing. Invoices cannot be generated
583 in offline mode. Please check your internet connection and try again.</p>
593 <t t-name="ErrorPopupWidget">
594 <div class="modal-dialog">
595 <div class="popup popup-help">
596 <p class="message"><t t-esc=" widget.message || 'Error' " /></p>
597 <p class="comment"><t t-esc=" widget.comment || '' "/></p>
603 <span class='product' t-att-data-product-id="product.id">
604 <div class="product-img">
605 <img t-att-src='image_url' />
606 <t t-if="!product.to_weight">
607 <span class="price-tag">
608 <t t-esc="widget.format_currency(product.price)"/>
611 <t t-if="product.to_weight">
612 <span class="price-tag">
613 <t t-esc="widget.format_currency(product.price)+'/Kg'"/>
617 <div class="product-name">
618 <t t-esc="product.name"/>
623 <t t-name="OrderWidget">
624 <div class="order-container">
625 <div class="order-scroller touch-scrollable">
627 <ul class="orderlines">
628 <t t-if="orderlines.length === 0">
629 <li class="orderline empty">
630 Your shopping cart is empty
634 <div class="summary clearfix">
635 <div t-attf-class="line #{orderlines.length === 0 ? 'empty' : ''}">
636 <div class='entry total'>
637 <span class="label">Total: </span> <span class="value">0.00 €</span>
638 <div class='subentry'>Taxes: <span class="value">0.00€</span></div>
641 <div class='clear'></div>
648 <t t-name="DebugWidget">
649 <div class="debug-widget">
650 <h1>Debug Window</h1>
651 <div class="toggle">â–¾</div>
652 <div class="content">
653 <p class="category">Payment Terminal</p>
656 <li class="button accept_payment">Accept Payment</li>
657 <li class="button reject_payment">Reject Payment</li>
659 <p class="category">Electronic Scale</p>
661 <li><input type="text" class="weight"></input></li>
662 <li class="button set_weight">Set Weight</li>
663 <li class="button reset_weight">Reset</li>
666 <p class="category">Barcode Scanner</p>
668 <li><input type="text" class="ean"></input></li>
669 <li class="button custom_ean">Custom Ean13</li>
670 <li class="button admin_badge">Admin Badge</li>
671 <li class="button client_badge">Client Badge</li>
672 <li class="button soda_33cl">Soda 33cl</li>
673 <li class="button oranges_kg">3.141Kg Oranges</li>
674 <li class="button lemon_price">1.54€ Lemon</li>
675 <li class="button unknown_product">Unknown Product</li>
676 <li class="button invalid_ean">Invalid Ean</li>
677 <li class="button reference">Reference</li>
680 <p class="category">Hardware Status</p>
682 <li class="status help_needed">Help needed</li>
683 <li class="status weighting">Weighting</li>
684 <li class="status transaction">In Transaction</li>
686 <p class="category">Hardware Events</p>
688 <li class="event scan_item_success">Scan Item Success</li>
689 <li class="event scan_item_error_unrecognized">Scan Item Unrecognized</li>
690 <li class="event payment_request">Payment Request</li>
691 <li class="event payment_status">Payment Status</li>
692 <li class="event open_cashbox">Open Cashbox</li>
693 <li class="event print_receipt">Print Receipt</li>
694 <li class="event print_pdf_invoice">Print Invoice</li>
695 <li class="event weighting_read_kg">Read Weighting Scale</li>
701 <t t-name="Orderline">
702 <li t-attf-class="orderline #{ line.selected ? 'selected' : '' }">
703 <span class="product-name">
704 <t t-esc="line.get_product().name"/>
707 <t t-esc="widget.format_currency(line.get_display_price())"/>
709 <ul class="info-list">
710 <t t-if="line.get_quantity_str() !== '1' || line.selected ">
713 <t t-esc="line.get_quantity_str()" />
715 <t t-esc="line.get_unit().name" />
717 <t t-esc="widget.format_currency(line.get_unit_price())" />
719 <t t-esc="line.get_unit().name" />
722 <t t-if="line.get_discount_str() !== '0'">
726 <t t-esc="line.get_discount_str()" />%
735 <t t-name="Paymentline">
736 <div t-attf-class="paymentline #{line.selected ? 'selected' : ''}">
737 <div class='paymentline-name'>
738 <t t-esc="line.name"/>
740 <input class='paymentline-input' type="number" step="0.01" t-att-value="line.get_amount().toFixed(2)" />
741 <span class='paymentline-delete'>
742 <img src="/point_of_sale/static/src/img/search_reset.gif" />
747 <t t-name="PaymentlineOld">
748 <tr t-attf-class="paymentline #{line.selected ? 'selected' : ''}">
749 <td class="paymentline-type">
750 <t t-esc="line.name"/>
752 <td class="paymentline-amount pos-right-align">
753 <input type="number" step="0.01" t-att-value="line.get_amount().toFixed(2)" />
754 <span class='delete-payment-line'><img src="/point_of_sale/static/src/img/search_reset.gif" /></span>
759 <t t-name="PaypadButtonWidget">
760 <button class="paypad-button" t-att-cash-register-id="widget.cashregister.id">
761 <t t-esc="widget.cashregister.journal.name"/>
765 <t t-name="OrderButtonWidget">
766 <button class="order-button select-order"><t t-esc="(widget.order.get_client() ? widget.order.get_client_name()+' : ':'') + widget.order.get('creationDate').toString('t')"/></button>
769 <t t-name="UsernameWidget">
770 <span class="username">
771 <t t-esc="widget.get_name()" />
775 <t t-name="PosTicket">
776 <div class="pos-sale-ticket">
778 <div class="pos-center-align"><t t-esc="new Date().toString(Date.CultureInfo.formatPatterns.shortDate + ' ' +
779 Date.CultureInfo.formatPatterns.longTime)"/> <t t-esc="order.get('name')"/></div>
781 <t t-esc="widget.pos.company.name"/><br />
782 Phone: <t t-esc="widget.pos.company.phone || ''"/><br />
783 User: <t t-esc="widget.pos.user.name"/><br />
784 Shop: <t t-esc="widget.pos.shop.name"/><br />
786 <t t-if="widget.pos.config.receipt_header">
787 <div style='text-align:center'>
788 <t t-esc="widget.pos.config.receipt_header" />
798 <tr t-foreach="orderlines" t-as="orderline">
800 <t t-esc="orderline.get_product().name"/>
801 <t t-if="orderline.get_discount() > 0">
802 <div class="pos-disc-font">
803 With a <t t-esc="orderline.get_discount()"/>% discount
807 <td class="pos-right-align">
808 <t t-esc="orderline.get_quantity_str_with_unit()"/>
810 <td class="pos-right-align">
811 <t t-esc="widget.format_currency(orderline.get_display_price())"/>
819 <td class="pos-right-align">
820 <t t-esc="widget.format_currency(order.getSubtotal())"/>
823 <t t-foreach="order.getTaxDetails()" t-as="taxdetail">
825 <td><t t-esc="taxdetail.tax.name" /></td>
826 <td class="pos-right-align">
827 <t t-esc="widget.format_currency(taxdetail.amount)" />
833 <td class="pos-right-align">
834 <t t-esc="widget.format_currency(order.getDiscountTotal())"/>
839 <td class="pos-right-align">
840 <t t-esc="widget.format_currency(order.getTotalTaxIncluded())"/>
846 <tr t-foreach="paymentlines" t-as="line">
848 <t t-esc="line.name"/>
850 <td class="pos-right-align">
851 <t t-esc="widget.format_currency(line.get_amount())"/>
857 <tr><td>Change:</td><td class="pos-right-align">
858 <t t-esc="widget.format_currency(order.getChange())"/>
861 <t t-if="widget.pos.config.receipt_footer">
863 <div style='text-align:center'>
864 <t t-esc="widget.pos.config.receipt_footer" />
870 <t t-name="ActionBarWidget">
871 <div class="pos-actionbar">
872 <ul class="pos-actionbar-button-list">
877 <t t-name="ActionButtonWidget">
878 <li t-att-class=" 'button '+ (widget.rightalign ? 'rightalign ' : '') + (widget.disabled ? 'disabled ' : '')">
880 <t t-esc="widget.label" />
885 <t t-name="ActionButtonWidgetWithIcon">
886 <li t-att-class=" 'button '+ (widget.rightalign ? 'rightalign ' : '') + (widget.disabled ? 'disabled ' : '')">
888 <img t-att-src="widget.icon" />
889 <div class='iconlabel'><t t-esc="widget.label" /></div>
894 <!-- Onscreen Keyboard :
895 http://net.tutsplus.com/tutorials/javascript-ajax/creating-a-keyboard-with-css-and-jquery/ -->
896 <t t-name="OnscreenKeyboardFull">
897 <div class="keyboard_frame">
898 <ul class="keyboard full_keyboard">
899 <li class="symbol"><span class="off">`</span><span class="on">~</span></li>
900 <li class="symbol"><span class="off">1</span><span class="on">!</span></li>
901 <li class="symbol"><span class="off">2</span><span class="on">@</span></li>
902 <li class="symbol"><span class="off">3</span><span class="on">#</span></li>
903 <li class="symbol"><span class="off">4</span><span class="on">$</span></li>
904 <li class="symbol"><span class="off">5</span><span class="on">%</span></li>
905 <li class="symbol"><span class="off">6</span><span class="on">^</span></li>
906 <li class="symbol"><span class="off">7</span><span class="on">&</span></li>
907 <li class="symbol"><span class="off">8</span><span class="on">*</span></li>
908 <li class="symbol"><span class="off">9</span><span class="on">(</span></li>
909 <li class="symbol"><span class="off">0</span><span class="on">)</span></li>
910 <li class="symbol"><span class="off">-</span><span class="on">_</span></li>
911 <li class="symbol"><span class="off">=</span><span class="on">+</span></li>
912 <li class="delete lastitem">delete</li>
913 <li class="tab firstitem">tab</li>
914 <li class="letter">q</li>
915 <li class="letter">w</li>
916 <li class="letter">e</li>
917 <li class="letter">r</li>
918 <li class="letter">t</li>
919 <li class="letter">y</li>
920 <li class="letter">u</li>
921 <li class="letter">i</li>
922 <li class="letter">o</li>
923 <li class="letter">p</li>
924 <li class="symbol"><span class="off">[</span><span class="on">{</span></li>
925 <li class="symbol"><span class="off">]</span><span class="on">}</span></li>
926 <li class="symbol lastitem"><span class="off">\</span><span class="on">|</span></li>
927 <li class="capslock firstitem">caps lock</li>
928 <li class="letter">a</li>
929 <li class="letter">s</li>
930 <li class="letter">d</li>
931 <li class="letter">f</li>
932 <li class="letter">g</li>
933 <li class="letter">h</li>
934 <li class="letter">j</li>
935 <li class="letter">k</li>
936 <li class="letter">l</li>
937 <li class="symbol"><span class="off">;</span><span class="on">:</span></li>
938 <li class="symbol"><span class="off">'</span><span class="on">"</span></li>
939 <li class="return lastitem">return</li>
940 <li class="left-shift firstitem">shift</li>
941 <li class="letter">z</li>
942 <li class="letter">x</li>
943 <li class="letter">c</li>
944 <li class="letter">v</li>
945 <li class="letter">b</li>
946 <li class="letter">n</li>
947 <li class="letter">m</li>
948 <li class="symbol"><span class="off">,</span><span class="on"><</span></li>
949 <li class="symbol"><span class="off">.</span><span class="on">></span></li>
950 <li class="symbol"><span class="off">/</span><span class="on">?</span></li>
951 <li class="right-shift lastitem">shift</li>
952 <li class="space firstitem lastitem">&nbsp;</li>
954 <p class="close_button">close</p>
958 <t t-name="OnscreenKeyboardSimple">
959 <div class="keyboard_frame">
960 <ul class="keyboard simple_keyboard">
961 <li class="symbol firstitem row_qwerty"><span class="off">q</span><span class="on">1</span></li>
962 <li class="symbol"><span class="off">w</span><span class="on">2</span></li>
963 <li class="symbol"><span class="off">e</span><span class="on">3</span></li>
964 <li class="symbol"><span class="off">r</span><span class="on">4</span></li>
965 <li class="symbol"><span class="off">t</span><span class="on">5</span></li>
966 <li class="symbol"><span class="off">y</span><span class="on">6</span></li>
967 <li class="symbol"><span class="off">u</span><span class="on">7</span></li>
968 <li class="symbol"><span class="off">i</span><span class="on">8</span></li>
969 <li class="symbol"><span class="off">o</span><span class="on">9</span></li>
970 <li class="symbol lastitem"><span class="off">p</span><span class="on">0</span></li>
972 <li class="symbol firstitem row_asdf"><span class="off">a</span><span class="on">@</span></li>
973 <li class="symbol"><span class="off">s</span><span class="on">#</span></li>
974 <li class="symbol"><span class="off">d</span><span class="on">%</span></li>
975 <li class="symbol"><span class="off">f</span><span class="on">*</span></li>
976 <li class="symbol"><span class="off">g</span><span class="on">/</span></li>
977 <li class="symbol"><span class="off">h</span><span class="on">-</span></li>
978 <li class="symbol"><span class="off">j</span><span class="on">+</span></li>
979 <li class="symbol"><span class="off">k</span><span class="on">(</span></li>
980 <li class="symbol lastitem"><span class="off">l</span><span class="on">)</span></li>
982 <li class="symbol firstitem row_zxcv"><span class="off">z</span><span class="on">?</span></li>
983 <li class="symbol"><span class="off">x</span><span class="on">!</span></li>
984 <li class="symbol"><span class="off">c</span><span class="on">"</span></li>
985 <li class="symbol"><span class="off">v</span><span class="on">'</span></li>
986 <li class="symbol"><span class="off">b</span><span class="on">:</span></li>
987 <li class="symbol"><span class="off">n</span><span class="on">;</span></li>
988 <li class="symbol"><span class="off">m</span><span class="on">,</span></li>
989 <li class="delete lastitem">delete</li>
991 <li class="numlock firstitem row_space"><span class="off">123</span><span class="on">ABC</span></li>
992 <li class="space">&nbsp;</li>
993 <li class="symbol"><span class="off">.</span><span class="on">.</span></li>
994 <li class="return lastitem">return</li>
996 <p class="close_button">close</p>