Sort "closed" results (like disabled users) to the bottom of typeaheads, but…

Authored by epriestley on Apr 14 2017, 7:14 PM.

Description

Sort "closed" results (like disabled users) to the bottom of typeaheads, but don't hide them completely

Summary:
Fixes T12538. Instead of hiding "closed" results unless only closed results match, show closed results but sort them to the bottom.

This fixes the actual issue in T12538, and I think this is probably the correct/best behavior for the global search.

It also makes all other typeaheads use this behavior. They currently have a "bug" where enabled user abcd makes it impossible to select disabled user abc. This manifests in some real cases, where enabled function members(abc) makes it impossible to disabled user abc in some function tokenizers.

If ths feels worse, we could go back to filtering in the simpler cases and introduce a rule like "show closed results if only closed results would be shown OR if query is an exact match for the disabled result", but that gets dicier because "exact match" is a fuzzy concept.

(There are a lot of other minor bad behaviors that this doesn't try to fix.)

Test Plan:
Enabled project "instabug" no longer prevents bot user "instabug" from being shown:

Disabled user "mmaven" is sorted below enabled user "mmclewis", in defiance of the otherwise alphabetical order. There's no visual cue that this user is disabled because of T6906.

Same as above, but this source renders "disabled" in a more obvious way:

Function selecting members of active project members(instabug) no longer prevents selection of bot user instabug:

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12538

Differential Revision: https://secure.phabricator.com/D17695