Manuale di riferimento

From VFront Wiki

Jump to: navigation, search

Stai leggendo la versione italiana Italian.gif del documento.
The English version English us.gif of this document is Reference Manual

Contents

Introduzione

Licenza di questo documento

Copyright (c) 2007-2010 Marcello Verona <marcelloverona@gmail.com> 
Permission is granted to copy,
distribute and/or modify this document under the terms of the GNU
Free Documentation License, Version 1.2 or any later version
published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of
the license is included in the section entitled "GNU Free
Documentation License".

Licenza del software VFront

VFront è un software rilasciato sotto licenza GPL 2.0 Per maggiori informazioni sulla licenze si rimanda al file LICENSE distribuito insieme a questa documentazione oppure su http://www.gnu.org/copyleft/gpl.html



A chi è rivolto questo software

VFront è un front-end web based per database MySQL o PostgreSQL.


I ruoli su VFront negli enti/organizzazioni

Su VFront i diritti sono definiti dal gruppo di appartenenza ed il livello di amministrazione.

I livelli di amministrazione sono tre. Verranno qui descritti i ruoli con specifico riferimento all’ente o organizzazione in cui VFront è utilizzato:

Livello 3: Amministratore

Job description:

Competenze e conoscenze:

Mansioni e responsabilità:

Identificazione con il ruolo nell’ente/organizzazione:

Può essere un sistemista o un DB administrator dell’ente/organizzazione.

Livello 2 (amministratore locale o tutor):

Job description:

Competenze e conoscenze:

Mansioni e responsabilità:

Identificazione con il ruolo nell’ente/organizzazione:

Può essere un referente di progetto dell’ente/organizzazione o un utente esperto con il mandato di gestire il gruppo di lavoro.

Livello 1 (utente base):

Job description:

Competenze e conoscenze:

Mansioni e responsabilità:

Identificazione con il ruolo nell’ente/organizzazione:

Può essere un dipendente di qualsiasi ruolo/inquadramento che debba/possa accedere ai dati.



Le tre leggi di VFront

Rubando la forma del titolo di questo paragrafo da Asimov, sono qui enunciati i principi generali secondo i quali si è cercato di sviluppare VFront:

  1. VFront non sporcherà il vostro database, non creerà tabelle o viste aggiuntive sul vostro DB e non modificherà i dati delle tabelle, a meno che non lo si voglia esplicitamente fare attraverso maschere. Creerà invece un suo discreto database di regole (o un suo schema su PostgreSQL). Non prende possesso del vostro database, ma permette di usarlo.
  2. VFront non bypasserà le regole che sono state impostate nel vostro database. Con VFront è possibile creare nuovi vincoli più restrittivi di quelli che avete creato sul database (in termini di chiavi esterne, input accettabili sui tipi di campi, etc.), ma mai il contrario.
  3. VFront funzionerà tanto meglio quanto è stata più rigorosa la definizione del vostro database. A VFront piacciono la normalizzazione, le chiavi esterne, le chiavi primarie possibilmente numeriche, i commenti sulle tabelle e sui campi, etc... Garbage in, garbage out: non si scappa.


Torna all'indice

Caratteristiche del sistema

Tecnologia lato server

VFront è un’applicazione web con le seguenti caratteristiche lato server:

Per maggiori informazioni leggere anche la Guida all'installazione manuale.



Tecnologia lato client

VFront fa un grande uso di Javascript. Non è possibile utilizzare VFront senza javascript attivato: sarebbe completamente inanimato e passerebbe la stessa differenza che c’è tra un pezzo di legno e Pinocchio (quindi, come qualcuno ha rilevato, se ne deduce che Pinocchio è scritto in Javascript ;-).

Tuttavia sono stati fatti sforzi affinché l’applicazione funzioni correttamente con diversi browser: i browser attualmente testati con successo ad oggi sono:

I browser parzialmente supportati sono:

Il supporto per Safari non è ancora stato testato. Allo stato attuale si consiglia agli utenti Mac di utilizzare VFront con Firefox.

Struttura di base delle directory

La struttura della directory di VFront è così formata:


ROOT_VFRONT
_docs
_install
admin
conf
files
   -- docs
   -- docsadmin
   -- html
   -- tmp
   -- xsl_custom
img
   -- mime
inc
locale
js
   -- dhtmlxGrid
   -- jscalendar
   -- scriptaculous
   -- uploadprogress 
   -- yav
plugins
   -- FCKEditor
   -- highlight
   -- phpgettext
   -- phpmailer
   -- phpExcelReader
   -- ods
   -- ttf
stats
themes
sty
  -- jscalendar
usr
xml


Descrizione delle cartelle e diritti

Alcune cartelle devono essere attribuite ad Apache: nello specifico FILES e le sue sottocartelle. Per ulteriori informazioni si veda la Guida all'installazione manuale.

Le cartelle con l'underscore davanti non sono fondamentali per il funzionamento dell'applicazione:

_DOCS
contiene la documentazione
_INSTALL
contiene le procedure di installazione. Si consiglia caldamente di cancellare la cartella _INSTALL dopo l'installazione.
ADMIN
contiene gli script relativi all'area di amministrazione.
CONF
contiene il file di configurazione. Può essere una buona idea spostarlo al di fuori dell'area sottoposta a browsing. Se vuoi fare questo dovrai modificare il file di connessione inc/conn.php. Leggi la Guida all'installazione se vuoi fare questo.
FILES
contiene gli allegati che si genereranno qualora si abilitasse l'uso degli allegati per le tabelle. Gli allegati sono qui salvati come n.dat, dove n indica il valore della chiava primaria della tabella allegato. Contiene inoltre tutte le sottodirectory scrivibili da parte di Apache: le sottocartelle di files sono DOCS, per la documentazione personale; DOCSADMIN per la documentazione dell'amministratore; HTML è la cartella dove possono vengono salvati dei file HTML che contengono le ”tendine” con i valori dei campi di tipo ”select_from”, utile per l'ottimizzazione delle prestazioni di VFront (si veda l'impostazione dei campi per maggiori informazioni); TMP per alcune operazioni di VFront; XLS_CUSTOM, dove vengono salvati il file XSL e XSL-FO personali (si veda la sezione relativa ai Report).
IMG
contiene le immagini dell'applicazione (icone, sfondi, etc.)
INC
contiene i file di inclusione degli script, come i file di funzioni e molto altro.
JS
contiene gli script Javascript e numerose cartelle di framework sviluppati da terze parti.
PLUGINS
contiene alcuni script, come i file utilizzati per la generazione di Open Document (cartella ODS) e FCKEDITOR contiene l'omonima applicazione, utilizzata opzionalmente per i campi di testo ”richtext”.
THEMES
è la cartella dove sono archiviati i temi grafici di VFront
STATS
contiene gli script relativi alle statistiche.
STY
è la cartella che contiene i fogli di stile css.
USR
è una cartella vuota, può essere utile per script personali per chi vuole aggiungere funzioni a VFront.
XML
contiene script relativi all'XML e alle trasformazioni XSL.


Torna all'indice

Panoramica dell'architettura

La logica del front-end VFront

VFront funziona mediante un sistema di regole o "registri di regole" che si interpone fra l'interfaccia utente ed il database di dati. Questo sistema, permette di configurare regole di accesso alle tabelle, alle viste e ai singoli campi, mediante vincoli e formattazioni speciali configurabili dall'amministratore tramite una interfaccia apposita.

E' possibile impostare campi con ricerca, campi obbligatori, tipo di input per il singolo campo e molto altro in modo personalizzato per ogni gruppo per un numero indefinito di gruppi. Si noti inoltre che tutte le regole vengono scritte in un database separato da quello dei dati, in modo da non interferire in alcun modo con la struttura di quest'ultimo.

Ci riferiremo ai due database denominandoli DB dati (il database del quale VFront sarà front-end) e DB regole o DB VFront.



Sistema dei registri

VFront, in altri termini, permette di creare un ulteriore sistema di controllo sui dati, oltre a quello normalmente predisposto da un database relazionale come MySQL 5 o PostgreSQL 8, con in più la personalizzazione a livello di gruppo di utenti.

Ogni utente è inserito in uno ed un solo gruppo e per ogni gruppo c'è un sistema di regole. Sarà possibile ad esempio, mostrare alcune tabelle in sola lettura per un gruppo di utenti; in lettura e scrittura ad un altro; lettura, scrittura e cancellazione ad un terzo, oppure mostrare un set di tabelle ridotto per un quarto gruppo.

L'utente che accede al sistema si troverà un'interfaccia con funzioni differenti su differenti tabelle a seconda che appartenga ad un gruppo con maggiori o minori diritti. E' possibile inoltre impostare i singoli campi delle tabelle e le sotto-maschere visibili in base alle esigenze dei differenti gruppi di utenti.



Schema entità/relazioni del database di VFront

E qui riportato lo schema del database di regole (DB VFront):


