Erstellt eine neue dataProcessor-Instanz und verknüpft sie mit dem Gantt-Diagramm
config | DataProcessorConfig | RouterFunction | RouterConfig | Konfigurationsobjekt für den dataProcessor |
object | die erstellte dataProcessor-Instanz |
var dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
deleteAfterConfirmation: true
});
Diese Methode akzeptiert einen der folgenden Parametertypen:
var dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
deleteAfterConfirmation: true
});
// 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;
}
});
Das RouterForEntity-Objekt umfasst folgende Methoden:
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.
Standardmäßig verarbeitet der DataProcessor keine Updates für Ressourcen und Resource Assignments. Diese Funktion kann mit einer separaten Konfiguration aktiviert werden.
die Option deleteAfterConfirmation wurde in Version 8.0 hinzugefügt
Zurück nach oben