| @@ -28,8 +28,10 @@ CMS per portali captive: gestione di card informative, gallerie, flip-book e con | |||
| **Sviluppo:** | |||
| ```bash | |||
| git clone https://git.afasystems.it/pollutri/ProgettoInterceptoCasaDellaScuola.git | |||
| cd ProgettoInterceptoCasaDellaScuola | |||
| mkdri -p /data/service/captive-portal-cms | |||
| cd /data/service/captive-portal-cms | |||
| git clone https://git.afasystems.it/pollutri/captive-portal-cms.git | |||
| cd captive-portal-cms | |||
| npm install | |||
| npm run build | |||
| npm run dev | |||
| @@ -230,7 +232,7 @@ Lo zip così prodotto è caricabile direttamente dal pulsante "Restore from ZIP" | |||
| Stato "di fabbrica" ripristinabile con un click. Pensato per preparare preset standard (es. banner + icona + una card di redirect) da distribuire a più macchine MajorNet. | |||
| **La sezione è sempre visibile in admin.** Il bottone "🏭 Factory Reset" e lo stato del preset corrente sono mostrati sempre (è un'operazione lecita per qualunque amministratore). Il bottone "💾 Salva come Factory Preset" — che riscrive il preset di fabbrica — è invece **gated** da `FACTORY_PRESET_SAVE_ENABLED = true` in `lib/config.ts` (default `false`): tienilo attivo solo sulla macchina di sviluppo dove prepari/aggiorni il preset. Gli endpoint API restano comunque attivi a prescindere dal flag. | |||
| **La sezione è sempre visibile in admin.** Il bottone "🏭 Factory Reset" e lo stato del preset corrente sono mostrati sempre (è un'operazione lecita per qualunque amministratore). Il bottone "💾 Save as Factory Preset (dev)" — che riscrive il preset di fabbrica — è invece **gated** da `FACTORY_PRESET_SAVE_ENABLED = true` in `lib/config.ts` (default `false`): tienilo attivo solo sulla macchina di sviluppo dove prepari/aggiorni il preset. Gli endpoint API restano comunque attivi a prescindere dal flag. | |||
| Il preset è un file fisso: **`factory/preset.zip`** alla radice del progetto (fuori da `data/`, quindi non viene toccato dai reset; fuori da `public/`, quindi non scaricabile via web). | |||
| @@ -239,15 +241,16 @@ Il preset è un file fisso: **`factory/preset.zip`** alla radice del progetto (f | |||
| - **💾 Save as Factory Preset (dev)** — visibile solo con `FACTORY_PRESET_SAVE_ENABLED = true`. Congela lo stato corrente in `factory/preset.zip`. | |||
| ### Da riga di comando / API | |||
| URL con `BASE_PATH = '/cards'` (default). Se hai `BASE_PATH = ''` togli il `/cards` dal path. | |||
| ```bash | |||
| # salva lo stato corrente come preset | |||
| curl -X POST http://localhost:3000/api/admin/factory-preset | |||
| curl -X POST http://localhost:3000/cards/api/admin/factory-preset | |||
| # esegui il factory reset | |||
| curl -X POST http://localhost:3000/api/admin/factory-reset | |||
| curl -X POST http://localhost:3000/cards/api/admin/factory-reset | |||
| # verifica se il preset esiste | |||
| curl http://localhost:3000/api/admin/factory-preset | |||
| curl http://localhost:3000/cards/api/admin/factory-preset | |||
| ``` | |||
| ### Creare il preset a mano (Linux) | |||
| @@ -258,7 +261,7 @@ zip -r ../factory/preset.zip cards.txt portals.txt uploads fonts -x "uploads/.tm | |||
| ``` | |||
| ### Distribuzione su altre macchine | |||
| Copia `factory/preset.zip` sulle altre installazioni: l'admin (con flag attivo) vedrà il preset e potrà fare Factory Reset per allinearsi allo stato standard. | |||
| Copia `factory/preset.zip` sulle altre installazioni: l'admin lo vedrà subito in Settings → Factory Preset come "Current preset: present · X MB · data/ora", e potrà cliccare 🏭 Factory Reset per allinearsi allo stato standard. Non serve attivare `FACTORY_PRESET_SAVE_ENABLED` sulle macchine target — quella flag riguarda solo la creazione del preset, non il suo ripristino. | |||
| --- | |||