I tipi di attività temporali sono in beta e stanno arrivando presto a Twenty 2.34. L’API
può evolvere mentre impariamo dai casi d’uso degli sviluppatori di app.
Eventi automatici ed espliciti
Aggiungiemit quando Twenty dovrebbe creare questo tipo automaticamente. emit.on supporta created, updated, deleted, restored, linked, e unlinked, mentre emit.objectUniversalIdentifier identifica l’oggetto sorgente. Solo un tipo efficace può gestire la stessa chiave di emissione — on, oggetto e opzionale attraverso la relazione — in uno spazio di lavoro.
Senza emit.through, l’evento è scritto sulla timeline del record di origine. Per adattarlo ai record correlati, imposta emit.through. elationFieldUniversalIdentifier o a una relazione diretta tra molti o a una relazione di giunzione uno-a-molto sull’oggetto sorgente. Amante delle relazioni morph ad ogni membro del loro gruppo morph, in modo da una singola dichiarazione può colpire diversi tipi di oggetti.
Per una relazione diretta, la creazione o il ripristino del record di origine produce linked, eliminando produce unlinked, e ripuntando la relazione produce unlinked sul target precedente più linked sul nuovo obiettivo. Altri aggiornamenti di origine non producono eventi di collegamento. Questo è il contratto utilizzato dagli allegati, il cui obiettivo è una relazione diretta morfologica.
Per una relazione di giunzione, universalSettings.junctionTargetFieldUniversalIdentifier identifica la relazione dall’oggetto di giunzione al bersaglio. La creazione o l’eliminazione di una riga di giunzione produce linked o unlinked. Il riorientamento di entrambi i lati di una riga di giunzione produce anche un evento di collegamento; gli aggiornamenti di campi di giunzione non correlati non.
linked e unlinked gli eventi richiedono emit.through, perché il loro trigger è una modifica al rapporto diretto o di giunzione configurato.
Ad esempio, questo è lo stesso contratto generico utilizzato da note, compiti, messaggi e eventi di calendario:
updated through per ogni aggiornamento della sorgente. Imposta emit.through.triggerFieldUniversalIdentifiers quando solo le modifiche ai campi sorgente selezionati devono apparire nelle timeline di destinazione.
Ometti emit per un evento di dominio esplicito creato dalla tua funzione logica. In questo modo si evita di produrre sia una riga di audit automatica sia una riga esplicita per la stessa operazione.
createTimelineActivity(). Il codice dell’app usa identificatori universali stabili; Twenty risolve gli ID dei metadati specifici dell’installazione.
Rendering personalizzato
Senza un componente front, Twenty esegue il rendering di una riga generica nativa a partire dall’etichetta del tipo, dall’icona e dai metadati dell’oggetto collegato. Questo funziona per oggetti standard e personalizzati senza un renderer specifico dell’oggetto. Per dettagli personalizzati, impostafrontComponentUniversalIdentifier su un componente front appartenente alla stessa app:
useTimelineActivityId() da twenty-sdk/front-component per leggere l’ID della riga e recuperare tutti i dati necessari alla presentazione. Restituisce null quando il componente viene sottoposto a rendering al di fuori di una riga della timeline.
Sovrascrivere la presentazione di un’altra applicazione
Un’app possiede contratti automatici della timeline per i propri oggetti. Per personalizzare un evento su un oggetto posseduto da un’altra app, dichiara esplicitamente il tipo esistente conreplacesTimelineActivityTypeUniversalIdentifier:
emit, perché sostituisce uno slot di emissione automatica esistente anziché un tipo solo esplicito. Il tipo a cui viene fatto riferimento deve appartenere all’applicazione dell’oggetto di destinazione e descrivere la stessa azione e lo stesso percorso. La rimozione dell’app che effettua la sostituzione ripristina il tipo di base; la rimozione del tipo di base disabilita la sostituzione.
Sostituzioni e disattivazione dell’area di lavoro
Gli amministratori dell’area di lavoro possono modificare la presentazione di un tipo o disattivare i relativi eventi automatici ed espliciti senza effettuare un fork dell’applicazione. Usa la mutazioneupdateTimelineActivityType dell’API dei metadati con l’ID del tipo specifico dell’installazione:
label e icon vengono archiviati come sostituzioni dell’area di lavoro, pertanto gli aggiornamenti successivi dell’applicazione non sovrascrivono le scelte dell’amministratore. Imposta isActive su false per interrompere l’emissione automatica e rifiutare nuovi eventi espliciti di quel tipo. Le righe esistenti rimangono visibili.
Ripristina le impostazioni predefinite dell’applicazione, incluso lo stato attivo, con:
Campi di configurazione
Venti istantanee identità semantica e fallback durevoli della presentazione quando viene creato un evento. Le righe storiche mantengono la loro azione originale e il significato dell’oggetto. Mentre il tipo è installato, la sua attuale etichetta, icona e componente frontale rendono live; dopo la disinstallazione, lo snapshot fallback mantiene la riga leggibile. La risoluzione utilizza l’identificatore universale, quindi la presentazione sopravvive anche reinstallando l’app.