Repository navigation
Ability to use # character to help reference any linkable object on the Nextcloud instance #31667
Description
Activity
- addeddesignDesign, UI, UX, etc.Design, UI, UX, etc.0. Needs triagePending check for reproducibility or if it fits our roadmapPending check for reproducibility or if it fits our roadmap
on Mar 22, 2022 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
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.
Reacted by Jan C. Borchardt and Lars BeckerThe 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.
Reacted by Joas Schilling and Jan C. Borchardtthe 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.
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:
- It could be useful to have a comprehensive discussion
- You could pick in advance the most intuitive characters, as often the # is for referencing tags (at least in twitter)
We can not have a character per object, tags are one object and they need to live under the same control character as well.
really good idea!!
@nickvergessen , thanks for considering my proposal
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.18 remaining items
- moved this from 📄 To do (~10 entries) to 🏗️ In progress in 📝 Productivity team
on Nov 21, 2022 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
- If registered: Custom UI with registering a vue componentn for the reference provider picker
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
- UI User enters
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.Right, might be something to then discuss with @nimishavijay and @jancborchardt if we should settle on a different character (like
#)@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.
Closing as the server related topics are finished
- moved this from 🏗️ In progress to ☑️ Done in 📝 Productivity team
on Feb 10, 2023 @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.
Reacted by Julius Knorr- added4. to releaseReady to be released and/or waiting for tests to finishReady to be released and/or waiting for tests to finishand removed0. Needs triagePending check for reproducibility or if it fits our roadmapPending check for reproducibility or if it fits our roadmap
on Feb 10, 2023
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fields☑️ Done
- StatusShow more project fields🎉 Done
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#.Objects which could be referenced are
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.