Salta el contingut

Frontend

Comunicació client-servidor

google.script.run
  .withSuccessHandler(callback)
  .withFailureHandler(onError)
  .nomFuncio(args);

GAS serialitza/deserialitza automàticament objectes JSON simples. No suporta classes, Date, undefined ni funcions.


Inclusió de fitxers HTML

GAS usa templating propi. La funció include() (Codigo.gs:2137) permet modularitzar:

<?!= include('styles') ?>
<?!= include('i18n-es') ?>
<?!= include('i18n-ca') ?>
<?!= include('i18n-core') ?>
<?!= include('scripts') ?>

Els fitxers s'inclouen en temps de renderització al servidor, no al client.


Fitxers frontend

Fitxer Línies aprox. Rol
index.html UI principal d'usuari
admin-panel.html Dashboard admin (pestanyes)
scripts.html ~4000 JS interfície d'usuari
admin-scripts.html ~7100 JS panel admin (fitxer més gran)
styles.html Tailwind CSS + estils personalitzats
i18n-core.html Motor i18n: window.t(), applyI18n()
i18n-es.html ~710 Diccionari castellà
i18n-ca.html ~710 Diccionari català

Variables injectades per GAS

doGet() injecta les variables següents al HTML via templating:

<!-- Exemple d'ús al HTML -->
<script>
  window.USER_EMAIL = '<?= userEmail ?>';
  window.USER_NAME  = '<?= userName ?>';
  window.USER_ROLE  = '<?= userRoleForJs ?>';  // 'admin' | 'gestor' | 'usuari'
  window.APP_LANG   = '<?= appLang ?>';        // 'ca' | 'es'
</script>

Usa cometes literals ('<?= var ?>'), no JSON.stringify() — el sandbox GAS no ho suporta per a strings.


Sistema i18n — resum

Vegeu la documentació completa a Sistema i18n.

API pública:

window.t('clau.subclau')                  // retorna string traduït
window.t('clau', { param: valor })        // amb substitució de {param}
window.applyI18n(rootElement?)            // aplica data-i18n al DOM
window.getLocale()                        // 'ca-ES' | 'es-ES'

Atributs HTML:

<span data-i18n="booking.confirm"></span>
<input data-i18n-attr="placeholder:booking.date">
<div data-i18n-html="sections.intro"></div>