Schema entità relazioni
allegato
In questa tabella sono registrate le informazioni relative ai file allegati alle tabelle. I file non sono salvati in database ma nel filesystem. In database (in questa tabella) sono registrate solo le informazioni relative al collegamento del file al record ed alla tabella, il nome del file ed altre informazioni di servizio.
gruppo
E' la tabella dove sono registrati e descritti i gruppi di accesso al front-end.
link
E' la tabella dove sono registrate le informazioni relative ai link collegati ai record delle tabelle
log
Nella tabella log sono registrate tutte le operazioni di INSERT, UPDATE e DELETE che vengono eseguite sul database dati. La tabella log permette inoltre uno storico dei record con possibilità di ripristino su dati modificati o cancellati per sbaglio, anche dopo l'eliminazione fisica del dato dal disco. Si veda a riguardo il capitolo “Log e Ripristino dati”.
recordlock
E' questa una tabella che permette la registrazione di accesso in modifica ai record del database dati, al fine di impedire l'accesso concorrente in modifica ad un record già sottoposto a modifica da altro utente.
registro_tab
Sono qui inserite le regole generali per ogni tabella, per ogni gruppo. La tabella in una prima configurazione del front-end legge l'information_schema di MySQL 5 e configura un primo gruppo predefinito. In questa tabella sono registrati i diritti di accessibilità della singola tabella per il singolo gruppo in SELECT, INSERT, UPDATE, DELETE nonché l'esportabilità dei dati della tabella.
registro_col
Tabella figlia di registro_tab ed ad essa collegata tramite chiave esterna, sul campo id_table, questa tabella documenta i campi delle tabelle impostati per ogni gruppo. Sono qua configurate le opzioni di visualizzazione dei singoli campi, il tipo di input, il fatto che i campi siano o meno obbligatori, eccetera.
registro_submask
Collegata alla tabella registro_tab mediante chiave esterna sul campo id_table, registro_submask contiene le informazioni sulle sotto-maschere per ogni tabella, per ogni gruppo.
registro_submask_col
Collegata alla tabella registro_submask mediante chiave esterna sul campo id_submask, registro_submask_col descrive i singoli campi delle sotto-maschere, per ogni tabella, per ogni gruppo.
stat
sono qui registrate le query e le altre informazioni per le statistiche personalizzate.
utente
sono qui registrati gli utenti ed il collegamento tramite chiave esterna (campo gid) alla tabella gruppo)
variabili
In questa tabella sono registrate delle variabili di ambiente. Queste possono essere generiche (per tutto l'ambiente VFront) o specifiche per un gruppo. In caso di coesistenza dei due tipi di variabili, quella specifica per il gruppo ha la priorità rispetto a quella generica. Si veda il capitolo Le variabili di sistema|variabili di sistema per i dettagli.
xml_rules
In questa tabella sono registrate le informazioni per la generazione dei report.




Logica di autenticazione

Info.gif
Il processo di autenticazione è descritto in dettaglio anche nella Guida all'installazione.

L'accesso a VFront avviene attraverso autenticazione e accreditamento di diritti in passi separati. Questo implica che per l'autenticazione sia possibile utilizzare strumenti esterni (ad esempio directory LDAP o altri database), mentre l’accreditamento dei diritti avviene sempre mediante l’interrogazione del database di regole di VFront (tabella utente).

E' possibile quindi autenticare gli utenti

Tutti i metodi descritti tranne il primo sono metodi "2 step" ossia autenticazione e accreditamento sono processi separati.

L’illustrazione mostra il processo di autenticazione a 2 step.


Processo di login a 2 step

Come mostrato in figura, la procedura è la seguente: l’utente tenta l’autenticazione su VFront mediante email e password.

  1. Viene interrogato lo strumento scelto per l’autenticazione (LDAP, una tabella di database, ecc.); se l’utente non esiste viene rigettato con una segnalazione a video; se l’utente esiste viene cercato sul database delle regole (DB VFront).
  2. Se l’utente esiste vengono lette le credenziali di accesso (gruppo di appartenenza e livello di amministrazione) e registrate in sessione.
  3. Qualora invece l’utente non esistesse, questo viene registrato automaticamente in database, in quanto il suo account esiste nello strumento di autenticazione (LDAP, altro DB ecc) quindi può accedere al sistema.
  4. Gli verranno tuttavia attribuiti i diritti minimi, ossia sarà assegnato al gruppo 0 (gruppo di default, per il quale si consiglia di impostare diritti di sola lettura) e nessun livello di amministrazione.

Sarà successivamente compito degli amministratori "promuovere" l’utente e/o attribuirlo al corretto gruppo di appartenenza.



Traduzione dell'interfaccia

VFront utilizza lo standard gettext per le traduzioni del codice PHP. Lo utilizza in due maniere possibili:

  1. Modalità nativa, cioè mediante l'estensione php_gettext. Per utilizzare questa modalità si veda il riferimento sulla documentazione di php su http://it.php.net/manual/en/ref.gettext.php
  2. Modalità interpretata mediante la libreria phpgettext, presente nella cartella plugins

VFront utilizza una o l'altra modalità automaticamente: se è presente la modalità nativa, questa sarà utilizzata prioritariamente (in quando dotata di migliori performance), in caso contrario verrà utilizzata la modalità interpretata.

Traduzione delle stringhe javascript

Per quanto riguarda invece la traduzione del codice javascript, ossia dei messaggi all'utente generati lato client, si è per ora utilizzato un sistema di funzioni simili a gettext, ma con una differente interpretazione.

Nel codice javascript i messaggi sono mandati mediante la funzione standard di gettext, cioè _. Ad esempio nel codice si potrà trovare il messaggio _('Attenzione') che viene interpretato da un file incluso che si trova dentro la directory js/lang/ e si chiama vfront-en.js nel caso dell'inglese, vfront-fr.js nel caso del francese, etc.

Questo sistema è sperimentale ed è possibile che in futuro si utilizzi un sistema differente (magari più standardizzato).

L'impostazione della lingua

Per impostare una nuova lingua è necessario impostare la costante FRONT_LANG nel file di configurazione. Per maggiori informazioni si suggerisce di leggere la guida all'installazione.

La creazione di una nuova traduzione

Per creare una nuova traduzione è necessario utilizzare i file .po presenti nella directory locale/. Esiste anche un modello (messages.pot) che si può utilizzare per creare una nuova traduzione.

Sarà quindi necessario creare una nuova directory dentro locale, una sottodirectory LC_MESSAGES e copiare il proprio file generato (.po e .mo) dentro quest'ultima. I file di traduzione hanno nome messages.po e messages.mo.

Per maggiori informazioni si veda il ramo delle directory delle lingue presenti. La traduzione del javascript funziona invece mediante i file presenti dentro js/lang/. Si prenda ad esempio il file vfront-en.js come modello.


Torna all'indice

La scheda utente

La scheda utente è il cuore di VFront. E’ attraverso questa maschera che vengono letti, inseriti, modificati e cancellati i record. Il funzionamento della scheda utente è documentato nel manuale d’uso per utente. In questo documento verranno esposti i dettagli tecnici. Per una documentazione rivolta all’uso si rimanda alla lettura del documento suddetto.

La scheda utente è in realtà un unico script con numerosi parametri che carica le impostazioni per ogni tabella dal registro di regole in base al gruppo con il quale si è fatto login. Può essere una pagina piuttosto pesante, specialmente se configurata con molti menù a tendina relativi a chiavi esterne (si veda l’amministrazione dei campi per i dettagli). In compenso viene caricata una sola volta per ogni tabella. Infatti lo scorrimento tra i record, avviene mediante chiamate XML asincrone del browser, tecnica nota anche come AJAX (Asynchronous Javascript and XML).

In pratica quando si avanza di un record la pagina non viene ricaricata come avviene nella maggior parte delle applicazioni web di concezione classica, ma viene mandata una chiamata nascosta al server, tramite Javascript.

Il server risponde mandando (sempre in modo invisibile all’utente) il dettaglio del record successivo in formato XML, il quale viene letto dal browser. A questo punto i contenuti andranno a popolare i box predisposti.

Anche la manipolazione dei record avviene nello stesso modo, con il vantaggio di ottimizzare le transazioni server/client limitandole allo stretto necessario. Ad esempio qualora si volesse modificare un record in una ipotetica tabella “notizia” e si apportasse solo una modifica al titolo, attraverso le chiamate AJAX non si spedirebbe anche la descrizione, la data ed i valori di tutti gli altri campi, ma solo il valore modificato, ossia il nuovo titolo. In questo modo il numero di byte spediti in ogni transazione viene ottimizzato.



Navigazione tra i record

Nelle maschere i record sono ordinati secondo un campo impostato dall'amministratore (si veda oltre la sezione di amministrazione).

La navigazione tra i record è possibile in due maniere. La più immediata avviene attraverso i tasti di navigazione presenti nella maschera (vedi figura 3). E’ possibile però saltare direttamente ad un record mediante doppio click sul contatore. Questo si trasformerà in una casella di testo nel quale si può scrivere il numero di record al quale si vuole saltare e confermare con il tasto invio. La casella che appare con il doppio click offre anche un’utile funzione nascosta per l’amministrazione. Se si conosce l'ID del record (il codice numerico chiave primaria) è possibile scrivere ad esempio id:418 e si salterà non al 418° record, ma al record di ID 418 della tabella in oggetto.


Salto tra record in una maschera

Creazione, modifica ed eliminazione record

Se si ha il diritto di creare, modificare e eliminare i record della tabella in esame, appariranno i pulsanti relativi alla creazione di record (Nuovo), alla modifica (Modifica) e all’eliminazione.

Per quanto riguarda la modifica è possibile che il sistema non permetta la modifica di un determinato record se qualche altro utente sta già operando modifiche sullo stesso. In tal caso appare un messaggio esplicativo. Il tempo per il quale un record resta bloccato dipende da un parametro impostato in numero di secondi nella tabella variabili. Di default questo parametro è stato settato su 240 secondi (4 minuti) ma si può modificare a scelta dell’amministratore. Naturalmente se l’utente che sta modificando il record dovesse premere “Annulla” o “Salva” il record verrebbe sbloccato anche se non sono passati i 240 secondi.

Per quanto riguarda l’eliminazione dei record può succedere che appaia un messaggio di errore se l’utente cercasse di eliminare un record con record figli, presenti nelle sotto-maschere. In tal caso è necessario eliminare tutti i record figli dalle sotto-maschere prima e poi il record dalla maschera.


Vista scheda e vista tabella

Dalla vista scheda è possibile passare alla vista tabella, nel quale viene mostrato un numero di record definito nelle variabili (si veda il capitolo Variabili). Il valore di record mostrati predefinito è 20. Con doppio click su un record si può passare alla vista scheda sul record cliccato.


La ricerca

La ricerca è una vera e propria "query by form". Quando si clicca su ricerca i campi della maschera si svuotano e diventano verdi. Si possono scrivere dei parametri e inviare la ricerca. In questo modo vengono cercati i record che rispondono ai requisiti inseriti. Si noti che la ricerca avviene per uguaglianza, non per affinità (operatore ’=’ , non operatore ’LIKE’) e che la ricerca funziona attraverso AND logici (non OR).

Se il risultato è uno solo la maschera mostrerà il record ricercato, se sono molti mostrerà i risultati nella vista tabella. E’ possibile infine aiutare la ricerca mediante i campi con suggerimenti, impostabili dall’amministrazione della tabella. In questo caso mentre si digiterà in un campo appariranno dei suggerimenti.

Auto completamento nella ricerca

Auto completamento nella ricerca

Questo può essere utile in campi di testo significativi ed è impostabile dall’amministrazione dei campi della tabella.

Ricerca di una sotto-stringa

E' possibile utilizzare l'asterisco (*) oppure il carattere percentuale (%) per trovare i record in modalità LIKE. Ad esempio se cercassi in un elenco di cognomi Ross* (oppure Ross%) VFront restituirà tutti i cognomi che iniziano per “Ross” (Rossi, Rossini, Rossetti, Rossomalpelo, etc.)



Le scorciatorie da tastiera

Per un uso di VFront più rapido e produttivo (specialmente in caso di data entry) può essere utile conoscere le scorciatoie da tastiera delle maschere di VFront. Se opportunamente configurato nelle variabili (si veda il paragrafo Le variabili di sistema), è possibile vedere in ogni momento le scorciatoie da tastiera della maschera cliccando sulla linguetta ominima a destra dello schermo.

Navigazione tra i record:

CTRL + freccia destra
avanti di un record (corrisponde al tasto ”>” )
CTRL + freccia sinistra
indietro di un record (corrisponde al tasto ”<” )
CTRL + Maiusc + freccia sinistra
avanti veloce tra i record (corrisponde al tasto ”> >” )
CTRL + Maiusc + freccia sinistra
indietro veloce tra i record (corrisponde al tasto ”< <” )
CTRL + freccia su
Va al primo record (corrisponde al tasto ”|<” )
CTRL + freccia giù
Va all'ultimo record (corrisponde al tasto ”>|” )

Operazioni sulla maschera:

CTRL + ALT + N
Nuovo record
CTRL + ALT + M
Modifica
CTRL + ALT + A
Annulla
CTRL + ALT + S
Salva
CTRL + ALT + E
Elimina
CTRL + ALT + R
Cerca
CTRL + Invio
(in modalità ricerca) Invia la ricerca

Allegati e link:

CTRL + ALT + G
Apri gli allegati (se presenti nella maschera)
CTRL + ALT + L
Apri i link (se presenti nella maschera)
Important.gif
Nota bene: In realtà tutte le operazioni CRTL+ALT+tasto avrebbero lo stesso effetto anche con ALT+tasto. Le combinazioni da tastiera CRTL+ALT sono state impostate per non sovrapporsi alle combinazioni già presenti sul browser: ad esempio ALT+E (elimina in VFront, in Firefox apre il menù Segnalibri). Il problema è risolvibile con la combinazione CTRL+ALT+tasto, con la quale non vengono attivati i comandi da tastiera tipici del browser.


Torna all'indice

Introduzione all'amministrazione del front-end

Il menù di amministrazione è accessibile per gli utenti abilitati mediante il link nella barra in alto a destra.

Amministrazione

L'amministrazione del front-end è definita da un diritto indipendente all'appartenenza ad un gruppo.

Il livello di amministrazione può essere:

Gli utenti amministratori (livello 2 e 3) hanno accesso all'amministratore mediante il link “amministrazione” presente in tutte le pagine il alto a destra. Attraverso questo link si accede a tutte le funzioni di amministrazione dell'applicazione VFront. Alcuni menù sono visibili solo al superadmin, e sono

  1. il DUMP dei database (DB regole e DB dati)
  2. La creazione e amministrazione dei gruppi/registri
  3. La creazione di altri utenti superadmin e di utenti tutor (livello 2).
  4. Le variabili di sistema ed i test di sistema
  5. Le impopstazioni grafiche e di layout

Sia gli amministratori (livello 3) che i tutor (livello 2) possono invece operare sui log, e modificare le appartenenze degli utenti a gruppi. Possono “promuovere” altri utenti al loro pari livello, cioè un amministratore di livello 3 potrà creare un tutor (livello 2) o un amministratore (livello 3), mentre un tutor (livello 2) non potrà creare un amministratore di livello 3 in quanto avrebbe un livello più alto del proprio. Sia gli amministratori (livello 3) che i tutor (livello 2) possono creare nuovi report XML, XHTML, PDF o RTF (questi ultimi formati solo in presenza di Apache FOP), possono creare statistiche con grafici e tabelle.

Torna all'indice

Amministrazione delle tabelle e viste

Cosa sono e a cosa servono i gruppi/registri su VFront

Su VFront è possibile creare dei gruppi di utenti a cui corrispondono registri di regole sulle tabelle e sui campi: ad esempio è possibile creare un gruppo che possa solo accedere alla tabella A e non alla tabella B. E' possibile creare un gruppo che possa accedere alla tabella A in scrittura e modifica, alla tabella B in scrittura, modifica e cancellazione e alla tabella C in sola lettura. E' inoltre possibile mostrare diversamente i campi delle tabelle a diversi gruppi (ad esempio nascondere un campo, e così via).

Ogni gruppo ha un sistema di regole del tutto indipendente dagli altri gruppi, definibili dall'amministratore.

Il sistema gruppi/registri in pratica

Come la scheda è il cuore di VFront lato utente, il menù dei gruppi registri lo è per la parte di amministrazione. Quando si accede al menù registri, appare una tabella riassuntiva con i registri/gruppi presenti al momento. Il link “Crea nuovo gruppo” fa proprio quello che ci si aspetta, con la possibilità di scrivere un nome per il nuovo gruppo, una descrizione e “clonare” le impostazioni di altro gruppo. La clonazione può essere comoda per non dover riconfigurare da zero tutte le opzioni per le tabelle, ma partire da un modello di configurazione esistente. Una volta creato il nuovo gruppo risulterà completamente indipendente dagli altri, compreso quello dal quale è stato clonato. Naturalmente è possibile anche creare un gruppo senza alcuna impostazione di partenza: è sufficiente selezionare dalla tendina della clonazione ”crea un registro vuoto”. E' possibile anche eliminare i gruppi, tranne il gruppo predefinito. Quando si eliminano gruppi con utenti, questi verranno spostati automaticamente nel gruppo predefinito.


Il menù dei registri/gruppi in un'applicazione reale


Dalla tabella HTML che mostra i gruppi visibile nella figura 6 si può accedere mediante il link “amministrazione” alle funzioni più interessanti del front-end. Si ha qui l'amministrazione delle tabelle del database per il gruppo preso in esame. Si ricorda che nella logica di VFront le impostazioni sulle tabelle di database per un gruppo non influenzeranno in maniera alcuna le impostazioni per gli altri gruppi. Da questa visualizzazione è possibile aver un quadro della situazione: le tabelle identificate dal link blu sono quelle sulle quali è stata operata una qualche modifica, mentre quelle rosse sono quelle senza ancora impostazione da parte dell'amministratore. E' qui possibile avere anche una panoramica veloce di quali tabelle sono accessibili in lettura, scrittura, modifica e cancellazione, nonché il numero delle sotto-maschere impostate. In coda all'elenco sono visibili le viste con le loro impostazioni. Le viste create nel database su VFront appaiono e sono trattate in maniera simile alle tabelle vere e proprie, tranne alcuni dettagli che saranno discussi nel paragrafo Impostazione delle viste SQL


Regole per le tabelle per un gruppo (gruppo 0 - "default")


In alto a sinistra c'è invece un link "Funzioni rapide" che permette di operare modifiche su tutte le tabelle contemporaneamente. E' possibile ordinare l'elenco delle tabelle cliccando sulle etichette delle colonne. Per accedere alla configurazione di una tabella (per il gruppo in oggetto) è sufficiente cliccare sul suo nome.







Impostazioni generali di tabella

Come presente in figura si può osservare che l'amministrazione delle tabelle per i gruppi funzionano mediante una pagina con linguette. La prima linguetta riguarda le impostazioni generali (v. figura 8).

Impostazioni per una tabella (tabella appalto) per il gruppo 0 (default)

Qui è impostabile:


Per confermare l'operazione si deve esplicitamente cliccare su “Salva impostazione generale” (il salvataggio delle impostazioni non è automatico).

E' anche possibile salvare l'impostazione per tutti i gruppi presenti nel registro.

Si noti che di default sono negati tutti i diritti su tutte le tabelle per tutti i gruppi. Sarà compito dell'amministratore dare ai singoli gruppi i diritti che loro competono.


Impostazione allegati e link

Come si può notare dalla figura precedente ci sono ulteriori impostazioni nella sezione “Allegati e link”. Attraverso VFront è infatti possibile collegare a qualunque tabella degli allegati e dei link. Questi saranno poi mostrati nella scheda utente. E' qui possibile configurare la possibilità di leggere, scrivere ed eliminare allegati e link per la tabella in oggetto per questo gruppo.





Impostazione dei campi

La seconda linguetta dell'amministrazione tabella per gruppo è l'impostazione dei campi.

Per ogni campo è possibile impostare

campo visibile (si|no)
se si sceglie "no" il campo non apparirà nella scheda
campo obbligatorio
come suggerisce la dicitura, impone al dipendente di compilare il campo. In caso contrario un messaggio “alert” avviserà che è impossibile salvare l'inserimento o la modifica.
imposta i suggerimenti
permette di mostrare, mentre si scrive in un campo, un elenco dei valori già presenti (autocompleter). E' molto utile su alcuni campi per la ricerca (come i titoli o le denominazioni). Visibile in vista tabella permetterà di mostrare il campo nella vista tabella (indipendentemente dalla vista scheda).

Come visibile in figura, l primo campo appare con delle chiavette gialle: questo significa che il campo è una chiave primaria (PRIMARY KEY). In tal caso, se il campo è numerico, di default non verrà mostrato nella maschera. Può essere mostrato invece nella vista tabella. Il secondo campo della figura ha invece delle chiavette blu: significa che si tratta di una chiave esterna (FOREIGN KEY). In questo caso quasi sempre sarà utile impostare il campo con una tipologia "valori definiti da tabella" (si veda oltre per ulteriori dettagli).


Impostazione dei campi su una tabella di VFront

Per quanto riguarda i tipi di input, a seconda della tipologia di campo sono possibili solo alcune impostazioni. In linea generale la politica di VFront è di poter impostare regole più restrittive del database, e non viceversa (si veda il paragrafo Le tre leggi di VFront). Questo significa che, per esempio, se un campo è stato impostato nel database come numerico, il front-end non permetterà di impostarlo come testo. Nel caso di testo lungo invece sarà possibile impostare da VFront il campo come testo corto o testo lungo. A seconda delle scelte fatte in questa maschera di amministrazione si può determinare come il gruppo dovrà vedere la scheda per la tabella in oggetto.

Sono di seguito descritti I tipi di input per i tipi di campi principali, in base alla definizione SQL del database. Per ogni caso è riportato come il campo sarà mostrato in HTML nella maschere:

numero
(INTEGER, [MEDIUMINT, BIGINT, etc]) tipo proposto da VFront: numero intero
  • viene mostrato un campo di input HTML di tipo ”text” corto
numero con virgola
(FLOAT [DOUBLE, DECIMAL]) tipo proposto da VFront: numero con virgola
  • viene mostrato un campo di input HTML di tipo ”text”
booleano
(in MySQL TINYINT(1) o BOOL in PostgreSQL) tipo proposto da VFront: booleano vero|falso
  • viene mostrato un checkbox
testo
(VARCHAR [CHAR, etc]) tipo proposto da VFront: testo libero corto, password
  • in caso ”testo libero corto” viene mostrato un campo di input HTML di tipo ”text” lungo
  • in caso ”password” vengono mostrati gli asterischi (campo HTML di tipo password).
    Nota bene! Allo stato attuale le password sono automaticamente trasformate in hash MD5
testo lungo
(TEXT, MEDIUMTEXT O LONGTEXT)tipo proposto da VFront: testo lungo, testo corto, testo formattato HTML
  • in caso ”testo libero corto” viene mostrato un campo di input HTML di tipo ”text” lungo
  • in caso ”testo lungo” viene mostrato un campo di input HTML di tipo ”textarea”
  • in caso testo formattato HTML viene mostrata (al posto dell'area di testo), un'istanza dell'editor open source FCKEditor (http://www.fckeditor.net/).
caso data e ora
(DATETIME o TIMESTAMP)tipo proposto da VFront: data e ora formattata, data formattata
  • viene mostrato un campo di testo. Quando si clicca sul campo si aprirà un popup calendario con – eventualmente- anche l'ora)
caso data
(DATE)tipo proposto da VFront: data formattata (con ausilio di un popup calendario)
  • viene mostrato un campo di testo. Quando si clicca sul campo si aprirà un popup calendario con – eventualmente- anche l'ora)
caso eval (solo MySQL)
(EVAL) tipo proposto da VFront: menu a tendina
  • viene mostrato un menua a tendina con i valoli possibili, come impostati nel database.

Sono sempre presenti infine quattro tipi di campi molto importanti, tipici del front-end:

Campo nascosto

Indica un valore nascosto che può essere una costante o una variabile.

Se ad esempio si scrivesse "1" il campo assumerà sempre il valore 1. Se invece si utilizzasse il valore %now, automaticamente il campo assumerà la data odierna.

Le variabili disponibili sono descritte in un popup e sono parole chiave precedute dal segno % (percento):

 %nick
Nickname dell'utente che ha fatto login
 %email
Email dell'utente che ha fatto login
 %uid
Identificativo numerico dell'utente che ha fatto login
 %nome
Nome dell'utente che ha fatto login
 %cognome
Cognome dell'utente che ha fatto login
 %nomecognome
Nome e cognome (separati da spazio) dell'utente che ha fatto login
 %cognomenome
Cognome e nome (separati da spazio) dell'utente che ha fatto login
 %gid
Identificativo numerico del gruppo a cui appartiene l'utente che ha fatto login
 %gruppo
Nome del gruppo a cui appartiene l'utente che ha fatto login
 %now
Data attuale in formato aaaa-mm-gg
 %timestamp
Data ed ora attuale in formato aaaa-mm-gg HH:mm:ss

I campi nascosti possono essere attivi solo in fase di inserimento del record (opzione predefinita) o anche in fase di modifica. Una casella di spunta propone l'uso del campo nascosto anche in caso di modifica. Qualora si impostasse questa caratteristica il campo sarà automaticamente aggiornato ogni qual volta l'utente modificasse il record preso in esame. Nell'esempio della data odierna (variabile %now), qualora fosse spuntata la casella, la data sarà aggiornata all'ultima data di modifica del record, in caso contrario verrebbe riportata solo la data di creazione.

Valori definiti

Con questo tipo di input è possibile inserire una lista di valori predefinita. Nella scheda apparirà come un menù a tendina. E' possibile inserire dei valori (uno per riga). L'output HTML sarà una tendina con i valori e le etichette uguali ai valori inseriti. E' anche possibile inserire accoppiate valore=>etichetta. Un popup guida l'amministratore alla sintassi corretta.

Valori definiti da tabella.

E' forse questo il più importante tipo di input. Permette infatti di mostrare i valori codificati da un'altra tabella, opzione fondamentale nelle relazioni 1 a molti. Ad esempio nella figura sopra, nel campo codiceComune (numerico) è predisposto un collegamento alla tabella “comune” mediante una query SQL. Il risultato è un menù a tendina che avrà come valore il codiceComune numerico, ma come etichetta visibile all'utente i nomi dei comuni mostrati in chiaro. Questa funzione è utile soprattutto nel caso di campi che sono anche chiave esterna (segnalata in blu nel front-end).

E' necessario richiamare due campi nella query SQL : il codice e la descrizione.

E' possibile scrivere la query a mano oppure avvalersi del popup “Query Editor visuale”. E' possibile scrivere a mano le query anche con l'uso di WHERE e JOIN, funzioni di CONCAT (per MySQL o l'operatore di concatenazione "||" in PostgreSQL) e simili. E' possibile, per ragioni di sicurezza, scrivere solo query di tipo SELECT. E' infine possibile testare con il pulsante "test" la correttezza delle proprie query. Una volta impostati i campi è necessario salvare le impostazioni con il tasto "Salva" in fondo alla pagina.

Valori in sola lettura

In questo caso il valore viene mostrato come testo HTML, ma senza alcuna possibilità di modifica.


Il controllo sul valore dei campi

Una funzione che può rivelarsi utile è il controllo sull'input per il singolo campo.

Per poter usufruire dei controlli è necessario impostare dal menù Variabili la variabile js_test su SI.

In tal caso affianco ad ogni box per l'impostazione di un campo apparirà un link ”Controlli avanzati” che apre un popup. Da qui sarà possibile impostare un vincolo sull'input richiesto per il singolo campo (si ricorda che l'impostazione sarà valida per la tabelle vista dal gruppo su cui si sta operando).

Controlli avanzati per un tipo di dato "varchar"

A seconda del tipo di dato in oggetto vengono mostrati nella tendina una serie di vincoli differenti.

Sono qui esposti i casi previsti:

tipo int:

tipo varchar (o char o text o mediumtext)

tipo date

tipo time

tipo double (o float)

Così come possono essere impostati, i controlli avanzati possono essere eliminati in qualsiasi momento.

Si noti che i controlli avanzati funzionano sia in fase di inserimento di nuovi record, sia in caso di modifica dei record esistenti.

Quando in un campo è stato impostato un controllo, il link "controlli avanzati" viene mostrato in grassetto e viene mostrato il tipo di controllo attualmente attivo.

L'ordinamento dei campi nelle maschere

Ordinamento dei campi


E' possibile scegliere di mostrare i campi presenti in tabella con un ordine differente da quello presente nella definizione del database. Per cambiare l'ordinamento dei campi è sufficiente andare sulla linguetta Ordine campi. Da qui è possibile, con un semplice drag & drop, spostare l'ordine di presentazione dei campi (si veda la figura sotto). Un messaggio di conferma avvertirà dell'operazione avvenuta. Per ripristinare l'ordine predefinito cliccare sul pulsante Ripristina ordinamento di default.















Gestire le relazioni uno a molti e molti a molti: le sotto-maschere

Per gestire le relazioni "uno a molti" e "molti a molti", VFront propone lo strumento delle sotto-maschere.


Una sotto-maschera in dettaglio

In altri termini ogni qualvolta, per un record di una tabella, ci siano molti record figli può essere utile l'utilizzo delle sotto-maschere. Per l'utente le sotto-maschere sono visibili dalla vista scheda mediante un box con dei pulsanti bianchi (si veda la figura) nei quali è scritto tra parentesi ed in grassetto il numero di record figli per il record padre in oggetto.













Impostazioni generali delle sotto-maschere

Per impostare le sotto-maschere si vada dal menù di amministrazione all'opzione ”Impostazione tabella”, linguetta ”Impostazione sotto-maschere”. All'inizio le tabelle non possiedono sotto-maschere. Per generare una sotto-maschera cliccare sul link ”Nuove sotto-maschere”. A questo punto sarà possibile aggiungere una o più tabelle da impostare come sotto-maschera della tabella in oggetto. La tabella in oggetto sarà quindi la tabella padre, mentre la/le tabella/e che si scelgono come sotto-maschere saranno considerate tabelle figlie.

L'impostazione delle sotto-maschere è simile alle impostazioni di tabella, con alcune differenze (si veda la figura). E' necessario innanzitutto definire le impostazioni generali.

Sotto-maschere di una tabella

Per farlo cliccare sul nome di una sottomaschera.

Apparirà un modulo del tutto di Impostazione generale, simile a quello già visto per le impostazioni generali della tabella. Da qui è possibile definire i diritti d'uso della sottomaschera, (lettura, scrittura, modifica, ecc.). Esistono inoltre delle opzioni molto importanti e caratteristiche delle sottomaschere. Sono evidenziate dalle freccie nella figura .

Caratteristiche di amministrazione peculiari delle sottomaschere
  1. Collegamento tra tabelle. E' questa l'impostazione più importante di una sottomaschera in quanto definisce il collegamento tra la tabella e la sottomaschera. Vengono qui mostrati in due tendine i campi della tabella padre (”banca” e ”bancaagenzia” nell'esempio in figura). Da qui si definisce il collegamento tra la tabella padre e la tabella figlia. Se sono definite delle chiavi esterne nel database, VFront suggerirà automaticamente i campi da utilizzare come collegamento.
  2. Nome della sottomaschera Si può definite un nome descrittivo per la sottomaschera. Qualora non si definisse verrà utilizzato il nome della tabella come presente in database.
  3. Modalità di visualizzazione dei dati. I dati nella sottomaschera si possono visualizzare sotto forma di tabella o sotto forma di scheda. Quando la sottomaschera ha uno o due campi può essere utile la vista tabellare, in caso contrario la vista scheda è più adatta.

Nota: la vista tabellare per le sottomaschere non è più supportata.

  1. Numero di record max per la sottomaschera. Si può impostare qui un numero massimo di record da visualizzare (e da inserire) nella sottomaschera. Poiché molti record implicano una transazione di dati server/client maggiore e maggiori tempi di attesa per il caricamento della sottomaschera, si consiglia di tenere sotto controllo il numero qui definito (più basso possibile). Un numero ragionevole può essere tra 5 e 50 record.

Impostazioni per i campi delle sottomaschere

Dopo aver definito le impostazioni generali e averle salvate con l'apposito tasto, è possibile definire le impostazioni per i campi delle sottomaschere.

La definizioni dei campi non è molto diversa da quella per le tabelle generali, salvo l'impostazione del campo definito come collegamento tra le tabelle (cioè la chiave esterna). Questo campo infatti (si veda la figura) apparirà nella sottomaschera come una etichetta identificativa del record. Si può qui definire mediante la tendina evidenziata in figura dal rettangolo. Qui appaiono i nomi dei campi della tabella principale.

Il campo che costituisce chiave esterna di una sottomaschera

Nell'esempio in figura si è scelto il campo ”banca” in quanto è una descrizione in chiaro della banca che ben si presta ad essere una etichetta leggibile e riconoscibile dall'utente. Il risultato è visibile nella figura

Esempi pratici per la definizione delle relazioni molti a molti ed uno a molti

MOLTI A MOLTI Quando è necessario creare un'interfaccia per gestire una relazione molti a molti è necessario creare una sottomaschera scegliendo la tabella di normalizzazione.

Ad esempio si consideri la struttura entità relazioni DIPENDENTE 1-><math>{\infty}</math> DIPENDENTE_INCARICO <math>{\infty}</math><-1 INCARICO.

In questo caso, dalla configurazione della tabella sarà necessario generare la sottomaschera puntando alla tabella DIPENDENTE_INCARICO. Nella configurazione dei campi si utilizzerà poi il riferimento all'ID_DIPENDENTE come etichetta e si genererà un menu a tendina (Valori definiti da tabella) con tutti i valori degli incarichi possibili prendendo i valori da INCARICO.

 

Creazione dei pulsanti custom

Dalla versione 0.95g VFront supporta i pulsanti custom.

E' possibile cioè creare dei pulsanti che aprano un determinato link con parametri (in GET) variabili relative al record che si sta osservando. E' possibile creare quanti pulsanti custom si desidera per ogni tabella o vista.

La configurazione del pulsante richiede:

In quest'ultimo punto è possibile inserire i parametri disponibili, mostrati nella pagina sulla destra.

Le applicazioni possibili sono numerose, ecco alcuni esempi:

Link a Wikipedia In una tabella nella quale è presente un campo contenente un nome di città o di località, ad esempio il campo nome_citta, è possibile creare un pulsante con il link

http://http://it.wikipedia.org/wiki/{{nome_citta}}

Mappa di google maps: Nel seguente esempio si immagina una tabella avente i campi latitudine e longitudine. Poniamo che si voglia aprire una mappa di google maps centrata sul punto indicato nel record che si sta osservando. Il link sarà

http://maps.google.com/?ie=UTF8&ll={{latitudine}},{{longitudine}}&spn=0.717237,1.234589&z=10


Report di VFront Poniamo di avere una tabella con il campo "ID". Mostrare dalla scheda del record il report sarà quindi

http://www.esempio.com/vfront/xml/id/{{ID}}


Script personalizzato Per chi scrive codice è anche possibile usare i pulsanti custom per eseguire degli script personali che accettino parametri in GET. Ad esempio in una tabella "fattura" è pensabile voler generare al volo il PDF relativo al record che si sta osservando. In questo caso sarebbe possibile realizzare uno script che accetti l'id della fattura (nell'esempio "id_fattura") in GET e restituisca il pdf. Poniamo che lo script si chiami genera_fattura.php.

In questo caso il mio link da configurare nel pulsante custom sarà:

http://www.esempio.com/vfront/usr/genera_fattura.php?{{id_fattura}}

Come è possibile vedere le applicazioni sono numerose: questa caratteristica porta VFront oltre la logica pura del front-end, per avvicinarsi ad un vero e proprio generatore di applicazioni.


La configurazione di un pulsante custom


Azione di un pulsante custom: il pulsante apre una pagina (di Wikipedia) con il parametro presente nel campo configurato

 

Impostazione delle viste SQL

VFront gestisce anche le viste SQL (VIEWS) e le tratta in maniera simile alle tabelle. Si possono configurare le viste in termini di regole sui campi, ordinamento dei campi e sotto-maschere in maniera del tutto omologa alle tabella. Differentemente dalle tabelle è necessario specificare esplicitamente il campo chiave primaria (si veda la figura). Le viste, per l'utente, sono mostrate nella pagina principale sulla destra (si veda la figura). L'amministrazione delle viste e del tutto simile a quella delle tabelle per la lettura dei dati. Per le operazioni di inserimento, modifica e cancellazione dei record VFront si adegua alla politica del database in uso. Ad esempio in MySQL 5 è possibile inserire e modificare i record, ma è possibile utilizzare la funzione di DELETE su una vista solo se nella definizione della stessa non siano presenti JOIN con altre tabelle.


Impostazioni di DELETE su vista con database MySQL5


L'applicazione analizza la definizione della vista e conseguentemente mostrerà o meno automaticamente le opzioni di eliminazione in base alla presenza di JOIN (si veda la figura). Per maggiori informazioni si veda per MySQL: http://dev.mysql.com/doc/refman/5.0/en/view-restrictions.html


Per le politiche di gestione delle viste su PostgreSQL si rimanda al manuale ed all'utilizzo delle RULES (ad esempio si veda http://www.postgresql.org/docs/8.2/interactive/rules-update.html#RULES-UPDATE-VIEWS.

Le viste sono riconoscibili nell'amministrazione e nella scheda utente in quanto mostrano il titolo in verde scuro e non in rosso mattone.

Sincronizzazione tabelle/front-end

VFront permette di sincronizzare i propri registri di regole con la struttura del database su cui si sta operando. Sono queste funzioni molto utili laddove venisse modificata la struttura del database. Ad esempio se si aggiunge o rimuove una tabella o si modifica un campo del database, VFront è in grado di sincronizzare le proprie regole con la struttura modificata.

Important.gif
Nota bene: In accordo ai principi generali di VFront, ogni operazione di sincronizzazione avviene tra il DB dei dati ed il DB delle regole di VFront, mai viceversa! In altre parole VFront sincronizzerà il proprio DB di regole per aderire alla struttura del vostro DB di dati e non altererà mai i campi o le tabelle del vostro DB di dati.


Aggiunta di nuove tabelle o viste

Quando nel DB dati vengono aggiunte tabelle VFront è in grado di rilevarle ed inserirle nei propri registri di regole. E' importante tenere sempre sincronizzato il DB dei dati con VFront. Per sincronizzare il database è sufficiente andare sul menu Amministrazione -> Sincronizzazione database/front-end. Qualora venisse rilevata la presenza di nuove tabelle o viste verrà mostrata una schermata simile alla figura.


Sincronizzazione: inserimento di nuove tabelle.

Sarà quindi sufficiente premere il tasto "Inserisci tabelle nel frontend" per aggiungere le nuove tabelle o viste. Le nuove tabelle non hanno diritti (né di lettura, né altri) di default: dopo la sincronizzazione sarà quindi necessario configurarle per i vari gruppi per poterle utilizzare.

Rimozione di tabelle o viste

Come per l'aggiunta di nuove tabelle o viste, è possibile sincronizzare il database di dati con VFront per eliminare le tabelle obsolete. La pagina di sincronizzazione se è rilevata la presenza di tabelle obsolete mostra una schermata simile alla figura.


Sincronizzazione: eliminazione tabelle obsolete

Sarà sufficiente cliccare su "Elimina tabelle obsolete" per eliminare dai registri di VFront ogni riferimento alle tabelle (o viste) non più presenti.

Modifica dei campi delle tabelle

E' possibile che vengano aggiunti, eliminati o modificati campi nelle tabelle del DB dati. Lo script è in grado di rilevare i cambiamenti e propone una sincronizzazione automatica.

Quando vengono aggiunti o modificati campi in una o più tabelle/viste, viene mostrato un elenco con dei link in rosso. Accedendo al dettaglio è possibile vedere quali differenze esistono tra la sincronizzazione dei campi di VFront e lo stato attuale della struttura di tabella.

Sincronizzazione: aggiornamento dei campi di una tabella

Nell'esempio in figura viene mostrato lo stato della tabella test_utente. Vengono affiancate due tabelle: la tabella A riporta lo stato dell'information_schema del database, mentre la tabella B mostra le impostazioni attuali di VFront da aggiornare. Nell'esempio in figura è stato modificato il campo MYEMAIL che da varchar(40) è ora di tipo char(40). E' stato inoltre aggiunto un campo di tipo date dal nome NUOVO_CAMPO.

Come visibile in figura i campi che mostrano variazioni sono evidenziati in giallo.

Da questa schermata è possibile sincronizzare mediante la pressione del tasto "Sincronizza campi".

Ripristino manuale

E' possibile in casi particolari operare un ripristino manuale delle regole di una tabella. Per farlo si può accedere alla linguetta "Ripristino manuale" e da qui scegliere per quale tabella ripristinare le regole. E' da notare che il ripristino cancella tutte le impostazioni della tabella selezionata per tutti i gruppi. Poiché riscrivere tutte le regole per una tabella per tutti i gruppi può essere una operazione lunga, si suggerisce di utilizzare questa funzione con cautela.

I commenti SQL su campi e tabelle

VFront utilizza i commenti SQL dei campi e delle tabelle. Qualora aveste documentato il vostro database con commenti di tabella e di campo, questi saranno utilizzati in diversi contesti:

E' pertanto suggerito di commentare scrupolosamente il vostro database, prassi peraltro valida di per sè.

Torna all'indice


Gestione degli utenti

Come visto nel paragrafo Logica di autenticazione, gli utenti possono accedere a VFront attraverso l'autenticazione su strumenti esterni come LDAP o SOAP o altri database. Al primo accesso gli utenti sono registrati nella tabella utente del DB di VFront con livello di amministrazione 1 (nessuna credenziale di amministrazione) e gruppo di appartenenza 0 (gruppo di default). Se la fonte di autenticazione è configurata per trasmettere a VFront anche il nome e cognome, questi dati saranno registrati e mostrati. Per non creare conflitto con la gestione esterna degli utenti (via LDAP o altre fonti di autenticazione), è possibile modificare gli utenti solo se si sceglie l'autenticazione interna e non autenticazione tramite LDAP o database esterno.


Gestione degli utenti

Per maggiori informazioni sull'autenticazione si veda la logica di autenticazione oppure la Guida all'installazione manuale e la sezione relativa all'autenticazione esterna.

La tabella utenti

La gestione degli utenti su VFront è accessibile dal menù Amministrazione->Gestione utenti. Da qui viene mostrata una tabella con gli utenti presenti su VFront e le loro caratteristiche:

ID
identificativo univoco nella tabella ”utente”
gruppo
indica il gruppo a cui appartiene l'utente. Il gruppo di appartenenza determina i diritti d'uso delle tabelle. Quando un utente accede per la prima volta a VFront viene inserito nel gruppo predefinito 0 - default.
livello
indica il livello di amministrazione di VFront.
nickname
corrisponde all'email utilizzata per l'autenticazione
cognome
cognome dell'utente
nome
nome dell'utente
data inserimento
data di inserimento (o primo accesso) dell'utente su VFront
modifica
permette di attribuire l'utente ad un altro gruppo o cambiare il livello di amministrazione
elimina
permette di cancellare l'utente dal DB VFront. Se si è impostata un'autenticazione mediante strumenti esterni (LDAP, altro DB, etc.) l'utente verrà ricreato al suo primo accesso.

E' inoltre possibile filtrare gli utenti in base al gruppo e ordinare la tabella in base ad uno dei campi suddetti.

E' anche possibile esportare i dati presenti in tabella in formato XLS (MS Excel).

Creazione di un utente

Nota bene: La creazione degli utenti è possibile solo se si è scelto il metodo di autenticazione "interna" a VFront. Se si utilizza come metodo di autenticazione LDAP o un database esterno, non sarà possibile aggiungere da VFront un utente, ma sarà necessario utilizzare gli strumenti di amministrazione per LDAP o il database esterno.

Modifica dei diritti ed attribuzione ad un gruppo

Dalla gestione degli utenti è possibile cambiare le credenziali di un utente. Cliccando su ”modifica” è possibile

  1. cambiare il gruppo di appartenenza dell'utente in oggetto
  2. il suo livello di amministrazione
  3. i suoi dati di accesso

Queste operazioni possono essere eseguite da amministratori di livello 3 o da amministratori (altrove definiti anche tutor) di livello 2. Gli amministratori di livello 2 potranno però "promuovere" gli utenti di livello 1 solo a livello 2, mentre gli amministratori di livello 3 potranno creare altri amministratori di livello 3 o livello 2.


Cancellazione di un utente

Cancellando un utente si eliminano i suoi dati dal database. Se si è impostata l'autenticazione direttamente dal database di VFront, la cancellazione dell'utente comporterà l'impossibilità di accedere all'applicazione da parte sua.

Viceversa, qualora l'autenticazione a VFront sia configurata (dal file di configurazione) mediante autenticazione esterna (LDAP, SOAP, altro DB, etc.) l'utente verrà ricreato al suo prossimo accesso a VFront, con le credenziali basi, ossia livello di amministrazione = 1 (nessuna amministrazione) e gruppo 0 (gruppo di default).

Torna all'indice

Il sistema di log e ripristino operazioni

Per accedere al menù dei Log si vada sull'Home Amministrazione e da qui al link ”Log operazioni sul database”.

Il sistema dei log del front-end tiene traccia di tutte le operazioni di INSERT, UPDATE e DELETE eseguite sulle tabelle del database dati. Viene tracciato:

Le operazioni vengono mostrate con colori differenti in base al tipo, come si vede in figura.


Log di VFront (la colonna utente è stata volutamente oscurata)

E' possibile filtrare le righe del log al fine di trovare più facilmente le operazioni che si stanno cercando.

Il filtro (che viene attivato cliccando sul link ”filtro sui log”) permette di cercare traccia di una operazione in base a numerosi parametri:

In questo modo è molto facile trovare il record cancellato o modificato per sbaglio dall'utente ”Ciccio Pasticcio” tra ieri ed oggi.

Il dettaglio del log

Ogni operazione tracciata dal log può essere analizzata in dettaglio. Cliccando sul link dettaglio (si veda la figura) è possibile avere ulteriori informazioni sull'operazione eseguita. In caso di modifica vine mostrata una tabella che riporta i campi della tabella nella condizione precedente e successiva alle operazioni. I campi modificati sono evidenziati in giallo. Viene mostrata inoltre la eventuale reversibilità dell'operazione.

Il ripristino

VFront permette alcune interessanti funzioni di ripristino. Nel caso di record cancellati per sbaglio o modificati erroneamente, è possibile ripristinare la condizione precedente. Per farlo è necessario aprire il dettaglio dell'operazione e se VFront considera reversibile l'operazione, è possibile ripristinare lo stato precedente.


Il dettaglio del log

Nell'esempio in figura, viene mostrato il log di una operazione di modifica. La tabella in oggetto (test_utente) possiede solo tre campi (id_ut, la chiave primaria; myemail, un campo testo e password, un campo testo impostato su VFront come password con hash MD5 (se vuoi cercare di fare reverse engineering della mia password, sappi che è tempo perso, non è quella della mia banca online). Nel caso presentato è stata modificato il contenuto del campo MYEMAIL. Per ripristinare l'operazione è sufficiente cliccare sul tasto ”Ripristina questa operazione” e il contenuto del campo myemail diverrà nuovamente "marcello@casa.com".

FAQ sul ripristino per i più curiosi

Cosa significa ”se VFront considera reversibile l'operazione”?
VFront è un programma e non sceglierà con libero arbitrio cosa ripristinare o meno ;-) Un'operazione è ripristinabile se i dati del log sono integri. Quindi in condizioni di corretto funzionamento, ogni operazione di modifica e cancellazione teoricamente può essere ripristinabile. Qualora si facesse una pulizia della tabella del log troppo spesso i dati potrebbero non essere più recuperabili. La tabella log infatti può diventare molto pesante, soprattutto se nel database vi è una intensa attività sui dati. Il DB administrator potrebbe prendere in considerazione la cancellazione dei record della tabella log relativi ad operazioni (ad esempio) più vecchie di tre mesi.
Come funziona il sistema di ripristino?
VFront non duplica i record per mantenere lo storico. Questo contraddirebbe quanto affermato nel paragrafo Le tre leggi di VFront, in quanto genererebbe ridondanza di dati sul database che VFront sta leggendo. Il ripristino funziona invece mediante la scrittura nel record della tabella log di alcune operazioni SQL. Sono salvati i contenuti dei campi prima e dopo sotto forma di array serializzato o di istruzione SQL. Se sei ancora curioso, vai a vedere il contenuto dei campi log.storico_pre e log.storico_post.
Non voglio i log
Perché? I log non interferiscono con la normale attività sulle tabelle, implicano un utilizzo di risorse trascurabile e possono essere molto utili. Se però proprio non ti ho convinto, puoi disabilitarli dal file di configurazione. Leggi la Guida all'installazione manuale per capire come.

Lo storico dei record

Il log permette infine di mostrare lo storico di un record. Cliccando sul link ”storico” (si veda la figura) si accede ad una pagina che mostra tutte le operazioni che sono state compiute sul record: l'inserimento, le modifiche, l'eventuale cancellazione e l'eventuale/i ripristino/i. Naturalmente lo storico è dettagliato solo qualora le operazioni suddette siano state effettuate tramite le maschere di VFront. L'applicazione infatti non ha modo di tracciare operazioni che siano state effettuate tramite altre interfacce al database di dati (come ad esempio script da shell, o operazioni da phpMyAdmin, per esempio).

Torna all'indice

Report

Info.gif
Avvertenza: i report su VFront sono in fase sperimentale di sviluppo, questa sezione potrebbe essere modificata in futuro. Alcune caratteristiche potenzialmente utili sono ancora in fase di progettazione e verranno implementate a breve.

Creazione di un report su VFront

VFront permette di generare dei report sul contenuto delle tabelle. E' anche possibile generare report da query SQL. I report su VFront si basano su XML e i formati che vengono generati sono derivati da XML. Per creare un report si deve accedere dal menù di amministrazione alla pagina dei report (link Amministrazione XML e reportistica). Qui appare una tabella con i report attualmente presenti ed due link Crea nuovo report XML da tabella o vista e Crea un nuovo report da query.

La logica dei report su VFront

I report di VFront si basano sul formato XML, che può essere mostrato così com'è o utilizzato per generari altri formati (si veda la figura 23). I file XML a loro volta sono generati attraverso due metodi di interrogazione al database: mediante la lettura dei dati delle tabelle e delle regole impostate su VFront oppure attraverso query ad hoc scritte dall'amministratore.

Il file XML può essere trasformato attraverso due processi principali:

  1. Attraverso l'associazione di un file di stile XSL (inserito dall'amministratore) al file XML e mediante l'uso di un XSLT Processor (che può essere PHP se si sceglie una tecnologia lato server o il browser dell'utente, se si sceglie una tecnologia lato client) viene generato il file di report in formato XHTML che può essere visualizzato direttamente su web.
  2. Mediante un file XSL-FO (inserito dall'amministratore) e l'utilizzo di Apache FOP è possibile generare PDF, RTF ed altri formati.

Ci sono due possibilità per generare i report:

I report basati su tabelle mostreranno il contenuto della tabella del database selezionata, mentre i report basati su query permettono di mostrare il risultato di una query SQL scritta ad hoc.

Important.gif
Nota bene: In realtà i report generati da query offrono uno svantaggio notevole: non è possibile generare un report di un singolo record basandosi sulla chiave primaria. Tuttavia i report generati da query offrono una maggiore possibilità di personalizzazione e un controllo maggiore sui dati. Esiste un sistema (che qui si consiglia di applicare) per avere i vantaggi delle tabelle e la flessibilità delle query, ossia la generazione di viste SQL scritte per la generazione di report. VFront tratterà la vista come una normale tabella, purchè si sia definita manualmente la chiave primaria per la vista dall'impostazione dei registri (per maggiori informazioni si veda anche l'impostazione delle viste).


