maintenance/frontend
jtricerolph ee23cb1b16 Add template groups: bulk multi-location creation + duplicate action
For recurring jobs that repeat identically across many locations (e.g.
clean AC filter in every room), one task_templates row per location is
still required — schedule/completion tracking is per-location, which
matters especially for floating mode — but creating and organising
that many rows by hand didn't scale.

- New template_groups table (id, unique name) + task_templates.group_id.
  POST /api/template-groups upserts by name so picking an existing
  group from the UI never creates a duplicate folder.
- Recurring template form: optional group name (datalist-autocompleted
  from existing groups) plus a "create for multiple locations" toggle
  that reveals a checkbox list of locations; saving loops one
  createTemplate() call per selected location, all sharing the
  resolved group_id.
- Duplicate button on each template row pre-fills the New Template
  form from that row (location/asset/next-due cleared for repicking),
  landing in the same group automatically — the lightweight path for
  adding one more room later without the bulk picker.
- Recurring.tsx list now groups rows under a collapsible folder header
  per group_name; ungrouped templates render as flat rows as before.
2026-08-26 10:33:19 +00:00
..
public/icons Replace letter icons with Lucide PWA icons 2026-07-11 20:30:09 +00:00
src Add template groups: bulk multi-location creation + duplicate action 2026-08-26 10:33:19 +00:00
Dockerfile Maintenance log book app — initial scaffold 2026-07-03 21:28:57 +00:00
index.html Add iOS install hint + Apple PWA meta tags 2026-08-06 14:12:12 +00:00
nginx.conf Fix maintenance /assets 403 and remove vite-plugin-pwa 2026-07-14 08:45:32 +00:00
package-lock.json Make maintenance installable as a PWA 2026-07-11 11:27:00 +00:00
package.json Add PWA manifest + update banner to maintenance app 2026-07-20 22:28:08 +00:00
tsconfig.json Maintenance log book app — initial scaffold 2026-07-03 21:28:57 +00:00
vite.config.ts Use full "Maintenance" as PWA short_name instead of "Maint." 2026-07-29 17:23:19 +00:00