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

Начало работы

Этот учебник поможет вам создать полнофункциональный To Do List и добавить его в ваше веб-приложение.

Полнофункциональный DHTMLX To Do List на веб-странице

После выполнения всех шагов ниже вы получите готовый к использованию To Do List, который легко настроить под свои нужды и эффективно применять на практике.

Шаг 1. Подключение исходных файлов

К сведению

Скачайте пакет To Do List здесь и распакуйте его в папку вашего будущего проекта.

Сначала создайте HTML-файл и назовите его index.html. Затем подключите исходные файлы DHTMLX To Do List в этот файл.

Вам необходимо подключить два файла:

  • JS-файл To Do List
  • CSS-файл To Do List
index.html
<!DOCTYPE html>
<html>
<head>
<title>How to Start with DHTMLX To Do List</title>
<script type="text/javascript" src="./dist/todo.js"></script>
<link rel="stylesheet" href="./dist/todo.css">
</head>
<body>
<script>
// ваш код будет здесь
</script>
</body>
</html>

Установка To Do List через npm или yarn

Вы можете импортировать JavaScript To Do List в свой проект с помощью менеджера пакетов yarn или npm.

Установка пробной версии To Do List через npm или yarn

К сведению

Если вы хотите использовать пробную версию To Do List, скачайте пакет пробной версии To Do List и следуйте шагам, описанным в файле README. Обратите внимание, что пробная версия To Do List доступна только в течение 30 дней.

Установка PRO-версии To Do List через npm или yarn

К сведению

Вы можете получить доступ к приватному npm DHTMLX непосредственно в Личном кабинете, сгенерировав логин и пароль для npm. Подробная инструкция по установке также доступна там. Обратите внимание, что доступ к приватному npm возможен только при наличии активной лицензии на PRO-версию To Do List.

Шаг 2. Создание To Do List

Теперь вы можете добавить To Do List на страницу. Для этого нужно создать два DIV-контейнера: для самого To Do List и его Toolbar. Ваши шаги:

  • укажите два DIV-контейнера в файле index.html
  • инициализируйте To Do List и его Toolbar с помощью конструкторов new ToDo() и new Toolbar() соответственно
index.html
<!DOCTYPE html>
<html>
<head>
<title>How to Start with To Do List</title>
<script type="text/javascript" src="./dist/todo.js"></script>
<link rel="stylesheet" href="./dist/todo.css">
</head>
<body>
<div id="toolbar"></div>
<div id="root"></div>

<script>
const { ToDo, Toolbar } = todo; // деструктуризация объекта

const list = new ToDo("#root", {
// свойства конфигурации
});
const toolbar = new Toolbar("#toolbar", {
api: list.api,
// дополнительные свойства конфигурации
});
</script>
</body>
</html>
Примечание

Необходимо применить деструктуризацию объекта, чтобы «распаковать» глобальный объект todo в две переменные: ToDo и Toolbar.

Этот шаг не нужен, если вы используете конструкторы new todo.ToDo() и new todo.Toolbar().

К сведению

Toolbar является необязательной частью интерфейса To Do List. Чтобы создать To Do List без Toolbar, достаточно указать один DIV-контейнер и инициализировать List с помощью конструктора new ToDo()

Дополнительную информацию об инициализации To Do List читайте в статье Инициализация.

Шаг 3. Загрузка данных в To Do List

Как видите, мы инициализировали To Do List, но он пока пуст. На этом шаге вы узнаете, как наполнить компонент данными.

К сведению

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

Сначала подготовьте данные для загрузки в компонент. Данные могут включать следующие наборы: tasks, projects, users, tags и activeProject

Удобнее всего подготовить данные в отдельном файле, например:

data.js
function getData() {
// данные для задач
const tasks = [
// данные задач проекта "widgets"
{ "id": "widgets", "project": "widgets", "text": "\u{1F389} DHTMLX widgets" },
{ "id": "gantt", "project": "widgets", "parent": "widgets", "text": "Gantt" },
{ "id": "scheduler", "project": "widgets", "parent": "widgets", "text": "Scheduler" },
{ "id": "diagram", "project": "widgets", "parent": "widgets", "text": "Diagram" },

// данные задач проекта "introduction"
{
"id": "temp://1652991560212",
"project": "introduction",
"text": "Greetings, everyone! \u{1F44B} \nI'm DHTMLX To Do List."
},
{
"id": "1652374122964",
"project": "introduction",
"text": "You can assign task performers and due dates using the menu.",
"assigned": [ "user_2", "user_1", "user_3" ],
"due_date": "2033-03-08T21:00:00.000Z"
},
{
"id": "1652097809881",
"project": "introduction",
"text": "You can create tasks with an infinite number of subtasks.",
"assigned": [ "user_2" ],
"collapsed": false
},
{
"id": "1652097809882",
"project": "introduction",
"parent": "1652097809881",
"text": "Use the Tab and Shift + Tab keys for this.",
"checked": false
},
{
"id": "1652097809887",
"project": "introduction",
"parent": "1652097809881",
"text": "Select and press Ctrl (Cmd) + Arrow up / Arrow down to change the task order.",
"checked": false
},
// другие объекты задач
];

// данные для пользователей
const users = [
{ "id": "user_1", "label": "Don Smith", "avatar": "../avatar_02.jpg" },
{ "id": "user_2", "label": "Nadia Chasey", "avatar": "../avatar_05.jpg" },
{ "id": "user_3", "label": "Mike Young", "avatar": "../avatar_21.jpg" },
// другие объекты пользователей
];

// данные для проектов
const projects = [
{ "id": "introduction", "label": "Introduction to DHTMLX To Do List" },
{ "id": "widgets", "label": "Our widgets" },
// другие объекты проектов
];

return { projects, users, tasks };
}

Теперь можно заполнить To Do List данными. Для этого укажите соответствующие свойства в объекте конфигурации компонента:

index.html
<!DOCTYPE html>
<html>
<head>
<title>How to Start with To Do List</title>
<script type="text/javascript" src="./dist/todo.js"></script>
<link rel="stylesheet" href="./dist/todo.css">

<script src="../data.js"></script>
</head>
<body>
<div id="toolbar"></div>
<div id="root"></div>

<script>
const { ToDo, Toolbar } = todo;
const { tasks, users, projects } = getData();

const list = new ToDo("#root", {
tasks,
users,
projects
});
const toolbar = new Toolbar("#toolbar", {
api: list.api,
});
</script>
</body>
</html>

Дополнительную информацию о загрузке данных в To Do List читайте в статье Загрузка данных.

Шаг 4. Настройка To Do List

Теперь вы можете задать нужную конфигурацию To Do List.

Как вы уже знаете, To Do List состоит из двух отдельных интерфейсов: List и Toolbar. Каждый из них имеет свой список параметров конфигурации:

Для примера включим режим readonly для To Do List, укажем активный проект и отобразим в toolbar только строку поиска:

const list = new ToDo("#root", {
tasks,
users,
projects,
activeProject: "introduction",
readonly: true
});

const toolbar = new Toolbar("#toolbar", {
api: list.api,
items: ["search"]
});

Что дальше

Теперь у вас есть готовый To Do List. Вы можете загрузить собственный набор данных и настроить компонент под свои нужды.

Если вы хотите глубже изучить To Do List, рекомендуем ознакомиться со следующими материалами: