Commit Graph

69 Commits

Author SHA1 Message Date
Adriano c6de02be83 Contatti, /training e immagini: rifiniture post-merge
- Rimossa la sezione "Prenota la lezione di prova" da /training (markup,
  import, CSS, seed e blocchi DB relativi)
- Titoli dei riquadri Training non più forzati in minuscolo: rispettano il
  testo del DB (One to One, Small Groups, ecc.)
- Footer e pagina Contatti con i due ingressi dello stesso stabile
  (Via Leandro Alberti 76 e Via De Mattiolo 5) più l'email; nuovo tag
  global.contact.map-query e migrazione DB idempotente dell'indirizzo
- Mappa Google in /contact caricata automaticamente e a piena dimensione
  (rimosso il bottone e il relativo script)
- Landing Promo ed eventi: rimossa la barra contatti in fondo
- service-icons allineate agli slug attuali (one-to-one, small-group;
  rimosse le chiavi obsolete personal-training e pilates-flow)
- Immagini: foto Rehab corretta (prima era di osteopatia) su program-rehab
  e training-rehab; bande nere letterbox rimosse dalla foto di osteopatia;
  nuova immagine grafica per Profilazione con grafici HRV (ECG, tacogramma
  R-R, Poincaré plot)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 12:41:37 +02:00
Adriano 11fc2b3e54 Servizi e landing Promo ed eventi: rinomine, pulizia contenuti e nuova pagina
Servizi:
- Personal Training rinominato "One to One" (slug /services/one-to-one) con
  redirect 301 dal vecchio URL e migrazione DB idempotente dei contenuti taggati
- Nuova pagina "Small Group" (slug /services/small-group, fuori dalla griglia)
- Rimossi i titoli intro di /training e /services e le liste feature di One to
  One, Small Group, Rehab e Osteopatia; la lista feature ora è condizionale
- Fix elenco puntato nel long-description (white-space: pre-line, selettore
  ancorato al container per gli elementi resi dal componente <T>)
- Immagine di Performance Class aggiornata
- Nella griglia Servizi i riquadri "One to One" e "Performance Class" rimandano
  a /training; nella pagina Training i riquadri One to One e Small Group aprono
  le rispettive schede servizio

Landing:
- Pagina "Promo ed eventi" (slug /promo-eventi) integrata nel sito con header e
  footer condivisi, basata sul nuovo mockup di lancio
- Card a 5 incontri con prezzi edizione apertura, FAQ ad accordion e acquisto
  tramite gestionale bsport
- Nuova voce di menu "Promo ed eventi"

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 11:33:11 +02:00
Adriano 5b34ee1697 Home: bottone Contattaci in fondo alla sezione Metodo
Come da documento cliente. Nuovo tag home.method.cta (auto-seed).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017rUFjLYZ1TZ7DgxwTR5q9K
2026-07-11 17:34:57 +02:00
Adriano 2468ce95f7 About: testi aggiornati e rimozione sezioni Metodo, Vision, StoryLab
- Testi riscritti da documento cliente: about.about.body, convenzioni.item1/item2
  (rimosso "gratuita"), studios.body1 (versione breve). Seed + migrazione DB
  idempotente (guardia via frammento LIKE, rispetta le modifiche da pannello).
- Rimosse dalla pagina le sezioni marcate "LEVARE" nel documento: Timeline/StoryLab,
  Metodo (presente in home) e Vision. I tag restano nel seed per un eventuale ripristino.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017rUFjLYZ1TZ7DgxwTR5q9K
2026-07-11 16:43:50 +02:00
Adriano 9966ec3616 Training: 6 riquadri (Rehab, Holistic Class, Reformer Class, Coaching)
- trainings.ts: da 4 a 6 riquadri (One to One, Small Group max 4, Rehab,
  Holistic Class ex Performance Class, Reformer Class nuova, Coaching ex Fit
  Remote); anche in Homepage. CTA "Scopri" verso le pagine dettaglio.
- services.ts: aggiunte pagine dettaglio rehab/holistic-class/reformer-class con
  flag grid:false (fuori dalla griglia /services ma raggiungibili come
  approfondimento dai riquadri Training). Rehab torna consultabile su /services/rehab.
