Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add bookmarks #7107

Merged
merged 12 commits into from
Nov 13, 2019
Merged

Add bookmarks #7107

merged 12 commits into from
Nov 13, 2019

Conversation

ClearlyClaire
Copy link
Contributor

Add a bookmark feature, working mostly like favourites, except they are not federated nor visible by other users than the person bookmarking a toot.

@Cassolotl
Copy link

This seems like a good change, I like private save-for-later as separate from public reaction hearts/stars.

Related issues:

@trwnh
Copy link
Member

trwnh commented Apr 13, 2018

re: what m4sk1n said -- i don't see a compelling reason to change anything about how faves work currently. fundamentally, they are a public approval / acknowledgement of a message, and can be browsed from someone's profile if they want to see go back and see them.

a bookmark feature would be almost the same thing, but private -- no indicator, not exposed via the profile or the status. adding bookmarks is no reason to remove functionality from the favorites.

@Cassolotl
Copy link

I feel like "like/star" doesn't really need to be saved in a list if it's just a reaction emoji ish thing - if folks want to save it for later they'll use the bookmark feature, right?

And I think probably bookmarked toots should show up in search because it's save-for-later and that'll be something you want to be able to look up later.

I think "like/star" toots don't need to show up in a search because it's just public approval and that could clog up the search results unnecessarily - most people are gonna "like/star" much more than they'll save-for-later, and they're less likely to need to pull liked toots up in searches later, right?

@nightpool
Copy link
Member

disagree with adding this per my comments on #1178.

@nightpool
Copy link
Member

nightpool commented Apr 16, 2018

Hmm. Not sure what happened to that issue, it seems to be completely deleted, along with discussion.

@Cassolotl
Copy link

@nightpool My account has been flagged, and I think it's making a lot of my issues invisible. :S I've messaged Github to find out what's going on, it could be that I've been reported, but it could also be that I've been flagged by a spam-detecting bot, so I'm not really sure what's going on!

@Gargron
Copy link
Member

Gargron commented Apr 16, 2018

Archive: https://web.archive.org/web/20171226131702/https://github.com/tootsuite/mastodon/issues/1178

No idea how that issue disappeared, I did not delete it. I did not know you can delete them like that, only close...

@ClearlyClaire
Copy link
Contributor Author

Ok, your main argument seems to be “web browser bookmarks serve this purpose”, yes and no.
If you bookmark the public toot, it's a pain to get back into the WebUI to boost/like/reply to it.
If you bookmark the WebUI, it's a bit better, but you go through the trouble of reloading the whole WebUI, either in an extra tab, or replacing your position in timelines, etc.

@lanodan
Copy link
Contributor

lanodan commented Apr 16, 2018

I’m pretty sure favorite should be enhanced instead (searching in the favorites for example).
There is a save feature in friendica and I pretty much never used it and never heard of someone using it.
Also using the browser bookmarks feature (assuming your browser has bookmarks…) lacks the ability to search in the content of the message.

@ClearlyClaire
Copy link
Contributor Author

@lanodan favorites are already searchable (along with the rest) if Full-Text-Search is enabled.
The point of the “bookmark” feature as I use it is to bookmark things I haven't the time to read right now but I potentially want to react on later. For instance, if someone posts a long article or a video, and I want to like/boost/comment once I've seen it.

@ClearlyClaire ClearlyClaire force-pushed the features/bookmarks branch 2 times, most recently from 9713111 to f2be5ca Compare April 16, 2018 21:02
@Gargron
Copy link
Member

Gargron commented Apr 17, 2018

@ThibG But I use favourites for that use case. And that having a social function makes sense to me, I remember the old Delicious used to display rankings of favourited links and stuff that authors of those links could be proud of. I'm not a big fan of splitting this functionality. In fact, I was not a fan when Twitter changed favourites to likes, and now iirc they are adding "bookmarks" and I think that's a hot mess that could've been avoided by just keeping favourites the way they are here right now.

@ClearlyClaire
Copy link
Contributor Author

@Gargron but why should that person be proud of something I haven't read yet? Afaik, people use favorites (or likes, that's what they are protocol-wise) as approval, encouragement, or “I read this” marks. A bookmark is “I want to read this” and is something completely different honestly.

@Cassolotl
Copy link

But I use favourites for that use case. And that having a social function makes sense to me, I remember the old Delicious used to display rankings of favourited links and stuff that authors of those links could be proud of.

I feel like basically there are two "save" features now - one that is viewable on posts and has people's names publicly attached, and one that isn't and doesn't.

This PR makes sense as a thing being tacked on, but as part of a bigger picture it is quite messy, I think?

So, how about making likes just a reaction? (I'm sure folks have seen me say this before, so I'm sorry if I'm repeating it for anyone here!) Likes could be not saved in a list for you to view later, and likes could be not included in search results. It's just a social signal way to say "awesome" or "thanks" or whatever. The numbers would still publicly be attached to toots for Delicious-style rankings etc.

I'm very much in favour of public like-reactions and private saves. They seem like two different functions to me.

Also we have bookmarks on dev.glitch.social right now and it is good. :D

screen shot 2018-04-17 at 13 06 54

@ClearlyClaire
Copy link
Contributor Author

Worth a shot I guess 🤷‍♂️

pr

@ClearlyClaire
Copy link
Contributor Author

Updated the PR to:

  • Rebase it
  • Remove the joke rainbows
  • Add OAuth scopes for bookmarks

@Gargron Gargron added the suggestion Feature suggestion label Oct 20, 2018
@ClearlyClaire
Copy link
Contributor Author

Rebased and fixed the migration. Would have to go other it to make sure everything has been kept up-to-date.

@umonaca
Copy link
Contributor

umonaca commented Nov 13, 2019

You would probably want this commit and this commit as well

@umonaca
Copy link
Contributor

umonaca commented Nov 13, 2019

Bug report: the un-bookmark is not as responsive as the un-favourite. When a toot is unbookmarked, the icon remains active so the user is unsure if the toot has been unbookmarked or not. The user has to refresh the entire page to see the unbookmark has succeeded.

I reported this issue in glitch-soc but was unable to reproduce it on the glitch-soc instance. However, I am able to reliably reproduce this bug in this PR in a local test environment.

@@ -198,6 +204,7 @@ class ActionBar extends React.PureComponent {
<div className='detailed-status__button'><IconButton disabled={reblog_disabled} active={status.get('reblogged')} title={reblog_disabled ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} icon={reblogIcon} onClick={this.handleReblogClick} /></div>
<div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} /></div>
{shareButton}
<div className='detailed-status__button'><IconButton className='bookmark-icon' active={status.get('bookmarked')} title={intl.formatMessage(messages.bookmark)} icon='bookmark' onClick={this.handleBookmarkClick} /></div>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I heard at least one user opinion that favourites and bookmarks not need be side-by-side, bookmarks can be in the dropdown menu. More responses have stated that they would use bookmarks more rarely than favourites, so perhaps this makes sense? Thoughts?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh well, we can move it later.

@Gargron Gargron changed the title Add a “bookmark” feature Add bookmarks Nov 13, 2019
@Gargron Gargron merged commit dfea736 into mastodon:master Nov 13, 2019
umonaca pushed a commit to umonaca/mastodon that referenced this pull request Nov 14, 2019
* Add backend support for bookmarks

Bookmarks behave like favourites, except they aren't shared with other
users and do not have an associated counter.

* Add spec for bookmark endpoints

* Add front-end support for bookmarks

* Introduce OAuth scopes for bookmarks

* Add bookmarks to archive takeout

* Fix migration

* Coding style fixes

* Fix rebase issue

* Update bookmarked_statuses to latest UI changes

* Update bookmark actions to properly reflect status changes in state

* Add bookmarks item to single-column layout

* Make active bookmarks red

Conflicts:
	app/javascript/mastodon/actions/interactions.js
	app/javascript/mastodon/components/status_action_bar.js
	app/javascript/mastodon/features/bookmarked_statuses/index.js
	db/migrate/20180831171112_create_bookmarks.rb
@bannisdale
Copy link

Maybe a stupid question, but ... is this already live? Is this part of the next release? How would I be able to find out? :)

@Gargron
Copy link
Member

Gargron commented Nov 29, 2019

It's live on mastodon.social, but no stable version has been released since this PR was merged, yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
suggestion Feature suggestion
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants