summaryrefslogtreecommitdiff
path: root/addons/barcodes/static/src
AgeCommit message (Collapse)Author
2018-08-08[MERGE] forward port branch saas-15 up to e7ccf38c48bChristophe Simonis
2018-08-08[FIX] barcodes: ok PageUp/Down/Home/End in firefoxNicolas Lempereur
Same reason as 8d948d92. In firefox if barcode is installed, for example on a form view the keys to navigate the possible scrolling PageUp/PageDown/Home/End don't work at all. This is caused by the interface barcode catching and differences of the key event handling between firefox and other browser. So in this change, we add these keys so they are not catched by barcode. note: aso backport 5bc29744c so the code is the same between 10 and 11. related to opw-706352 closes #26219
2018-06-21[FIX] barcodes: nomenclatureNicolas Martinelli
Loads the barcode nomenclature only if one has been is defined. Indeed, from commit 80e89c7a11d16fa, the POS config unset the `barcode_nomenclature_id` field if the barcode support is not activated. opw-1859928
2018-07-24[FIX] barcodes: barcodes working in button in dropdownJulien Machiels
On mobile, some barcodes didn't trigger in the picking screens, notably O-BTN.validate. This is due to the use of parent() to check if the button is in a dropdown, as parent() only checks one DOM-level upwards. The button being inside a <ul><li>, we need to check more levels than one to pass the condition and trigger the button press. By changing parent() to parents(), the entire chain will be checked, not just one level, and the button press is correctly triggered. opw-1860964 closes #25941
2018-05-30[FIX] barcodes: avoid virtual keyboard to show up while scanning barcodeAdrien Dieudonne
(1) Before this commit, the input barcode was removed from the dom after each scan but now we want to keep it focused to avoid to automatically open the virtual keyboard in mobile. This behavior will be useful in enterprise only. Another commit will follow in this repository. As the input is not removed anymore, we had to disable autocomplete to hide previous entries as suggestions. (2) We also add z-index property to avoid to click on the hidden input located in the middle of the page.
2018-04-30[FIX] barcodes: Android Odoo app webview not detected as chromeAdrien Dieudonne
Before this commit, it wasn't possible to use a barcode scanner with the Odoo mobile app. However it works fine for mobile Chrome browsers. We now know that 'keypress' event doesn't work as expected in Chrome for mobile. See @3a74afd21 It's why 'keydown' detection has been implemented. We also want to use this detection in our Android app. Unfortunately, 'window.chrome' doesn't seem to exist anymore in the Android webview. In this commit, we change the way Chrome is detected.
2018-04-30[FIX] barcodes: keep vertical position while scanningAdrien Dieudonne
Before this commit, you were automatically redirected to the top of the page when you scanned a product. It was, therefore, difficult to find the product that had just been scanned and to check its quantity. Because of @3a74afd21 we need to put the focus in an invisible input at the top of the page. This input is now always vertically centered in the middle of the page.
2018-04-18[FIX] barcode: do not trigger barcode on pending viewsArnold Moyaux
The check on the event target and the barcode target is done outside the check on barcode found. That result in a warning for each modal/form view that is pending. This commit do the check before doing any operations in order to directly stop if the event target is not similiar to listening barcode target
2018-04-18[FIX] barcode: use the same process for quantity listenerArnold Moyaux
The barcode scanner and the quantity listener do not use the same proccess although they act for the same operation. (For example the quantity listener trigger onchange server side while the barcode scanner not if 'notifychange' key on the active_barcode is set to False) Since quantity listener is based on candidate we could directly call the _barcodeSelectedCandidate method in order to have a common behavior and code.
2018-03-20[FIX] barcodes: barcode scanning on Chrome mobileAdrien Dieudonne
Before this commit, the barcode value wasn't triggered on some Android devices with Google Chrome and using the Odoo app. In fact, the keypress event may not trigger with some devices. This is probably due to the fact that this event is marked as 'Legacy'. See: https://www.w3.org/TR/uievents/#legacy-keyboardevent-event-types To fix this, we can use 'keydown' event but we have to handle an other issue: there is no way to know which key is typed. The auto-suggest feature on Android invalidate all the following properties: Keycode, charCode, key, which, keyIdentifier, code. This is a well-known issue: https://bugs.chromium.org/p/chromium/issues/detail?id=118639 For more infos, please read this blog: https://www.outsystems.com/blog/javascript-events-unmasked-how-to-create-input-mask-for-mobile.html As a work around, we create a temporary input field that stores the barcode value. The focus is set on this input when a keydown is detected. Note that when an input has the focus, the android virtual keyboard will be opened. We can't avoid this behavior. The only thing we can do is to automatically close it after 800 ms. See: https://bugs.chromium.org/p/chromium/issues/detail?id=662386 As this fix is specific for Chrome only, it's not possible to test it easily. Some tests will be added in master.
2018-03-20[FIX] barcodes: skip undefined keys in barcode valueAdrien Dieudonne
This fixes an issue occurring with Firefox. Some events was buffered with an undefined value and it wasn't possible to build the barcode value from these events. See 'handle_buffered_keys' function. So now, we simply skip this kind of event. We consider this as 'special keys'.
2018-03-07[FIX] barcodes: Do not trigger useless onchange server side.Arnold Moyaux
This commit improve perf by not trigger onchange server side on one2many field if the js could find a candidate. opw-785425
2018-03-07[FIX] barcode: set quantity with key pressArnold Moyaux
Allow the user to set the quantity with barcode scanning. This functionality was present in v9 but didn't work in v11. The code in order to make it work was already present in _quantityListener however it makes a check on setQuantityWithKeypress key on the obejct activeBarcode. Howver the key was never set during the activeBarcode event. This commit set the key on the activeBarcode if passed in the event data. It also allow to trigger a barcode if the user is inside a modal.
2018-02-01[MERGE] forward port branch saas-16 up to 920aa6174c9Christophe Simonis
2018-02-01[MERGE] forward port branch saas-15 up to e0422bfd6c5Christophe Simonis
2018-01-31[FIX] barcodes: delay between keysNicolas Martinelli
In order to detect if a barcode scanner is being used, we detect the delay between keypresses. The value is hardcoded to 55 ms. However, in the case of a bluetooth scanner, this delay is often not enough, resulting in an incorrect capture of the barcode. We add the config parameter `barcode.max_time_between_keys_in_ms` which allows the user to fine tune this delay for his hardware. opw-806398
2017-11-28[FIX] barcodes: manage several barcode widgetsSimon Lejeune
related to rev 0d19ee989d1d890860adaf360de204eb543136a5 It was broken following the refactoring done in saas16, resulting in barcodes being handled on all the displayed forms and it was problematic in the case of a form dialog openned over a "fullscreen" form view. This was particularily problematic for the scrap dialog in the stock_barcode module.
2017-09-29[IMP] barcodes: corrected barcode commands of CMD-PREV and CMD-NEXT as well ↵Vandan Shah
as changed qunit test case accordingly
2017-09-27[FIX] stock, barcodes: allow force detailed view of picking and rename ↵Pierre Masereel
barcode 'CANCEL' to 'DISCARD'
2017-09-18[FIX] *: fix a bunch of incorrectly documented docstringXavier Morel
Fix a bunch of ill-documented/incomplete/incorrect method docs Without this, the automatic doc generation does not work.
2017-08-31[MERGE] forward port branch saas-17 up to fe77df3ba48Christophe Simonis
2017-08-25[FIX] barcodes: barcode handlers should return a deferredAaron Bohy
This was the case about 15minutes ago. But before pushing we decided to change the Barcode override of FormController to directly use handlers of the FormController when it could (e.g. to handle 'Edit', 'Discard' actions). This wasn't a good idea as those handlers don't return anything, and the barcode mechanism requires its handlers to return a deferred. So basically, it crashed when such a barcode was scanned. Having a test suite is nice, but you should not forget to relaunch it before pushing...
2017-08-25[FIX] web,barcodes: pager: FIRST and LAST actionsAaron Bohy
The barcode mechanism is supposed to handle commands PAGER-FIRST (go to first record referenced in the pager) and PAGER-LAST (go to last record). Before this rev., it wasn't the case. We needed to add an option 'notifyChange' to the updateState function of the pager, to ensure that the form is correctly reloaded when the pager cursor is manually set (by the barcode handler) on the first or last element.
2017-08-25[FIX] barcodes: generate correct update commandAaron Bohy
The barcode mechanism is optimized to (in certain conditions), directly increment the quantity of a numerical field inside an x2many, without performing any RPC, and then re-rendering the x2many to display the new value. Before this rev., it seemed to work fine, but when the view was saved, those changes of quantity were lost. This was because the changes weren't correctly notified to the model (the quantity field being inside an x2many, the correct update command for the x2many should be generated).
2017-08-25[FIX] barcodes: barcode_handler widget should be genericAaron Bohy
When a barcode field with widget="barcode_handler" is in a form view, an onchange RPC should be done each time a barcode is scanned. Before this rev., it worked by chance because the views using it don't define a 'pack_operation_product_ids' field. Anyway, this widget is meant to be generic, so it shouldn't hardcode a fieldname.
2017-08-25[FIX] barcodes: don't warn if action unavailableAaron Bohy
Before this rev. a warning was displayed when a barcode mapping an invisible button was scanned. It shouldn't, for the following reason. In the stock.picking form view, two buttons with barcode_trigger='validate' are in the page ('Start Inventory' and 'Validate'), and there is always at least one of them that is invisible. So when scanning the 'validate' barcode, we don't want a warning to be displayed, as there is potentially another button that is able to handle the request.
2017-08-25[FIX] barcodes: don't redraw form twiceAaron Bohy
When scanning a command barcode, the view shouldn't be redrawn after the operation corresponding to the command is executed, for two reasons: first, it is useless as the view has already been reloaded, and second, it may cause issues if it has been destroyed meanwhile. For example, when scanning barcode O-CMD.MAIN-MENU from a picking form view: a do_action is performed to go back to the main barcode client action (so the current form view is destroyed), but an handler tried to redrawn the destroyed form view, which produced a crash because the session was required by Date fields, and it couldn't be provided (there were no more parent listening to provide it).
2017-08-25[FIX] barcodes: don't trigger onchange at each keypressAaron Bohy
When a keypress event is triggered in a 'field_float_scannable' widget, the event is first catched by the barcodes mechanism, and then manually re-triggered. However, the way it was done implied that the environment was notified of each keypress event, so if there was an onchange on that particular field, an onchange RPC was done at each keypress. Moreover, the focus was lost at each keypress as well.
2017-08-25[FIX] web, barcodes: restore `disableAutofocus` optionMartin Geubelle
This option has been removed with the new views but was used in barcode. The form renderer was also dealing with some part of the autofocus but this should only be handled by the controller. The logic is now only in the controller and a test case has been added.
2017-08-25[FIX] barcodes: fix several issues when scanning barcodesAkash Bhavsar
Since the new views, most of the barcodes feature was broken. This commit re-enables the support of commands like 'edit', 'save', 'cancel', 'previous' and 'next'. Also changed javascript event handler to jquery event handler to make barcodes testable in phantomjs.
2017-07-24[IMP] web, *: lazy load dialog xml templateqsm-odoo
* web_editor, web_planner, website The 'Dialog' class is used in both backend and frontend. Also, lots of actions can be done without the use of any modal. It thus makes sense to lazy load its related xml only when a first modal is opened. This change also allows to get rid of the "base_common.xml" file as the dialog template is the only remaining one in there and, in the future website update, it will allow to not load any static XML file on website page loadings.
2017-06-26[MERGE] forward port branch saas-15 up to 4d79a1ff58fChristophe Simonis
2017-06-19[MERGE] forward port branch saas-11 up to 1f73105ddd4Christophe Simonis
2017-06-19[MERGE] forward port branch 9.0 up to 7606b60420dChristophe Simonis
2017-06-16[FIX] barcodes: comply the ean parser with reportlab.graphics.barcodeLucas Perais (lpe)
Before this commit, the JS parser would add 0 after the input, then add the ean key. Whereas reportlab.graphics.barcode fills the input with 0's on the left, then add the key http://pydoc.net/Python/reportlab/2.5/reportlab.graphics.barcode.eanbc/ At: Ean13BarcodeWidget.__init__() This commit makes the ean parser coherent with the lib the python uses
2017-05-11[FIX] barcode: Avoid making requests to onchange method on each scanChristophe Matthieu
Usecase: A person scans various products in a warehouse or the network is slow. Only one request per product must be made, the rest is changing the number locally and all performed scans (products or actions) must not be lost. The mutex ensures that the scan is performed in the correct order.
2017-05-04[REF] web, *: restore views designqsm-odoo
Since the new views merge, a lot of design elements were broken. This was particularly impacting the fields in the editable list view; indeed the editable list view is not using an inline form view anymore so the fields in the list were not properly styled as the LESS was still defined assuming the form view environment (for example the invalid fields were red for o2m fields in form view but not in editable list view even though they got the right CSS class). This commit refactor the LESS following these rules: - No more division of non-layout and layout rules. Dividing LESS rules in x_layout.less and x.less was a mistake. Many rules can be considered to be layout and not layout at the same time, developers always have to switch from one file part to the other, many CSS selectors (and rules!) are duplicated for nothing, ... - Field style is extracted from x_view.less and put in the new fields.less file. As before, the fields_extra.less will contain the rules specific to community so that the enterprise repo can override those by replacing the whole file. - Many classes have been renamed so that o_form_x_y becomes o_x_y as many classes can now be applied outside of form view. These classes should not be used in templates anyway. The commit also changes the DOM of fields so that it is more minimalist (no useless parent div, etc). Input elements are not automatically styled anymore, they have to get the o_input class explicitely. This allows to fix lots of small style bugs of previous versions (required monetary field had not the proper style, readonly m2m tags appeared as editable, ...). This also improves the LESS code. The editable list view should also completely stop flickering on chrome and firefox. The commit also removes the orange outline on list view dirty cells. The commit also removes deprecated static xml, LESS and other code. Notice there are still styles to restore/fix and LESS to improve.
2017-04-25[IMP] barcode: add some javascript docstringChristophe Matthieu
2017-04-24[FIX] barcode: various javascript fixesChristophe Matthieu
* Avoid unnecessary reload * send option to saveRecord * Display error warning to set the quantity as option
2017-04-11[REF] barcode, *: update code to new JS frameworkChristophe Matthieu
With the new views, the barcode mechanisms were completely broken, because the view and widget JS code was totally changed. This commit update and refactor all that code to make it work with the new design philosophy. Also, it update the coding style.
2017-04-11[REF] web, *: simplify our RPC system (in JS)Géry Debongnie
The RPC system was not completely satisfactory, we decided to prepare the future and do it properly. This commit introduces the new rpc system, which replace the previous new one. We now simply have a method, this._rpc, which takes a dictionary of parameters. The idea is that depending on the parameters, it is able to add correct default value when necessary. For situations where we don't have the this._rpc method, we can use the rpc.query method, which takes the same arguments, but directly calls ajax.rpc instead of triggering up some events.
2017-04-11[REF] *: use _rpc method for all rpcsGéry Debongnie
The _rpc method is now the preferred method to do a rpc, so we need to update all calls.
2017-04-11[REF] *: remove mixins from web.coreGéry Debongnie
It is better to directly import web.mixins
2017-04-11[REF] web,*: remove 'web.model' and 'web.dataModelGéry Debongnie
Use this.rpc instead of Model object, with web.ajax if necessary. nb: EventDispatcherMixin include now the custom_events managment instead of widget
2017-04-11[FIX] web, barcodes: attrs processing in kanbanqsm-odoo
Commit cef659783514f8935cc46a496f71063d022e8dac changed the way domains are computed but forgot to change the values representation used by the Kanban view. This commit fixes that and adds tests to make sure it does not happen again.
2017-04-11[REF] web, *: redesign all JS viewsGéry Debongnie
This commit introduce a full redesign of all JS views. We started basically from scratch. The goal was to unify all the various views under a common framework, to make them testable, to make then usable in different conditions (in studio, or in the frontend), and to make our lives easier. Some important points are: - we introduced new coding guidelines (camelCase, 80 chars width, ...) - we have a brand new testing framework (still QUnit based) - kanban view moved to the web addon - calendar view (formerly web_calender) moved to web as well - the tree view was removed - all new code should be documented We hope that this code is the start of a new era for the Odoo web client, we want to have a high quality codebase, well documented, well tested, well designed. Work done by the framework team: mostly aab, ged, chm, dmo, qsm
2017-03-28[MERGE] forward port branch saas-11 up to c2569b9df1bChristophe Simonis
2017-03-24[MERGE] forward port branch 9.0 up to 8376f538b56Christophe Simonis
2017-03-24[FIX] barcodes: fix FieldFloatScannable on firefoxNicolas Lempereur
On firefox pressing special keys such as: Left Arrow or Backspace trigger a keypress event. This is different from google chrome which only generate a keydown and keyup event. There was thus two issue when using a FieldFloatScannable and firefox: 1. Keys such as ArrowLeft: would still be catched by FieldFloatScannable and be added programatically to the field but since Odoo didn't fix them a ASCII NUL character (0x0) would be added (in firefox it is represented by a large space). 2. Keys such as Backspace: would still be catched by FieldFloatScannable but were modified and corrected by Odoo so the corresponding ASCII character was added (ASCII BS character (0x8) for backspace). The feature in FieldFloatScannable which add the character is used to add characters for which the browser had been prevented to display them. Thus this fix: - for issue 1 and 2: only use the feature of FieldFloatScannable if the event was previously prevented and the current one is a forgery. - for issue 2: add "Backspace" and "Delete" as specials characters which should not be modified or stopped by the scanner heuristic. opw-706352
2017-01-10[MERGE] forward port branch saas-11 up to f1583504cebChristophe Simonis