Files
growstuff/app/assets/javascripts/serviceworker.js.erb
google-labs-jules[bot] d828fd5c35 feat: Add web push notifications
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.
2025-08-10 00:56:40 +00:00

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)
);
});