Page MenuHomePhabricator

Modernize typeahead datasources
Closed, ResolvedPublic

Description

Just filing this since it has come up a few times recently in various settings. I want to modernize the typeahead datsource code soon. Particularly:

  • I want to improve the result UI. D7250 makes some steps toward this. I think the icons in the tokens themselves are really good, but the dropdown needs some work.
  • We have recurring issues where the default typeahead matches exclude closed objects, like disabled users and archived projects. Most of the time this is good, but at least some of the time you want to select them. Currently, ew kind of go switch over to the "stuff, with disabled stuff" version of the endpoint on a field-by-field basis. Instead, I want to try sorting these to the bottom and showing "Disabled" or "Archived", and maybe giving them a visual distinction like a grey background, so it's clear that you're choosing an inactive user/object but the typeahead lets you do it if that's what you want.
  • The typeahead code itself is really messy and not modular. I want to modularize datasources so applications can provide them and third-party code could build new typeahead sources. This is probably not very hard, since the code is reasonably well-seaparated already.

Revisions and Commits

rP Phabricator
Abandoned
D9896
D9903
D9902
D9901
D9900
D9899
D9895
D9894
D9891
D9890
D9889
D9888
D9887
D9886
D9885
D9884
D9880
D9879
D9878
D9877
D9876
D9875
D9874
D8249
D8250
D8238
D8233
D8232
D8231
D8228

Related Objects

StatusAssignedTask
Resolvedchad
ResolvedNone
Resolvedepriestley
DuplicateNone
ResolvedNone
Wontfixepriestley
Resolvedepriestley
Openepriestley
Resolvedepriestley
ResolvedNone
ResolvedNone
DuplicateNone
OpenNone
Wontfixepriestley
Resolvedepriestley
Resolvedchad
Wontfixepriestley
DuplicateNone
Resolvedepriestley
Wontfixepriestley
Resolvedbtrahan
Resolvedepriestley
Resolvedepriestley
Wontfixepriestley
OpenNone
OpenNone
Resolvedlpriestley
ResolvedNone
Resolvedepriestley
Resolvedbtrahan
Resolvedepriestley
Resolvedepriestley
Resolvedepriestley
ResolvedNone
Resolvedepriestley
Resolvedepriestley
Resolvedepriestley
Wontfixepriestley

Event Timeline

epriestley raised the priority of this task from to Normal.
epriestley updated the task description. (Show Details)
epriestley added a project: Infrastructure.

A technical thing that would be nice to clean up is that we run fill requests for the datasources on page load in the common configurations, and don't share the results. With the advent of ApplicationSearch, this sometimes means we're issuing redundant queries which rarely get used.

The simplest technical fix here would be to move all tokenizers to be on-demand in all cases. That would also let us get rid of a config setting. The cost is potentially less responsive typeaheads in a few cases, but the site as a whole should be more responsive, so I'm inclined to investigate doing this fairly aggressively.

Other approaches would be to read the requests through a common cache so we fill results only once for each tokenizer type, or couple fills from ApplicationSearch with showing the controls, but these are both much more complex than deleting a bunch of stuff so I'm going to try to get that working first.

Actually, we've been running tokenizer.ondemand forever, so I think that's pretty good evidence that it's fine. I'm just going to remove the preloaded stuff in standard cases, and try to get T3309 (tokenizer loading state) done as part of this, since that's the only thing I've ever noticed that has seemed iffy.

epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.

For Herald rules against objects, there's a typeahead which should use piecemeal rules after this gets finished.

epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley renamed this task from Modernize typeahead datasouces to Modernize typeahead datasources.Jul 11 2014, 5:42 PM
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.
epriestley edited this Maniphest Task.