dataprocessor
Description
Eine Sammlung von dataprocessor-Methoden
Details
Eine neue Instanz von DataProcessor kann mithilfe der Methode createDataProcessor erstellt werden. Alternativ bietet der dataProcessor Konstruktor einen legacy Weg, eine DataProcessor-Instanz zu erstellen. Das dataprocessor-Objekt besitzt die folgenden Methoden und Ereignisse:
Methoden
Methods
attachEvent (name, handler, settings): string - hängt den Handler an ein API-Ereignis von DataProcessor an
- name - (string) - der Name des Ereignisses, Groß-/Kleinschreibung wird ignoriert
- handler - (Function) - die Handler-Funktion
- settings? - (object) - Optional, ein Objekt mit Einstellungen für den Ereignis-Handler
const dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
});
dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
console.log("Updated task:", id);
});
detachEvent (id): void - trennt einen zuvor von der Methode attachEvent() angehängten Handler von einem Ereignis
- id - (string) - die ID des Ereignisses
const dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
});
const handlerId = dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
console.log("Updated task:", id);
});
// detach a listener
dp.detachEvent(handlerId);
getState (id): string - gibt den Zustand eines Elements zurück (aktualisiert oder nicht)
- id - (string | number) - die ID eines Elements
const status = dp.getState(id);
ignore (code): void - führt einen Block aus, ohne DataProcessor auszulösen
- code - (Function) - Code zur Änderung von Daten
dp.ignore(() => {
// wird nicht gespeichert
gantt.addTask({
id: 10,
text: "Task #5",
start_date: "03-02-2025",
duration: 5
});
});
Hier können Sie Operationen zum Hinzufügen und Löschen von Daten platzieren, wenn Sie diese Änderungen nicht auf dem Server speichern möchten.
Die dp.ignore()-Methode funktioniert ähnlich wie gantt.silent().setTransactionMode (mode, total): void - konfiguriert den Datensende-Modus
- mode - (string) - der Datensende-Modus, "GET"|"POST"|"REST"|"JSON"|"REST-JSON"
- total - (boolean) - definiert, ob alle Daten auf einmal gesendet werden oder jeder Datensatz durch eine separate Anfrage
- mode - (string) - Datensende-Modus, "GET", "POST", "REST", "JSON", "REST-JSON"
- headers - (object) - eine Menge von Headern, definiert als Paare
"key":"value", die mit einer Anfrage gesendet werden sollen - payload - (object) - zusätzliche Daten, festgelegt als Paare
"key":"value", die zusammen mit den Headers an den Server gesendet werden sollen
dp.setTransactionMode("POST", true);
Um benutzerdefinierte HTTP-Anforderungsheader oder zusätzliche Daten an den Server zu senden, geben Sie den ersten Parameter als Objekt mit den folgenden Eigenschaften an:
dp.setTransactionMode({
mode: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Accept-Language": "fr-FR"
},
payload: {
"user_id": "12"
}
}, true);
setUpdated (rowId, [mode, state]): void - markiert ein Element als aktualisiert
- rowId - (string | number) - die ID eines Elements, für das der Aktualisierungsstatus festgelegt wird
- mode? - (boolean) - Optional,
true(Standard) für "aktualisiert",falsefür "nicht aktualisiert" - state? - (string) - Optional, der Name des Aktualisierungsmodus, standardmäßig
"updated"
dp.setUpdated(1);
dp.setUpdated(2, true, "deleted");
getSyncState (): boolean - gibt den Zustand von DataProcessor zurück (true, wenn alle Daten gespeichert sind)
const state = dp.getSyncState();
Wenn einige Datensätze noch nicht gespeichert wurden oder eine "error"-Antwort erhalten haben, gibt die Methode false zurück.
sendData ([id]): void - sendet alle Daten, die noch nicht auf der Serverseite gespeichert sind
- id - (string | number) - optional, die ID eines Elements
dp.sendData();
Falls eine ID angegeben wird, wird nur ein Element an die Serverseite gesendet.
Beim Aufruf ohne Parameter sendet die Methode alle Elemente, die noch nicht gespeichert wurden.
Events
onAfterUpdate (id, action, tid, response): void - löst sich aus, nachdem die serverseitige Antwort empfangen und verarbeitet wurde
- id - (string | number) - die ID des aktualisierten Elements
- action - (string) - der Status der Antwort (Operationstyp)
- tid - (string) - die neue ID (gilt nur für Insert-Operationen)
- response - (mixed) - der geparste XML-Knoten oder das JSON-Objekt der Antwort
dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
if (action === "error") {
alert(`Server error: ${response.message}`);
}
});
updatedinserteddeletedinvaliderror
Possible response statuses:
onBeforeDataSending (id, state, data): void - löst sich aus, bevor Daten an einen Server gesendet werden
- id - (string | number) - die ID des Elements
- state - (string) - der Zustand des Elements (Operationstyp)
- data - (object) - die serialisierten Daten, die an den Server gesendet werden
dp.attachEvent("onBeforeDataSending", (id, state, data) => {
// Benutzerdefinierte Logik vor dem Senden der Daten
return true;
});
updatedinserteddeletedinvaliderror
Das Ereignis wird für jede Datenaktualisierungsanforderung ausgelöst (nach onBeforeUpdate).
Durch Zurückgeben von false aus dem Ereignis-Handler wird verhindert, dass Daten an den Server gesendet werden.
Mögliche Antwort-Statuses:
onBeforeUpdate (id, state, data): void - löst sich vor dem Aktualisieren eines Datensatzes (oder mehrerer Datensätze) aus
- id - (string | number) - die ID des Elements
- state - (string) - der Zustand des Elements (Operationstyp)
- data - (object) - die an den Server gesendeten Daten
dp.attachEvent("onBeforeUpdate", (id, state, data) => {
// Benutzerdefinierte Logik vor dem Aktualisieren
return true;
});
updatedinserteddeletedinvaliderror
Das Ereignis wird für jedes zu aktualisierende Datensatz ausgelöst und vor onBeforeDataSending.
Durch Zurückgeben von false aus dem Ereignis-Handler wird verhindert, dass Daten an den Server gesendet werden.
Possible response statuses:
onRowMark (id, state, mode, invalid): void - löst sich vor jedem Versuch aus, das aktualisierte Element zu markieren
- id - (string | number) - die ID des Elements, für das der Fehler auftritt
- state - (string) - der Zustand des Elements (Operationstyp)
- mode - (boolean) -
truezum Hinzufügen einer Aktualisierungs-Markierung,falsezum Entfernen - invalid - (object) - Details zu Fehlern, falls vorhanden
dp.attachEvent("onRowMark", (id, state, mode, invalid) => {
// Benutzerdefinierte Logik vor dem Markieren eines Elements
return true;
});
Das Ereignis ist blockierbar. Wenn false zurückgegeben wird, wird das Element nicht markiert.