| @@ -28,8 +28,10 @@ CMS per portali captive: gestione di card informative, gallerie, flip-book e con | |||||
| **Sviluppo:** | **Sviluppo:** | ||||
| ```bash | ```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 install | ||||
| npm run build | npm run build | ||||
| npm run dev | 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. | 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). | 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`. | - **💾 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 | ### Da riga di comando / API | ||||
| URL con `BASE_PATH = '/cards'` (default). Se hai `BASE_PATH = ''` togli il `/cards` dal path. | |||||
| ```bash | ```bash | ||||
| # salva lo stato corrente come preset | # 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 | # 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 | # 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) | ### 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 | ### 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. | |||||
| --- | --- | ||||