createDataProcessor

Erstellt eine neue dataProcessor-Instanz und verknüpft sie mit dem Gantt-Diagramm

object createDataProcessor(DataProcessorConfig | RouterFunction | RouterConfig config);
configDataProcessorConfig | RouterFunction | RouterConfigKonfigurationsobjekt für den dataProcessor
objectdie erstellte dataProcessor-Instanz

Example

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

Related samples

Details

Diese Methode akzeptiert einen der folgenden Parametertypen:

  • DataProcessorConfig - (object) - ein Objekt, das einen der vordefinierten Datenübertragungsmodi definiert
    • url - (string) - die Server-URL
    • mode? - (string) - optional, gibt an, wie Daten gesendet werden: "JSON" | "REST-JSON" | "JSON" | "POST" | "GET"
    • deleteAfterConfirmation? - (boolean) - optional, bestimmt, ob eine Aufgabe erst nach Bestätigung der Löschung durch den Server aus dem Gantt entfernt wird. Abhängigkeitslinks und Unteraufgaben werden gelöscht, sobald die Löschung der übergeordneten Aufgabe bestätigt ist.
var dp = gantt.createDataProcessor({
   url: "/api",
   mode: "REST",
   deleteAfterConfirmation: true
});
  • RouterFunction (entity, action, data, id): Promise | object | void - eine Router-Funktion zur Verarbeitung von Änderungen im Gantt-Diagramm
    • entity - (string) - der relevante Entitätsname, z. B. "task", "link", "resource" oder "assignment"
    • action - (string) - der Aktionstyp: "create", "update" oder "delete"
    • data - (Task | Link | ResourceAssignment | CustomObject) - das zu verarbeitende Objekt
    • id - (string | number) - die ID des zu verarbeitenden Objekts
// entity - "task"|"link"|"resource"|"assignment"
// action - "create"|"update"|"delete"
// data - ein Objekt mit Task- oder Linkdaten
// id – die ID eines verarbeiteten Objekts (Task oder Link)
var dp = gantt.createDataProcessor(function(entity, action, data, id) { 
    switch(action) {
        case "create":
           return gantt.ajax.post(
                server + "/" + entity,
                data
           );
        break;
        case "update":
           return gantt.ajax.put(
                 server + "/" + entity + "/" + id,
                 data
            );
        break;
        case "delete":
           return gantt.ajax.del(
                 server + "/" + entity + "/" + id
           );
         break;
   }
});
  • RouterConfig - (object) - ein Objekt zur Konfiguration von Routern für verschiedene Entitäten
    • task? - (RouterForEntity) - Router für Tasks
    • link? - (RouterForEntity) - Router für Links
    • resource? - (RouterForEntity) - Router für Ressourcen
    • assignment? - (RouterForEntity) - Router für Assignments

Das RouterForEntity-Objekt umfasst folgende Methoden:

  • create (data): Promise - Funktion zum Hinzufügen von Elementen
    • data - (Task | Link | ResourceAssignment | CustomObject) - das hinzuzufügende Element
  • update (data, id): Promise - Funktion zum Aktualisieren von Elementen
    • data - (Task | Link | ResourceAssignment | CustomObject) - das zu aktualisierende Element
    • id - (string | number) - die ID des Elements
  • delete (id): Promise - Funktion zum Löschen von Elementen
    • id - (string | number) - die ID des Elements
var dp = gantt.createDataProcessor({ 
   task: {
      create: function(data) {},
      update: function(data, id) {},
      delete: function(id) {}
   },
   link: {
      create: function(data) {},
      update: function(data, id) {},
      delete: function(id) {}
   }
});

Alle Router-Funktionen sollten entweder ein Promise oder ein Datenantwortobjekt zurückgeben. Dadurch kann der dataProcessor die Datenbank-ID aktualisieren und das onAfterUpdate-Event auslösen.

router = function(entity, action, data, id) {
    return new gantt.Promise(function(resolve, reject) {
        // … Logik
        return resolve({tid: databaseId});
    });
}

Dieser Ansatz ermöglicht es, DataProcessor für das Speichern von Daten in localStorage oder anderen Speichern zu verwenden, die nicht an eine bestimmte URL gebunden sind, oder wenn verschiedene Server die Erstellung und Löschung von Objekten übernehmen.

Speichern von Ressourcen und Resource Assignments

Standardmäßig verarbeitet der DataProcessor keine Updates für Ressourcen und Resource Assignments. Diese Funktion kann mit einer separaten Konfiguration aktiviert werden.

See also
Change log

die Option deleteAfterConfirmation wurde in Version 8.0 hinzugefügt

Zurück nach oben