Schema del funzionamento dei report su VFront

Diritti d'accesso ai report

Cliccando su "Crea nuovo report XML da tabella o vista" e "Crea un nuovo report da query" si accede al modulo di creazione dei nuovi report. Qui è possibile definire alcuni parametri:

Nome report
un nome descrittivo per il report (composto di sole lettere, numeri e trattini).
Tabella
(solo se si è scelto di generare il report da una tabella o da una vista) indica la tabella dalla quale generare il report. Vengono mostrate in una tendina le tabelle e le viste attualmente disponibili.
Definizione query SQL
(solo se si è scelto di generare il report da una query) indica la query SQL dalla quale generare il report. E' presente un tasto "Test" per provare la correttezza formale della query.
Tipo di accesso del report. Il report può essere 
XSL
da associare E' possibile fare l'upload di un foglio di stile XSL da applicare a questo report. In caso contrario verrà applicato un foglio di stile di default.
XSL-FO
da associare Utile per i report in PDF (si veda oltre). E' possibile fare l'upload di un foglio di stile XSL-FO da applicare a questo report. E' possibile utilizzare il foglio predefinito. La scelta di default è ”nessuno” ossia non viene generato alcun report.

Report (X)HTML: utilizzo di fogli di stile XSL lato server e lato client

I report (X)HTML sono generati tramite XML e trasformazione con foglio di stile XSLT. Questa trasformazione può essere eseguita lato client o lato server. Una variabile del menù Variabili di sistema permette di scegliere se effettuare la trasformazione lato client o lato server.

