Description
How to embed a View?
Anyone with edit access to a rich text (Document or rich-text Field) is able to embed an existing non-context View using /Insert existing View command:
Our usual search pops up to select a View:
no DB selector, only Views available
only supported kinds of Views available (ex. no Documents or Pages)
recent items are suggested
🦄 Convert a View mention to an embed and back.
What kinds of Views are available?
Ready to be embedded with reasonable performance thanks to relation Views:
List
Board
Report
Calendar
Timeline
🦄 Whiteboard
More kinds of Views are coming:
How does a View look and behave?
Pretty much, like a relation View:
fixed maximum height for all Views
🦄 experiment: increase maximum height to a very large number à la Notion
Edit a View embedded into rich text
no … actions menu (to prevent accidental deletion and not to worry about how duplication should work)
expand to become the only open panel
Expand relation Views
no View description unless the View is expanded
Ctrl+Z should work for backspace.
🦄 Lazy loading on collapsing/expanding parent headers.
🦄 Keyboard navigation: select View when going up and down with arrows.
How it interacts with other Fibery services?
Document history should work with View Blocks visible.
Back-references should work with View Blocks.
Live users are supported only when a View Block is expanded.
When an embedded View has been deleted, we show View not found placeholder.
Publicly shared Entities: since there is no View Sharing / Share View, we show View not shared placeholder (with more user-friendly text).
Export-import aka sharing via Space Templates works in the same way as View mentions:
if an embedded View is shared as a part of Template as well, the embed should work after import (similar to View mentions);
if the View is not shared, we treat it as a deleted View scenario: View not found.
When an Entity/Document is exported to markdown, View embeds are exported à la View mentions.
Permissions
A User needs edit permissions on Entity to insert a View Block into its rich text or erase it.
(applies to any kind of Block, not just View).
To embed a particular View, a User needs at least read access to it (>Viewer in its Space).
To edit View configuration, a User needs permissions to configure the original View (Creator in its Space for non-context Views).
Conceptually, this is a transclusion: Permissions on Thoughts.
What happens to existing Pages?
Don't invest much in blocks-event-stream sits at 100% CPU usage, it's ok to disable live updates for Pages altogether.
If automatic migration is possible with a 1-2-day effort, we'll go for it. If not, suggest manual copy-pasting. Reactions will be lost in both cases 🔪
How do we release?
Add to experimental features when stable, enable on THE by default.
Announce as experimental when we feel it's good enough for feedback collection.