Zum Hauptinhalt springen

dataprocessor

Description

Eine Sammlung von dataprocessor-Methoden

Example

Details

Sie können eine neue DataProcessor-Instanz mit der Methode createDataProcessor erstellen. Es gibt auch eine ältere Möglichkeit, eine Instanz über den Konstruktor dataProcessor zu erzeugen.
Das dataprocessor-Objekt beinhaltet die folgenden Methoden und Events:

Methoden

  • attachEvent (name, handler, settings): string - fügt einen Handler zu einem DataProcessor API Event hinzu
    • name - (string) - der Event-Name, case-insensitive
    • handler - (Function) - die Funktion, die das Event behandelt
    • settings? - (object) - optional, Einstellungsobjekt für den Event-Handler
    const dp = gantt.createDataProcessor({
    url: "/api",
    mode: "REST",
    });

    dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
    console.log("Updated task:", id);
    });
  • detachEvent (id): void - entfernt einen zuvor angehängten Event-Handler anhand seiner ID

    • id - (string) - die ID des Event-Handlers

    const dp = gantt.createDataProcessor({
    url: "/api",
    mode: "REST",
    });

    const handlerId = dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
    console.log("Updated task:", id);
    });

    // entfernt den Event-Listener
    dp.detachEvent(handlerId);
  • getState (id): string - gibt den Status eines bestimmten Elements zurück (ob es aktualisiert wurde oder nicht)

    • id - (string | number) - die ID des Elements
    const status = dp.getState(id);
  • ignore (code): void - führt einen Codeblock aus, ohne DataProcessor-Aktionen auszulösen

    • code - (Function) - die Funktion zur Datenänderung
    dp.ignore(() => {
    // Änderungen hier werden nicht gespeichert
    gantt.addTask({
    id: 10,
    text: "Task #5",
    start_date: "03-02-2025",
    duration: 5
    });
    });

    Dies ist nützlich, um Daten hinzuzufügen oder zu entfernen, wenn Sie vermeiden möchten, dass diese Änderungen zum Server gesendet werden.

    Die Methode dp.ignore() verhält sich ähnlich wie gantt.silent().
  • setTransactionMode (mode, total): void - legt fest, wie Daten an den Server gesendet werden

    • mode - (string) - die Versandmethode, Optionen sind "GET", "POST", "REST", "JSON" oder "REST-JSON"
    • total - (boolean) - bestimmt, ob alle Daten auf einmal oder jeder Datensatz einzeln gesendet wird
    dp.setTransactionMode("POST", true);

    Wenn Sie benutzerdefinierte HTTP-Header oder zusätzliche Daten mit den Anfragen senden möchten, können Sie als ersten Parameter ein Objekt mit folgenden Eigenschaften übergeben:

    • mode - (string) - Datenversandmodus, z.B. "GET", "POST", "REST", "JSON" oder "REST-JSON"
    • headers - (object) - Schlüssel-Wert-Paare von Headern, die in die Anfrage aufgenommen werden
    • payload - (object) - zusätzliche Schlüssel-Wert-Paare, die zusammen mit den Headern gesendet werden
    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 oder nicht

    • rowId - (string | number) - die ID des Elements
    • mode? - (boolean) - optional, true (Standard) zum Markieren als aktualisiert, false zum Markieren als nicht aktualisiert
    • state? - (string) - optional, der Name des Update-Status, Standard ist "updated"
    dp.setUpdated(1);
    dp.setUpdated(2, true, "deleted");

Events

  • onAfterUpdate (id, action, tid, response): void - wird ausgelöst, nachdem die Serverantwort empfangen und verarbeitet wurde

    • id - (string | number) - die ID des aktualisierten Elements
    • action - (string) - der Status der Antwort (Art der Operation)
    • tid - (string) - die neue ID (nur für Insert-Operationen)
    • response - (mixed) - die geparste Antwort, entweder als XML-Knoten oder JSON-Objekt
    dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
    if (action === "error") {
    alert(`Serverfehler: ${response.message}`);
    }
    });

    Dies sind die möglichen Antwort-Status:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeDataSending (id, state, data): void - wird unmittelbar vor dem Senden der Daten an den Server ausgelöst

    • id - (string | number) - die ID des Elements
    • state - (string) - der aktuelle Status des Elements (Operationstyp)
    • data - (object) - die serialisierten Daten, die gesendet werden
    dp.attachEvent("onBeforeDataSending", (id, state, data) => {
    // Eigene Logik vor dem Senden der Daten
    return true;
    });

    Dieses Event wird für jede Datenaktualisierungsanfrage ausgelöst (nach onBeforeUpdate).

    Wenn der Handler false zurückgibt, werden die Daten nicht an den Server gesendet.

    Mögliche Antwort-Status:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeUpdate (id, state, data): void - wird ausgelöst, bevor ein Datensatz (oder mehrere) aktualisiert wird/werden

    • id - (string | number) - die ID des Elements
    • state - (string) - der Status des Elements (Operationstyp)
    • data - (object) - die Daten, die an den Server gesendet werden
    dp.attachEvent("onBeforeUpdate", (id, state, data) => {
    // Eigene Logik vor der Aktualisierung
    return true;
    });

    Dieses Event wird für jeden zu aktualisierenden Datensatz ausgelöst und vor onBeforeDataSending.

    Wenn hier false zurückgegeben wird, wird das Senden der Daten abgebrochen.

    Mögliche Antwort-Status:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onRowMark (id, state, mode, invalid): void - wird ausgelöst, bevor ein aktualisiertes Element markiert wird

    • id - (string | number) - die ID des Elements, auf das sich der Fehler bezieht
    • state - (string) - der Status des Elements (Operationstyp)
    • mode - (boolean) - true, um eine Markierung hinzuzufügen, false, um sie zu entfernen
    • invalid - (object) - Fehlerdetails, falls vorhanden
    dp.attachEvent("onRowMark", (id, state, mode, invalid) => {
    // Eigene Logik vor dem Markieren eines Elements
    return true;
    });

    Dieses Event kann blockiert werden. Wenn false zurückgegeben wird, wird das Element nicht markiert.