Files
bflows-bandi-fe/src
BFLOWS 2028239759 feat(ar1): superadmin Ar1AdminConfig TabView 4 sezioni (templates+policy+pec+bulk)
Nuova voce sidebar 'Configurazione AR1' (icona pi pi-id-card, href /ar1-admin,
permesso MANAGE_TENDERS) accanto a 'Rendicontazione'. Pagina dedicata
Ar1AdminConfig.js (490 LOC) con TabView PrimeReact a 4 sezioni:

1. TEMPLATE — DataTable con 3 varianti (A1/A2/A3), status+version+quadri_count.
   Bottone 'Edit layout L2' (Dialog con InputTextarea JSON layout_config,
   chiama PUT /admin/ar1-templates/:id/layout-config).
   Bottone 'Nuova versione' (Dialog con version semver + layout + toggle
   activate_now, chiama POST /admin/ar1-templates/:variant/new-version).

2. POLICY — grid 2 colonne con editor singleton:
   - validity_days (InputNumber 30-1825, default 365)
   - popup_dismiss_hours (InputNumber 1-168, default 24)
   - company_document_category_id (InputNumber, default 4 ANTIRICICLAGGIO)
   - popup_force_on_expired (InputSwitch)
   - auto_archive_on_company_document (InputSwitch)
   - allow_bulk_recompilation_request (InputSwitch)
   Save via PUT /admin/ar1-policy.

3. REGOLE REMINDER PEC — DataTable CRUD con Dialog edit:
   kind (disabled se editing), offset_days, is_recurring+recurring_interval_days,
   enabled, description. Chiamate POST/PUT/DELETE /admin/ar1-pec-schedule-config.

4. INVIO MASSIVO PEC — InputText company_ids virgola-separati, Checkbox
   only_expired/only_missing. Bottoni:
   - Dry-run (eye icon, severity info) → chiama con dry_run=true
   - Invia PEC live (send icon, severity warning) → ConfirmDialog prima di
     chiamare con dry_run=false
   Result box con matched/marked counts.

SERVICE — src/modules/ar1/service/ar1Service.js esteso da 164 a 213 LOC:
+ listTemplates (con query params opzionali)
+ getTemplateDetail
+ updateTemplateLayout
+ createNewTemplateVersion
+ getPolicy / updatePolicy
+ listPecSchedule / createPecRule / updatePecRule / deletePecRule
+ bulkRequestRecompilation

INTEGRAZIONE:

src/layouts/DefaultLayout/components/AppSidebar/index.js
  + voce 'Configurazione AR1' id=23 (MANAGE_TENDERS) dopo 'Rendicontazione'

src/routes.js
  + import Ar1AdminConfig
  + route /ar1-admin (solo ROLE_SUPER_ADMIN, altri PageNotFound)

VALIDAZIONE: parse-check 9 file con @babel/parser + plugin JSX: 9 OK / 0 FAIL.
2026-04-23 11:12:39 +02:00
..
2026-04-08 10:57:16 +02:00
2024-10-29 09:56:03 +01:00
2026-03-25 12:28:34 +01:00
2025-04-10 12:36:19 +02:00
2024-08-09 08:51:20 +02:00
2026-03-25 12:28:34 +01:00