La trasformazione lato client implica che il browser carichi l'XML a cui è associato il foglio di stile e effettui la trasformazione. Il vantaggio di questo sistema è che non si deve avere necessariamente installato sul proprio server il pacchetto XSL per PHP. Gli svantaggi però constano in: sicurezza (nel codice XML sorgente che arriva al browser possono essere mostrati dati di campi che non si vorrebbero mostrare agli utenti) e prestazioni (la trasformazione lato client implica una transazione di dati potenzialmente maggiore).

Pertanto, quando possibile, si suggerisce di utilizzare la trasformazione lato server.

Dove sono i report XHTML ?

Quando viene generato un report basato su una tabella si può andare direttamente all'indirizzo

http://INDIRIZZO_VFRONT/xml/NOME_TABELLA/  


Tabella dei report disponibili: link anteprima

dove INDIRIZZO_VFRONT è l'URL della vostra installazione di VFront e NOME_TABELLA la tabella di cui state leggendo il report. Da qui è possibile avere un menù dei report disponibili. E' possibile accedere all'indirizzo direttamente dal link nella colonna anteprima della tabella report (si veda l'immagine).

Se viene generato invece un report basato su una query l'indirizzo apparirà come

http://INDIRIZZO_VFRONT/xml/@NOME_REPORT/ 

