набор методов dataprocessor
Вы можете создать новый экземпляр DataProcessor с помощью метода createDataProcessor. Также существует более старый способ создания экземпляра через конструктор dataProcessor.
Объект dataprocessor включает следующие методы и события:
const dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
});
dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
console.log("Обновленная задача:", id);
});
const dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
});
const handlerId = dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
console.log("Обновленная задача:", id);
});
// удаляем обработчик события
dp.detachEvent(handlerId);
const status = dp.getState(id);
dp.ignore(() => {
// изменения здесь не будут сохранены
gantt.addTask({
id: 10,
text: "Задача #5",
start_date: "03-02-2025",
duration: 5
});
});
Это полезно для добавления или удаления данных, когда вы хотите избежать сохранения этих изменений на сервере.
Метод dp.ignore() работает аналогично gantt.silent().dp.setTransactionMode("POST", true);
Если вы хотите отправлять кастомные HTTP-заголовки или дополнительные данные с запросами, можно передать объект в качестве первого параметра с такими свойствами:
dp.setTransactionMode({
mode: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"Accept-Language": "fr-FR"
},
payload: {
"user_id": "12"
}
}, true);
true
(по умолчанию) для пометки как обновленного, false
для снятия пометки"updated"
dp.setUpdated(1);
dp.setUpdated(2, true, "deleted");
dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
if (action === "error") {
alert(`Ошибка сервера: ${response.message}`);
}
});
Возможные статусы ответа:
updated
inserted
deleted
invalid
error
dp.attachEvent("onBeforeDataSending", (id, state, data) => {
// Пользовательская логика перед отправкой данных
return true;
});
Это событие вызывается для каждого запроса обновления данных (после onBeforeUpdate
).
Если обработчик возвращает false
, данные не будут отправлены на сервер.
Возможные статусы ответа:
updated
inserted
deleted
invalid
error
dp.attachEvent("onBeforeUpdate", (id, state, data) => {
// Пользовательская логика перед обновлением
return true;
});
Это событие вызывается для каждой обновляемой записи и перед onBeforeDataSending
.
Возврат false
здесь остановит отправку данных.
Возможные статусы ответа:
updated
inserted
deleted
invalid
error
true
для добавления пометки, false
для удаленияdp.attachEvent("onRowMark", (id, state, mode, invalid) => {
// Пользовательская логика перед пометкой элемента
return true;
});
Это событие можно заблокировать. Возврат false
остановит пометку элемента.