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:

  • on
    Permette di iscrivere una funzione ad un evento.
    parametri
    • eventName: il nome dell'evento interessato. Consultare la lista degli eventi.
    • callback: funzione Javascript da eseguire allo scaturirsi dell'evento.
  • off
    Permette di disiscrivere una funzione da un evento.
    parametri
    • eventName: il nome dell'evento interessato.
    • callback: funzione Javascript che era stata iscritta.
  • reset
    Permette di svuotare la cache locale e di lanciare un aggiornamento immediato della lista dei task.
    Se TaskWatcher è utilizzato globalmente in una web app, è consigliato chiamare questo metodo in seguito al login dell'utente.

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
});