Make search select fields usable over Conduit
Summary:
Previously, search select fields (@{class:PhabricatorSearchSelectField}) did
not support conduit queries, as they had no `newConduitParameterType` method.
Now they do. This takes a very simple approach and treats them similarly to how
@{class:PhabricatorSearchCheckboxesField} works.
Only these applications use search select fields presently:
- Calendar
- Dashboard
- Macro
- Maniphest
- Project
- Repository
Of those, only the following expose modern application search methods:
- Calendar
- Maniphest
- Project
- Repository
Calendar and Repository work without changes.
For Maniphest, `group` now works a bit better by including the project PHID grouped-by in the results, when grouping by project.
For Project, the status field has been lightly refactored to use constants for
consistency, and especially now the project status is included in the conduit
results.
Test Plan:
### Projects
1. attempt to use status field to query projects before this diff: get query error.
2. apply this diff.
3. attempt to use status field again: see that filtering works, and project
results include their status.
### Maniphest
1. do maniphest queries in the UI before this diff: see that grouping works.
2. look at the conduit page [[ /conduit/method/maniphest.search/ ]], see `group`.
3. Observe that `group` throws an error if you attempt to use it.
4. apply this diff.
5. return to the conduit page and find that using `group` no longer errors.
6. do more maniphest queries in the UI and see that grouping still works.
Reviewers: O1 Blessed Committers, aklapper
Reviewed By: O1 Blessed Committers, aklapper
Subscribers: aklapper, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno
Differential Revision: https://we.phorge.it/D26166