Issue 3444: Autocomplete is too agressive

Review Request #6333 — Created Sept. 19, 2014 and submitted — Latest diff uploaded

Information

Review Board
master
f56c94f...

Reviewers

Matches beginning of:
- in Group: matches beginning of group name or group alias.
- in People: matches beginning of username or first or last name.

  • Autocomplete only replaces input with first dropdown item if input is a prefix for the item.
  • COMMA key no longer triggers autocomplete; TAB and ENTER keys only work.
  • Delete key (not backspace) no longer hides autocomplete dropdown.
  • matches dropdown hide after a previous match has been made on the input box.
  • Reverted delay values.

Issues reported:
https://code.google.com/p/reviewboard/issues/detail?id=3622
https://code.google.com/p/reviewboard/issues/detail?id=3629
https://code.google.com/p/reviewboard/issues/detail?id=3620

  • No unit tests currently exist for ui.autocomplete.js
  • Test input that matches beginning of group name or group alias. Making sure each group has a unique name and alias so it's only matching one field.
  • Test input that matches beginning of username or first name or last name. Making sure each user has unique, username, first and last name so it's only matching one field.
  • Header bar search tested and still works as expected. Matching one of group name, group alias, username, first name or last name.

  • Tests: (2 users and 2 groups, John and Johndoe)
  • Tested on Windows 8.1 Chrome 38, Firefox 32 and IE11; Linux Mint 17 (Ubuntu 14) Chromium 37 and Firefox 32
  • type 'John' (wait for dropdown), type 'd', hit TAB/ENTER quickly, does not autocomplete since the dropdown hasn't updated due to delay.
  • type 'Jo' (wait for dropdown), hit TAB/ENTER, autocompletes to John.
  • type 'Johnd' (wait for dropdown', hit TAB/ENTER, autocompletes to Johndoe, remove 'ndoe', hit TAB/ENTER, autocompletes to John.
  • Comma acts like regular input, does not trigger autocomplete. Starting to type another name after a comma behaves normally.
  • TAB acts as normal when autocomplete dropdown not present (jumping through elements)
  • ENTER act as normal when autocomplete dropdown not present (hitting OK below input field)