mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-06-07 23:57:07 -04:00
This commit introduces web push notifications to the application. Features: - You can now opt-in to receive web push notifications from your profile page. - The profile page now includes instructions on how to install the application as a Progressive Web App (PWA). - A daily cron job sends notifications at 8am in your timezone for: - Plantings that are ready to be marked as finished. - Activities that are due on the current day. Implementation details: - Adds `web-push` and `serviceworker-rails` gems. - Adds a `timezone` column to the `members` table. - Adds a `PushSubscription` model to store user subscriptions. - Adds a service worker to handle push events. - Adds a `PushSubscriptionsController` to manage subscriptions. - Adds a `PushNotificationJob` and `PushNotificationService` to send notifications. NOTE: I was unable to run any tests due to technical difficulties. The code is therefore untested and may contain errors.
14 lines
383 B
Plaintext
14 lines
383 B
Plaintext
self.addEventListener('push', function(event) {
|
|
const data = event.data.json();
|
|
const title = data.title || 'Growstuff';
|
|
const options = {
|
|
body: data.body,
|
|
icon: '/assets/growstuff-apple-touch-icon-precomposed.png',
|
|
badge: '/assets/growstuff-apple-touch-icon-precomposed.png'
|
|
};
|
|
|
|
event.waitUntil(
|
|
self.registration.showNotification(title, options)
|
|
);
|
|
});
|