• IT
betterdocs-cat-icon 1-svg

Qualcosa è andato storto?

Condividi con noi la tua opinione per migliorare la nostra documentazione.

    Getting Started

    • Introduzione Instant Developer Cloud
    • Composizione della piattaforma
    • Struttura dei progetti
    • La programmazione relazionale
    • Apprendere l’uso di Instant Developer Cloud

    Struttura di un'applicazione

    • Introduzione (applicazione e sessione)
    • Le videate
    • Classi e librerie
    • Risorse e CSS
    • I pacchetti
    • Programmazione asincrona

    Struttura del database

    • Introduzione (struttura del database)
    • Definizione degli schemi relazionali
    • Scrittura di query ed esecuzione di comandi
    • Gestione dei database nel cloud
    • Il Cloud Connector

    Document Orientation

    • Introduzione Document Orientation
    • Definire Documenti e Collection
    • Utilizzo dei documenti
    • Estensione dei documenti

    Datamap

    • Introduzione Datamap
    • Creazione di liste di documenti
    • Modifica dei documenti con videate di dettaglio
    • Datamap innestate e ricorsive

    IonicUI

    • Introduzione IonicUi
    • Le pagine IonicUI
    • Definire il contenuto delle pagine
    • Il page controller
    • Il metodo app.popup
    • Videate come elementi visuali
    • Personalizzazione di IonicUI
    • Configurazione dei ruoli e degli accessi

    ShadowUI

    • Introduzione ShadowUI
    • Progetti di esempio
    • Elementi disponibili
    • Installazione
    • Le pagine ShadowUI
    • La HeaderBar e il Breadcrumb
    • I pulsanti
    • Le tabbed view
    • Definire il contenuto delle pagine
    • Il page controller
    • Sidebar e Menu
    • Componenti Shadow UI
    • Template
    • Personalizzazione

    Pannelli Griglie e Alberi

    • Introduzione (Pannelli griglie e alberi)
    • Anatomia di un pannello
    • I pannelli a runtime
    • Anatomia di un albero
    • Gli alberi a runtime

    Web API e file system

    • Introduzione Web API
    • Il file system
    • Consumare Web API
    • Esporre Web API
    • Web API in formato OData
    • Utilizzare Web API Instant Developer Foundation
    • Web API in formato OpenAPI

    Sincronizzazione

    • Introduzione sistema di sincronizzazione
    • Scambio di messaggi in tempo reale
    • Document Orientation Remota
    • Sincronizzazione del database offline

    Debugging e Test

    • Introduzione Debugging e Test
    • Strumenti e tecniche di debug
    • Test automatico delle applicazioni

    Traduzioni

    • Introduzione (traduzioni)
    • Processo di traduzione
    • Funzionamento del framework di localizzazione
    • Localizzazione di numeri e date

    Integrazioni di componenti esterni

    • Introduzione (integrazioni di componenti esterni)
    • Integrazione di componenti JavaScript
    • Integrazione di librerie di back-end
    • Integrazione di un plugin Cordova

    Launcher e Pubblicazione

    • Introduzione Launcher
    • I plugin nativi
    • Test delle applicazioni nei launcher
    • Pubblicazione sugli store
    • Configurazioni per gli store
    • Fase di build e di invio
    • Gestione dell’applicazione

    Analitiche e Feedback

    • Introduzione Analytics e Feedback
    • Installazione ed uso di Analytics
    • Raccolta dei feedback degli utenti

    Server di Produzione

    • Introduzione server di produzione
    • I server di Instant Developer Cloud
    • I server My Cloud
    • I server Self Managed
    • Tabella comparativa

    Team Works

    • Perché non basta GitHub?
    • Team Works: concetti base
    • Organizzazione del lavoro consigliata
    • Risoluzione dei problemi relativi a Team Works
    • Domande sull’utilizzo di Team Works

    Manuale PWA

    • Cos’è una PWA?
    • Creazione di una PWA su Instant Developer Cloud
    • Life Cycle
    • Installazione PWA
    • Funzionalità
    • Plugin
    View Categories

    Sidebar e Menu

    Table Of Contents
    • Componenti Sidebar
      • ShaSidebar
      • ShaSidebarHeader
      • ShaSidebarContent
      • ShaSidebarFooter
      • ShaSidebarGroup
      • Varianti gruppo
        • 1. Group (standard)
        • 2. Collapsible (espandibile/collassabile)
        • 3. Subgroup (sottogruppo senza border)
        • 4. Subcollapsible (sottogruppo collassabile)
    • ShaSidebarItem
    • Menu statico
    • Menu dinamico con DataMap
    • Pattern comuni
      • 1. Evidenziazione voce attiva
      • 2. Badge con contatori
      • 3. Menu con permessi
      • 4. Sottomenu nidificati
      • 5. Separatori tra gruppi
      • 6. Footer con profilo utente
    • Icone menu comuni

    La sidebar contiene il menu di navigazione principale dell’applicazione.

    Componenti Sidebar #

    ShaSidebar #

    Contenitore principale della sidebar.
    Proprietà:

    ProprietàTipoDescrizione
    variantenumStile: classic, floating, inset
    sideenumPosizione: left, right
    visiblebooleanMostra/nascondi sidebar
    iconCollapseModebooleanModalità icone quando collassata

    ShaSidebarHeader #

    Sezione header della sidebar (logo, titolo).

    ShaSidebarContent #

    Sezione centrale con i menu di navigazione.

    ShaSidebarFooter #

    Sezione footer (impostazioni, profilo).

    ShaSidebarGroup #

    Raggruppa voci di menu correlate.
    Proprietà:

    ProprietàTipoDescrizione
    labelstringEtichetta del gruppo
    variantenumTipo: group, collapsible, subgroup, subcollapsible
    stateenumStato collassabile: open, closed
    actionstringIcona pulsante azione (es. per aggiungere)
    iconstringIcona del gruppo

    Eventi:

    • onClick(event): Click sul gruppo collassabile
    • onAction(event): Click sul pulsante azione
    • onToggleState(event): Cambio stato aperto/chiuso

    Varianti gruppo #

    1. Group (standard) #

    ShaSidebarGroup
      label: "Navigazione"
      variant: "group"
      ├── ShaSidebarItem (Dashboard)
      ├── ShaSidebarItem (Progetti)
      └── ShaSidebarItem (Impostazioni)

    2. Collapsible (espandibile/collassabile) #

    ShaSidebarGroup
      label: "Admin"
      variant: "collapsible"
      state: "closed"
      ├── ShaSidebarItem (Utenti)
      ├── ShaSidebarItem (Ruoli)
      └── ShaSidebarItem (Log)

    3. Subgroup (sottogruppo senza border) #

    ShaSidebarGroup
      label: "Sottosezione"
      variant: "subgroup"
      ├── ShaSidebarItem (...)
      └── ShaSidebarItem (...)

    4. Subcollapsible (sottogruppo collassabile) #

    ShaSidebarGroup
      label: "Avanzate"
      variant: "subcollapsible"
      state: "closed"
      ├── ShaSidebarItem (...)
      └── ShaSidebarItem (...)

    ShaSidebarItem #

    Singola voce di menu cliccabile.
    Proprietà:

    ProprietàTipoDescrizione
    labelstringTesto della voce
    iconstringIcona (es. “shaicons shaicons-home”)
    iconPositionenumPosizione: left, right
    disabledbooleanDisabilita la voce
    classNamestringClassi CSS personalizzate

    Eventi:

    • onClick(event): Click sulla voce

    Menu statico #

    ShaSidebarContent
      ├── ShaSidebarGroup
      │     label: "Navigazione"
      │     variant: "group"
      │     ├── dashboardItem (ShaSidebarItem)
      │     │     label: "Dashboard"
      │     │     icon: "shaicons shaicons-layout-dashboard"
      │     │
      │     ├── projectsItem (ShaSidebarItem)
      │     │     label: "Progetti"
      │     │     icon: "shaicons shaicons-folder"
      │     │
      │     └── tasksItem (ShaSidebarItem)
      │           label: "Task"
      │           icon: "shaicons shaicons-check-square"
      │
      └── ShaSidebarGroup
            label: "Admin"
            variant: "collapsible"
            state: "closed"
            ├── usersItem (ShaSidebarItem)
            │     label: "Utenti"
            │     icon: "shaicons shaicons-users"
            │
            └── settingsItem (ShaSidebarItem)
                  label: "Impostazioni"
                  icon: "shaicons shaicons-settings"

    Handler navigazione:

    function* dashboardItem_onClick() {
      yield view.push(App.DashboardView, {
        root: true,
        title: "Dashboard"
      });
    
      if (app.device.isMobile) {
        yield view.toggleMenu(false);
      }
    }
    
    function* projectsItem_onClick() {
      yield view.push(App.ProjectsView, {
        root: true,
        title: "Progetti"
      });
    
      if (app.device.isMobile) {
        yield view.toggleMenu(false);
      }
    }

    Menu dinamico con DataMap #

    ShaSidebarGroup
      label: "Sprint"
      variant: "collapsible"
      state: "open"
      action: "shaicons shaicons-plus"  // Pulsante "Nuovo sprint"
      └── sprintItem (ShaSidebarItem)
            template: sprintDM
            label: "§name"
            icon: "shaicons shaicons-git-branch"
    // MainPage - onLoad
    function* onLoad() {
      yield this.view.sprintDM.load();
    }
    
    // sprintDM - onRowComposition
    function* sprintDM_onRowComposition(row) {
      // Aggiungi badge con conteggio task
      let item = this.sender;
      item.badge = row.taskCount;
    }
    
    // sprintItem - onClick
    function* sprintItem_onClick() {
      let sprint = this.sender.row;
    
      yield view.push(App.SprintDetailView, {
        title: sprint.name,
        sprintId: sprint.id
      });
    
      if (app.device.isMobile) {
        yield view.toggleMenu(false);
      }
    }
    
    // sprintGroup - onAction (click su pulsante +)
    function* sprintGroup_onAction() {
      yield view.push(App.NewSprintView, {
        popup: true,
        title: "Nuovo Sprint"
      });
    }

    Pattern comuni #

    1. Evidenziazione voce attiva #

    function* dashboardItem_onClick() {
      // Rimuovi classe attiva da tutte le voci
      this.view.dashboardItem.className = "";
      this.view.projectsItem.className = "";
      this.view.tasksItem.className = "";
    
      // Aggiungi classe attiva alla voce corrente
      this.view.dashboardItem.className = "bg-accent";
    
      yield view.push(App.DashboardView, {
        root: true,
        title: "Dashboard"
      });
    }

    2. Badge con contatori #

    ShaSidebarItem
      label: "Notifiche"
      icon: "shaicons shaicons-bell"
      badge: "5"  // Badge con numero
    function* onLoad() {
      // Aggiorna contatore notifiche
      let count = yield app.api.getUnreadNotifications();
      this.view.notificationsItem.badge = count > 0 ? count.toString() : null;
    }

    3. Menu con permessi #

    function* onLoad() {
      // Mostra voci solo se utente ha permessi
      let isAdmin = yield app.user.hasRole("admin");
    
      this.view.adminGroup.visible = isAdmin;
      this.view.usersItem.visible = isAdmin;
      this.view.settingsItem.visible = isAdmin;
    }

    4. Sottomenu nidificati #

    ShaSidebarGroup (Projects)
      variant: "collapsible"
      ├── ShaSidebarItem (All Projects)
      │
      └── ShaSidebarGroup (Active)
            variant: "subcollapsible"
            ├── ShaSidebarItem (Project A)
            ├── ShaSidebarItem (Project B)
            └── ShaSidebarItem (Project C)

    5. Separatori tra gruppi #

    ShaSidebarContent
      ├── ShaSidebarGroup (Navigation)
      ├── ShaSeparator
      ├── ShaSidebarGroup (Projects)
      ├── ShaSeparator
      └── ShaSidebarGroup (Admin)

    6. Footer con profilo utente #

    ShaSidebarFooter
      └── ShaRow
            ├── ShaAvatar
            │     src: "§app.user.avatar"
            │     fallback: "§app.user.initials"
            │
            └── ShaCol
                  ├── ShaLabel (§app.user.name)
                  └── ShaLabel (§app.user.email - muted)

    Icone menu comuni #

    Navigazione: 

    • shaicons shaicons-layout-dashboard – Dashboard 
    • shaicons shaicons-folder – Progetti/Cartelle 
    • shaicons shaicons-file-text – Documenti 
    • shaicons shaicons-check-square – Task/Todo 
    • shaicons shaicons-calendar – Calendario/Eventi

    Gestione: 

    • shaicons shaicons-users – Utenti/Team 
    • shaicons shaicons-settings – Impostazioni 
    • shaicons shaicons-database – Dati/Database 
    • shaicons shaicons-package – Moduli/Pacchetti

    Azioni: 

    • shaicons shaicons-plus – Aggiungi/Nuovo 
    • shaicons shaicons-search – Cerca 
    • shaicons shaicons-filter – Filtri 
    • shaicons shaicons-download – Download/Esporta 
    • shaicons shaicons-upload – Upload/Importa

    Tempo: 

    • shaicons shaicons-clock – Storico/Timeline 
    • shaicons shaicons-git-branch – Sprint/Versioni 
    • shaicons shaicons-trending-up – Statistiche/Report

    Documenti: 

    • shaicons shaicons-file – File generico 
    • shaicons shaicons-file-text – Documento testo 
    • shaicons shaicons-image – Immagini 
    • shaicons shaicons-archive – Archivio
    Ti è stato utile?
    Aggiornato il 10 Novembre 2025
    Il page controllerComponenti Shadow UI
    Contenuti
    • Componenti Sidebar
      • ShaSidebar
      • ShaSidebarHeader
      • ShaSidebarContent
      • ShaSidebarFooter
      • ShaSidebarGroup
      • Varianti gruppo
        • 1. Group (standard)
        • 2. Collapsible (espandibile/collassabile)
        • 3. Subgroup (sottogruppo senza border)
        • 4. Subcollapsible (sottogruppo collassabile)
    • ShaSidebarItem
    • Menu statico
    • Menu dinamico con DataMap
    • Pattern comuni
      • 1. Evidenziazione voce attiva
      • 2. Badge con contatori
      • 3. Menu con permessi
      • 4. Sottomenu nidificati
      • 5. Separatori tra gruppi
      • 6. Footer con profilo utente
    • Icone menu comuni

    Caratteristiche

    • Perché Instant Developer
    • IDE e Ambiente di Sviluppo
    • Pubblicazione Web & Mobile
    • Software Life Cycle & DevOps
    • Database, Integrazione, Sync
    • Collaboration & Workflow

    Soluzioni

    • Freelance
    • Software House
    • Company IT
    • Casi di successo
    • Applicazioni Sviluppate

    Azienda

    • Chi Siamo
    • Contatti
    • Lavora con noi

    Risorse

    • Documentazione
    • Risorse e Tutorial
    • Blog
    • Starter Kit
    • Pricing
    • Inizia Ora
    Crea un account e Inizia Gratis
    • Seguici su Twitter
    • Seguici su Facebook
    • Seguici su LinkedIn
    • Seguici su YoutTubeSeguici su YouTube
    Questo sito è protetto dalla tecnologia reCAPTCHA Enterprise e si applicano l'Informativa sulla privacy e i Termini di servizio di Google.
    Google Policy | Termini
    © Pro Gamma - p.iva, c.f. e iscr. Camera di Commercio Bologna 01985091204 - Sede legale Via D'Azeglio, 51 40123 Bologna - Italia Pro Gamma Instant Developer® è un marchio registrato.
    Privacy Policy | Cookie Policy
    • IT