This adds a new table UserNotificationSchedules which stores monday-friday start and ends times that each user would like to receive notifications (with a Boolean enabled to remove the use of the schedule). There is then a background job that runs every day and creates do_not_disturb_timings for each user with an enabled notification schedule. The job schedules timings 2 days in advance. The job is designed so that it can be run at any point in time, and it will not create duplicate records. When a users saves their notification schedule, the schedule processing service will run and schedule do_not_disturb_timings. If the user should be in DND due to their schedule, the user will immediately be put in DND (message bus publishes this state). The UI for a user's notification schedule is in user -> preferences -> notifications. By default every day is 8am - 5pm when first enabled. |
||
|---|---|---|
| .. | ||
| admin | ||
| confirm-new-email | ||
| discourse | ||
| discourse-common | ||
| discourse-hbr | ||
| discourse-widget-hbs | ||
| docs | ||
| ember-addons | ||
| locales | ||
| pretty-text | ||
| select-kit | ||
| wizard | ||
| activate-account.js | ||
| admin.js.erb | ||
| app-boot.js | ||
| application.js | ||
| auto-redirect.js | ||
| browser-detect.js | ||
| browser-update.js | ||
| discourse-loader.js | ||
| discourse-shims.js | ||
| embed-application.js | ||
| ember_include.js.erb | ||
| ember_jquery.js | ||
| env.js | ||
| google-tag-manager.js | ||
| google-universal-analytics-v3.js | ||
| google-universal-analytics-v4.js | ||
| handlebars-shim.js | ||
| main_include_admin.js | ||
| markdown-it-bundle.js | ||
| onpopstate-handler.js | ||
| polyfills.js | ||
| pretty-text-bundle.js | ||
| print-page.js | ||
| service-worker.js.erb | ||
| set-prototype-polyfill.js | ||
| start-discourse.js | ||
| template_include.js | ||
| test-shims.js | ||
| vendor.js | ||
| widget-runtime.js | ||
| wizard-application.js | ||
| wizard-shims.js | ||
| wizard-start.js | ||
| wizard-vendor.js | ||