- index/[slug] servizi filtrano grid!==false; rimosso redirect /services/rehab.
- Footer Training portato a 6 voci con ancore aggiornate; TrainingCards tone-safe.
- Foto Reformer dal documento cliente; card Rehab/Holistic/Coaching con
  immagini placeholder (da confermare). Migrazione DB idempotente per label/meta.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017rUFjLYZ1TZ7DgxwTR5q9K
2026-07-11 13:26:58 +02:00
Adriano 140146fce1 Servizi: Pilates Flow -> Profilazione, Rehab -> Osteopatia
- services.ts: nuovi servizi profilazione (copy bozza dal metodo ISL) e
  osteopatia (copy dal documento cliente); rehab esce da Servizi (va in Training).
- Redirect 301 dai vecchi slug: pilates-flow -> profilazione, rehab -> training.
- Footer, icone, sitemap e meta aggiornati; migrazione DB idempotente per le
  label footer e la meta description (contenuti live in SQLite).
- Immagine osteopatia riusa la foto rehab (come da mockup cliente).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017rUFjLYZ1TZ7DgxwTR5q9K
2026-07-11 13:10:37 +02:00
Adriano 7211d74d3a fix(sicurezza): safeNext blocca backslash (open redirect) + guardia ownership su /admin/edit
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 22:34:16 +02:00
Adriano c36ad4cb2d feat(users): gestione utenti /admin/users con guardie self/ultimo-admin 2026-07-05 22:18:20 +02:00
Adriano 0f2b2ba014 feat(blog): firma autore sotto il titolo, fallback Staff InsanityLab 2026-07-05 22:15:30 +02:00
Adriano 2bf6b3d4de feat(admin): nav per 3 ruoli, blog filtrato per autore + colonna autore 2026-07-05 22:13:15 +02:00
Adriano 22d72be74d feat(inline): badge con guid + modal di modifica contenuti in pagina 2026-07-05 22:10:50 +02:00
Adriano 842371604b feat(showtags): endpoint cookie + toggle nel menu utente 2026-07-05 22:05:46 +02:00
Adriano 71cd1626e0 feat(header): identità utente SSR, link Accedi / menu utente 2026-07-05 22:03:07 +02:00
Adriano 6b85872515 feat(login): pagina pubblica /login con next sicuro 2026-07-05 21:59:50 +02:00
Adriano 5ce10da9bd feat(content): guid in resolve/componenti + GET /api/admin/content/[tag] 2026-07-05 21:56:53 +02:00
Adriano c3267c9be2 feat(posts-api): assegna autore in POST, ownership su PUT/DELETE 2026-07-05 21:51:34 +02:00
Adriano 6d1e2607ee feat(posts): author_id nel repository + listByAuthor + helper utenti 2026-07-05 21:49:16 +02:00
Adriano db92fc9c02 feat(middleware): autorizzazione a matrice + redirect per ruolo 2026-07-05 21:47:24 +02:00
Adriano e87a464090 feat(auth): matrice permessi 3 ruoli + landingFor 2026-07-05 21:44:30 +02:00
Adriano 5cea895d51 feat(db): migrazioni ruoli editor->superuser, guid contenuti, posts.author_id 2026-07-05 21:40:28 +02:00
Adriano 8ceea9b16f feat: rinomina sezione Programmi in Servizi (route, tag, migrazione DB)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 20:23:48 +02:00
Adriano c975dcac12 fix review finale: card programmi home taggate, README gestione contenuti, import type e commento seed 2026-07-05 17:45:31 +02:00
Adriano 56ca6eca14 feat: overlay annotate per utenti loggati 2026-07-05 17:37:02 +02:00
Adriano 608b1b68d2 fix: pannello contenuti — PUT ritorna value salvato, data-q aggiornato, guard hash, aria-label 2026-07-05 17:35:41 +02:00
Adriano be52781499 feat: pannello admin contenuti
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 17:30:39 +02:00
Adriano bf19cba4d3 fix: guard body null su PUT contenuti, formato tag e suffisso random su upload immagine 2026-07-05 17:22:23 +02:00
Adriano eda4d73aac feat: API contenuti taggati
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 17:18:30 +02:00
Adriano 685ef4a36e feat: pagine vetrina in SSR e sitemap runtime 2026-07-05 17:11:20 +02:00
Adriano 3551fae132 fix: hero contact ottimizzata senza override, mapsQuery da tag 2026-07-05 17:08:41 +02:00
Adriano bf38fc865c feat: tag contenuti training, contact e 404 2026-07-05 17:04:17 +02:00
Adriano 31354c4457 feat: tag contenuti programmi e pricing 2026-07-05 16:48:03 +02:00
Adriano b84463c9df feat: tag short-name membri team 2026-07-05 16:33:39 +02:00
Adriano d5b19f2c39 feat: tag contenuti pagina about e timeline 2026-07-05 16:29:55 +02:00
Adriano 34fd3d2e18 feat: tag contenuti home cards, team, metodo, partner, agenda 2026-07-05 16:17:31 +02:00
Adriano 3f01721a99 feat: tag contenuti home hero, info, feature, quote 2026-07-05 16:04:27 +02:00
Adriano f4c350ad64 feat: tag contenuti header, footer e form contatti 2026-07-05 15:54:29 +02:00
Adriano b079ded266 feat: componenti T e TImg per contenuti taggati 2026-07-05 15:46:11 +02:00
Adriano b22cc40b03 feat: content store con seed, cache e fallback 2026-07-05 15:43:29 +02:00
Adriano 6f51aec4c6 feat: preset stili contenuto con whitelist 2026-07-05 15:40:09 +02:00
Adriano 5f1d9f3740 feat: middleware limita editor ai percorsi contenuti 2026-07-05 15:38:21 +02:00
Adriano 274a6c7600 fix: regex percorsi editor senza bypass prefisso 2026-07-05 15:36:38 +02:00
Adriano 77041f9d5a feat: ruoli admin/editor in auth e create-user 2026-07-05 15:31:53 +02:00
Adriano c7d9d4ba5d feat: tabella content_blocks e colonna role utenti 2026-07-05 15:28:17 +02:00
Adriano 98c42aae54 Allinea PageHero, lista programmi e dettaglio programma al design Figma
- PageHero: banner scuro min-height 380px, titolo bianco uppercase ~44px,
  variante con foto di sfondo e overlay scuro