con in nome del report scelto predetuto da un carattere @. In entrambi i casi si aprirà una schermata con i link per accedere alle pagine dei report. Ad esempio il report HTML di default mostra un elenco dei record in tabelle, separate da una linea come in figura : Mediante l'uso di fogli di stile XSL è possibile avere report ben più complessi ed articolati, ad esempio per essere mostrati al pubblico.

E' possibile in questo modo generare pagine web formattate correttamente per mostrare ad esempio bandi, appalti, schede di ogni genere direttamente puntando all'URL corretta da una pagina statica. Altri modi di leggere i report sono dati dalle seguenti sintassi delle URL:

http://INDIRIZZO_VFRONT/xml/NOME_TABELLA/all/ 

Mostra tutti i record della tabella (sconsigliabile qualora ci siano molti record).

Esempio: http://localhost/vfront/xml/banca/all/

http://INDIRIZZO_VFRONT/xml/NOME_TABELLA/OFFSET,LIMIT/ 

Mostra i record della tabella con paginazione. OFFSET indica il punto di partenza e LIMIT il numero di record da mostrare.

Esempio: http://localhost/vfront/xml/banca/0,50/

http://INDIRIZZO_VFRONT/xml/NOME_TABELLA/CONTATORE/ 

Mostra un solo record ordinato secondo l'ordinamento della chiave primaria della tabella. Il contatore deve essere un numero.

