feat: extend event toolkit and polish guest pwa

This commit is contained in:
Codex Agent
2025-10-28 18:28:22 +01:00
parent f29067f570
commit a7bbf230fd
45 changed files with 3809 additions and 351 deletions

View File

@@ -147,7 +147,9 @@
"errors": {
"missingSlug": "No event slug provided.",
"load": "Event tasks could not be loaded.",
"assign": "Tasks could not be assigned."
"assign": "Tasks could not be assigned.",
"photoOnlyEnable": "Photo-only mode could not be enabled.",
"photoOnlyDisable": "Photo-only mode could not be disabled."
},
"alerts": {
"notFoundTitle": "Event not found",
@@ -169,6 +171,147 @@
"medium": "Medium",
"high": "High",
"urgent": "Urgent"
},
"modes": {
"title": "Tasks & photo mode",
"photoOnlyHint": "Photo-only mode is active. Guests can upload photos but wont see tasks.",
"tasksHint": "Tasks are visible in the guest app. Switch to photo-only for uploads without prompts.",
"photoOnly": "Photo-only",
"tasks": "Tasks active",
"switchLabel": "Enable photo-only mode",
"updating": "Saving setting ..."
},
"toolkit": {
"titleFallback": "Event-Day Toolkit",
"subtitle": "Stay on top of uploads, tasks, and invites while your event is live.",
"errors": {
"missingSlug": "No event slug provided.",
"loadFailed": "Toolkit could not be loaded.",
"feedbackFailed": "Feedback could not be sent."
},
"actions": {
"backToEvent": "Back to event",
"moderate": "Moderate photos",
"manageTasks": "Open tasks",
"refresh": "Refresh"
},
"alerts": {
"errorTitle": "Error",
"attention": "Heads-up",
"noTasks": "No tasks assigned yet pick a package or curate prompts.",
"noInvites": "There are no active QR invites. Create one to welcome guests.",
"pendingPhotos": "Photos are waiting for moderation. Review uploads before publishing."
},
"metrics": {
"uploadsTotal": "Total uploads",
"uploads24h": "Uploads (24h)",
"pendingPhotos": "Pending moderation",
"activeInvites": "Active invites",
"engagementMode": "Mode",
"modePhotoOnly": "Photo mode",
"modeTasks": "Tasks"
},
"pending": {
"title": "Waiting photos",
"subtitle": "Moderation suggestions for new uploads.",
"cta": "Go to moderation",
"empty": "No photos waiting for review right now.",
"unknownUploader": "Unknown guest",
"uploadedAt": "Uploaded:",
"statusPending": "Status: awaiting review"
},
"invites": {
"title": "QR invites",
"subtitle": "Keep an eye on links and brandable layouts.",
"activeCount": "{{count}} active",
"totalCount": "{{count}} total",
"empty": "No QR invites yet.",
"statusActive": "Active",
"statusInactive": "Inactive",
"manage": "Manage invites"
},
"tasks": {
"title": "Active tasks",
"subtitle": "Motivate guests with clear prompts and highlights.",
"summary": "{{completed}} of {{total}} done",
"empty": "No tasks assigned yet.",
"manage": "Manage tasks",
"completed": "Done",
"open": "Open"
},
"recent": {
"title": "Latest uploads",
"subtitle": "A quick glance at freshly approved photos.",
"empty": "No approved photos yet."
},
"feedback": {
"title": "How helpful is this toolkit?",
"subtitle": "Your input helps us fine-tune the event-day experience.",
"positive": "Helpful",
"neutral": "Okay",
"negative": "Needs work",
"placeholder": "Let us know what worked well or what youre missing …",
"disclaimer": "Well keep your feedback private and use it to improve the product.",
"submit": "Send feedback",
"thanksTitle": "Thank you!",
"thanksDescription": "Weve received your feedback.",
"badge": "Custom"
}
},
"customizer": {
"title": "Customize QR invite",
"description": "Adjust layout, texts, colors, and logo for your printable invite.",
"layout": "Layout",
"selectLayout": "Select layout",
"headline": "Headline",
"subtitle": "Sub headline",
"descriptionLabel": "Description",
"badgeLabel": "Badge",
"instructionsHeading": "Instructions heading",
"instructionsLabel": "Hints",
"addInstruction": "Add hint",
"removeInstruction": "Remove",
"linkHeading": "Link title",
"linkLabel": "Link",
"ctaLabel": "Call to action",
"colors": {
"accent": "Accent colour",
"text": "Text colour",
"background": "Background",
"secondary": "Secondary colour",
"badge": "Badge colour"
},
"logo": {
"label": "Logo",
"hint": "PNG or SVG, max. 1 MB. Appears in the top right corner.",
"remove": "Remove logo"
},
"preview": {
"title": "Preview",
"hint": "Visual reference for colours and texts. Save to generate new PDFs/SVGs."
},
"actions": {
"save": "Save",
"cancel": "Cancel",
"reset": "Reset"
},
"badge": "Custom",
"actionLabel": "Customize layout",
"errors": {
"logoTooLarge": "Logo must not exceed 1 MB.",
"noLayout": "Please select a layout."
},
"defaults": {
"badgeLabel": "Digital guest box",
"instructionsHeading": "How it works",
"linkHeading": "Alternative link",
"ctaLabel": "Scan and get started",
"instructions": [
"Scan the QR code",
"Create your profile",
"Share your photos"
]
}
}
},
"collections": {
@@ -316,4 +459,4 @@
}
}
}
}
}