atomic-server
atomic-server copied to clipboard
Unify views / queries / collections / search
Current issues:
We have multiple views for searching & querying data, and they all have their strengths and weaknesses:
- Collections can be persisted and are resources, but their query options are limited, because it can only filter by one property. It also doesn't have full-text search, and it requires us to create a new "collection resource" to even start filtering things. Collections are also created for new classes, but they're not shown prominently and feel meh.
- Search has full-text search, but the UI doesn't have filter options, even though our /search endpoint does support this. It also does't persist queries if the user would want to. Additionally, the UI is optimized for rapid previews, not for detailed search and listing / filtering.
- Tables allow filtering by property and persist changes, but they are only for specific classes and their children.
- Folders are persisted and have a nice UI, but they don't have filter or search items.
Wishes
- A powerful UI that allows full-text search, filtering, and persisting views / queries.
Approaches
"views" panel / dropdown / toggle in sidebar
- Related to #1038
- Views are just resources, like collections or folders. Like collections, they store information about the query and how it's displayed.
- Views should replace Collections.
- Views cannot have children / should not be selected as parent of resources.
- Views are scoped in a drive, similar to ontologies. They are a special item, not a generic sidebar item.
- In the Views panel, there is a Classes panel which lists all classes.
- Folders share 80% of UI code, become views that filter by children of their own resource. They are still their own class, though. Users should not be able to overwrite this specific filter, because otherwise the children become... lost?
- When creating a new resource in a view, where does it live? What's the parent? We can have a parent selector. Or we default to a default parent / godparent.
- Have a "recently edited" view