Esempio: http://localhost/vfront/xml/banca/12/

http://INDIRIZZO_VFRONT/xml/NOME_TABELLA/id/ID_DEL_RECORD/ 

Mostra un singolo record, dove ID è il codice numerico del record (del campo impostato come chiave primaria).

Esempio: http://localhost/vfront/xml/banca/id/10008/

In tutti i metodi esposti è possibile accedere all'XML semplicemente aggiungendo XML alla fine dell'URL.

Esempio: http://localhost/vfront/xml/banca/id/10008/XML

Un discorso simile vale per i report basati sulle query.

In tal caso però non è possibile conoscere a priori il campo costituente chiave primaria.

Saranno perciò validi solo i primi tre metodi:

http://INDIRIZZO_VFRONT/xml/@NOME_REPORT/all/  

Esempio: http://localhost/vfront/xml/@report_banca_1/all/


http://INDIRIZZO_VFRONT/xml/@NOME_REPORT/OFFSET,LIMIT/   
  

Esempio: http://localhost/vfront/xml/@report_banca_1/0,50/


http://INDIRIZZO_VFRONT/xml/@NOME_REPORT/contatore/     

Esempio: http://localhost/vfront/xml/@report_banca_1/12/


Report HTML (dettaglio)


Ad esempio il report HTML di default mostra un elenco dei record in tabelle, separate da una linea come in figura

