createDataProcessor

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

object createDataProcessor(DataProcessorConfig | RouterFunction | RouterConfig config);
configDataProcessorConfig | RouterFunction | RouterConfigобъект конфигурации dataProcessor
objectобъект dataProcessor

Example

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

Related samples

Details

Метод может принимать один из следующих типов параметров:

  • 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 - функция маршрутизатора для обработки изменений в Gantt
    • entity - (string) - имя соответствующей сущности. Возможные значения: "task"|"link"|"resource"|"assignment"
    • action - (string) - имя соответствующего действия. Возможные значения: "create"|"update"|"delete"
    • data - (Task | Link | ResourceAssignment | CustomObject) - обрабатываемый объект
    • id - (string | number) - id обрабатываемого объекта
// entity - "task"|"link"|"resource"|"assignment"
// action - "create"|"update"|"delete"
// data - объект с данными задачи или связи
// id – id обрабатываемого объекта (задачи или связи)
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) - id обрабатываемого элемента
  • delete (id): Promise - функция для обработки удаления элементов
    • id - (string | number) - id обрабатываемого элемента
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 мог применить id базы данных и подключить событие onAfterUpdate data processor.

router = function(entity, action, data, id) {
    return new gantt.Promise(function(resolve, reject) {
        // … некоторая логика
        return resolve({tid: databaseId});
    });
}

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

Сохранение ресурсов и назначений ресурсов

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

See also
Change log

параметр deleteAfterConfirmation добавлен в версии v8.0

К началу