createDataProcessor

erstellt eine neue dataProcessor-Instanz und fügt sie dem Gantt hinzu

object createDataProcessor(DataProcessorConfig | RouterFunction | RouterConfig config);
configDataProcessorConfig | RouterFunction | RouterConfigdataProcessor-Konfigurationsobjekt
objectdas dataProcessor-Objekt

Example

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

Related samples

Details

Die Methode kann einen der folgenden Parametertypen annehmen:

  • DataProcessorConfig - (object) - Objekt, das einen der vordefinierten Modi zum Senden der Daten angibt
    • url - (string) - die URL zur Serverseite
    • mode? - (string) - optional, der Modus zum Senden von Daten an den Server: "JSON" | "REST-JSON" | "JSON" | "POST" | "GET"
    • deleteAfterConfirmation? - (boolean) - optional, definiert, ob die Aufgabe aus dem Gantt nur nach einer erfolgreichen Antwort vom Server gelöscht werden muss. Abhängigkeiten und Unteraufgaben werden gelöscht, nachdem die Löschung der übergeordneten Aufgabe bestätigt wurde.
var dp = gantt.createDataProcessor({
   url: "/api",
   mode: "REST",
   deleteAfterConfirmation: true
});
  • RouterFunction (entity, action, data, id): Promise - die Routerfunktion zur Verarbeitung von Änderungen im Gantt
    • entity - (string) - der Name der relevanten Entität. Mögliche Werte sind: "task"|"link"|"resource"|"assignment"
    • action - (string) - der Name der relevanten Aktion. Mögliche Werte sind: "create"|"update"|"delete"
    • data - (Task | Link | ResourceAssignment | CustomObject) - das verarbeitete Objekt
    • id - (string | number) - die ID eines verarbeiteten Objekts
// entity - "task"|"link"|"resource"|"assignment"
// action - "create"|"update"|"delete"
// data - ein Objekt mit Aufgaben- oder Linkdaten
// id – die ID eines verarbeiteten Objekts (Aufgabe 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) - die Routerkonfiguration für verschiedene Entitäten
    • task? - (RouterForEntity) - das Routerobjekt für Aufgaben
    • link? - (RouterForEntity) - das Routerobjekt für Links
    • resource? - (RouterForEntity) - das Routerobjekt für Ressourcen
    • assignment? - (RouterForEntity) - das Routerobjekt für Zuweisungen

Das RouterForEntity-Objekt hat die folgenden Eigenschaften:

  • create (data): Promise - eine Funktion zur Verarbeitung des Hinzufügens von Elementen
    • data - (Task | Link | ResourceAssignment | CustomObject) - das verarbeitete Element
  • update (data, id): Promise - eine Funktion zur Verarbeitung der Aktualisierung von Elementen
    • data - (Task | Link | ResourceAssignment | CustomObject) - das verarbeitete Element
    • id - (string | number) - die ID eines verarbeiteten Elements
  • delete (id): Promise - eine Funktion zur Verarbeitung des Löschens von Elementen
    • id - (string | number) - die ID eines verarbeiteten 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 Funktionen des Routerobjekts sollten entweder ein Promise oder ein Datenantwortobjekt zurückgeben. Dies ist notwendig, damit der dataProcessor die Datenbank-ID anwenden und das onAfterUpdate-Ereignis des Datenprozessors verknüpfen kann.

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

So können Sie den DataProcessor verwenden, um Daten im localStorage oder einem anderen Speicher zu speichern, der nicht mit einer bestimmten URL verknüpft ist, oder im Fall, dass zwei verschiedene Server (URLs) für die Erstellung und Löschung von Objekten verantwortlich sind.

Speichern von Ressourcen und Ressourcen-Zuweisungen

Standardmäßig erhält der DataProcessor keine Aktualisierungen von Ressourcen und Ressourcen-Zuweisungen. Sie können jedoch diese Funktion über eine separate Konfiguration aktivieren.

See also
Change log

der Parameter deleteAfterConfirmation wurde in v8.0 hinzugefügt.

Zurück nach oben