gigafibre-fsm/services/targo-hub
louispaulb 608a525038 Events: segment checkboxes for the reminder ("not opened"/"opened"/"clicked")
The reminder previously always targeted everyone not yet registered as one
fixed group. Staff can now pick which engagement segments to include:

- reminderCandidates()/reminderSend() (events.js) accept an optional
  `segments` filter (subset of sent/opened/clicked, matching the original
  invitation's per-recipient status). `breakdown` always reports the FULL
  unfiltered counts so the UI can show each checkbox's true count
  regardless of what's checked; `candidates`/`count` reflect the filter —
  what actually gets sent.
- New routes accept it: GET reminder-preview?segments=a,b and POST
  reminder-send {segments:[...]}.
- EventsPage.vue Rappel tab: the flat breakdown chips became checkboxes
  (all checked by default = prior behavior), with a live target count and
  a client-side-filtered recipient preview.
- CampaignDetailPage.vue: new "Relancer les non-inscrits" button for any
  event-type send — same checkbox/count/confirm flow in a compact dialog,
  without leaving the campaign page. Targets that campaign directly (no
  source picker needed, unlike the Events-page flow which can target any
  past send for the event).

Verified live: segment-filtered preview against the real production
campaign (2,295 total non-registered -> 708 when limited to opened+clicked,
correctly excluding the 1,587 who never opened).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 12:18:56 -04:00
..
data refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
docs feat(fsm): platform build — comms UI, F→ERPNext sync/billing, roster, campaigns, network, reports 2026-06-15 06:12:12 -04:00
lib Events: segment checkboxes for the reminder ("not opened"/"opened"/"clicked") 2026-07-24 12:18:56 -04:00
preview feat: flow editor, Gemini QR scanner with offline queue, dispatch planning v2 2026-04-22 10:44:17 -04:00
public feat(field-app): refonte accessibilité terrain (gros texte/contraste/cibles + flux guidé) 2026-07-19 10:23:19 -04:00
scripts feat(ops): wireless backfill + signal interval coloring + device/AP links 2026-07-20 18:38:33 -04:00
templates feat(ops+hub): sender picker, per-user notifs, editable rating emails, planif & tickets UX 2026-06-16 22:41:51 -04:00
test Phase 1 (hygiène) : utils partagés + logique pure testable + observabilité erp + 1ers tests 2026-06-07 10:36:41 -04:00
.env.example feat(hub+ops): user invite flow sends temp password via Mailjet + dev .env.example 2026-05-05 19:50:06 -04:00
docker-compose.yml fix(hub): templates volume mount must be RW for editor saves 2026-05-22 06:49:48 -04:00
package-lock.json feat(campaigns/editor): MJML mode — proper email-focused visual builder 2026-05-21 22:29:42 -04:00
package.json Phase 1 (hygiène) : utils partagés + logique pure testable + observabilité erp + 1ers tests 2026-06-07 10:36:41 -04:00
server.js chore(reconcile): commit MES hunks déployés dans les fichiers co-édités (split via git apply --cached) 2026-07-19 20:06:47 -04:00