Page MenuHomePhabricator

View query results as annotatable "spreadsheets"
Open, WishlistPublic

Description

This is more "crazy idea" and less "something we'll necessarily pursue", but I believe it's somewhat common for users to build tables of objects with annotations in Remarkup, something like this:

TaskWhenGood or Bad?
{T400}SoonGood
T401: Allow assignment of bugs to an individual via a projectLaterBad

I do this myself sometimes, and PHI673 is a specific install doing it.

I've said "video chat" and "spreadsheets" are two things we won't ever do, but what if we did spreadsheets?

I think the "formulas" stuff in normal sheets is out of reach for many versions, as is charting and all kinds of other magic, all of which are kind of required in a useful v1 of a traditional spreadsheet application, but we probably could do something like this:

  • Add a query action "Save [this query | these exact objects] as Spreadsheet...", next to "Export Data".
  • That creates a new Spreadsheet object with a default set of columns based on the Query type. For example, Maniphest's default columns might be "Monogram", "Title", "Status", "Owner". When a spreadsheet is generated like this, it has exactly one sheet and a fixed number of rows: one row for each object in the query or result set.
  • Users can embed sheets in other documents with {A...} (A is the only remaining monogram, but could hint the word "Array", perhaps), solving the table problem. The embedded view has "View / Edit Sheet" buttons to make getting more details easier.
  • From a Spreadsheet, you can go back to "View As Query..." to get a query view of the same objects.
  • Users can show, hide, and reorder the builtin columns.
  • Users can add, show, hide, and reorder custom columns.
    • Users can edit the content of custom columns.

This would give us a useful-if-primitive spreadsheet object and let us build toward fully custom sheets later if we want, although that's significantly less interesting to me than the "smart" sheets we can build by populating sheets/columns/rows with objects. It's a long, long road to convincingly competing with Google Sheets, but it's a short path to doing a better version of the remarkup table.

Event Timeline

epriestley triaged this task as Wishlist priority.Jun 21 2018, 3:16 PM
epriestley created this task.

This originally came up in the context of PHI706, which asks for a "Query for all tasks mentioned in wiki page X" feature, although the actual feature request there is more involved and this would only be an approximate approach.

This sounds similar to "Customize Fields Shown In List View", except that it allows per-view customization (And a DSL for "view" instead of property on the Field, as in T418).

I would also suggest making this a property of Query Workboard Panel, instead of a new object type - they share much of the use case (Show results of custom query).