Работа с данными
Это руководство охватывает операции с данными в Kanban: загрузку начальных данных, чтение и экспорт данных, изменение cards, columns, rows и links, а также управление комментариями и выделением.
Загрузк а начальных данных
При инициализации Kanban передайте начальные данные через свойства columns, cards, rows и links.
Следующий пример кода передаёт данные columns, cards, rows и links в конструктор Kanban:
const columns = [ // данные для columns
{
label: "Backlog",
id: "backlog"
},
{
label: "In progress",
id: "inprogress"
},
{
label: "Testing",
id: "testing"
},
{...}
];
const cards = [ // данные для cards
{
id: 1,
label: "Integration with React",
priority: 1,
color: "#65D3B3",
description: "Some description...",
start_date: new Date("01/05/2021"),
end_date: new Date("01/15/2021"),
progress: 25,
users: [1,2,3,4],
sprint: "1.0",
column: "backlog",
type: "feature",
css: "red",
votes: [4,6,9],
comments: [
{
id: 1,
userId: 9,
cardId: 6,
text: "Greetings, fellow colleagues. I would like to share my insights on this task. I reckon we should deal with at least half of the points in the plan without further delays.",
date: new Date(),
},{...}
]
},
{
id: 2,
label: "Archive the cards/boards ",
priority: 2,
color: "#FFC975",
start_date: new Date("01/05/2021"),
end_date: new Date("01/15/2021"),
sprint: "1.0",
column: "backlog",
type: "feature"
},
{
label: "Searching and filtering",
priority: 1,
color: "#65D3B3",
start_date: new Date("01/05/2021"),
sprint: "1.2",
column: "backlog",
type: "task"
},
{
label: "Set the tasks priorities",
priority: 2,
color: "#58C3FE",
sprint: "1.2",
column: "inprogress",
type: "feature"
},
{...}
];
const rows = [ // данные для rows
{
label: "Feature",
id: "feature"
},
{
label: "Task",
id: "task",
collapsed: true
},
{...}
];
const links = [
{
id: "link_1",
source: 1,
target: 2,
relation: "relatesTo",
},
{...}
];
// инициализация Kanban с начальными данными
new kanban.Kanban("#root", {
columns,
cards,
rows,
links
});
Загрузка данных из локального источника
Используйте setConfig() или parse() для загрузки данных columns, rows, cards и links после инициализации:
const board = new kanban.Kanban("#root", {});
// загрузка данных в Kanban
board.setConfig({ columns, cards, rows });
// или board.parse({ columns, cards, rows });
Синхронизация данных с Gantt и Scheduler
Информацию об интеграции с несколькими виджетами см. в разделе Интеграция с виджетами DHTMLX.
Получение данных
getAreaCards()- возвращает объекты данных всех cards в указанной column (и, опционально, row)getColumnCards()- возвращает объекты данных всех cards в указанной columngetCard()- возвращает объект данных card по IDserialize()- возвращает данные Kanban в виде JSON-объекта
Получение состояния
api.getReactiveState()- возвращает реактивные свойства DataStoreapi.getState()- возвращает текущие свойства DataStoreapi.getStores()- возвращает{ data: DataStore }
Экспорт данных
export.json()- скачивает данные Kanban в виде JSON-файла
Добавление новых элементов
addCard()- добавляет новую cardaddColumn()- добавляет новую columnaddRow()- добавляет новую rowduplicateCard()- дублирует card по ID
Обновление элементов
updateCard()- обновляет card по IDupdateColumn()- обновляет column по IDupdateRow()- обновляет row по ID
Удаление элементов
deleteCard()- удаляет card по IDdeleteColumn()- удаляет column по IDdeleteRow()- удаляет row по ID
Перемещение элементов
moveCard()- перемещает card в указанную column и rowmoveColumn()- перемещает column на новую позициюmoveRow()- перемещает row на новую позицию
Управление комментариями
addComment()- добавляет комментарий к card по IDupdateComment()- обновляет комментарий по IDdeleteComment()- удаляет комментарий по ID
Управление links
addLink()- добавляет новый link между cardsdeleteLink()- удаляет link по ID
Управление выделением cards
getSelection()- возвращает ID выбранных в данный момент cardsselectCard()- выделяет card по IDunselectCard()- снимает выделение с card по ID
Пример
Следующий пример использует API Kanban для работы с данными во время выполнения: