- New VerantwortlicheInvite model: LT-issued invites so a person can register as Gemeinde Verantwortliche(r) for a specific Gemeinde, skipping the self-registration approval step. - Wahl/Workshop/Teilnehmer gain phase support (phasenAnzahl, beschreibung), mirroring the WP plugin's multi-phase elections. Teilnehmer unique constraint now scoped per phase. - Auth: team login + guest auth adjustments, spec coverage. - sync.service.ts: register VerantwortlicheInvite as a synced model. - wahl.service.ts: submitTeilnehmer updated for the new phase-scoped unique key. - client: login/home screen rework, new theme.dart, FCM web tweaks. - .gitignore: ignore .DS_Store. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
23 lines
928 B
JavaScript
23 lines
928 B
JavaScript
// Background handler for FCM web push. Keep the config in sync with
|
|
// window.KC_FIREBASE in index.html (a service worker can't read window).
|
|
// Analytics is NOT initialised here — it only makes sense on visible pages
|
|
// with a real navigator context; the main index.html handles it.
|
|
importScripts('https://www.gstatic.com/firebasejs/10.13.2/firebase-app-compat.js');
|
|
importScripts('https://www.gstatic.com/firebasejs/10.13.2/firebase-messaging-compat.js');
|
|
|
|
firebase.initializeApp({
|
|
apiKey: 'AIzaSyDxBpdmW8lUHSuix--3AsWJScGQy9o3G_M',
|
|
projectId: 'konfi-castle-app',
|
|
messagingSenderId: '307226979593',
|
|
appId: '1:307226979593:web:66898b2c78b2d110ef77d8',
|
|
});
|
|
|
|
firebase.messaging().onBackgroundMessage(function (payload) {
|
|
const n = payload.notification || {};
|
|
self.registration.showNotification(n.title || 'KC-App', {
|
|
body: n.body || '',
|
|
icon: '/icons/Icon-192.png',
|
|
data: payload.data || {},
|
|
});
|
|
});
|