L’evoluzione della sidebar di PavOra: problema, aggiramento e soluzione

A partire dal 9 dicembre, la mia webapp PavOra (per la gestione e prenotazione di eventi) ha iniziato a presentare un grave problema di utilizzo: il passaggio da una sidebar all’altra veniva bloccato o falliva silenziosamente, rendendo l’app instabile e, in alcuni casi, inutilizzabile.

Inizialmente pensavo a un bug temporaneo. Con il passare dei giorni, però, è emerso che il comportamento era legato alle recenti modifiche di sicurezza introdotte da Google nella gestione degli iframe e della Sandbox HTML per gli add-on Apps Script.

L’evoluzione della sidebar di PavOra: problema, aggiramento e soluzione

Il problema

Le nuove politiche di sicurezza hanno reso instabile il ricaricamento completo delle sidebar, soprattutto nei casi in cui:

  • si caricano più file HTML tramite showSidebar()
  • si fa affidamento su template dinamici
  • il rendering fallisce senza errori evidenti

Il risultato pratico?
Un’app che funzionava regolarmente ha iniziato a bloccarsi senza segnalazioni, costringendo l’utente a cliccare più volte sul menu o a riaprire la sidebar.

Gli issue ufficiali di riferimento sono:

Ad oggi, il problema non risulta risolto.

L’aggiramento temporaneo

Poiché PavOra doveva restare utilizzabile, ho applicato alcune modifiche tampone:

  • la prima pagina caricata non è più quella informativa, ma quella amministrativa
  • l’avvio porta direttamente alla sidebar principale di gestione eventi
  • inserimento e modifica eventi non usano più showSidebar(), ma una finestra flottante showModelessDialog())

Soluzione funzionante, ma scomoda: il passaggio tra interfacce restava macchinoso.

La soluzione definitiva (attuale)

Durante le vacanze natalizie ho deciso di ripensare completamente l’architettura:

  • un’unica sidebar HTML
  • tutte le “pagine” caricate e gestite internamente via JavaScript
  • una chiamata iniziale al server per:
    • recuperare strutture e permessi
    • assegnare dinamicamente il ruolo utente (lettura, scrittura, admin)

Risultato:

  • interfaccia stabile
  • nessun ricaricamento della sidebar
  • comportamento coerente anche con le nuove restrizioni di Google

Il video

Nel video allegato mostro i tre step:

  1. il problema
  2. l’aggiramento temporaneo
  3. la soluzione definitiva (ad oggi)

Spero che questa esperienza possa essere utile a chi sviluppa add-on o webapp su Google Apps Script e si è trovato (o si troverà) nella stessa situazione.

➤ PavOra puoi scaricarlo da GitHub: https://github.com/rainnic/PavOra

Leave a Comment