Report PDF: XSL-FO e Apache FOP

VFront è predisposto per generare anche report in PDF attraverso fogli di stile XSL-FO. Per farlo utilizza l'applicazione open source Apache FOP (licenza Apache 2.0, http://xmlgraphics.apache.org/fop/). Per utilizzare Apache FOP è necessario che l'applicazione sia presente sul server che si sta utilizzando. E' necessario anche impostare sul file di configurazione di VFront il path corretto di Apache FOP (per dettagli si veda il file Guida all'installazione). Alla data odierna esistono due versioni stabili di Apache FOP: la 0.20.x e la 0.94. Nei test effettuati sono entrambe valide. L'ultima versione permette la generazione di altri formati di report (come ad esempio RTF).

I report PDF sono generati da VFront richiamando Apache FOP tramite apertura di una shell (comando EXEC() ). Pertanto verificare che Apache possa eseguire FOP.

Per generare un report in PDF è necessario impostare un foglio di stile XSL-FO nella creazione del report. Esiste anche un foglio di default che genera un report semplice.

In ogni caso per richiamare i report PDF è sufficiente aggiungere la dicitura PDF negli url come mostrati nella sezione precedente. Ad esempio http://localhost/vfront/xml/banca/all/PDF oppure http://localhost/vfront/xml/banca/id/10008/PDF

Altri formati di report e uso di Apache FOP 0.9 o successivo

La versione 0.9.x di Apache FOP permette la creazione di numerosi formati di output. Uno di questi che può essere utile è il formato RTF.

Per richiamare i formati diversi da RTF il metodo è uguale a quello dell'HTML con la differenze del tipo di formato che si vuole generare.

Per esempio: http://localhost/vfront/xml/banca/id/10008/RTF genererà un file RTF

oppure http://localhost/vfront/xml/banca/id/10008/TXT genererà un file TXT

Per ulteriori configurazioni si rimanda al file xml/.htaccess per le regole di riscrittura degli url. Per un uso avanzato si veda anche lo script xml/fop_exec.php e i formati permessi.

Per i formati di output generabili da Apache FOP si rimanda alla documentazione della versione di FOP che si sta utilizzando .

Torna all'indice

Statistiche e grafici sui dati

Important.gif
Nota bene: Per poter usufruire di questo modulo è necessario il pacchetto PHP PEAR e i pacchetti Image/Graph e Image/Canvas (licenza LGPL) - http://pear.php.net. Per scrivere nuove statistiche è necessario inoltre conoscere l'SQL.


VFront supporta la creazione di grafici e statistiche sui dati ad uso degli amministratori (livello 2 e 3). Per accedere al menù statistiche cliccare sul link ”Statistiche database” nella home page dell'amministrazione. Da qui è possibile creare delle nuove statistiche scrivendo una query in codice SQL.

La pagina statistiche

Quando si accede al menù statistiche per la prima volta ci si trova davanti ad una pagina con due link:

Dati popolamento tabelle è una statistica speciale di default che non fa altro che mostrare un grafico a barre che descrive il numero di record presenti attualmente sulle tabelle e sulle viste del database che VFront sta leggendo.

Crea una nuova statistica è invece il modulo per iniziare a personalizzare il menù delle statistiche.

Cliccando sul link si accede ad un modulo di inserimento con le seguenti voci:


Ad esempio ecco una query su due tabelle (banca e bancaagenzie). Il grafico mostra il numero di agenzie delle banche italiane con più di 500 agenzie. Si noti come il primo campo selezionato sia etichetta ed il secondo sia un valore:

SELECT b.banca, count(ba.abi) as n 
FROM banca b, bancaagenzia ba 
WHERE b.abi=ba.abi 
GROUP BY b.banca 
HAVING n>500 
ORDER BY n DESC


Statistica di prova

Si veda la pagina con il grafico risultante.



Qualora volessi visualizzare i dati con un grafico a torta posso sempre modificare la statistica. Per farlo è sufficiente cliccare sul link ”modifica” che appare vicino al nome con link della statistica.


Statistica di prova (con grafico a torta)

Il risultato è mostrato nella figura.

E' sempre possibile eliminare una statistica. Nel menù principale è sufficiente cliccare sul link in rosso vicino al nome con link della statistica.

Si ricorda inoltre che le statistiche sono dinamiche, ossia i dati restituiti in forma tabellare ed in forma grafica sono calcolati in tempo reale. Pertanto i dati saranno sempre aggiornati in tempo reale, anche qualora venissero fatte modifiche ai dati nelle tabelle coinvolte nella query che genera la statistica.

Torna all'indice

















Le variabili di sistema

Dal menù di amministrazione di VFront è possibile accedere al menù Variabili ed impostare alcuni parametri relativi all'uso ed alla modalità di visualizzazione dell'applicazione. Le variabili qui descritte sono registrate in database (nella tabella variabili del database VFront) e non nel file di configurazione descritto nel documento Guida all'installazione.

Ci sono due tipi di variabili: le variabili globali e le variabili specifiche per gruppo/registro. Le variabili globali permettono di creare delle impostazioni di default, mentre le specifiche creano delle eccezioni per uno specifico gruppo registro. Da questo è evidente che se una variabile è definita anche in modo specifico per un gruppo, questa avrà priorità sull'impostazione globale.

Variabili

Le variabili specifiche possono anche non essere definite, ma se se ne vuole definire una è sufficiente cliccare sulla voce “Imposta nuova variabile” e scegliere dalla tendina delle variabili disponibili quella che si vuole definire specificatamente per un gruppo / registro.

