Page MenuHomePhabricator

Feature Request: Product Studio style query builder and tabular report
Closed, DuplicatePublic

Description

I find the paradigm of filling out a form to be depressing as a developer. I'd much prefer to be able to compose a set of predicates through which I filter all the bugs in my system. This would enable all sorts of queries that are currently impossible in the existing Advanced Search. The UI could be any sort of standard Query Builder.

Logical operators I'd like to see:
AND, OR, IN, NOT, grouping ()

And then I'd just drop "Group By" in v1, and prefer the ability to sort any column by clicking on its header.

I may spend some time on this myself, though I'm not an avid PHP programmer.

I assume other folks have proposed this kind of idea before? Thanks guys!

Event Timeline

wbbradley raised the priority of this task from to Needs Triage.
wbbradley updated the task description. (Show Details)
wbbradley added a project: Search.
wbbradley added a subscriber: wbbradley.

Can you list some queries you'd like to execute that you can not currently execute, and why those queries are interesting/useful (e.g., what problem does seeing that result set solve)?

I have no idea what "Project Studio" is and Google doesn't seem helpful either.

@epriestley @chad Sorry about the references to things that may not be meaningful. I'll try to expand.

Here's a screenshot from Product Studio (an old internal Microsoft Product.)

query.jpg (852×991 px, 234 KB)

When I'm using an issue tracking database, I often want to slice and dice the queries I'm running, and run experimental queries to help me assess the situation. The existing Phabricator "advanced search" form limits the abilities of my queries to the things that have been thought about already. I understand that Issue Tracking is the name of the game, and it makes sense to pop the most valuable features up to the top of the User Experience. I'm all for that, and I think Phabricator does that pretty well. However, there is not a sufficient "Triage" mode in Phabricator. I often find myself wanting to "scrub" the issues list, making sure that items are either properly prioritized, or resolved. The method by which I do this varies from day to day, or from one part of the release cycle to another.

Here are a few scenarios that I haven't yet found to be 'satisfactory', compared to a basic query-builder style user interface.

  1. Find bugs assigned to my Project, but not assigned to one of a select, enumerated bunch of people
  2. Find bugs assigned to my team (by name), in order of Least Recently updated. This one is possible if you "Next" to the last page and work backwards. But just having a standard tabular view of this data would provide UI affordances to achieve this in a super-standard way.
  3. Find bugs assigned to me that I did not author
  4. Find bugs that I did author that are not assigned to me
  5. Find bugs that members of another team (by person name, or project/team name) did author, that are assigned to my team, and do NOT contain a certain word... (this one is rare, but I've had to do it.)

With a little imagination, it's easy to see that ... I'm a developer, so if you give me super-powered software I will use it. By allowing for more of a 'syntax' to querying, and not trying to pre-solve all the scenarios, you unlock the power users. And, let's face it, Phabricator is built for power-users.

Also, as noted in T4100, the ability to inject parameters into the query builder would be quite nice. And, there would need to be built-ins, such as 'Me', which just always evaluates at query time, not at the moment you create the query itself...

Let me know if I'm not making any sense, or if/how I can help!

T6943#96234 and T4100 are mostly like already on this course. Going to close this in favor of those for discussion.

"tabular results" get suggested maybe 1-2 times a year, so there isn't much interest on our side to pursue that at the moment, there just are larger gains to be made in other areas of ApplicationSearch and we are interested in working on that with the types of example you explained. Thanks for putting that together.