Skip to content

Ability to use # character to help reference any linkable object on the Nextcloud instance #31667

Description

@jancborchardt

Just like @ works for people and : for emojis, # would work for objects

Similar to Twitter hashtags and GitHub reference to issues / pull requests, # would help reference objects of any type in the Nextcloud instance. It could be used in apps like Talk and Text, but also elsewhere. It would essentially be a little quick search-in-place to help quickly post links/references.

It’s probably best to do it as Twitter does it, because in their implementation you can still just type a number like #1 (referring to "number 1") normally, while the suggestion dropdown shows as soon as you type the first alphabetic character after the #.

Twitter GitHub
Hashtag Twitter Hashtag Github

Objects which could be referenced are

  • Files & folders
  • Talk conversations
  • Deck cards or Tasks
  • Calendar events
  • Collectives pages
  • Profiles
  • Systemtags?
  • …

References from this can also count towards being a related resource #28320

cc @marcelklehr @sunjam @nickvergessen @max-nextcloud @nimishavijay @marcoambrosini @juliushaertl @GretaD as discussed in the design call.

Also cc @AndyScherzinger @karlitschek and @PVince81 @ChristophWurst since this is all about cross-app integration.

Activity

  1. moved this to 🏗️ In progress in 🖍 Design teamon Mar 22, 2022
  2. sunjam commented on Mar 22, 2022

    @sunjam

    Other maybes...

    • Bookmarks
    • Comments (on files & folders) visibility
    • System Tags
    • Perhaps supported Nextcloud Flows could be called from this.

    Might by completely out of scope, but this would also make for an awesome way to quickly share with others if it was possible to share by referencing a:

    • circle
    • group
    • user
    • project
  3. AndyScherzinger commented on Mar 22, 2022

    @AndyScherzinger
    Member

    In general I think this would be nice since it saves you the trouble of looking for the "object" you want to reference, copy the link, go back to where you want to reference/paste it. The issue I currently see is its performance. While #-auto-completion for talk room titles might be fast, typing the file-name will be very slow since that is more or less the same as our current search then. So for this type-ahead feature to be very responsive with the suggestions we would need proper indexing of it via a search index nothing you can achieve with a 'LIKE' search in the database.

    But yes, I think this would make life a lot easier by having a more search-based interface which is where you tend to go for with growing amounts of data to interact with at your finger-tips.

  4. ChristophWurst commented on Mar 22, 2022

    @ChristophWurst
    Member

    The implementation would be similar to the unified search. Each app that wants to hook into this needs to register this capability and when the user searches we need to ask all n apps for their results.

  5. nickvergessen commented on Mar 22, 2022

    @nickvergessen
    Member

    the main question would be how to store the data afterwards as well.

    Not sure it is satisfying if we store the resulting link afterwards in the text message, or if possible instead we find a way to map it to RichObjects so "clients"/consumers of the API can render the items afterwards, showing potentially changed names/previews etc for the items.

  6. Spartachetto commented on Mar 22, 2022

    @Spartachetto

    First of all the idea is really cool!

    Second, for your consideration: what about a character to reference tags ?

    I put this question here as:

    1. It could be useful to have a comprehensive discussion
    2. You could pick in advance the most intuitive characters, as often the # is for referencing tags (at least in twitter)
  7. nickvergessen commented on Mar 22, 2022

    @nickvergessen
    Member

    We can not have a character per object, tags are one object and they need to live under the same control character as well.

  8. karlitschek commented on Mar 22, 2022

    @karlitschek
    Member

    really good idea!!

  9. Spartachetto commented on Mar 22, 2022

    @Spartachetto

    @nickvergessen , thanks for considering my proposal

  10. nickvergessen commented on Mar 23, 2022

    @nickvergessen
    Member

    Just to have it mentioned. Comments API was extended in the past and allows to parse @<user> as well as @"<user>" for users.
    Additionally @"guest/<guest identifier>" and @"group/<group identifier>" can be used. This was passible because user ids can not contain slashes, so it was forward compatible all the way.

    maybe that could be the syntax as well for the #"<object type>/<object identifier>" on a backend level and then it can be parsed/rendered similarly to mentions nowadays.

  11. 18 remaining items

  12. moved this from 📄 To do (~10 entries) to 🏗️ In progress in 📝 Productivity teamon Nov 21, 2022
  13. juliusknorr commented on Nov 25, 2022

    @juliusknorr
    Member

    From the discussion with @julien-nc

    UI flow

    • UI User enters /
      • First level picker is shown for the reference provider type
      • After picking that the individual picker
        • If registered: Custom UI with registering a vue componentn for the reference provider picker
          • e.g. for files, potentially github/gitlab
        • If available: Search through unified search (backend of reference providers would need to expose supported search providers)
          • Same layout as unified search UI
        • Default: Text input for URL

    Implementation details

    • Require a reference provider to be able to search and autocomplete, as without a rendering, inserting doesn't make much sense
    • Server: Add new interface to let reference providers return a list of supported search provider ids
    • Server: We need to pass registered reference providers and search handlers from the backend to the frontend
    • No automatic matching for search providers
    • Text/talk input component
      • on type / render the vue-richtext PickerComponent
    • vue-richtext
      • Used for registering custom picker views
      • Implements the PickerComponent which emits an event to text/talk input once the reference was selected
    • Possible design discussions:
      • Search results may have different title/description than what the reference provdider will show then actually.
    • Implementation steps:
      • Server: Implement the new interface for returning serach provider ids in the reference provider
      • PickerComponent: Implement picker component with input field + search results
      • Text: Implement /command and triger the picker component
      • vue-richtext: API to register custom picker view for reference providers and render them in the PickerComponent
      • nextcloud-vue: Implement /command in the - NcRichContenteditable component
      • Talk: Switch to the - NcRichContenteditable component for the message input
  14. nickvergessen commented on Nov 25, 2022

    @nickvergessen
    Member

    Since in talk we use / for commands (and that is expected pattern across many chat platforms), is there a way to have that either suggest commands as well, or at least display something telling users that commands also work, etc?
    It's only relevant on the first character of a message as commands are the full message.

  15. juliusknorr commented on Nov 25, 2022

    @juliusknorr
    Member

    Right, might be something to then discuss with @nimishavijay and @jancborchardt if we should settle on a different character (like #)

  16. AndyScherzinger commented on Jan 31, 2023

    @AndyScherzinger
    Member

    @ChristophWurst could you please check with @julien-nc if there is an "easy" way to integrate the link-picker component in mail? Potentially in a stripped down way to limit it to features that work for mail? Thanks in advance.

  17. juliusknorr commented on Feb 10, 2023

    @juliusknorr
    Member

    Closing as the server related topics are finished

  18. moved this from 🏗️ In progress to ☑️ Done in 🖍 Design teamon Feb 10, 2023
  19. moved this from 🏗️ In progress to ☑️ Done in 📝 Productivity teamon Feb 10, 2023
  20. ChristophWurst commented on Feb 10, 2023

    @ChristophWurst
    Member

    @ChristophWurst could you please check with @julien-nc if there is an "easy" way to integrate the link-picker component in mail? Potentially in a stripped down way to limit it to features that work for mail? Thanks in advance.

    nextcloud/mail#7986. Sorry, somehow missed the comment here.

  21. added
    4. to releaseReady to be released and/or waiting for tests to finish
    and removed
    0. Needs triagePending check for reproducibility or if it fits our roadmap
    on Feb 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions