dataprocessor

набор методов dataprocessor

object dataprocessor;
Details

Вы можете создать новый экземпляр DataProcessor с помощью метода createDataProcessor. Также существует более старый способ создания экземпляра через конструктор dataProcessor.
Объект dataprocessor включает следующие методы и события:

Методы

  • attachEvent (name, handler, settings): string - добавляет обработчик к событию API DataProcessor
    • name - (string) - имя события, регистронезависимое
    • handler - (Function) - функция, обрабатывающая событие
    • settings? - (object) - необязательный объект настроек для обработчика события
    const dp = gantt.createDataProcessor({
        url: "/api",
        mode: "REST",
    });
     
    dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
        console.log("Обновленная задача:", id);
    });
  • detachEvent (id): void - удаляет ранее добавленный обработчик события по его ID
    • id - (string) - ID обработчика события
    const dp = gantt.createDataProcessor({
        url: "/api",
        mode: "REST",
    });
     
    const handlerId = dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
        console.log("Обновленная задача:", id);
    });
     
    // удаляем обработчик события
    dp.detachEvent(handlerId);
  • getState (id): string - получает состояние конкретного элемента (обновлен или нет)
    • id - (string | number) - ID элемента
    const status = dp.getState(id);
  • ignore (code): void - выполняет блок кода без вызова действий DataProcessor
    • code - (Function) - функция, изменяющая данные
    dp.ignore(() => {
        // изменения здесь не будут сохранены
        gantt.addTask({
            id: 10,
            text: "Задача #5",
            start_date: "03-02-2025",
            duration: 5
        });
    });

    Это полезно для добавления или удаления данных, когда вы хотите избежать сохранения этих изменений на сервере.

    Метод dp.ignore() работает аналогично gantt.silent().
  • setTransactionMode (mode, total): void - задает способ отправки данных на сервер
    • mode - (string) - метод отправки, варианты: "GET", "POST", "REST", "JSON" или "REST-JSON"
    • total - (boolean) - определяет, отправлять ли все данные сразу или по отдельности для каждой записи
    dp.setTransactionMode("POST", true);

    Если вы хотите отправлять кастомные HTTP-заголовки или дополнительные данные с запросами, можно передать объект в качестве первого параметра с такими свойствами:

    • mode - (string) - режим отправки данных, например "GET", "POST", "REST", "JSON" или "REST-JSON"
    • headers - (object) - пары ключ-значение заголовков для включения в запрос
    • payload - (object) - дополнительные пары ключ-значение, отправляемые вместе с заголовками
    dp.setTransactionMode({
        mode: "POST",
        headers: {
            "Content-Type": "application/x-www-form-urlencoded",
            "Accept-Language": "fr-FR"
        },
        payload: {
            "user_id": "12"
        }
    }, true);
  • setUpdated (rowId, [mode, state]): void - помечает элемент как обновленный или нет
    • rowId - (string | number) - ID элемента
    • mode? - (boolean) - необязательный параметр, true (по умолчанию) для пометки как обновленного, false для снятия пометки
    • state? - (string) - необязательный, имя состояния обновления, по умолчанию "updated"
    dp.setUpdated(1);
    dp.setUpdated(2, true, "deleted");

События

  • onAfterUpdate (id, action, tid, response): void - срабатывает после получения и обработки ответа сервера
    • id - (string | number) - ID обновленного элемента
    • action - (string) - статус ответа (тип операции)
    • tid - (string) - новый ID (только для операций вставки)
    • response - (mixed) - разобранный ответ, либо XML-узел, либо JSON-объект
    dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
        if (action === "error") {
            alert(`Ошибка сервера: ${response.message}`);
        }
    });

    Возможные статусы ответа:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeDataSending (id, state, data): void - срабатывает непосредственно перед отправкой данных на сервер
    • id - (string | number) - ID элемента
    • state - (string) - текущее состояние элемента (тип операции)
    • data - (object) - сериализованные данные, которые будут отправлены
    dp.attachEvent("onBeforeDataSending", (id, state, data) => {
        // Пользовательская логика перед отправкой данных
        return true;
    });

    Это событие вызывается для каждого запроса обновления данных (после onBeforeUpdate).

    Если обработчик возвращает false, данные не будут отправлены на сервер.

    Возможные статусы ответа:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeUpdate (id, state, data): void - срабатывает перед обновлением записи (или записей)
    • id - (string | number) - ID элемента
    • state - (string) - состояние элемента (тип операции)
    • data - (object) - данные, которые будут отправлены на сервер
    dp.attachEvent("onBeforeUpdate", (id, state, data) => {
        // Пользовательская логика перед обновлением
        return true;
    });

    Это событие вызывается для каждой обновляемой записи и перед onBeforeDataSending.

    Возврат false здесь остановит отправку данных.

    Возможные статусы ответа:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onRowMark (id, state, mode, invalid): void - срабатывает перед пометкой обновленного элемента
    • id - (string | number) - ID элемента, связанного с ошибкой
    • state - (string) - состояние элемента (тип операции)
    • mode - (boolean) - true для добавления пометки, false для удаления
    • invalid - (object) - детали ошибки, если есть
    dp.attachEvent("onRowMark", (id, state, mode, invalid) => {
        // Пользовательская логика перед пометкой элемента
        return true;
    });

    Это событие можно заблокировать. Возврат false остановит пометку элемента.

See also
К началу