mirror of
https://github.com/discourse/discourse.git
synced 2025-01-21 13:02:02 +08:00
793f39139a
* This PR implements the scheduling and notification system for bookmark reminders. Every 5 minutes a schedule runs to check any reminders that need to be sent before now, limited to **300** reminders at a time. Any leftover reminders will be sent in the next run. This is to avoid having to deal with fickle sidekiq and reminders in the far-flung future, which would necessitate having a background job anyway to clean up any missing `enqueue_at` reminders. * If a reminder is sent its `reminder_at` time is cleared and the `reminder_last_sent_at` time is filled in. Notifications are only user-level notifications for now. * All JavaScript and frontend code related to displaying the bookmark reminder notification is contained here. The reminder functionality is now re-enabled in the bookmark modal as well. * This PR also implements the "Remind me next time I am at my desktop" bookmark reminder functionality. When the user is on a mobile device they are able to select this option. When they choose this option we set a key in Redis saying they have a pending at desktop reminder. The next time they change devices we check if the new device is desktop, and if it is we send reminders using a DistributedMutex. There is also a job to ensure consistency of these reminders in Redis (in case Redis drops the ball) and the at desktop reminders expire after 20 days. * Also in this PR is a fix to delete all Bookmarks for a user via `UserDestroyer` |
||
---|---|---|
.. | ||
admin | ||
about_controller_spec.rb | ||
application_controller_spec.rb | ||
associate_accounts_controller_spec.rb | ||
badges_controller_spec.rb | ||
bookmarks_controller_spec.rb | ||
categories_controller_spec.rb | ||
category_hashtags_controller_spec.rb | ||
clicks_controller_spec.rb | ||
composer_messages_controller_spec.rb | ||
csp_reports_controller_spec.rb | ||
directory_items_controller_spec.rb | ||
draft_controller_spec.rb | ||
drafts_controller_spec.rb | ||
email_controller_spec.rb | ||
embed_controller_spec.rb | ||
exceptions_controller_spec.rb | ||
export_csv_controller_spec.rb | ||
extra_locales_controller_spec.rb | ||
finish_installation_controller_spec.rb | ||
forums_controller_spec.rb | ||
groups_controller_spec.rb | ||
inline_onebox_controller_spec.rb | ||
invites_controller_spec.rb | ||
list_controller_spec.rb | ||
metadata_controller_spec.rb | ||
notifications_controller_spec.rb | ||
offline_controller_spec.rb | ||
omniauth_callbacks_controller_spec.rb | ||
onebox_controller_spec.rb | ||
permalinks_controller_spec.rb | ||
post_action_users_controller_spec.rb | ||
post_actions_controller_spec.rb | ||
post_readers_controller_spec.rb | ||
posts_controller_spec.rb | ||
push_notification_controller_spec.rb | ||
reviewable_claimed_topics_controller_spec.rb | ||
reviewables_controller_spec.rb | ||
robots_txt_controller_spec.rb | ||
safe_mode_controller_spec.rb | ||
search_controller_spec.rb | ||
session_controller_spec.rb | ||
similar_topics_controller_spec.rb | ||
site_controller_spec.rb | ||
static_controller_spec.rb | ||
steps_controller_spec.rb | ||
stylesheets_controller_spec.rb | ||
svg_sprite_controller_spec.rb | ||
tag_groups_controller_spec.rb | ||
tags_controller_spec.rb | ||
theme_javascripts_controller_spec.rb | ||
topics_controller_spec.rb | ||
uploads_controller_spec.rb | ||
user_actions_controller_spec.rb | ||
user_api_keys_controller_spec.rb | ||
user_avatars_controller_spec.rb | ||
user_badges_controller_spec.rb | ||
users_controller_spec.rb | ||
users_email_controller_spec.rb | ||
webhooks_controller_spec.rb | ||
wizard_controller_spec.rb |