DM.Utility.TaskWatcher
Questa utility ha lo scopo di integrare siti web custom con il sistema di task, offrendo le seguenti funzionalità:
- Controllo automatico della presenza di nuovi task con frequenza di polling adattiva;
- Generazione di eventi JS alla ricezione di nuovi task;
- Invio di notifiche alla ricezione di nuovi task;
- Visualizzazione di una apposita interfaccia di evasione del task al click su una notifica;
Inizializzazione
Il metodo statico TaskWatcher.getInstance() permette di ottenere una istanza di TaskWatcher.
Chiamate successive a getInstance() ritornano sempre la stessa istanza, in modo tale che nella stessa pagina un TaskWatcher possa essere usato e condiviso da più script senza duplicare le chiamate server-side.
var istanza = DM.Utility.TaskWatcher.getInstance();
Metodi
TaskWatcher espone i seguenti metodi:
Eventi
TaskWatcher espone degli eventi per reagire alle modifiche sulla lista di task assegnati all'utente e alle interazioni con l'utente stesso.
TaskWatcher espone i seguenti eventi:
-
newTasks
Segnala la ricezione di nuovi task.
parametri
-
tasks: array contenente l'elenco dei nuovi task ricevuti.
-
tasksChanged
Segnala che l'elenco dei task assegnati all'utente corrente è cambiato. L'evento viene scaturito quando viene ricevuto un nuovo task, oppure un task "scompare".
parametri
-
tasks: l'elenco completo dei task che in questo momento sono assegnati all'utente.
-
openTask
Segnala che l'utente ha fatto click sulla notifica di task ricevuto, quindi ha chiesto di vedere il task.
Normalmente TaskWatcher mostrerebbe in automatico l'interfaccia standard di gestione del task.
Qualora questo non fosse desiderato, basterebbe ritornare
false dal callback e questo bloccherebbe il comportamento di default.
In questo caso è necessario fornire una UI custom per dare feedback all'utente ed eventualmente fornire una interfaccia per evadere il task.
parametri
-
task: il task che ha scaturito l'evento.
-
e: l'evento di click sulla notifica.
-
openTasks
Segnala che l'utente ha fatto click sulla notifica di task multipli ricevuti, quindi ha chiesto di vederli.
Normalmente TaskWatcher mostrerebbe in automatico l'interfaccia standard di elenco dei task in carico all'utente.
Qualora questo non fosse desiderato, basterebbe ritornare
false dal callback e questo bloccherebbe il comportamento di default.
In questo caso è necessario fornire una UI custom per dare feedback all'utente ed eventualmente fornire una interfaccia per visualizzare i task.
parametri
-
tasks: array dei tasks che hanno scaturito l'evento.
-
e: l'evento di click sulla notifica.
-
newTasksNotificationAppearing
Segnala che sta per essere inviata una notifica in seguito alla ricezione di nuovi tasks.
Qualora si volesse impedire la comparsa della notifica, basterebbe ritornare
false dal callback.
In questo caso è necessario fornire una UI custom per dare feedback all'utente.
parametri
-
tasks: array contenente l'elenco dei task che stanno per essere segnalati.
Esempi
// gestione custom del task
DM.setSessionId('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
var istanza = DM.Utility.TaskWatcher.getInstance();
istanza.on('openTask', function(task) {
alert('Nuovo task ricevuto: ' + task.TaskName);
return false; // blocco il comportamento di default
});