<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Odoo/addons/web/static/src/js/framework/barcode_events.js, branch 14.0</title>
<subtitle>The current checkout of upstream Odoo</subtitle>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/'/>
<entry>
<title>[REF] web: move barcode_events to module barcodes</title>
<updated>2015-07-30T05:55:45+00:00</updated>
<author>
<name>Arthur Maniet</name>
<email>arthurmaniet@me.com</email>
</author>
<published>2015-07-09T07:48:08+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=f45904f581edef42a7572101c10359c739b65d55'/>
<id>f45904f581edef42a7572101c10359c739b65d55</id>
<content type='text'>
If the module barcodes is installed, a BarcodeEvents singleton is
automatically instanciated. It listens to keypresses and, when a
sequence of keys represents a barcode, it broadcasts a 'barcode_scanned'
event on core.bus containing the barcode string.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the module barcodes is installed, a BarcodeEvents singleton is
automatically instanciated. It listens to keypresses and, when a
sequence of keys represents a barcode, it broadcasts a 'barcode_scanned'
event on core.bus containing the barcode string.
</pre>
</div>
</content>
</entry>
<entry>
<title>[FIX] barcode_events: set parent to WebClient during creation</title>
<updated>2015-05-29T14:29:47+00:00</updated>
<author>
<name>Joren Van Onder</name>
<email>jov@odoo.com</email>
</author>
<published>2015-05-28T13:36:17+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=cf8b61c3c6b3a63132a69923db2137bd9ff150ed'/>
<id>cf8b61c3c6b3a63132a69923db2137bd9ff150ed</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[IMP] barcode_events: dedicated variables to customize barcode detection</title>
<updated>2015-05-29T14:29:46+00:00</updated>
<author>
<name>Joren Van Onder</name>
<email>jov@odoo.com</email>
</author>
<published>2015-05-28T13:34:06+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=1323316ef207ebe9bb39369abf6d13d78eb7427c'/>
<id>1323316ef207ebe9bb39369abf6d13d78eb7427c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[IMP] barcode_events: deal with special keys in Firefox</title>
<updated>2015-05-29T14:29:16+00:00</updated>
<author>
<name>Joren Van Onder</name>
<email>jov@odoo.com</email>
</author>
<published>2015-05-28T10:00:33+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=ddfa131e135bfed4945e6123211ade14ea902504'/>
<id>ddfa131e135bfed4945e6123211ade14ea902504</id>
<content type='text'>
Let arrow keys, tab and escape pass through. We still want users to be
able to use eg. arrow keys to be used when selecting a radio item. This
will always work in Chrom{e,ium} because they do not dispatch keypress
events for these types of keys, only keydown/keyup events. Firefox does
dispatch keypress events. This makes sure that we do not touch those
types of events in Firefox.

devices have to fire keypresses every 50ms minimum

Previously this was 100ms. This works just as well, but was mainly in
there for testing purposes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Let arrow keys, tab and escape pass through. We still want users to be
able to use eg. arrow keys to be used when selecting a radio item. This
will always work in Chrom{e,ium} because they do not dispatch keypress
events for these types of keys, only keydown/keyup events. Firefox does
dispatch keypress events. This makes sure that we do not touch those
types of events in Firefox.

devices have to fire keypresses every 50ms minimum

Previously this was 100ms. This works just as well, but was mainly in
there for testing purposes.
</pre>
</div>
</content>
</entry>
<entry>
<title>[IMP] barcode_events: implement better keyrepeat blocking</title>
<updated>2015-05-29T14:29:15+00:00</updated>
<author>
<name>Joren Van Onder</name>
<email>jov@odoo.com</email>
</author>
<published>2015-05-28T09:20:45+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=44d5fbb21f482fdfb73eb607eb4871bfc510bd11'/>
<id>44d5fbb21f482fdfb73eb607eb4871bfc510bd11</id>
<content type='text'>
Before this, users were only able to press a key when all other keys
were released to prevent a key from repeating. This works but when
typing you usually press the next key before releasing the current
one. This allows users to do exactly that while still blocking keys from
repeating.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Before this, users were only able to press a key when all other keys
were released to prevent a key from repeating. This works but when
typing you usually press the next key before releasing the current
one. This allows users to do exactly that while still blocking keys from
repeating.
</pre>
</div>
</content>
</entry>
<entry>
<title>[IMP] barcode_events: implement a new way of dealing with barcode events</title>
<updated>2015-05-29T14:29:15+00:00</updated>
<author>
<name>Joren Van Onder</name>
<email>jov@odoo.com</email>
</author>
<published>2015-05-26T13:52:44+00:00</published>
<link rel='alternate' type='text/html' href='http://erp.ceuconsult.com:9000/Odoo/commit/?id=49d4ddd422145beee6d7bf442df9ecd0485d723d'/>
<id>49d4ddd422145beee6d7bf442df9ecd0485d723d</id>
<content type='text'>
Implement a new way of dealing with barcode events. This was necessary
because the old way of dealing with input coming from barcode devices
did not stop keyevents. This lead to all kinds of issues (eg. barcode
reader output being inserted as tender in a paymentline).

This new class inserts itself so that it handles all keyevents before
everything else. This means that it has authority on what keypress
events pass and which ones do not. It differentiates between 'real'
keyboard input and input coming from devices by buffering events. When a
certain amount of events come in fast enough, it is handled as a barcode
and a 'barcode_scanned' event is emitted on core.bus. When buffered
events are decided to not be a barcode, they are recreated and
redispatched.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement a new way of dealing with barcode events. This was necessary
because the old way of dealing with input coming from barcode devices
did not stop keyevents. This lead to all kinds of issues (eg. barcode
reader output being inserted as tender in a paymentline).

This new class inserts itself so that it handles all keyevents before
everything else. This means that it has authority on what keypress
events pass and which ones do not. It differentiates between 'real'
keyboard input and input coming from devices by buffering events. When a
certain amount of events come in fast enough, it is handled as a barcode
and a 'barcode_scanned' event is emitted on core.bus. When buffered
events are decided to not be a barcode, they are recreated and
redispatched.
</pre>
</div>
</content>
</entry>
</feed>
