JS5 Il client web del legacy SBH — menu e maschere 1. Il modulo Il legacy ha un menu per modulo (B20 Amministrazione, B27 Ciclo Attivo, …). In testa al menu, a sinistra, c'e' la barra del modulo : icona, nome, codice e numero di funzioni. Il modulo si cambia in due modi, con gli stessi moduli e la stessa scelta. La lista a tendina. Un clic sulla barra (ovunque, tranne sui quadratini) o sulla freccia accanto ai quadratini apre, subito sotto la barra e larga quanto il pannello, la lista dei moduli: una riga per modulo con la sua icona, il codice, il nome e il numero di funzioni. Il modulo corrente ha il segno a sinistra, i moduli senza funzioni sono attenuati; un modulo con piu' versioni e' una riga sola, con le funzioni di tutte le versioni. Si usa da tastiera: Tasto Cosa fa clic sulla barra, oppure ↓ / ↑ con la barra a fuoco apre la lista, col fuoco sul modulo corrente ↑ ↓ modulo precedente / successivo (la lista scorre per tenerlo in vista) Home / Fine primo / ultimo modulo una lettera o piu' lettere di seguito il primo modulo il cui codice o nome comincia cosi' (premuta di nuovo, il successivo) INVIO (o Spazio), oppure clic sulla riga sceglie il modulo; la lista si chiude e il fuoco torna sulla barra Esc chiude la lista e torna sulla barra, senza chiedere di uscire dalla sessione Tab, o un clic fuori chiude la lista La griglia. I quadratini a destra della barra aprono «Scegli il modulo»: una carta per modulo col numero di funzioni, e una ricerca per codice o descrizione. Si scrive B20 e resta una carta sola. Serve quando i moduli sono tanti e si cerca per parola. ✔ Verifica: il dialog mostra una carta per ogni modulo del server (piu' di dieci). ✔ Verifica: scritto B20 nella ricerca restano solo le carte che lo contengono. ✔ Verifica: scelta la carta, in testa al menu c'e' «Amministrazione» con B20 e il numero di funzioni. ✔ Verifica: il piede del menu dice Menu B20 · vers. … · rel. … : e' la versione del file di menu scaricato dal server, quella da citare in una segnalazione. 10. Uscire dalla funzione, Preferiti e Recenti nel benvenuto Esc (o il tasto «Esc Esci» della barra) manda Esci al COBOL: ogni Esci fa risalire il programma di un passo, finche' si chiude e il server torna al menu (lo spec ne preme fino a sei). Cambiando modulo si arriva al benvenuto : utente, modulo, stampante predefinita e, sotto, i Preferiti e i Recenti , con l'icona del tipo di lavoro usato. I Recenti li scrive l'avvio di una voce; i Preferiti la stella. ✔ Verifica: dopo gli Esci il server e' di nuovo sul menu (pannello di avvio o benvenuto). ✔ Verifica: dal menu il pulsante Esci dalla sessione e' di nuovo acceso. ✔ Verifica: nel benvenuto di B10 la sezione Preferiti contiene B20 1.1.1.1 Condizioni Pagamento . ✔ Verifica: la sezione Recenti contiene la stessa voce. 11. Riaprire un preferito e chiudere la sessione Un clic su un preferito cambia modulo da solo e riapre il pannello di avvio della voce. Da li' la stella si toglie; l'Esci dalla sessione chiede conferma con una finestra del client, non del browser, perche' chiude la connessione col server. ✔ Verifica: il clic sul preferito riapre il pannello di «Condizioni Pagamento»… ✔ Verifica: …tornando da solo al modulo Amministrazione (B20). ✔ Verifica: e' scelto «Interrogazione», il tipo di lavoro con cui la voce era stata messa nei Preferiti (la lente nella riga del benvenuto), non il primo tipo della voce. ✔ Verifica: cliccata di nuovo, la stella si spegne (vuota). ✔ Verifica: Esci dalla sessione apre «Chiudere la sessione?» con «La connessione col server SIGEA si chiude. Per rientrare servira' di nuovo il login.» ✔ Verifica: «Chiudi la sessione» porta lo stato a «Chiuso». Il tipo ricordato vale solo se la voce lo ammette ancora: se nel frattempo il menu del server non lo abilita piu', il pannello torna al predefinito della voce. 12. Quello che questa voce non mostra Due cose richieste a questa guida non si vedono su Condizioni pagamento in interrogazione, e quindi qui non hanno una riga ✔: scriverla senza averla vista sarebbe una verifica finta. Messaggi del COBOL. Il client ne ha tre forme: la finestra che aspetta un tasto (conoscitivo, attenzione, errore, grave, decisionale: sbh-message.component.ts , con OK e i tasti proposti dal programma), il toast che sparisce da solo per le informazioni ( sbh-toast ), e la nota rossa in basso per l'errore del campo ( getScreen().error ). Provati su questa voce: codice 0 , codice inesistente 99998 , F3, F6, F12 e F4 sul campo Convalida (che apre la finestra «Simulazione condizione di pagamento») — il COBOL non manda nessun messaggio. L'unico messaggio a video e' quello del client in §11. Per provarli serve una voce che scrive (Inserimento), che questa guida non usa per non toccare i dati del server. Etichette-pulsante e voce «premuta». Un'etichetta con un trigger nel legacy e' un pulsante grigio ( mask__text--btn ), e un'etichetta in REVERSE e' la voce in cui ci si trova, disegnata come pulsante premuto ( mask__text--pressed , sbh-mask.component.ts:257-259 ; il caso d'origine e' IACLI50D). La maschera 20000FTB2 non ha etichette con trigger ne' in REVERSE (contate dallo prove fatte scrivendo la guida: zero). 2. L'albero del menu e la ricerca L'albero e' quello del client legacy: ogni voce ha il suo numero accanto (1.1, 1.10, 2.1…), perche' nel gestionale le funzioni si chiamano per numero al telefono. La casella «Cerca nel menu» accetta testo o numero: scritta la parola, l'albero mostra solo i rami che portano a una voce che la contiene, gia' aperti, con la parola evidenziata. Il menu si usa tutto da tastiera, come l'albero del client legacy. Arrivati sul menu — anche tornando da una funzione — la voce dell'ultima funzione avviata e' gia' scelta, con i rami aperti fino a lei e il fuoco sopra: non serve cliccare. Poi: Tasto Cosa fa ↑ ↓ voce sopra / sotto fra quelle visibili; su una funzione il pannello di avvio la mostra subito → apre il ramo; se e' gia' aperto va alla prima voce dentro ← chiude il ramo; su una voce interna torna al ramo che la contiene Home Fine prima / ultima voce visibile Invio su un ramo lo apre o lo chiude; su una funzione la avvia con le scelte del pannello (come il doppio clic) Spazio sceglie la funzione e porta il fuoco sui tipi di lavoro del pannello cifre vanno alla voce con quel numero ( 1 2 di seguito = voce 12), come nel legacy * apre tutti i rami allo stesso livello Le lettere restano del pannello di avvio ( I M R C E S scelgono il tipo di lavoro), ESC e i tasti funzione restano del programma. Con una funzione aperta il menu e' in consultazione: ci si muove, ma Invio non avvia nulla. Col mouse vale lo stesso del legacy ( SbhMenuView.cpp:2208-2231 ): un clic su una funzione la sceglie e apre il pannello di avvio; il doppio clic la avvia subito con le scelte che il pannello ha in quel momento (tipo di lavoro proposto o gia' scelto, modalita', ruolo e stampante ricordati), senza passare da Avvia . Se la voce non puo' partire (nessun dispositivo compatibile) resta il pannello, che dice perche'. Il doppio clic su un ramo lo apre o lo chiude; in consultazione non avvia nulla. ✔ Verifica: doppio clic su «1.1.1.1 Condizioni Pagamento» e la funzione parte in Inserimento, Definitiva, sull'uscita predefinita, senza fermarsi sul pannello. ✔ Verifica: tornati al menu da una funzione, senza toccare il mouse, ↓ e ↑ muovono il fuoco a partire dalla voce appena usata. ✔ Verifica: Invio su una funzione la fa partire senza passare dal pulsante Avvia . ✔ Verifica: accanto a ogni voce c'e' il suo numero. ✔ Verifica: sopra l'albero c'e' il titolo «Funzioni». ✔ Verifica: scritto «Condizioni», il titolo diventa «Risultati». ✔ Verifica: la parola e' evidenziata in ogni voce trovata (almeno tre: Tabelle, Stampa, Export). ✔ Verifica: i rami sono aperti fino a «1 Condizioni Pagamento», senza dover cliccare i padri. 3. Il pannello di avvio Nel client legacy una voce si avvia con una finestrella di opzioni; qui la scelta della voce apre al centro il pannello di avvio , che mette in fila le tre decisioni da prendere prima che il server parta: il tipo di lavoro, la modalita', l'uscita. In alto il percorso della voce nel menu, in basso il riepilogo di quello che partira'. Invio o Avvia fanno partire la funzione. ✔ Verifica: il percorso in alto e' B20 › 1.1 Parametri base › 1.1.1 Tabelle Generali › 1.1.1.1 Condizioni Pagamento . ✔ Verifica: il titolo e' «Condizioni Pagamento», col numero 1.1.1.1 davanti. ✔ Verifica: i tipi di lavoro sono quattro (Inserimento, Modifica, Interrogazione, Cancellazione), ognuno con la sua lettera ( I M R C ): sono quelli che la voce abilita, non tutti e sei. ✔ Verifica: sotto «Interrogazione» il suggerimento e' «Consulta i dati», su una riga come le altre carte. ✔ Verifica: all'apertura e' scelto il primo, Inserimento: la voce non dichiara un tipo predefinito (nessuna etichetta «predefinito») e il client fa come il legacy, prende il primo abilitato. ✔ Verifica: in Modalita' non c'e' la scelta Definitiva/Simulata: la voce ammette solo la definitiva, e una scelta con una sola risposta non si mostra… ✔ Verifica: …al suo posto c'e' scritto «Solo definitiva: la funzione aggiorna gli archivi»: la voce lo dichiara nel menu (tipo elaborazione 0 , come UpdateTipoElab in SbhMenuView.cpp:1059-1077 ), il client non lo deduce. Sulle voci che ammettono tutte e due le modalita' la scelta c'e', con la simulata proposta. (La schermata 04 e' di prima: mostra ancora i due pulsanti con «Simulata» spenta.) ✔ Verifica: in Uscita c'e' l'elenco dei dispositivi del server (DUMPR, HOLD, SYSPR, …) col protocollo a destra. ✔ Verifica: e' scelta la stampante predefinita della sessione (SYSPR), con l'etichetta «PREDEFINITA». ✔ Verifica: cliccato «Interrogazione», il riepilogo in basso dice «Interrogazione»… ✔ Verifica: …«Definitiva» e l'uscita ( Testo su SYSPR ). Il ruolo (ALL, SYSADMN, SYSADMNA) compare solo quando l'utente ne ha piu' di uno; l'ultimo scelto si ricorda. 4. La stella dei Preferiti e il libro del manuale Accanto al titolo ci sono due icone. La stella mette la voce nei Preferiti: si ricordano nel browser e compaiono nel benvenuto (§10), anche per voci di altri moduli. Il libro apre il manuale in linea della funzione in una finestrella a parte accostata a destra, come la finestra del manuale del client legacy. ✔ Verifica: cliccata la stella, e' piena e colorata ( aria-pressed vero). ✔ Verifica: l'icona e' quella della stella piena, non il contorno. ✔ Verifica: il libro punta alla pagina della funzione, non alla home del sito: https://gsdoc.genesyssoftware.eu/page-function/E2001010101000000/1?prodotto=SIGEAdb (https: il sito rimanda li' anche chi chiede http). Si legge cosi': modulo E20 (la B iniziale diventa E), fase 01 , poi due cifre per ogni livello del percorso 1.1.1.1 completate a dodici ( 010101010000 ), e il prodotto dal livello SIGEA che il server dichiara al login ( 5… = SIGEAdb). Lo spec controlla l'indirizzo senza aprire il sito. ✔ Verifica: il link si apre in una scheda nuova ( target="_blank" ). 5. La maschera a video Avvia : il server manda la maschera e il client la disegna come il legacy, a colonne e righe di caratteri. Il menu si ritira in un pulsante «Menu» nella barra in basso, per lasciare lo spazio alla maschera. Il campo in input — quello che il COBOL sta aspettando — ha il bordo colorato e il focus; gli altri sono grigi e non si possono toccare, perche' nel legacy si scrive solo dove il programma chiede. I tasti funzione validi per quel campo stanno nella barra dei comandi in alto (accesi quelli ammessi): cambiano a ogni campo, perche' li dichiara il COBOL campo per campo. La barra in basso dice che funzione sta girando : il tipo di lavoro (con la sua icona), Definitivo o Simulato (il simulato su fondo arancione, per non scambiarlo), la stampante con cui la funzione e' partita (nome e tipo, per esempio PDF01 PDF ; se il programma la cambia con la finestra «Scegli la stampante», la barra si aggiorna) e il ruolo, se c'e'. Sono le scelte fatte nel pannello di avvio: restano anche dopo una ricarica della pagina. Sul menu gli indicatori non ci sono: le scelte correnti le mostra il pannello di avvio. Se la barra e' stretta (tante schede, finestra piccola, schermo diviso) gli indicatori si raccolgono in un pulsante compatto (l'icona del tipo di lavoro, SIM se simulato): il clic apre verso l'alto un pannello con tutti i dettagli. F7 sul campo in input mostra la mini-guida come il client legacy: form, maschera, campo, i tasti ammessi e il trigger del campo, con il codice della barra di stato di SBH (per esempio -N0702 BEA31 : segno, numerico, cifre e decimali, poi le lettere dei tasti). Resta accesa e segue il campo mentre ci si sposta; F7 di nuovo la spegne. Non manda niente al server: nel legacy F7 non e' un tasto del COBOL. La stessa scheda, per qualunque item, si apre con Maiusc + clic destro. ✔ Verifica: il campo «Codice pagamento» ha il focus appena la maschera arriva. ✔ Verifica: ha il bordo del campo in input… ✔ Verifica: …e gli altri campi (per esempio «Convalida») no. ✔ Verifica: la barra in basso dice la modalita' della funzione in corso (Definitivo o Simulato). ✔ Verifica: F7 sul campo apre la mini-guida con il form 20000FTB2 … ✔ Verifica: …e i tasti del campo, fra cui Esc Esci . ✔ Verifica: F7 di nuovo la spegne. ✔ Verifica: sotto la testata la griglia delle condizioni e' piena (1 CONTANTI, 2 RIMESSA DIRETTA, …), con la matita di riga. ✔ Verifica: il menu e' ridotto al pulsante «Menu» nella barra. ✔ Verifica: il pulsante di spegnimento (Esci dalla sessione) e' spento: dentro una funzione non si esce, si troncherebbe il programma a meta'. Esc in una maschera non chiude una finestra del browser: e' il tasto Esci del COBOL, e lo manda al server. Per questo i dialog del client (guida, ricerca) si chiudono con la X . 6. F10 — la guida del campo Un campo con la guida ha un piccolo angolo colorato in basso a destra. F10 apre la guida: titolo del campo, testo di help e, se ci sono, i valori ammessi da scegliere. Il testo arriva dai file di help che il client ha gia' scaricato, quindi aprire e chiudere la guida non manda niente al server. ✔ Verifica: il campo «Codice pagamento» ha l'angolo della guida. ✔ Verifica: F10 apre il dialog con il titolo «Codice pagamento». ✔ Verifica: il testo e' l'help del campo: «I codici a partire dal 99.900 sono riservati GENESYS…». ✔ Verifica: la X chiude la guida. ✔ Verifica: chiusa la guida senza scegliere, il cursore torna sul campo «Codice pagamento», come nel legacy: si riprende a scrivere senza cliccare. ✔ Verifica: il campo resta com'era, vuoto e ancora in input. 7. F8 — la ricerca F8 sul codice chiede al COBOL la sua ricerca: il server risponde con una FIND-GRID e il client la apre come finestra di ricerca. Il server manda le righe una pagina alla volta (qui dieci); la casella in alto filtra solo le righe gia' arrivate, perche' il filtro vero l'ha gia' fatto il COBOL col valore del campo. Mentre carica Finche' il server manda le righe la finestra e' aperta ma vuota, con lo spinner: si capisce che il tasto e' stato preso e che si sta aspettando il server, non il client. Per fotografarlo lo spec trattiene per un momento le risposte del server sul WebSocket (non le altera, le ritarda). ✔ Verifica: al centro c'e' lo spinner con «Ricerca in corso…». ✔ Verifica: «Conferma selezione» e' spento finche' le righe non ci sono. La prima pagina ✔ Verifica: arrivate le righe, in basso a sinistra c'e' «10 righe caricate». ✔ Verifica: «Altre righe» e' acceso: il server ha detto che ce ne sono altre. ✔ Verifica: in fondo alla griglia non c'e' scritto «fine elenco»: il conteggio lo da' solo il piede della finestra, perche' la griglia non sa quante pagine ha ancora il server. Altre righe «Altre righe» (o Pag. giu') chiede la pagina successiva. Le righe gia' caricate restano a video, ferme e sbiadite, con lo spinner sopra: non si perde il punto in cui si era. ✔ Verifica: sopra le righe ferme c'e' lo spinner con «Carico altre righe…». ✔ Verifica: arrivata la pagina, il conteggio dice «20 righe caricate»: la seconda pagina si accoda. La scelta torna al COBOL Dopo «Altre righe» la selezione va sulla prima riga nuova (103): una freccia giu' la porta sulla 104, Invio conferma. La scelta torna al COBOL come risposta alla ricerca, e il programma continua da solo: legge la condizione e porta il cursore al campo successivo. ✔ Verifica: il codice scelto (104) e' nel campo «Codice pagamento». ✔ Verifica: il COBOL ha caricato la testata e il campo in input ora e' «Convalida». ✔ Verifica: accanto ai codici compaiono le descrizioni in blu («Dalla data della fattura», «Non attiva», «Normale»): il client le prende dalla guida del campo, senza chiederle al server. ✔ Verifica: la barra dei tasti e' cambiata in F4 F12 Conferma Esc Esci , quelli del nuovo campo. 8. Opzioni › Carattere di maschere e griglie Le maschere del legacy sono pensate per 80 colonne: su uno schermo grande possono essere piccole. Il pulsante con le tre righe in basso a sinistra apre le Opzioni ; «Carattere di maschere e griglie» ha tre pulsanti, − A + . Il carattere scala tutta la maschera (campi, righe, testi) e la griglia, e si ricorda nel browser per le sessioni successive. «A» torna alla misura normale. ✔ Verifica: all'apertura l'opzione dice «100%». ✔ Verifica: due clic su + e dice «120%». ✔ Verifica: il campo «Codice pagamento» e' piu' largo di prima. ✔ Verifica: anche le righe della griglia sono piu' alte. ✔ Verifica: «A» riporta il campo esattamente alla larghezza di partenza. 9. Il menu in consultazione durante la funzione Con una funzione aperta il menu non sparisce: il pulsante «Menu» nella barra lo riapre sopra la maschera, per guardare dove si e' o cercare la prossima voce. Non si puo' pero' avviare niente: il server sta eseguendo un programma e il legacy ne esegue uno per volta per sessione. ✔ Verifica: in testa al menu c'e' l'avviso «Funzione in corso: menu in consultazione». ✔ Verifica: le voci sono spente (grigie, non avviabili). ✔ Verifica: un secondo clic su «Menu» lo richiude.