Hello there,
I'm happy to announce the first beta release of bookmarks v3.0.0, which most notably includes sharing among a few other goodies. (Update: You can only share folders: Click on folder 'details' and then go to the 'Sharing' tab)
I would be glad to hear your feedback after trying it out in this thread as well as possible bugs in new issues. Don't forget to backup your database before trying this out!
Requirements are:
Changes in this release are:
Update: Here's the link to beta 2: https://github.com/nextcloud/bookmarks/releases/tag/v3.0.0-beta.2
Cheers! :space_invader:
v3.0.0-1 testing on NextcloudPi 18.0.3 stable. Firefox 74.0 (64-bit)

No bookmarks hereTry changing your query or add some using the button on the left.listviewlistviewincluding within folders
1337 bookmarks of 0 available1337 bookmarks available. reference
switch view icon until closed
@sunjam Sharing functionality is hidden in the folder details under the 'Sharing' tab ;)
Thank you very much for your work @marcelklehr. I did some initial tests with beta-1.
NC: 18.0.3
bookmarks: 3.0.0-beta.1
If helpful I can take screenshots and/or videos...
Regarding bookmarks Import: I've fixed the UI feedback issue.
duplicates folders but not the bookmarks. At least the number of stored bookmarks stays the same after second import
This is intentional, as the bookmarks app does not allow duplicates. Instead bookmarks can be in multiple folders at once. 🤯
Should we import bookmarks to a dedicated sub folder (e.g. Imported Bookmarks)?
I've thought about that but wasn't sure, what would be most expected. What do you think? Adding imports to a new folder is quite simple technically. We could even import into the currently active folder.
@gibelium
Sharing folder is not yet possible
Do you have nextcloud in a subfolder on your server?
This is intentional, as the bookmarks app does not allow duplicates. Instead bookmarks can be in multiple folders at once. 🤯
I'm totally fine ending up without duplicates after a second import. :-)
I think importing the same bookmarks twice is a more accidental use case...
I would import bookmarks into a new folder. When I'm right this is the way like Google Chrome and Firefox handle imports to, so people are used to it and you do not mess up your existing bookmarks.
Do you have nextcloud in a subfolder on your server?
Bookmarks app resides in /var/www/nextcloud/apps/bookmarks on a lokal Ubuntu system. Just like all other apps.
Bookmarks app resides in /var/www/nextcloud/apps/bookmarks on a lokal Ubuntu system. Just like all other apps.
And what's the URL of your nextcloud root?
And what's the URL of your nextcloud root?
URL to of bookmarks app is http://localhost/nextcloud/index.php/apps/bookmarks so nextcloud root can be accessed via http://localhost/nextcloud.
Yep, that's what I suspected. I'll fix the sharee search. (It assumes you are running nextcloud at http://localhost/)
@sunjam recent bookmarks are now displayed in a new order. Just an fyi
How has the order changed? :thinking:
@marcelklehr, will you be able to provide another build with your latest changes? I can then do some more manual tests during the weekend...
Is there already a plan when to release 3.0.0 final to app store?
@marcelklehr, will you be able to provide another build with your latest changes?
Let us know if you want any specific things tested. 👍
Thank you for taking on the acceptance testing! :heart:
I have not planned a fixed date for the release. It's ready when it's ready :) I will not introduce new features into the new release anymore, though.
will you be able to provide another build with your latest changes?
I'll publish another beta then :)
The main purpose of the beta phase is finding regressions stemming from the refactoring, of which you have caught quite a few already :ok_hand:, as well as testing public and private sharing.
The following issues I could not reproduce, so far:
Details on these are appreciated.
The following issues are 'wontfix' (at least for this release; feel free to open separate issue for these):
Thank you for your work, @marcelklehr!!!
I will create new issues for the nice-to-have ones mentioned by me...
Regarding the table-shrink issue I will record a short video tomorrow...
https://github.com/nextcloud/bookmarks/commit/c8dd018fc52b2378cac88ad13626a732192b332b That didn't take long... time to test beta2. See below; any previously mentioned issues I'll leave above.
@sunjam recent bookmarks are now displayed in a new order. Just an fyi
How has the order changed? thinking
Recent Bookmarks now displays bookmarks I added on 10/25/2019 on a clean install with import. Unsure why, and these are not my oldest bookmarks by date added.
.
Imported Bookmarks folders@marcelklehr, please find a screen recording which tries to visualize the table-shrink _"issue"_... :-)

