Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.2
-
Fix Version/s: EE-3.2.0.BETA, EE-3.2.0.GA, 3.3
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Any
Description
While doing the QA test app review for ace:autoCompleteEntry, the following issues were found, which need to be fixed:
* When a height is specified, and the direction is 'up', and there are fewer results to fill the specified height, the list will be displayed with a gap between the text field and the bottom of the list. In other words, the component assumes the list will always fill up the specified height and sets the top and left coordinates of the list as if it would have the specified height. Instead, if the list is smaller, it should be displayed right above the text field, with no gap in between.
* When the user has typed some characters in the text field and then closed the list by clicking outside or by blurring the field, and then coming back to the field and pressing the up or down arrow keys, the list won't show up, unless the user types (or deletes) one or more characters. This only happens in server-side mode.
* The same thing as above might happen if the component is in case sensitive mode, and one letter case is changed without deleting the previous character (i.e. by selecting a letter or a group of letters and changing their case in place).
* It seems like the delay is not being respected when using backspace.
* The component is not rendering the custom values of the 'style' attribute.
* When a height is specified, and the direction is 'up', and there are fewer results to fill the specified height, the list will be displayed with a gap between the text field and the bottom of the list. In other words, the component assumes the list will always fill up the specified height and sets the top and left coordinates of the list as if it would have the specified height. Instead, if the list is smaller, it should be displayed right above the text field, with no gap in between.
* When the user has typed some characters in the text field and then closed the list by clicking outside or by blurring the field, and then coming back to the field and pressing the up or down arrow keys, the list won't show up, unless the user types (or deletes) one or more characters. This only happens in server-side mode.
* The same thing as above might happen if the component is in case sensitive mode, and one letter case is changed without deleting the previous character (i.e. by selecting a letter or a group of letters and changing their case in place).
* It seems like the delay is not being respected when using backspace.
* The component is not rendering the custom values of the 'style' attribute.
Committed fixes to trunk at revisions 32643, 32646, 32648, and 32549.
All the issues mentioned above were fixed, except for the one related to the delay not being respected by backspace, which seemed to be indirectly fixed or just wasn't actually a problem.
The issue regarding the gap was fixed by refactoring the code to recalculate the list position whenever its contents are updated. The issues with the arrow keys were fixed by introducing a timestamp in a javascript comment to force the domdiff to send the update. The issue with case sensitivy was simply fixed by using String.equals() or String.equalsIgnoreCase(), depending on the case. The issue with the 'style' attribute was simply corrected, applying the 'style' attribute to the text field element.