Перейти к основному содержимому

createDataProcessor

Description

Создает новый экземпляр dataProcessor и присоединяет его к gantt

createDataProcessor: (config: DataProcessorConfig | RouterFunction | RouterConfig) => any

Parameters

  • config - (required) DataProcessorConfig | RouterFunction | RouterConfig - объект конфигурации dataProcessor

Returns

  • dataProcessor - (object) - объект dataProcessor

Example

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

Details

The method can take one of the following types of parameters:

  • DataProcessorConfig - (object) - объект, задающий один из предопределённых режимов отправки данных
    • url - (string) - URL сервера
    • mode? - (string) - необязательный режим отправки данных на сервер: "JSON" | "REST-JSON" | "JSON" | "POST" | "GET"
    • deleteAfterConfirmation? - (boolean) - необязательный, определяет, должен ли элемент быть удалён из gantt только после успешного ответа от сервера. Связи зависимостей и подпроекты будут удалены после подтверждения удаления родительской задачи.
var dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
deleteAfterConfirmation: true
});
  • RouterFunction (entity, action, data, id): Promise | object | void - функция-роутер для обработки изменений в Gantt
    • entity - (string) - имя соответствующей сущности. Возможные значения: "task"|"link"|"resource"|"assignment"
    • action - (string) - имя соответствующего действия. Возможные значения: "create"|"update"|"delete"
    • data - (Task | Link | ResourceAssignment | CustomObject) - обработанный объект
    • id - (string | number) - идентификатор обработанного объекта
// entity - "task"|"link"|"resource"|"assignment"
// action - "create"|"update"|"delete"
// data - an object with task or link data
// id – the id of a processed object (task or 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) - конфигурация роутера для различных сущностей
    • task? - (RouterForEntity) - объект роутера для задач
    • link? - (RouterForEntity) - объект роутера для связей
    • resource? - (RouterForEntity) - объект роутера для ресурсов
    • assignment? - (RouterForEntity) - объект роутера для назначений

Объект RouterForEntity имеет следующие свойства:

  • create (data): Promise - функция обработки добавления элементов
    • data - (Task | Link | ResourceAssignment | CustomObject) - обрабатываемый элемент
  • update (data, id): Promise - функция обработки обновления элементов
    • data - (Task | Link | ResourceAssignment | CustomObject) - обрабатываемый элемент
    • id - (string | number) - идентификатор обрабатываемого элемента
  • delete (id): Promise - функция обработки удаления элементов
    • id - (string | number) - идентификатор обрабатываемого элемента
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) {}
}
});

Все функции роутера должны возвращать либо Promise, либо объект ответа данных. Это необходимо для того, чтобы dataProcessor мог применить идентификатор из базы данных и привязать событие onAfterUpdate обработчика данных.

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

Таким образом, вы можете использовать DataProcessor для сохранения данных в localStorage, или в любое другое хранилище, не привязанное к конкретному URL, или в случае, если существуют две разных сервера (URL), ответственные за создание и удаление объектов.

Saving Resources and Resource Assignments

По умолчанию DataProcessor не получает обновления ресурсов и назначений ресурсов. Однако вы можете включить эту возможность через отдельную конфигурацию.

Change log

  • параметр deleteAfterConfirmation добавлен в версии v8.0
Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.