Si noti come in figura non sia presente il menù delle variabili specifiche per gruppo/registro. Questa è una condizione normale quando esiste un solo gruppo (il gruppo 0 - default). Qualora venisse creato un altro gruppo automaticamente apparirebbe il menù delle variabili specifiche.

Le variabili disponibili sono:

altezza_iframe_tabella
Altezza in numero di pixel del rettangolo per visualizzare i dati in tabellaSi tratta della dimensione dell'iframe nella vista tabella delle maschere delle tabelle
crea_nuovo_valore_ref
permette in caso di tabella parent scrivibile l'inserimento di nuovi valori nella medesimaSe attivato questo parametro fa si che appaia un link nelle tendine dei campi 1 a molti, per poter aprire la scheda relativa alla tabella.Ad esempio qualora la tendina (il campo) puntasse ad una tabella ”Cliente” e non fosse presente il cliente desiderato in questo modo è possibile aggiungere il record e continuare la compilazione della tabella. La funzione dipende anche dal fatto che l'utente possa o meno operare sulla tabella parent, in questo esempio la tabella ”Cliente”.
formati_attach
Formati permessi per i file allegati, separati da virgola
js_test
Abilita i controlli javascript sui contenuti dei campi. Si veda per maggiori informazioni il controllo sui valori inseriti nei campi.
max_char_tabella
Numero massimo di caratteri da visualizzare nelle viste a tabella. (0 = tutti)
max_tempo_edit
Tempo di disponibilità del record. Questo parametro è relativo al "lock" del record, qualora più utenti volessero modificare contemporaneamente un record della stessa tabella. Il meccanismo di lock decade

a) quando il primo utente che è entrato in modifica sul record salva il record; b) il primo utente che è entrato in modifica annulla la modalità modifica; c) qualora l'utente però restasse molto tempo in modifica sul record questo dopo il numero di secondi espresso da questa variabile decadrebbe automaticamente.

n_record_tabella
Numero di record da visualizzare per le tabelle dei dati
passo_avanzamento_veloce
Numero di record impostati per il movimento veloce tra i record nelle tabelle. Si tratta del numero di record di avanzamento dei tasti con icona > > e < < nelle maschere delle tabelle
recupero_password
Se abilitato mostra nel login l'opzione di modificare la password (non funziona in caso di login esterno). Funziona solo qualora l'autenticazione sia impostata direttamente sul DB VFront e non ad esempio su LDAP e/o su database esterni.Questo perché si presuppone che VFront non debba ne possa modificare i dati di un database esterno o di una directory LDAP.
server_xslt
Indica se utilizzare la trasformazione XSLT lato server (da disabilitare in caso di mancato supporto PHP)Si consiglia di tenere la variabile attivata qualora si disponga del modulo PHP in oggetto in modo da mandare al client direttamente la pagina XHTML e non l'XML con collegamento all'XSL. Questo è un buon accorgimento in termini di prestazioni dell'applicazione e sicurezza. Qualora non fosse possibile utilizzare sul proprio server le funzioni di trasformazione si imposti la variabile su ”NO” e la trasformazione sarà affidata al client (il browser web).
shortcut_tastiera_attivi
Permette l'uso delle scorciatoie da tastiera nelle maschere delle tabelle e delle viste. Tendenzialmente queste funzioni possono essere molto utili per un uso più veloce e produttivo di VFront. Qualora si utilizzassero browser particolari o ci fossero problemi da qui è possibile disattivare questa opzione.
shortcut_tastiera_popup
Mostra nelle maschere una piccola linguetta a destra che mostra un popup che ricorda le scorciatoie da tastiera all'utente. Il comportamento di questa variabile è comunque influenzato dalla variabile precedente (shortcut_tastiera_attivi): qualora le scorciatoie da tastiera fossero disattivate, non verrà mostrata la linguetta anche se questa variabile fosse attiva (in quanto disorienterebbe inutilmente l'utente).
textarea_cols
Numero di colonne per i box di testo nelle maschere
textarea_rows
Numero di righe per i box di testo nelle maschere
usa_calendari
Indica se devono essere utilizzati o meno i calendari per facilitare l'inserimento nei campi data (0=no, 1=si)Si suggerisce di attivare i calendari. Qualora questo non fosse possibile si suggerisce di attivare un controllo sulla validità del campo per la correttezza dell'input della data. Infatti sia PostgreSQL che MySQL si aspettano tendenzialmente le date in formato aaaa-mm-gg, formato che l'utente medio (italiano) non userà di certo.
usa_history
Imposta se si deve utilizzare la history del browser. Permette quindi di utilizzare i tasti avanti e indietro del browser senza uscire dalla scheda. E' una buona idea tenere la variabile su SI, per migliorare l'usabilità dell'applicazione. Si è riscontrato che Opera non supporta questa caratteristica: per una lista di browser che supportano pienamente VFront vedere il paragrafo Tecnologia lato client.

Torna all'indice

Esportazione dati e backup database

L'esportazione dei dati delle tabelle è un'opzione che può essere eseguita dagli utenti che possiedano i permessi adeguati. Il permesso di esportazione dati si può infatti definire per ogni tabella per ogni gruppo. Se un utente può esportare i dati, vedrà nella vista scheda il tasto “Esportazione dati”.


Cliccando questo si aprirà un popup con alcune opzioni (vedi figura):


Esportazione dei dati da una maschera


Formato.
Si può scegliere il formato CSV (comma separate value), consigliato per tabelle con molti dati, HTML standard, ODS ossia il formato open document, usato tra gli altri da OpenOffice Calc, e XLS utilizzato da Microsoft Excel.
Modalità
recupero dati: Dati come presenti in tabella significa che viene mostrata la tabella in maniera “raw”, ossia vengono mostrati i dati “grezzi” così come sono archiviati in database. Viceversa Dati con formattazione impostata nel registro del gruppo, mostrerà i dati con le impostazioni del registro, cioè ad esempio se per il campo “codiceComune” si è impostato di prendere i dati da una tabella parametrica con tutti i comuni e si sceglie di mostrare il nome del comune in questo tipo di impostazione si leggerà il nome del comune mentre nella modalità “raw” si leggerà il codice numerico che lo identifica (e che poco potrà dire ad un utente normale).

L'amministratore sia di livello 2 che 3, potrà invece sempre accedere all'esportazione dati direttamente dal menù di Amministrazione.

Per gli amministratori di livello 3 è prevista anche l'opzione di “dump” del database. Il dump avviene attraverso i normali comandi del database da shell (mysqldump o pgdump). Questo permette un veloce recupero sia del database dati e di quello delle regole, ad esempio per un backup. I file vengono compressi ed inviati in formato standard Linux (.tar.gz).

Torna all'indice

Importazione dei dati

Impostazioni grafiche

Cambiare le impostazioni grafiche di VFront può essere utile non solo per ragioni estetiche, ma anche per differenziare immediatamente diversi ambienti (ad esempio un server di test da uno di produzione, differenti ambienti, etc).

Per cambiare le impostazioni grafiche di VFront si vada su Amministrazione -> Seleziona tema grafico.

Da qui è possibile scegliere il tema grafico da utilizzare.

Test impostazioni VFront

Dal menù Amministrazione, si acceda alla sezione Varie, dove è presente un link ”Test Impostazioni VFront”. E' questa una diagnostica che analizza lo stato dell'installazione di VFront. Può essere molto utile, soprattutto appena dopo l'installazione, per verificare che tutti i parametri richiesti siano configurati correttamente.

Attualmente sono qui presenti le seguenti sezioni:

Versione VFront
offre informazioni sulla versione di VFront e sui database attualmente in uso.
Versione software
Mostra la versione di PHP e del database (MySQL o PostgreSQL) attualmente in uso.
Impostazioni di sicurezza
Informa l'amministratore sullo stato di cartelle e file critici per la sicurezza.
Moduli PHP
VFront utilizza alcuni moduli PHP non sempre presenti. Qui viene mostrato il caricamento dei moduli che VFront utilizza
Variabili PHP
informazioni su alcune variabili importanti per VFront
Moduli PEAR
VFront utilizza PEAR e i pacchetti Image/Graph, Image/color e Image/Canvas (licenza LGPL) per produrre i grafici delle statistiche. Viene qui mostrata l'esistenza dei pacchetti suddetti.
Moduli Apache
Informazioni su alcuni moduli Apache importanti per il PHP
Impostazioni cartelle scrivibili
VFront utilizza per il suo corretto funzionamento alcune cartelle dove scrive file temporanei o di altro genere. Queste cartelle devono essere scrivibili dall'utente Apache e questa sezione analizza che questo possa avvenire.
Apache FOP
Questa sezione riguarda l'eseguibile FOP utilizzato da VFront per la reportistica in PDF e altri formati mediante le trasformazioni XSL-FO. Viene analizzato se esiste l'eseguibile FOP e la sua versione in uso.

Torna all'indice

Appendice 1 - Crediti e applicazioni utilizzate

Sono qui citate le applicazioni sviluppate da terze parti attualmente in uso in VFront. Alcune applicazioni sono opzionali su VFront. E' riportata anche la tipologia di licenza delle applicazioni suddette.

Prototype
http://prototype.conio.net/
Libreria di funzioni javascript - Licenza MIT
Scriptaculous
http://script.aculo.us/
Libreria di funzioni javascript - Licenza MIT
PHPMailer
http://phpmailer.sourceforge.net
Libreria per l'invio di email tramite PHP - Licenza LGPL
YAV
http://yav.sourceforge.net/
Tool di validazione Javascript - Licenza LGPL
Apache FOP
http://xmlgraphics.apache.org/fop/
Generazione di report PDF ed altri formati mediante trasformazione XSL-FO - Licenza Apache 2.0
DHTMLxGrid
http://www.scbr.com/docs/products/dhtmlxGrid/
Generatore di tabelle dinamiche in javascript nella vista tabella - Licenza GPL
Algoritmo MD5 per Javascript
http://pajhome.org.uk/crypt/md5
Generatore di hash md5 in javascript nei campi password delle maschere - Licenza BSD
FCKeditor
http://www.fckeditor.net/
Rich text editor in javascript - Licenza LGPL
JsCalendar
http://sourceforge.net/projects/jscalendar/
Generatore di calendari in javascript - Licenza GPL
Le icone
utilizzate fanno parte del progetto Crystal http://www.everaldo.com/crystal/ - La licenza è su http://www.everaldo.com/crystal/?action=license
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Google AdSense