custom:api_js_opengwgantttab

Apertura gwGantt

Il gwGantt è una particolare tipologia di scheda descritta qui.

Per aprire questa tipologia di tab è esposta l'apposita function openGwGanttTab().

  • title String, optional, default ''
  • options Object, optional, default null. Contains all Additional parameters
  • tabIndex Integer, optional, default null

Parametri opzionali dentro options

  • tabWidgetId: String, optional, default null. Se fornito è l'id che verrà assegnato al tab (e con il quale si potrà in seguito fare riferimento). Se omesso ne verrà generato uno in automatico del tipo 'gwDynamicTimeLine_tab_1576518200437'
  • projects String [] | String, required, alternativo a projectsFilters, determina quali progetti saranno visibili nel gwGantt. Può essere un singolo valore String, multipli valori String uniti insieme e separati da virgola, o array String [] contenenti valori String *
  • projectsFilters String [] | String, required, alternativo a projects, determina quali progetti saranno visibili nel gwGantt. Example:
[
	{
		condition: 'AND',
		columnName: 'id_project',
		operator: 'IN',
		filterType: 'INTEGER',
		value: [1, 2, 3]
	}
]
  • projectGwClassName, opzionale, String, default 'ppm_gantt_project', nome della gwClass dei Progetti Gantt dove lavora il gantt. Può essere utilizzato per settare il nome di gwClass eventualmente costruite su viste basate sulla tabella 'ppm_gantt_project'
  • taskGwClassName, opzionale, String, default 'ppm_gantt_task', nome della gwClass dei Task Gantt dove lavora il gantt. Può essere utilizzato per settare il nome di gwClass eventualmente costruite su viste basate sulla tabella 'ppm_gantt_task'
  • taskDurationChooseMode, opzionale, String, valori permessi: 'duration' (default), 'duration_in_days', 'end_time' . I valori permessi non sono latro che i name degli attributi (che devono tutti esistere) dei widget che permettono la modifica della durata temporale dei task. Questo parametro controlla la modalità con la quale l'utente potra modificare nella form di dettaglio del gwGantt la durata dei singoli task. duration, valore di default, mostra un attributo che permette di impostare la durata del task in ore. duration_in_days, mostra un attributo che permette di impostare la durata del task in giorni (sul DB verrà persistito il valore della durata in ore, considerando il vincolo 8 ore/giorno). end_time, mostra un attributo che permette di impostare la data di fine del task in giorni (sul DB verrà persistito il valore della durata in ore, calcolando la differenza in giorni tra la data di fine e quella di inizio e considerando il vincolo di 8 ore/giorno). Questo parametro influisce anche su quale attributo (relativo alla durata del task) viene mostrato nelle form di dettaglio del gwGantt, anche quando si modificano altri parametri: per esempio il nome del gwGantt
  • withResourceChart, opzionale, Boolean, default true. Flag che abilita o meno la visualizzazione del Resource Chart
  • limitEditing, opzionale, Boolean, default false. Se true restringe il set di funzioni disponibili per l'editing di Project e Task rendendo modificabili solamente name, percentage e taskOwner. E' necessario perché attualmente il gwGantt non ha un modello dati elaborato come quello di MS Project. Accade che, modificando in GW i parametri temporali di progetto importato da file MSPDI, e successivamente riesportandolo, si generino inconsistenze. Questo perché il sistema di editing in GW non considera ne i 'Calendar', ne altri aspetti del modello. Limitando l'editing solo ad un set di funzioni sicure, è possibile in seguito esportare il progetto garantendone l'originale consistenza dei dati temporali.