- /programs: card con foto (aspect 4/3, hover zoom), ombra, reveal stagger
- Dettaglio programma: hero con foto, immagine grande nel corpo, categorie
  corrette da Figma, sidebar con icone programmi, pricing con card colorate
  tan/taupe/dark e prezzo grande
- Nuove foto card program-*.jpg e modulo condiviso program-icons.ts

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:10:36 +02:00
Adriano 7d2f0b7048 fix: colonne info con aspect ratio figma 413/308 2026-07-02 15:52:10 +02:00
Adriano ecdf12ee0e fix: hero a piena altezza con testo sovrapposto come da figma 2026-07-02 14:40:15 +02:00
Adriano 2d5ff1816d feat: hero completo uomo+donna, donna estratta dal fig via mcp figma 2026-07-02 14:16:31 +02:00
Adriano 6cc1cf5f44 fix: rimappa tutte le foto sugli slot corretti del design figma
Le immagini erano asset reali del .fig ma piazzate in slot sbagliati.
Rimappate home/training/about dal confronto con i PDF Figma; aggiunti
i 9 ritratti team about (chiari in home, scuri in about via imageAbout),
immagini mancanti per metodo/vision/convenzioni/studios/trial e hero
contatti. Fix imgOf (match esatto) e getImage per i background dedupati.
2026-07-02 13:56:55 +02:00
Adriano 0d9b645636 feat: animazioni stile template prowess (reveal, parallax, marquee, hero, hover) 2026-07-02 13:08:09 +02:00
Adriano 6d1963737e fix: sitemap senza admin, categorie sidebar reali, 404 blog, og:image e README
- IMP-1: sitemap filter esclude /admin
- IMP-2: [slug].astro programmi usa CATEGORIES da blog-const con link /blog?categoria=
- MIN-1: blog/[slug].astro ritorna 404 vera invece di redirect
- MIN-3: public/img/og.jpg + meta og:image in Base.astro
- README: porta 3000→4321, Astro 5→7

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 02:05:30 +02:00