Nuke Conversion Js
The javascript (conversion.js) which is used on decimal input fields (MifosDecimalInput.java, or mifos:mifosdecimalinput in places like feesedit.jsp), has many problems:
- The discrepency between keypad and normal number keys (issue 554). Seems to be Firefox only. With IE, I get the same behavior with either kind of key (which is that attempting to type a second digit after the decimal point causes it to flash and go away).
- After typing the keypad second digit, then other keys which used to work (like arrows and backspace) stop working (again, Firefox only).
- Per discussion with Emily, it is poor user experience for a user to type things and have them not show up on the screen. Currently, this is true by design for anything but numbers, as far as I can tell. A better design is to wait until the user clicks Preview, and then show the errors on the page. (That we should wait for Preview is one of our HTML Standards .
- The javascript lacks tests. Javascript can be tested with something called JSUnit, but we are not doing that.
- Other Firefox features, like control-T to open a new tab, stop working when that field is active. I couldn't find an IE feature which stopped working although I'm not sure this is Firefox-specific.
- The javascript has strange complications, like trying to handle Hindi and Arabic (as opposed to Western/international) digits. This is not a requirement now, and maybe not ever.
The desired direction is to get rid of conversion.js, and replace it with server-side validation. MifosDecimalInput is used in about 50 places, and the quick fix of ripping out the javascript is not sufficient - one gets internal errors on preview.
Some related (or possibly related) bugs in the Issue Tracker are 55, 178, and 554.