TypeError: Argument 3 passed to OC\AppFramework\Middleware\MiddlewareDispatcher::beforeOutput() must be of the type string, null given, called in /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php on line 123
{"reqId":"RI4FEc3WWBkZFicqYbHb","level":3,"time":"2020-04-18T07:08:13+00:00","remoteAddr":"127.0.0.1","user":"ncadmin","app":"index","method":"GET","url":"/nextcloud/apps/bookmarks/bookmark/3999/favicon","message":{"Exception":"TypeError","Message":"Argument 3 passed to OC\\AppFramework\\Middleware\\MiddlewareDispatcher::beforeOutput() must be of the type string, null given, called in /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php on line 123","Code":0,"Trace":[{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":123,"function":"beforeOutput","class":"OC\\AppFramework\\Middleware\\MiddlewareDispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":125,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php","line":47,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"function":"__invoke","class":"OC\\AppFramework\\Routing\\RouteActionHandler","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":299,"function":"call_user_func"},{"file":"/var/www/nextcloud/lib/base.php","line":1008,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":38,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/nextcloud/lib/private/AppFramework/Middleware/MiddlewareDispatcher.php","Line":159,"CustomMessage":"--"},"userAgent":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0","version":"18.0.3.0","id":"5e9aa75d79d29"}
When reloading the bookmarks app page and trying to share a folder to a user or group the dropdown box is initially empty. After typing some characters it shows the matching entries. When removing the typed in characters the list is filled with all available users and groups.

I shared a single bookmarks folder to another user with enabled options to edit and share the bookmarks. The shared bookmarks are available for the user but the number of bookmarks is zero and the untagged bookmarks are empty although none of the bookmarks is tagged.

When adding a new bookmark or folder it is not possible to cancel the creation neither via mouse interaction nor by escape key.
Perhaps I missed something but it seems that nothing else than refreshing the bookmarks page cancels the creation of a new bookmark and/or folder.

Folder 'Test' was created by another user and shared with me with edit permission. I create a new bookmark in the shared folder and then move it to the/my root folder. The moved bookmark is not selectable via checkbox and the context menu button is not shown. Refreshing the page does not help. The bookmark is somehow no longer editable.

It also happens sometimes (I have not yet found steps to reproduce) that the bookmark created within a shared folder directly misses the multiselection checkbox and the context menu.
Also some bookmarks can be edited/deleted/moved by both users, some not (see screenshot)

@sunjam You're still using the legacy floccus adapter :scream_cat:
@gibelium Spinner within the import button may be overlooked
I agree, but a new UI component will not make it into this release :)
@gibelium The name of the imported bookmarks folder could be enhanced including filename and timestamp to be able to distinguish between the several imports
Agreed. => Next release :)
@gibelium Should the bookmarks shared with me be counted in 'All Bookmarks'?
This is deliberate as shared bookmarks are owned by a different user and thus do not count towards the usage limit, if one is set.
@gibelium Should the non-tagged but editable bookmarks shared with me be shown in 'Untagged'?
This is deliberate so far, as there is no simple way to query all shared bookmarks recursively, yet.
@gibelium Should we add a category for shared bookmarks next to All, Recent and Untagged bookmarks?
I like that! This would be possible if we only display the shared folders. => Next release.
Apply a tag Shared by URL to all bookmarks shared by url.
When shared book url is accessed, display this in the Activity app. Link to API info.
:heavy_plus_sign: You have shared a bookmark via url: Learning Python
:heavy_check_mark: Bookmark accessed via public link: Learning Python
@sunjam Apply a tag Shared by URL to all bookmarks shared by url.
I thought about that, too. What would be your goal with that?
@sunjam Apply a tag Shared by URL to all bookmarks shared by url.
I thought about that, too. What would be your goal with that?
It would be the easiest way I can think of to track which bookmarks I've shared besides the Shared category idea. Plus, tags would be useful for future expansion of sharing, presuming we one day support system tags for Flow automation with Bookmarks. Might also be possible to reflect different types of sharing: users/groups vs public url.
Obviously, this is quite presumptive, but you'll find Bookmark integration via system tags was originally proposed by this server tag discussion some time ago.
Crazy example:
I've shared a folder of bookmarks. Any bookmark with Shared to marcelklehr tag is automatically added. Now, every time I add or remove this tag I can change the bookmarks within this shared folder.
This could also be a way to move towards webhooks #900. Also, see this nextcloud dev request on Deck app tag integration with Flow app from 6 hours ago.
It would be the easiest way I can think of to track which bookmarks I've shared besides the Shared category idea.
I see.
What I gather from both your suggestions is that there is indeed no simple way to quickly see which folders have been shared, right now. The share(d) list view will have to wait for now, as that is a little more work, involving new API endpoints, however, the following should be fine for now to find folders I have shared in an exploratory way (as the counterpart of the owner label for sharees):

I've deliberately left out sharing by tag, as during the design phase (wow, that was 3 years ago, I think) we felt there were a lot of edge cases and possibly unexpected/non-intuitive behavior that would be hard to get right. Let's not get ahead of ourselves. This is already quite a big release, so I would rather get the current feature set ready before packing in any more features. I appreciate your creativity for future features and how a bright future could look and I'm happy to see issues for all of these, even if I can't promise anything :)
I'm also excited about integrating with Flow, btw. There's already an issue somewhere about that.
@marcelklehr You are totally amazing to have gotten sharing worked out!! It is a Herculean effort that should be lauded! It is truly awesome. Wow. Thank you.
Do you want any other particular aspects of sharing tested for beta2?
@gibelium I create a new bookmark in the shared folder and then move it to the/my root folder.
Ah, moving bookmarks across user borders wasn't working correctly. Nice catch! Fixed.
@gibelium Should we allow to unshare a folder as the user the folder was shared with? I can delete a folder that was shared with me but this does not remove the share entry for the one who shared the folder.
I think ideally, the sharee can remove (read: hide) the shared folder from their view and have a way to get it back again, while only the owner can actually remove permissions. This is not yet implemented, however. My reasoning is that it's possible to share with groups and you shouldn't be able to remove the share for the whole group by deleting it as a sharee. so => next release :D
@gibelium Cancellation of 'New bookmark' operation should be possible. Cancellation of 'New folder' operation should be possible.
heh, the buttons that show these forms are technically toggles, so clicking them again will hide the respective form, but I guess nobody will figure that out :smile: I'll work on this.
@sunjam Do you want any other particular aspects of sharing tested for beta2?
Something I haven't tested as of yet, is how receiving a share, especially one that you cannot edit, plays with floccus syncing.
Oh, and we need to test with NC 19 :scream_cat:
Oh, and we need to test with NC 19 🙀
I can do that next weekend. Nevertheless, a list of things to test would be helpful, so I don't forget something. :-)
Oh, and we need to test with NC 19 scream_cat
Updated to Nextcloud 19.0.0 beta 4. Log sent via forum. Bookmarks listed as incompatible, but still running.
When sharing a single bookmark, the link proceeds to share every bookmark I have in the app. :100:
@gibelium This is what I could come up with: https://github.com/nextcloud/bookmarks/wiki/Acceptance-testing
@sunjam When sharing a single bookmark, the link proceeds to share every bookmark I have in the app.
Does that only happen in NC19?
@sunjam When sharing a single bookmark, the link proceeds to share every bookmark I have in the app.
Mh, I seem to have fixed that together with something else.
@marcelklehr, will you provide a beta.3 with all your latest changes?
Bookmarks beta3 on 19.0.0 beta4
Import returns Request failed with status code 500✖
Beta.3 is out :)
I finally started testing. Please find the results of the first session.
The two issues I find so far are:
1) Import does not work at all
2) Moving bookmarks into the same folder they are already in seems to delete the bookmarks. At least they vanish... :-)
Ubuntu 19.10
Google Chrome: 81.0.4044.129
Nextcloud: 19.0.0-beta.5
Bookmarks: 3.0.0-beta.3
[x] Migrates all data correctly from old version

[x] Import bookmarks
[x] Select multiple bookmarks

[x] Filter by recent bookmarks
Awesome, we're getting close :tada:
@gibelium ERROR: After migration one bookmark is references twice. It is still in the folder it should be but also in the root folder.
I can't seem to reproduce this. Bookmarks unexpectedly turning up in the root folder has been an issue in the past, though, so I think it's likely that this happened before the migration?
I can't seem to reproduce this. Bookmarks unexpectedly turning up in the root folder has been an issue in the past, though, so I think it's likely that this happened before the migration?
Well, I gave the migration test a second try and I also cannot reproduce the case after I cross checked that in the old version the bookmarks were in the correct folders. So yes, it could be that it was a failure in the old version.
:rocket:
Most helpful comment
@marcelklehr You are totally amazing to have gotten sharing worked out!! It is a Herculean effort that should be lauded! It is truly awesome. Wow. Thank you.
Do you want any other particular aspects of sharing tested for beta2?