mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 18:30:26 -06: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 | ||
users | ||
about_controller.rb | ||
application_controller.rb | ||
badges_controller.rb | ||
bookmarks_controller.rb | ||
categories_controller.rb | ||
category_hashtags_controller.rb | ||
clicks_controller.rb | ||
composer_messages_controller.rb | ||
csp_reports_controller.rb | ||
directory_items_controller.rb | ||
draft_controller.rb | ||
drafts_controller.rb | ||
email_controller.rb | ||
embed_controller.rb | ||
exceptions_controller.rb | ||
export_csv_controller.rb | ||
extra_locales_controller.rb | ||
finish_installation_controller.rb | ||
forums_controller.rb | ||
groups_controller.rb | ||
highlight_js_controller.rb | ||
inline_onebox_controller.rb | ||
invites_controller.rb | ||
list_controller.rb | ||
metadata_controller.rb | ||
notifications_controller.rb | ||
offline_controller.rb | ||
onebox_controller.rb | ||
permalinks_controller.rb | ||
post_action_users_controller.rb | ||
post_actions_controller.rb | ||
post_readers_controller.rb | ||
posts_controller.rb | ||
push_notification_controller.rb | ||
qunit_controller.rb | ||
reviewable_claimed_topics_controller.rb | ||
reviewables_controller.rb | ||
robots_txt_controller.rb | ||
safe_mode_controller.rb | ||
search_controller.rb | ||
session_controller.rb | ||
similar_topics_controller.rb | ||
site_controller.rb | ||
static_controller.rb | ||
steps_controller.rb | ||
stylesheets_controller.rb | ||
svg_sprite_controller.rb | ||
tag_groups_controller.rb | ||
tags_controller.rb | ||
theme_javascripts_controller.rb | ||
themes_controller.rb | ||
topics_controller.rb | ||
uploads_controller.rb | ||
user_actions_controller.rb | ||
user_api_keys_controller.rb | ||
user_avatars_controller.rb | ||
user_badges_controller.rb | ||
users_controller.rb | ||
users_email_controller.rb | ||
webhooks_controller.rb | ||
wizard_controller.rb |