Inline Object Creation & Modification

WHAT DO YOU RECOMMEND

I would like to have inline object creation and modification using a popup modal on the go without leaving the page.
What I imagine is using @ to create a new object and also decide what type of object it should be.
It would be even more powerful if I could set and modify relations just by using the keyboard without leaving the current page. that would improve the speed of populating objects within the editor dramatically.

(As a power user I wish I could do more with keyboard only in general)

HOW COULD IT BE DONE

  1. Type @

  2. followed by the name of the object

  3. popup modal: + create object “xyz” > (for discoverability consider “chevron right” indicating more options)
    a. Press Enter to create the default type or

  4. Press arrow right to enter a type dropdown:

    + create object “xyz” > |Filter types…
    —————————————————
    +Create new type
    —————————————————
    Book
    Bookmark
    Contact

    a. Enter to select type and exit dialogue or

  5. arrow right to enter relation dropdown - use arrow up / down to navigate

    + create object “xyz” / :card_index: Contact > |Filter relations…
    —————————————————————
    +Create new relation
    —————————————————————
    ⌂ Tag
    ✆ Phone
    @ Email

    a. Enter to select relation
    b. Type in value or select an option (depending on the relation) and confirm with Enter

    + create object “xyz” / :card_index: Contact / ⌂ Tag > |Select Tags…
    —————————————————
    +Create new Tag
    —————————————————
    [family]
    [friends]
    [work]

    c. Enter again to exit the dialogue or

  6. arrow right to enter relation dropdown again:

    + create object “xyz” / :card_index: Contact > |Filter relations…
    —————————————————————
    +Create new relation
    —————————————————————
    ⌂ Tag
    ✆ Phone
    @ Email

    to manipulate more relations:

    + create object “xyz” / :card_index: Contact / @ Email > [email protected]|

(and repeat if wanted ; )

Here is a demo of a prototype I worked on after submitting this feature request:

REAL WORLD USE CASES

A scenario could be writing a journal entry and I want to mention a “new” person and also set the tag “work” and maybe add some contact details. All without leaving the current journal page and the keyboard.

Thanks @philoup solid Feature Request. Described like a pro!

@philoup thanks for this request! I just want to link this bug report as I think it is tightly related to your feature request.

One addition based on the current behavior: in your step 3 we currently get a list of existing objects with the option to create a new Object. I think that is very valuable. That would require a slight alteration to your step 4. I guess a hot key for opening a second modal to allow the user to select the type in the case a new Object was create from scratch.

Thanks :slight_smile: I just edited the request and added some visual elements to show what I imagine.

I did a bit more digging and compiled a stack of topics which are tangentially related to yours. Some going rather deep to describe a flow similar to (if not entirely achieved by) what is illustrated in your feature request.

Some light reading for a rainy day:

What a comprehensive description @philoup. Thank you so much for your efforts. I will add this to our plan on enriching overall editor functionality. We could start to digging deeper into this after public release and launch of collaboration. So it will take some time but eventually we will get to this request. I think realistic estimation is a next year. :saluting_face:

I also think it would be very handy to be able to set relationships for an object directly inline, without needing to open the page for that object.

Fibery implement this in a wonderful way:

Thank you! I came from that thread. Thanks to the OP for this FR too, so well illustrated :slight_smile:

Is it on the team’s plans to at least allow spaces in the object name after @ object creation? As it stands, object creating while writing (or jornaling) without many clicks and stops is impossible… and defeats the creative flow. :frowning: It’s a big hurdle to anyone who typically writes about things, and creates objects on the go. Similllary to how you’d see [[ in other PKMs.

Cheers :slight_smile:

Thanks all for this thread. I dream of something related, that I haven’t yet seen as a feature request:

The ability to show and edit entire objects inline. Like a Set or Collection, which are entire objects rendered inside of another “host” object, occupying as much space as they need and offering all controls needed to edit them — but simply another general object embedded inside the host object, rendered as-is.

Functionality-wise this might resemble the FR I’ve frequently seen here to make blocks like objects. If I get it right, this seems difficult to implement with Anytype’s architecture. So the “embedded object” I propose would offer similar benefits, without asking any perceivable modification to Anytype’s model of objects and blocks: it would just require to render any object in the place where Anytype is already capable of rendering Sets and Collections.

Among the benefits and use cases for this, I particularly see the rendering and editing of

  • to-do lists, so that individual :white_check_mark: Task objects on project pages can take up as much vertical space on the page as they need, instead of being truncated to just a few headline and description words, as with a /collection table record or a /link object or inline @mention.
  • diary entries, so that a diary in AT resemble much more a normal diary where we simply write entries underneath each other, as in any regular linear document — with the additional benefit of being able to tag entries, and to query them by tag, date or whatever, elsewhere in another Set
  • embedded individual contacts, books or movie objects — instead of embedding a Collection of one single object in gallery view, I’d just embed the object — and not truncated to gallery view, but taking as much screen space as it genuinely needs
  • manually layouted and sorted lists, e.g. a page having “These are my three favorite fiction books” (=> 3 individually placed book objects) “And these are my five favorite guidebooks (=> another 5 individual book objects). — Of course these two groups of book objects could be implemented as two Collections already today, but only forced in a tabular way (while on my page I might just like to e.g. add another line of commenting text before a book object), and truncated to gallery view (while on my page I might want to see them in their full proper size with all of their content, even if’s a lot more than fits into gallery view).

Personally, particularly for diary-type applications like journaling, being able to embed entire objects in this kind of non-tabular way would be a true game changer. And I hope this won’t need much more effort to the team than just generalizing the functionality that’s already there to render and even edit Sets and Collections in-page, or at least as a “full-size” preview layout for Links besides “text” or “card”.

Should this FR be already suggested elsewhere here, please link it and I’ll be happy to vote there! Thank you.

Update: I realize that transclusion seems to be a technical term for what I tried to describe. So +1 from me for any FR suggesting transclusion, e.g. here. I hope I was able to offer a few relevant use cases here.

Update: I’ve added “To-do list” as another use case, and a “full-size” preview layout for Links as another idea to implement this FR.

I’ve just opened a related feature request that would offer an alternative approach to the suggestions here, basically by enhancing the navigation from the sidebar. Please check it out and comment! :heart:

That sounds great. Really enjoyed your feature request and voted for it. It seems to be quite different to my initial idea but partially something I thought about as well.

Thank you so much for you kind feedback, @philoup.

As I posted there, I believe we can address many of the user needs behind this, with a much more simplistic new FR suggesting Sets and Collections to help solve inline objects.

This works with mostly existing Anytype functionality, and more straightforward than my related initial FR above from yesterday. Here’s a mockup:

  1. current List view of multiple objects,
  2. proposed new “Document” view that collates multiple objects into on List object (Collection/Set): Let me know what you think!

After I submitted this feature request last year I worked on a prototype to demonstrate how I imagine the inline object creation. At the time I was hesitant to share the video I recorded publicly but I think it helps to get a much better idea of my vision.

PLS, include the video in the first posting.