I prossimi 7 parametri, opzionali, riguardano l'eventuale sovrascrittura dei permessi di Geoweb, rispettivamente per le classi dei Progetti Gantt e dei Task Gantt. Sono utilizzati solo se presenti. In loro mancanza valgono i permessi base (statici/dinamici) impostati in Geoweb per le classi dei Progetti e dei Task. Ciò è utile perchè spesso si vuole rendere i parametri temporali di Progetti e Task editabili solo dal componente gwGantt, per prevenire possibili modifiche inconsistenti da parte degli utenti.

  • allowInsertProjects ,opzionale, Boolean, se assente valgono i permessi base (statici/dinamici)
  • allowModifyProjects,opzionale, Boolean, se assente valgono i permessi base (statici/dinamici)
  • allowModifyProjectsPercentage, Boolean, opzionale, default a true, valutato solo se allowModifyProjects vale true o sono presenti i permessi di modifica base (statici/dinamici) sulla classe dei progetti. Se assente o è posto a true, il gwGantt permette di settare la percentuale del progetto. Il meccanismo che, alla modifica della % di completamento di un task, ricalcola la anche la % globale del progetto (pesando le componenti delle % di completamento dei singoli task) continua a funzionare. Cioè settando la % del progetto, questa verrà poi sovrascritta alla prima modifica della % effettuata sul singolo task
  • allowDeleteProjects,opzionale, Boolean, se assente valgono i permessi base (statici/dinamici)
  • allowInsertTasks,opzionale, Boolean, se assente valgono i permessi base (statici/dinamici)
  • allowModifyTasks,opzionale, Boolean, se assente valgono i permessi base (statici/dinamici)
  • allowDeleteTasks, opzionale, Boolean, se assente valgono i permessi base (statici/dinamici)

Esempi con codice minimale:

example.js
var title = 'title';
var options = {
	projects: ['project_1', 'project_2', 'project_3']
};
openGwGanttTab(title, options);
example.js
var title = 'title';
var options = {
	projectsFilters: [
            	{
	                condition: 'AND',
	                columnName: 'id_project',
	                operator: 'IN',
	                filterType: 'INTEGER',
	                value: [1, 2, 3]
	        }
	]
};
openGwGanttTab(title, options);

Esempio generale con utilizzo di tutti i parametri. Utile per copiare velocemente uno scheletro con la struttura di base per poi eventualmente commentare i parametri non utilizzati:

example.js
var title = 'title';
var options = {
	tabWidgetId: 'tabWidgetId',
	projects: ['project_1', 'project_2', 'project_3'],
	projects: 'project_1,project_2,project_3',
	projectsFilters: [
		{
			condition: 'AND',
			columnName: 'id_project',
	                operator: 'IN',
	                filterType: 'INTEGER',
	                value: [1, 2, 3]
		}
	],
	//available values 'duration' (default),'duration_in_days', 'end_time'
	taskDurationChooseMode: 'duration',		    
	withResourceChart: true,
	limitEditing: false,
 
	//OVERRIDE CLASSES: if omitted defaults are used
	projectGwClassName: 'ppm_gantt_project',
	taskGwClassName: 'ppm_gantt_task',
 
	//OVERRIDE PERMISSIONS: if omitted defaults for related classes are used
	allowInsertProjects: false,
	allowModifyProjects: true,
	allowDeleteProjects: false,
	allowInsertTasks: true,
	allowModifyTasks: true,
	allowDeleteTasks: true
};
var tabWidget = openGwGanttTab(title, options);

Esempio che utilizza la più generare API javascript openTab(). Modalità d'uso supportata, ma @Deprecated. Utilizzare una delle modalità più specifiche descritte sopra.

example.js
var tabWidgetType = 'gwGantt';
var identifier = 'gantt_project_programmation'+'_'+'show_project_in_gantt'+'_'+data.itemDB.id_project;
var gwOuterContainerId= createTabId(tabWidgetType, identifier);
var tabWidgetTitle = 'Diagramma di Gantt';
var projects = data.itemDB.project_name;
 
var parametersMap = {
    forceReplaceTab: true,
    //OVERRIDE CLASSES: if omitted defaults are used
    //projectGwClassName: 'ppm_gantt_project',
    //taskGwClassName: 'ppm_gantt_task',
    //withResourceChart: true,
    //OVERRIDE PERMISSIONS: if omitted defaults for related classes are used
    allowInsertProjects: false,
    allowModifyProjects: true,
    allowDeleteProjects: false,
    allowInsertTasks: true,
    allowModifyTasks: true,
    allowDeleteTasks: true,
    allowModifyProjectsPercentage: true,
    limitEditing: true,
    projects: projects,
    //availabkle values 'duration' (default),'duration_in_days', 'end_time'
    taskDurationChooseMode: 'duration',
    gwOuterContainerId: gwOuterContainerId
};
 
var tabWidget = openTab(tabWidgetId, tabWidgetType, tabWidgetTitle, parametersMap);
  • custom/api_js_opengwgantttab.txt
  • Ultima modifica: 2020/01/08 10:13
  • da giorgio.scali