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

dataprocessor

Description

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

Details

Новый экземпляр DataProcessor можно создать с помощью метода createDataProcessor. В качестве альтернативы конструктор dataProcessor предоставляет устаревшее средство создания экземпляра 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("Updated task:", id);
    });
  • detachEvent (id): void - отсоединяет обработчик от события (которое было подключено ранее методом attachEvent())

    • id - (string) - идентификатор события
    const dp = gantt.createDataProcessor({
    url: "/api",
    mode: "REST",
    });

    const handlerId = dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
    console.log("Updated task:", id);
    });

    // detach a listener
    dp.detachEvent(handlerId);
  • getState (id): string - возвращает состояние элемента (обновлён или нет)

    • id - (string | number) - идентификатор элемента
    const status = dp.getState(id);
  • ignore (code): void - выполняет блок кода без триггера DataProcessor

    • code - (Function) - код изменений данных
    dp.ignore(() => {
    // won't be saved
    gantt.addTask({
    id: 10,
    text: "Task #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) - набор заголовков, заданных как пары "key":"value", которые должны быть отправлены с запросом
    • payload - (object) - дополнительные данные, заданные как пары "key":"value", которые следует отправить на сервер вместе с заголовками
    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) - идентификатор элемента, для которого задаётся статус обновления
    • mode? - (boolean) - опционально, true (по умолчанию) для "обновлено", false для "не обновлено"
    • state? - (string) - опционально, имя режима обновления, "updated" по умолчанию
    dp.setUpdated(1);
    dp.setUpdated(2, true, "deleted");
  • getSyncState (): boolean - возвращает состояние DataProcessor (true, когда все данные сохранены)
    const state = dp.getSyncState();

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

  • sendData ([id]): void - отправляет на сервер все данные, которые ещё не сохранены
    • id - (string | number) - опционально, идентификатор элемента
    dp.sendData();

    Если указан ID, будет отправлён только один элемент.

    При вызове без параметров метод отправит все элементы, которые ещё не сохранены.

Events

  • onAfterUpdate (id, action, tid, response): void - срабатывает после получения и обработки ответа сервера

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

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

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeDataSending (id, state, data): void - срабатывает перед отправкой данных на сервер

    • id - (string | number) - идентификатор элемента
    • state - (string) - состояние элемента (тип операции)
    • data - (object) - сериализованные данные, которые будут отправлены на сервер
    dp.attachEvent("onBeforeDataSending", (id, state, data) => {
    // Custom logic before sending data
    return true;
    });

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

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

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

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeUpdate (id, state, data): void - срабатывает перед обновлением записи(ей)

    • id - (string | number) - идентификатор элемента
    • state - (string) - состояние элемента (тип операции)
    • data - (object) - данные, которые будут отправлены на сервер
    dp.attachEvent("onBeforeUpdate", (id, state, data) => {
    // Custom logic before updating
    return true;
    });

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

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

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

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onRowMark (id, state, mode, invalid): void - срабатывает перед каждой попыткой пометить обновлённую запись

    • id - (string | number) - идентификатор элемента, для которого возникает ошибка
    • state - (string) - состояние элемента (тип операции)
    • mode - (boolean) - true для добавления пометки обновления, false для её удаления
    • invalid - (object) - детали об ошибках, если таковые имеются
    dp.attachEvent("onRowMark", (id, state, mode, invalid) => {
    // Custom logic before marking an item
    return true;
    });

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

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.