diff options
Diffstat (limited to 'doc')
102 files changed, 10213 insertions, 174 deletions
diff --git a/doc/docker.markdown b/doc/docker.markdown index e55130e5..5b77da76 100644 --- a/doc/docker.markdown +++ b/doc/docker.markdown @@ -93,4 +93,4 @@ References - [Official Kanboard images](https://registry.hub.docker.com/u/kanboard/kanboard/) - [Docker documentation](https://docs.docker.com/) - [Dockerfile stable version](https://github.com/kanboard/docker) -- [Dockerfile dev version](https://github.com/fguillot/kanboard/blob/master/Dockerfile) +- [Dockerfile dev version](https://github.com/kanboard/kanboard/blob/master/Dockerfile) diff --git a/doc/heroku.markdown b/doc/heroku.markdown index 43b15c72..1891efb0 100644 --- a/doc/heroku.markdown +++ b/doc/heroku.markdown @@ -4,7 +4,7 @@ Deploy Kanboard on Heroku You can try Kanboard for free on [Heroku](https://www.heroku.com/). You can use this one click install button or follow the manual instructions below: -[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/fguillot/kanboard) +[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/kanboard/kanboard) Requirements ------------ @@ -17,7 +17,7 @@ Manual instructions ```bash # Get the last development version -git clone https://github.com/fguillot/kanboard.git +git clone https://github.com/kanboard/kanboard.git cd kanboard # Push the code to Heroku (You can also use SSH if git over HTTP doesn't work) diff --git a/doc/installation.markdown b/doc/installation.markdown index 2ebe4d14..4955612f 100644 --- a/doc/installation.markdown +++ b/doc/installation.markdown @@ -28,7 +28,7 @@ From the repository (development version) You must install [composer](https://getcomposer.org/) to use this method. -1. `git clone https://github.com/fguillot/kanboard.git` +1. `git clone https://github.com/kanboard/kanboard.git` 2. `composer install --no-dev` 3. Go to the third step just above diff --git a/doc/plugin-authentication.markdown b/doc/plugin-authentication.markdown index 06fdfd8d..e1ca6f01 100644 --- a/doc/plugin-authentication.markdown +++ b/doc/plugin-authentication.markdown @@ -35,6 +35,6 @@ This object must implement the interface `Kanboard\Core\User\UserProviderInterfa Example of authentication plugins --------------------------------- -- [Authentication providers included in Kanboard](https://github.com/fguillot/kanboard/tree/master/app/Auth) +- [Authentication providers included in Kanboard](https://github.com/kanboard/kanboard/tree/master/app/Auth) - [Reverse-Proxy Authentication with LDAP support](https://github.com/kanboard/plugin-reverse-proxy-ldap) - [SMS Two-Factor Authentication](https://github.com/kanboard/plugin-sms-2fa) diff --git a/doc/plugin-group-provider.markdown b/doc/plugin-group-provider.markdown index 4d73b740..31c61aaf 100644 --- a/doc/plugin-group-provider.markdown +++ b/doc/plugin-group-provider.markdown @@ -52,4 +52,4 @@ $groupManager->register(new MyCustomLdapBackendGroupProvider($this->container)); Examples -------- -- [Group providers included in Kanboard (LDAP and Database)](https://github.com/fguillot/kanboard/tree/master/app/Group) +- [Group providers included in Kanboard (LDAP and Database)](https://github.com/kanboard/kanboard/tree/master/app/Group) diff --git a/doc/plugin-hooks.markdown b/doc/plugin-hooks.markdown index 1f90bdbc..787c62df 100644 --- a/doc/plugin-hooks.markdown +++ b/doc/plugin-hooks.markdown @@ -155,6 +155,7 @@ List of template hooks: | `template:board:public:task:after-title` | Task in public board: after title | | `template:board:task:footer` | Task in board: footer | | `template:board:task:icons` | Task in board: tooltip icon | +| `template:board:column:dropdown` | Dropdown menu in board columns | | `template:config:sidebar` | Sidebar on settings page | | `template:config:application ` | Application settings form | | `template:config:email` | Email settings page | @@ -162,7 +163,8 @@ List of template hooks: | `template:dashboard:sidebar` | Sidebar on dashboard page | | `template:export:sidebar` | Sidebar on export pages | | `template:import:sidebar` | Sidebar on import pages | -| `template:header:dropdown` | Dropdown on header | +| `template:header:dropdown` | Page header dropdown menu (user avatar icon) | +| `template:header:creation-dropdown` | Page header dropdown menu (plus icon) | | `template:layout:head` | Page layout `<head/>` tag | | `template:layout:top` | Page layout top header | | `template:layout:bottom` | Page layout footer | diff --git a/doc/plugins.markdown b/doc/plugins.markdown index 475bc249..cff3eb6c 100644 --- a/doc/plugins.markdown +++ b/doc/plugins.markdown @@ -5,7 +5,7 @@ Note: The plugin API is **considered alpha** at the moment. Plugins are useful to extend the core functionalities of Kanboard, adding features, creating themes or changing the default behavior. -Plugin creators should specify explicitly the compatible versions of Kanboard. Internal code of Kanboard may change over time and your plugin must be tested with new versions. Always check the [ChangeLog](https://github.com/fguillot/kanboard/blob/master/ChangeLog) for breaking changes. +Plugin creators should specify explicitly the compatible versions of Kanboard. Internal code of Kanboard may change over time and your plugin must be tested with new versions. Always check the [ChangeLog](https://github.com/kanboard/kanboard/blob/master/ChangeLog) for breaking changes. - [Creating your plugin](plugin-registration.markdown) - [Using plugin hooks](plugin-hooks.markdown) diff --git a/doc/ru_RU/2fa.markdown b/doc/ru_RU/2fa.markdown new file mode 100644 index 00000000..0787c720 --- /dev/null +++ b/doc/ru_RU/2fa.markdown @@ -0,0 +1,37 @@ +Двух-уровневая аутентификация +============================= + +Любой пользователь может включить [двух-уровневую аутентификацию](http://en.wikipedia.org/wiki/Two_factor_authentication). После успешного входа, разовый код (6 знаков) запрашивается у пользователя для получения доступа в Канборд. + +Этот код присылается в программу на вашем смартфоне. + +Канборд использует [Time-based One-time Password Algorithm](http://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm) основанный на [RFC 6238](http://tools.ietf.org/html/rfc6238). + +Имеется много программ совместимых со стандартной системой TOTP. Например, вы можете использовать эти приложения, бесплатные и с открытым исходным кодом: + +- [Google Authenticator](https://github.com/google/google-authenticator/) (Android, iOS, Blackberry) +- [FreeOTP](https://fedorahosted.org/freeotp/) (Android, iOS) +- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/) (Command line utility on Unix/Linux) + +Эти системы могут работать офлайн и вам не нужно иметь мобильную связь. + +Настройка +--------- + +1. Перейдите в пользовательский профиль +2. Слева нажмите **Двухфакторная авторизация** и поставте галочку в чекбоке +3. Секретный ключ сгенерируется для вас + +![2FA](https://kanboard.net/screenshots/documentation/2fa.png) + +Рисунок. Двухуровневая аутентификация. + + +- Вы должны сохранить секретный ключ в вашей TOTP программе. Если вы используете сматрфон, то просто сосканируйте QR код с помощью FreeOTP или Google Authenticator. +- Каждый раз, когда вы будете входить в Канборд, будет запрашиваться новый код +- Не забудьте протестировать ваше устройство, перед тем как закрыть вашу сессию + +Новый секретный ключ генерируется каждый раз при включении/выключении этой возможности. + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/analytics-tasks.markdown b/doc/ru_RU/analytics-tasks.markdown new file mode 100644 index 00000000..176a4616 --- /dev/null +++ b/doc/ru_RU/analytics-tasks.markdown @@ -0,0 +1,37 @@ +Аналитика для задач +=================== + +На странице детального просмотра задачи, в левом боковом меню, для каждой задачи имеется раздел аналитики. + +Затраченное время и время цикла +------------------------------- + +![Lead and cycle time](https://kanboard.net/screenshots/documentation/task-lead-cycle-time.png) + +Рисунок. Затраченное время и время цикла + + +- Затраченное время - время между созданием задачи и датой завершения (закрытие задачи). +- Время цикла - время между началом испольнения задачи и датой завершения. +- Если задача не закрыта, то для расчета используется текущее время вместо даты завершения. +- Если дата начала выполнения задачи не указана, то время цикла не может быть расчитано. + + +**Заметка**: Вы можете настроить автоматическое создание даты начала выполения задачи, когда вы перемещаете задачу в определенную колонку. + + +Время затраченное в каждой колонке +---------------------------------- + +![Time spent into each column](https://kanboard.net/screenshots/documentation/time-into-each-column.png) + +Рисунок. Время затраченное в каждой колонке + + + +- Этот график показывает сколько времени задача находилась в каждой колонке. +- Затраченное время расчитывается до закрытия задачи. + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/analytics.markdown b/doc/ru_RU/analytics.markdown new file mode 100644 index 00000000..2af6de34 --- /dev/null +++ b/doc/ru_RU/analytics.markdown @@ -0,0 +1,95 @@ +Аналитика +========= + +Каждый проект имеет анлитический раздел. В зависимости от того как вы используете Канборд, вы можете видеть подобные отчеты: + +Перераспределение(загрузка) пользователей +----------------------------------------- + +![User repartition](https://kanboard.net/screenshots/documentation/user-repartition.png) + +Перераспределение(загрузка) пользователей + + +Круговая диаграмма, представленная выше, показыает количество открытых задач назначенных определенным пользователям. + + +Распределение задач +------------------- + +![Task distribution](https://kanboard.net/screenshots/documentation/task-distribution.png) + +Рисунок. Распределение задач + + + +На рисунке выше, представлена круговая диаграмма, которая показывает количество открытых задач в определенных колонках. + + + +Накопительная диаграмма +----------------------- + +![Cumulative flow diagram](https://kanboard.net/screenshots/documentation/cfd.png) + +Рисунок. Накопительная диаграмма + + +- Эта диаграмма отображает количество задач выполненных в каждой колонке в определенный промежуток времени. +- Счетчик задач записывается для каждой колонки каждый день. +- Если вы хотите исключить закрытые задачи, измените [глобальные настройки проекта](project-configuration.markdown). + + +Заметка: Для того чтобы увидеть этот график, вам нужно иметь, как минимум, данные за два дня. + + +Диаграмма сгорания +------------------ + +![Burndown chart](https://kanboard.net/screenshots/documentation/burndown-chart.png) + +Рисунок. Диаграмма сгорания + + + +[Диаграмма сгорания](https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D1%81%D0%B3%D0%BE%D1%80%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87) доступна для каждого проекта. + + +- Эта диаграмма отображает время затраченное на выполнение работы. +- Канборд использует историю задач для генерации этой диаграммы. +- Сумма историй задач для каждой колонки пересчитывается каждый день. + +Среднее время затраченное в каждой колонке +------------------------------------------ + +![Average time spent into each column](https://kanboard.net/screenshots/documentation/average-time-spent-into-each-column.png) + +Рисунок. Среднее время затраченное в каждой колонке + + +Этот график показывает среднее время затраченное в каждой колонке для последних 1000 задач. + +- Канборд использует для подсчета данных переходы задач между колонками. +- Затраченное время подсчитывается до закрытия задачи. + +Среднее время выполнения и время цикла +-------------------------------------- + +![Average time spent into each column](https://kanboard.net/screenshots/documentation/average-lead-cycle-time.png) + +Рисунок. Среднее время затраченное в каждой колонке + +Эта диаграмма показывает Среднее время выполнения и цикла для последних 1000 задач. +- Время выполнения - время между созданием задачи и датой завершения. +- Время цикла - время между указанной датой начала выполнения задачи и датой завершения. +- Если задача не закрыта, текущая дата будет использована вместо даты завершения. + +Эти данные подсчитываются и записываются каждый день на протяжении жизни проекта. + +Заметка: Не забудьте выполнить [ежедневные cronjob](cronjob.markdown) для того чтобы иметь точную статистику. + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/api-json-rpc.markdown b/doc/ru_RU/api-json-rpc.markdown new file mode 100644 index 00000000..257f83ec --- /dev/null +++ b/doc/ru_RU/api-json-rpc.markdown @@ -0,0 +1,78 @@ +Json-RPC API +============ + + +API пользователя и приложения +----------------------------- + + +Имеется два типа доступа к API: + +### API приложения[¶](#application-api "Ссылка на этот заголовок") + +- Доступ к API осуществляется с использованием пользователя “jsonrpc” и ключа, доступного в настройках +- Доступ ко всем процедурам +- Не проверяются права доступа +- Нет пользовательской сессии на сервере +- Этот доступ можно использовать для: утилит миграции/импорта данных, создания задач из других систем и т.д. + +### API пользователя[¶](#user-api "Ссылка на этот заголовок") + +- Доступ к API под пользовательскими учетными данными (имя пользователя и пароль) +- Доступ к ограниченному набору процедур +- Проверка прав доступа к проекту +- На сервере создается пользовательская сессия +- Этот доступ можно использовать для клиентов: мобильных/десктопных приложений, утилит коммандной строки и т.д. + +Безопасность +------------ + +- Всегда используйте протокол HTTPS с действительным сертификатом +- Если вы делаете мобильное приложение, позаботьтесь о безопасном хранении учетных данных пользователя на мобильном устройстве +- После 3 неправильных подключений к пользовательскому api, пользователь может разблокировать свою учетную запись только с использованием формы входа +- Двухуровневая аутентификация пока не доступна через API + + + +Протокол +-------- + + +Канборд использует протокол Json-RPC для взаимодействия с внешними программами. + +JSON-RPC - протокол удаленного вызова процедур в формате JSON. По сути своей, тот же XML-RPC, но использующий формат JSON. + +Мы используем [протокол версии 2](http://www.jsonrpc.org/specification). Вы можете вызывать API используя `POST`{.docutils .literal} HTTP запрос. + +Канборд поддерживает пакетные запросы, поэтому вы можете делать многократные API вызовы в одном HTTP запросе. Это, в частности, удобно для мобильных клиентов с высокой сетевой задержкой. + + +Использование +------------- + +- [Аутентификация](api-authentication.markdown) +- [Примеры](api-examples.markdown) +- [Приложение](api-application-procedures.markdown) +- [Проекты](api-project-procedures.markdown) +- [Права доступа к проекту](api-project-permission-procedures.markdown) +- [Доски](api-board-procedures.markdown) +- [Колонки](api-column-procedures.markdown) +- [Дорожки](api-swimlane-procedures.markdown) +- [Категории](api-category-procedures.markdown) +- [Автоматические дейсвия](api-action-procedures.markdown) +- [Задачи](api-task-procedures.markdown) +- [Подзадачи](api-subtask-procedures.markdown) +- [Файлы](api-file-procedures.markdown) +- [Ссылки](api-link-procedures.markdown) +- [Комментарии](api-comment-procedures.markdown) +- [Пользователи](api-user-procedures.markdown) +- [Группы](api-group-procedures.markdown) +- [Члены группы](api-group-member-procedures.markdown) +- [Специфичные запросы пользователя](api-me-procedures.markdown) + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/application-configuration.markdown b/doc/ru_RU/application-configuration.markdown new file mode 100644 index 00000000..d8b2661e --- /dev/null +++ b/doc/ru_RU/application-configuration.markdown @@ -0,0 +1,54 @@ +Настройки приложения +==================== + +Некоторые параметры для приложения могут быть изменены на странице настроек. Только администратор может сделать эти настройки. +Выберите в правом выпадающем меню **Настройки**, затем в слева выберите **Настройки приложения**. + +![Application settings](https://kanboard.net/screenshots/documentation/application-settings.png) + +Рисунок. Настройки приложения + + +URL приложения[¶](#application-url "Ссылка на этот заголовок") +-------------------------------------------------------------- + +Этот параметр используется для email уведомлений. В тексте сообщения будет содержаться ссылка на задачу в Канборде. + + +Язык[¶](#language "Ссылка на этот заголовок") +--------------------------------------------- + +Язык приложения может быть изменен в любое время. Язык устанавливается для всех пользователей Канборд. + + +Часовой пояс[¶](#time-zone "Ссылка на этот заголовок") +------------------------------------------------------ + +По умолчанию, Канборд использует часовой пояс UTC, но вы можете указать любой часовой пояс. Список содержит все поддерживаемые часовые пояса для вашего веб сервера. + + +Формат даты[¶](#date-format "Ссылка на этот заголовок") +------------------------------------------------------- + +Формать даты, который используется для полей дата. Например, дата завершения задачи. + +Канборд поддерживает 4 разных формата: + +- ДД/ММ/ГГГГ +- ММ/ДД/ГГГГ (по умолчанию) +- ГГГГ/ММ/ДД +- ММ.ДД.ГГГГ + +Формат [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) всегда принимается (YYYY-MM-DD or YYYY\_MM\_DD). + + +Пользовательский стиль CSS[¶](#custom-stylesheet "Ссылка на этот заголовок") +---------------------------------------------------------------------------- + +Вы можете сделать свой стиль CSS для Канборд или улучшить имеющийся стиль. + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/assets.markdown b/doc/ru_RU/assets.markdown new file mode 100644 index 00000000..9a0124c5 --- /dev/null +++ b/doc/ru_RU/assets.markdown @@ -0,0 +1,53 @@ +Как создать asset (Javascript и CSS файлы) +========================================== + + +Файлы CSS стилей и Javascript объединены вместе и минимизированы. + +- Оригинальные файлы CSS хранятся в каталоге `assets/css/src/*.css`{.docutils .literal} +- Оригинальные файлы Javascript хранятся в каталоге `assets/js/src/*.js`{.docutils .literal} +- `assets/*/vendor.min.*`{.docutils .literal} - внешние зависимости объединены и минимизированы +- `assets/*/app.min.*`{.docutils .literal} - исходный код приложения объединены и минимизированы + + +Требования[¶](#requirements "Ссылка на этот заголовок") +------------------------------------------------------- + +- [NodeJS](https://nodejs.org/) с `npm`{.docutils .literal} + + +Сборка файлов Javascript и CSS[¶](#building-javascript-and-css-files "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------ + + +Канборд использует [Gulp](http://gulpjs.com/) для сборки asset и [Bower](http://bower.io/) для управления зависимостями. Эти утилиты устанавлены в проекте как зависимости NodeJS. + + +### Запустить все[¶](#run-everything "Ссылка на этот заголовок") + + make static + +### Собрать `vendor.min.js`{.docutils .literal} и `vendor.min.css`{.docutils .literal}[¶](#build-vendor-min-js-and-vendor-min-css "Ссылка на этот заголовок") + + gulp vendor + +### Собрать `app.min.js`{.docutils .literal}[¶](#build-app-min-js "Ссылка на этот заголовок") + + gulp js + + +### Собрать `app.min.css`{.docutils .literal}[¶](#build-app-min-css "Ссылка на этот заголовок") + + gulp css + + +Примечание[¶](#notes "Ссылка на этот заголовок") +------------------------------------------------ + +Сборка asset невозможна из архива Kanboard, вы должны клонировать репозиторий. + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/automatic-actions.markdown b/doc/ru_RU/automatic-actions.markdown new file mode 100644 index 00000000..1e0631c3 --- /dev/null +++ b/doc/ru_RU/automatic-actions.markdown @@ -0,0 +1,128 @@ +Автоматизация процессов +======================= + + +Для минимизации пользовательских действий, Kanboard поддерживает автоматизацию процессов. + +Каждый автоматизированный процесс представляет следующее: + +- Ожидание наступления события +- Выполняется действие при наступлении этого события +- В результате устанавливается определенный параметр + +Каждый проект может иметь свой набор автоматических процессов. Автоматические процессы доступны в панеле настроек (**Меню** -\> **Настройки**) **Автоматические действия**. + + +Добавление нового действия[¶](#add-a-new-action "Ссылка на этот заголовок") +--------------------------------------------------------------------------- + + +Нажмите на ссылку **Добавить новое действие**. + +![Automatique action](screenshots/automatic-action-creation.png) + +Рисунок. Автоматическое действие. + + +- Выберете действие +- Затем, выберете событие +- И в завершении, задайте параметр + + +Список доступных действий[¶](#list-of-available-actions "Ссылка на этот заголовок") +----------------------------------------------------------------------------------- + + +- Создать комментарий из внешнего источника +- Добавлять запись при перемещении задачи между колонками +- Автоматически назначать категорию по цвету +- Изменить категорию основываясь на внешнем ярлыке +- Автоматически назначать категории на основе ссылки +- Автоматически назначать цвет по категории +- Назначить цвет, когда задача перемещается в определенную колонку +- Изменение цвета задач при использовании ссылки на определенные задачи +- Назначить определенный цвет пользователю +- Назначить задачу тому кто выполнит действие +- Назначить задачу пользователю, который произвел изменение в колонке +- Назначить задачу определенному пользователю +- Изменить назначенного основываясь на внешнем имени пользователя +- Закрыть задачу +- Закрыть задачу в выбранной колонке +- Создать задачу из внешнего источника +- Создать дубликат задачи в другом проекте +- Отправить задачу по email +- Переместить задачу в другой проект +- Переместить задачу в другую колонку, когда она назначена пользователю +- Переносить задачи в другую колонку при изменении категории +- Переместить задачу в другую колонку, когда назначение снято +- Открыть задачу +- Автоматическое обновление даты начала + + +Примеры[¶](#examples "Ссылка на этот заголовок") +------------------------------------------------ + + +Здесь предствалены примеры использованные в реальной жизни: + +### Когда я перемещаю задачу в колонку “Выполнено”, автоматически закрывать эту задачу[¶](#when-i-move-a-task-to-the-column-done-automatically-close-this-task "Ссылка на этот заголовок") + +- Выберите действия: **Закрыть задачу в выбранной колонке** +- Выберите событие: **Переместить задачу в другую колонку** +- Установите параметр действия: **Колонка = Выполнено** (это колонка в которую будет перемещена задача) + +### Когда я перемещаю задачу в колонку “На утверждение”, назначить эту задачу определенному пользователю.[¶](#when-i-move-a-task-to-the-column-to-be-validated-assign-this-task-to-a-specific-user "Ссылка на этот заголовок") + +- Выберите действие: **Назначить задачу определенному пользователю** +- Выберите событие: **Переместить задачу в другую колонку** +- Установите параметр действия: **Колонка = На утверждение** и **Пользователь = Петр** (Петр - наш тестировщик) + +### Когда я перемещаю задачу в колонку “В работе”, назначить эту задачу определенному пользователю[¶](#when-i-move-a-task-to-the-column-work-in-progress-assign-this-task-to-the-current-user "Ссылка на этот заголовок") + +- Выберите действие: **Назначить задачу пользователю, который произвел изменение в колонке** +- Выберите событие: **Переместить задачу в другую колонку** +- Установите параметр действия: **Колонка = В работе** + + +### Когда задача выполнена, скопировать эту задачу в другой проект[¶](#when-a-task-is-completed-duplicate-this-task-to-another-project "Ссылка на этот заголовок") + +Предположим, мы имеем два проекта “Заказы покупателей” и “Производство”. Когда заказ в проекте “Заказы покупателей” утвержден, копируем этот заказ в проект “Производство”. + +- Выбираем действие: **Создать дубликат задачи в другом проекте** +- Выбираем событие: **Завершение задачи** +- Установите параметр действия: **Колонка = Утвержден** и **Проект = Производство** + + +### Когда задача перемещена в последнюю колонку, переместить эту задачу в другой проект[¶](#when-a-task-is-moved-to-the-last-column-move-the-exact-same-task-to-another-project "Ссылка на этот заголовок") + + +Предположим, мы имеем два проекта “Идеи” и “Разработка”, когда идея утверждена, перемещаем эту задачу в проект “Разработка”. + +- Выберите действие: **Переместить задачу в другой проект** +- Выберите событие: **Переместить задачу в другую колонку** +- Установите параметр действия: **Колонка = Утверждена** и **Проект = Разработка** + +### Я хочу назначать автоматически цвет для пользователя Петр[¶](#i-want-to-assign-automatically-a-color-to-the-user-bob "Ссылка на этот заголовок") + +- Выберите действие: **Назначить определенный цвет пользователю** +- Выберите событие: **Изменен назначенный** +- Установите параметр действия: **Цвет = Зеленый** и **Назначена = Петр** + + +### Я хочу назначить цвет автоматически для определенной категории “Важные запросы”[¶](#i-want-to-assign-a-color-automatically-to-the-defined-category-feature-request "Ссылка на этот заголовок") + +- Выберите действие: **Автоматически назначать цвет по категории** +- Выберите событие: **Создание или изменение задачи** +- Установите параметр действия: **Цвет = Голубой** и **Категория = Важные запросы** + + +### Я хочу устанавливать дату начала автоматически когда задача перемещена в колонку “В работе”[¶](#i-want-to-set-the-start-date-automatically-when-the-task-is-moved-to-the-column-work-in-progress "Ссылка на этот заголовок") + +- Выберите действие: **Автоматическое обновление даты начала** +- Выберите событие: **Переместить задачу в другую колонку** +- Установите параметр действия: **Колонка = В работе** + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/board-collapsed-expanded.markdown b/doc/ru_RU/board-collapsed-expanded.markdown new file mode 100644 index 00000000..a19981a5 --- /dev/null +++ b/doc/ru_RU/board-collapsed-expanded.markdown @@ -0,0 +1,31 @@ +Компактное и развернутое отображение задач +========================================== + +Задачи на Доске могут быть отображены в компактном или развернутом виде. Переключение между компактным и развернутым видом может быть выполнено с помощью горячей клавиши **“s”** или в раскрывающемся Меню (слева вверху) -\> Развернуть задачи или Свернуть задачи. + + +Компактный вид[¶](#collapsed-mode "Ссылка на этот заголовок") +------------------------------------------------------------- + + +![Tasks collapsed](screenshots/board-collapsed-mode.png) + +Рисунок. Задачи представлены в компактном виде + +- Если для задачи назначен исполнитель, то инициалы исполнителя показываются рядом с номером задачи; +- Если заголовок задачи слишком длинный, вы можете подвести курсор мышки над задачей и полный заголовок задачи отобразится во всплывающем окне. + + + +Развернутый вид[¶](#expanded-mode "Ссылка на этот заголовок") +------------------------------------------------------------- + + +![Tasks expanded](screenshots/board-expanded-mode.png) +Рисунок. Развернутый вид + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/board-configuration.markdown b/doc/ru_RU/board-configuration.markdown new file mode 100644 index 00000000..fb4fb58d --- /dev/null +++ b/doc/ru_RU/board-configuration.markdown @@ -0,0 +1,39 @@ +Настройка Доски +=============== + + +В правом верхнем выпадающем меню выберите **Настройки**, затем, слева, выберите **Настройки Доски**. + +![Board settings](https://kanboard.net/screenshots/documentation/board-settings.png) + +Рисунок. Настройка Доски + + +Подстветка задач[¶](#task-highlighting "Ссылка на этот заголовок") +------------------------------------------------------------------ + +Эта опция позволяет подсвечивать задачу, которая была перенесена недавно. + +Установите значение 0 для выключения подсветки. По умолчанию установлено значение 172800 секунд (2 дня) + +Перемещенные задачи будут подсвечиваться в течении двух дней. + + +Период обновления для публичных досок[¶](#refresh-interval-for-public-board "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------- + +Если вы создаете публичную доску, то страница, по умолчанию, будет обновляться каждые 60 секунд. + + +Период обновления для частных досок[¶](#refresh-interval-for-private-board "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------ + +Когда в вашем браузере открыта Доска, Канборд проверяет обновления изменение каждые 10 секунд. + +Процесс обновления реализован по технологии Ajax. + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/board-horizontal-scrolling-and-compact-view.markdown b/doc/ru_RU/board-horizontal-scrolling-and-compact-view.markdown new file mode 100644 index 00000000..9eaa5c9e --- /dev/null +++ b/doc/ru_RU/board-horizontal-scrolling-and-compact-view.markdown @@ -0,0 +1,19 @@ +Горизонтальная прокрутка и компактный вид +========================================= + +Когда ширины экрана не хватает для отображения всех колонок, то внизу появляется горизонтальная прокрутка. + +Однако, можно переключится на компактный вид доски для отображения всех колонок на вашем экране. + + +![Switch to compact mode](screenshots/board-compact-mode.png) + +Рисунок. Переключение на компактное представление. + +Переключится между горизонтальной прокруткой и компактным видом можно с помощью горячей клавиши **“c”** или в левом верхнем раскрывающемся “Меню” -\> “Компактный вид” или “Широкий вид”. + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/board-show-hide-columns.markdown b/doc/ru_RU/board-show-hide-columns.markdown new file mode 100644 index 00000000..5c333b5c --- /dev/null +++ b/doc/ru_RU/board-show-hide-columns.markdown @@ -0,0 +1,25 @@ +Показать и скрыть колонки на Доске +================================== + +Вы можете показать и скрыть колонки на Доске очень просто: + +![Hide a column](screenshots/hide-column.png) + +Рисунок. Спрятать колонку. + + +Чтобы скрыть (спрятать) колонку , откройте выпадающее меню колонки. + +![Show a column](screenshots/show-column.png) + +Рисунок.Показать колонку. + + +Для отображения скрытой колонки нажмите “иконку плюс” + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/bruteforce-protection.markdown b/doc/ru_RU/bruteforce-protection.markdown new file mode 100644 index 00000000..25e50880 --- /dev/null +++ b/doc/ru_RU/bruteforce-protection.markdown @@ -0,0 +1,37 @@ +Защита от Brute Force +===================== + +Защита от Brute Force (подбор пароля методом перебора) в Канборде работает на уровне учетной записи пользователя: + +- После 3 неправильных вводов пароля для одного и того же пользователя, на форме входа появляется капча для предотвращения дальнейшего подбора программой-роботом. +- После 6 неудачных вводов пароля, учетная запись пользователя блокируется на 15 минут. + +Эта возможность работает только для метода аутентификации с использованием формы входа на веб странице. + +Однако, **после трех ошибочных аутентификаций через пользовательский API, учетная запись может быть разблокирована с использованием формы входа на веб странице** + +В Канборде нет блокировок по IP адресу, потому что программы-роботы используют множество анонимных прокси. Однако, вы можете использовать внешнюю утилиту, например [fail2ban](http://www.fail2ban.org) , чтобы избежать массового сканирования. + +Настройки защиты от Brute Force могут быть изменены в следующих переменных: + + // Enable captcha after 3 authentication failure + + define('BRUTEFORCE_CAPTCHA', 3); + + + + // Lock the account after 6 authentication failure + + define('BRUTEFORCE_LOCKDOWN', 6); + + + + // Lock account duration in minutes + + define('BRUTEFORCE_LOCKDOWN_DURATION', 15); + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/calendar-configuration.markdown b/doc/ru_RU/calendar-configuration.markdown new file mode 100644 index 00000000..bd6d604e --- /dev/null +++ b/doc/ru_RU/calendar-configuration.markdown @@ -0,0 +1,59 @@ +Настройки календаря +=================== + +В правом верхнем выпадающем меню выберите **Настройки**, затем, слева, выберите **Настройки календаря**. + + +![Calendar settings](https://kanboard.net/screenshots/documentation/calendar-settings.png) + +Рисунок. Настройки календаря + + +В Канборде имеется два вида Календаря: + +- Календарь проекта +- Пользовательский календарь (доступен в левом меню Инфопанели) + + +Календарь проекта[¶](#project-calendar "Ссылка на этот заголовок") +------------------------------------------------------------------ + +Эти календари показывают задачи с указанной датой создания или датой начала и датой завершения. + +### Показать задачи в зависимости от даты создания[¶](#show-tasks-based-on-the-creation-date "Ссылка на этот заголовок") + +- Дата начала в календаре показывает дату создания задачи. +- Конечная дата показывает дату завершения. + + +### Показать задачи в зависимости от даты начала[¶](#show-tasks-based-on-the-start-date "Ссылка на этот заголовок") + +- Дата начала в календаре показывает дату начала задачи. +- Эта дата должна быть установлена вручную. +- Конечная дата показывает дату завершения. +- Если не указать дату начала, то задача не будет отображена в календаре. + + + +Пользовательский календарь[¶](#user-calendar "Ссылка на этот заголовок") +------------------------------------------------------------------------ + +Пользовательский календарь показывает только задачи назначенные пользователю и, опционально, информацию о подзадачах. + + +### Показать подзадачи, основанные на отслеживании времени[¶](#show-sub-tasks-based-on-the-time-tracking "Ссылка на этот заголовок") + +- Показывает подзадачи в календаре из записей таблицы отслеживания времени. +- Пересечения в пользовательской таблице времени также подсчитываются. + + +### Показывать оценку подзадач (прогнозирование будущих работ)[¶](#show-sub-task-estimates-forecast-of-future-work "Ссылка на этот заголовок") + +- Показывает оценку будущих работ для подзадач в статусе “для исполнения” и с указанным значением “оценка”. + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/calendar.markdown b/doc/ru_RU/calendar.markdown new file mode 100644 index 00000000..f0658c89 --- /dev/null +++ b/doc/ru_RU/calendar.markdown @@ -0,0 +1,31 @@ +Календарь +========= + + +Календарь может быть представлен в двух видах: + +- Представление в проекте с использование фильтров (доступно на Доске) +- Пользовательское представление (доступно в рабочей панели и в пользовательском разделе) + +В Календаре можно увидеть следующую информацию: + +- Задачи с “датой испольнения”, отображаются наверху. **Дата испольнения может быть изменена перемещением задачи на другой день**. +- Задачи с датой создания или датой начала. **Эти события не могут быть изменены в календаре**. +- Отслеживание времени подзадачи. Все записанные временные диапазоны будут отображены в Календаре. +- Подсчеты, прогнозы затрачиваемого время на подзадачу. + +![Calendar](https://kanboard.net/screenshots/documentation/calendar.png) + +Рисунок. Календарь + + +Настроки Календаря могут быть изменены на странице **Настройки** + +Заметка: Дата исполения не содержит информацию о времени. + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/centos-installation.markdown b/doc/ru_RU/centos-installation.markdown new file mode 100644 index 00000000..95808586 --- /dev/null +++ b/doc/ru_RU/centos-installation.markdown @@ -0,0 +1,127 @@ +Инсталяция Канборд на Centos +============================ + + +**Внимание**: Некоторые возможности Канборда требуют [запуск ежедневных фоновых задач](cronjob.markdown). + + +Centos 7[¶](#centos-7 "Ссылка на этот заголовок") +------------------------------------------------- + +Установите PHP и Apache: + + + yum install -y php php-mbstring php-pdo php-gd unzip wget + + +По умолчанию, Centos 7 использует PHP 5.4.16 и Apache 2.4.6. + + + +Перезапустите Apache: + + + + systemctl restart httpd.service + + + +Установите Канборд: + + + + cd /var/www/html + + wget https://kanboard.net/kanboard-latest.zip + + unzip kanboard-latest.zip + + chown -R apache:apache kanboard/data + + rm kanboard-latest.zip + + + +Если включен SELinux, убедитесь что пользователь веб сервера Apache имеет права на запись в директорию data: + + + + chcon -R -t httpd_sys_content_rw_t /var/www/html/kanboard/data + + + +Убедитесь, что Канборд может посылать email сообщения и делать внешние сетевые запросы, например с SELinux: + + + + setsebool -P httpd_can_network_connect=1 + + + +Позволяет делать внешние подключения если используется LDAP, SMTP, Web hooks или другая интеграция. + + + +Centos 6.x[¶](#centos-6-x "Ссылка на этот заголовок") +----------------------------------------------------- + + + +Установите PHP и Apache: + + + + yum install -y php php-mbstring php-pdo php-gd unzip wget + + + +По умолчанию, Centos 6.5 использует PHP 5.3.3 и Apache 2.2.15. + + + +Включите короткие теги: + + + +- Отредактируйте файл `/etc/php.ini`{.docutils .literal} + + + +- Измените строку `short_open_tag = On`{.docutils .literal} (вместо `short_open_tag = Off`{.docutils .literal}) + + + +Перезапустите Apache: + + + + service httpd restart + + + +Установите Канборд: + + + + cd /var/www/html + + wget https://kanboard.net/kanboard-latest.zip + + unzip kanboard-latest.zip + + chown -R apache:apache kanboard/data + + rm kanboard-latest.zip + + + +Готово. Можете работать с Канборд. Откройте в браузере `http://ваш_сервер/kanboard/`{.docutils .literal}. + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/cli.markdown b/doc/ru_RU/cli.markdown new file mode 100644 index 00000000..9c7b56a7 --- /dev/null +++ b/doc/ru_RU/cli.markdown @@ -0,0 +1,331 @@ +Интерфейс командной строки +========================== + + + +Канборд обеспечивает простой интерфейс командной строки, которым можно воспользоваться только из Unix терминала. Эта возможность доступна только с локальной машины. + + + +Интерфейс командной строки полезен для выполнения команд вне процессов веб сервера. + + + +Использование[¶](#usage "Ссылка на этот заголовок") +--------------------------------------------------- + + + +- Откройте терминал и перейдите в директорию Канборд (например: `cd /var/www/kanboard`) + + + +- Выполните команду `./kanboard` + + + +<!-- --> + + + + Kanboard version master + + + + Usage: + + command [options] [arguments] + + + + Options: + + -h, --help Display this help message + + -q, --quiet Do not output any message + + -V, --version Display this application version + + --ansi Force ANSI output + + --no-ansi Disable ANSI output + + -n, --no-interaction Do not ask any interactive question + + -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug + + + + Available commands: + + cronjob Execute daily cronjob + + help Displays help for a command + + list Lists commands + + export + + export:daily-project-column-stats Daily project column stats CSV export (number of tasks per column and per day) + + export:subtasks Subtasks CSV export + + export:tasks Tasks CSV export + + export:transitions Task transitions CSV export + + locale + + locale:compare Compare application translations with the fr_FR locale + + locale:sync Synchronize all translations based on the fr_FR locale + + notification + + notification:overdue-tasks Send notifications for overdue tasks + + plugin + + plugin:install Install a plugin from a remote Zip archive + + plugin:uninstall Remove a plugin + + plugin:upgrade Update all installed plugins + + projects + + projects:daily-stats Calculate daily statistics for all projects + + trigger + + trigger:tasks Trigger scheduler event for all tasks + + user + + user:reset-2fa Remove two-factor authentication for a user + + user:reset-password Change user password + + + +Доступные команды[¶](#available-commands "Ссылка на этот заголовок") +-------------------------------------------------------------------- + + + +### Экспорт задач в формате CSV[¶](#tasks-csv-export "Ссылка на этот заголовок") + + + +Применение: + + + + ./kanboard export:tasks <project_id> <start_date> <end_date> + + + +Пример: + + + + ./kanboard export:tasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv + + + +Данные CSV передаются в `stdout`. + + + +### Экспорт подзадач в формате CSV[¶](#subtasks-csv-export "Ссылка на этот заголовок") + + + +Применение: + + + + ./kanboard export:subtasks <project_id> <start_date> <end_date> + + + +Пример: + + + + ./kanboard export:subtasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv + + + +### Экспорт перемещения задач в формате CSV[¶](#task-transitions-csv-export "Ссылка на этот заголовок") + + + +Применение: + + + + ./kanboard export:transitions <project_id> <start_date> <end_date> + + + +Пример: + + + + ./kanboard export:transitions 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv + + + +### Экспорт ежедневных сведений в формате CSV[¶](#export-daily-summaries-data-in-csv "Ссылка на этот заголовок") + + + +Экспортированные данные будут выведены в стандартный вывод: + + + + ./kanboard export:daily-project-column-stats <project_id> <start_date> <end_date> + + + +Пример: + + + + ./kanboard export:daily-project-column-stats 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv + + + +### Отправка уведомлений для просроченных задач[¶](#send-notifications-for-overdue-tasks "Ссылка на этот заголовок") + + + +Email сообщения будут отправлены всем пользователям, у которых включено оповещение. + + + + ./kanboard notification:overdue-tasks + + + +Необязательные параметры: + + + +- `--show`: Показывать отправку уведомлений + + + +- `--group`: Группировать все просроченные задачи для одного пользователя (со всех проектов) на один email + + + +- `--manager`: Посылать все просроченные задачи менеджеру (менеджерам) проекта в одном email сообщении + + + +Вы можете просмотреть просроченные задачи с помощью параметра `--show`: + + + +```bash +./kanboard notification:overdue-tasks --show ++-----+---------+------------+------------+--------------+----------+ +| Id | Title | Due date | Project Id | Project name | Assignee | ++-----+---------+------------+------------+--------------+----------+ +| 201 | Test | 2014-10-26 | 1 | Project #0 | admin | +| 202 | My task | 2014-10-28 | 1 | Project #0 | | ++-----+---------+------------+------------+--------------+----------+ +``` + + +### Запуск ежедневной калькуляции статистики[¶](#run-daily-project-stats-calculation "Ссылка на этот заголовок") + + + +Эта команда считает статистику для каждого проекта: + + + + ./kanboard projects:daily-stats + + Run calculation for Project #0 + + Run calculation for Project #1 + + Run calculation for Project #10 + + + +### Триггеры для задач[¶](#trigger-for-tasks) + + + +Эта команда посылает “событие для ежедневных фоновых заданий” для всех открытых задач в каждом проекте. + + + + ./kanboard trigger:tasks + + Trigger task event: project_id=2, nb_tasks=1 + + + +### Сброс пароля пользователя[¶](#reset-user-password "Ссылка на этот заголовок") + + + + ./kanboard user:reset-password my_user + + + +Будет запрошен пароль и подтверждение. Символы не отображаются на экране. + + + +### Удаление двухуровневой аутентификации для пользователя[¶](#remove-two-factor-authentication-for-a-user "Ссылка на этот заголовок") + + + + ./kanboard user:reset-2fa my_user + + + +### Установка плагина[¶](#install-a-plugin "Ссылка на этот заголовок") + + + + ./kanboard plugin:install https://github.com/kanboard/plugin-github-auth/releases/download/v1.0.1/GithubAuth-1.0.1.zip + + + +Заметка: Установленные файлы будут иметь теже права, что и у текущего пользователя + + + +### Удаление плагина[¶](#remove-a-plugin "Ссылка на этот заголовок") + + + + ./kanboard plugin:uninstall Budget + + + +### Обновление всех плагинов[¶](#upgrade-all-plugins "Ссылка на этот заголовок") + + + + ./kanboard plugin:upgrade + + * Updating plugin: Budget Planning + + * Plugin up to date: Github Authentication + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/closing-tasks.markdown b/doc/ru_RU/closing-tasks.markdown new file mode 100644 index 00000000..ae91757d --- /dev/null +++ b/doc/ru_RU/closing-tasks.markdown @@ -0,0 +1,30 @@ +Закрытие задач +============== + +Когда задача закрыта, то она скрывается на Доске. + +Не смотря на это, вы можете в любой момент зайти в список закрытых задач используя запрос **status:closed** в любой форме поиска или просто выбрать фильтр “Закрытые задачи” в выпадающем меню. + +Имеется два пути для закрытия задачи: - На Доске выбрать задачу и выпадающем меню выбрать **Закрыть задачу** + +![Close a task from drop-down menu](https://kanboard.net/screenshots/documentation/menu-close-task.png) + +Рисунок. Закрытие задачи, используя выпадающее меню. + + +или - Используя детальное представление задачи, выбрать **Закрыть задачу** в меню боковой панели (слева) + + +![Close task](https://kanboard.net/screenshots/documentation/closing-tasks.png) + +Рисунок. Закрытие задачи. + + + +**Заметка**: Когда вы закрываете задачу, у всех не выполненных подзадач будет изменен статус на “Выполнено” + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/cloudron.markdown b/doc/ru_RU/cloudron.markdown new file mode 100644 index 00000000..2e41d0d0 --- /dev/null +++ b/doc/ru_RU/cloudron.markdown @@ -0,0 +1,45 @@ +Как запустить Канборд на Cloudron +================================= + + +[Cloudron](https://cloudron.io) приватный смартсервер, на котором вы можете установить веб приложения, такие как Канборд. Вы можете установить Канборд в определенном домене, при этом каждой инсталяции создавается резервная копия и поддерживается новая версия Канборда автоматически. + + + +[![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=net.kanboard.cloudronapp) + + + +Учетные записи[¶](#accounts "Ссылка на этот заголовок") +------------------------------------------------------- + + +Приложение плотно интегрируется с системой Управления пользователями Cloudron (через LDAP). Только пользователи Cloudron могут войти в Канборд. Плюс, любой администратор Cloudron становится администратором Канборда автоматически. + + +Установка плагинов[¶](#installing-plugins "Ссылка на этот заголовок") +--------------------------------------------------------------------- + + + +Плагины могут быть установлены и настроены с помощью утилиты [Cloudron CLI](https://cloudron.io/references/cli.html). Для подробной информации смотрите [описание приложения](https://cloudron.io/appstore.html?app=net.kanboard.cloudronapp). + + + +Исходный код приложения[¶](#application-source-code "Ссылка на этот заголовок") +------------------------------------------------------------------------------- + + + +Исходный код приложения Cloudron находится [здесь](https://github.com/cloudron-io/kanboard-app). + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/coding-standards.markdown b/doc/ru_RU/coding-standards.markdown new file mode 100644 index 00000000..b6100375 --- /dev/null +++ b/doc/ru_RU/coding-standards.markdown @@ -0,0 +1,64 @@ +Стандарты используемые при написании кода +========================================= + + + +Код PHP[¶](#php-code "Ссылка на этот заголовок") +------------------------------------------------ + + + +- Отступ: 4 пробела + + + +- Перевод строки: Unix =\> `\n`{.docutils .literal} + + + +- Кодировка: UTF-8 + + + +- Используйте только открытые теги `<?php`{.docutils .literal} or `<?=`{.docutils .literal} для templates, но **никогда** не используйте `<?`{.docutils .literal} + + + +- Всегда пишите коментарии PHPdoc для свойств методов и классов + + + +- Стиль кодирования: [PSR-1](http://www.php-fig.org/psr/psr-1/) и [PSR-2](http://www.php-fig.org/psr/psr-2/) + + + +Код JavaScript[¶](#javascript-code "Ссылка на этот заголовок") +-------------------------------------------------------------- + + + +- Отступ: 4 пробела + + + +- Перевод строки: Unix =\> `\n`{.docutils .literal} + + + +Код CSS[¶](#css-code "Ссылка на этот заголовок") +------------------------------------------------ + + + +- Отступ: 4 пробела + + + +- Перевод строки: Unix =\> `\n`{.docutils .literal} + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/config.markdown b/doc/ru_RU/config.markdown new file mode 100644 index 00000000..b0419966 --- /dev/null +++ b/doc/ru_RU/config.markdown @@ -0,0 +1,523 @@ +Конфигурационный файл +===================== + + + +Вы можете изменить базовые настройки Канборда добавив файл `config.php` в корень проекта или в каталог `data`. Вы, также, можете переименовать файл `config.default.php` в `config.php` и установить желаемые значения. + + +Включение/выключение режима отладки[¶](#enable-disable-debug-mode "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------- + + + + define('DEBUG', true); + + define('LOG_DRIVER', 'file'); // Other drivers are: syslog, stdout, stderr or file + + + +Обработчик логов может быть определен если вы включите режим отладки. Режим отладки фиксирует все SQL запросы и время затрачиваемое на генерацию страниц. + + + +Плагины[¶](#plugins "Ссылка на этот заголовок") +----------------------------------------------- + + + +Каталог плагинов: + + + + define('PLUGINS_DIR', 'data/plugins'); + + + +Включение/выключение установки плагинов через интерфейс пользователя: + + + + define('PLUGIN_INSTALLER', true); // Default is true + + + +Каталог для загружаемых файлов[¶](#folder-for-uploaded-files "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------- + + + + define('FILES_DIR', 'data/files'); + + + +Включение/выключение переопределения url адресов[¶](#enable-disable-url-rewrite "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------------------------- + + + + define('ENABLE_URL_REWRITE', false); + + + +Настройка email[¶](#email-configuration "Ссылка на этот заголовок") +------------------------------------------------------------------- + + + + // E-mail address for the "From" header (notifications) + + define('MAIL_FROM', 'notifications@kanboard.local'); + + + + // Mail transport to use: "smtp", "sendmail" or "mail" (PHP mail function) + + define('MAIL_TRANSPORT', 'mail'); + + + + // SMTP configuration to use when the "smtp" transport is chosen + + define('MAIL_SMTP_HOSTNAME', ''); + + define('MAIL_SMTP_PORT', 25); + + define('MAIL_SMTP_USERNAME', ''); + + define('MAIL_SMTP_PASSWORD', ''); + + define('MAIL_SMTP_ENCRYPTION', null); // Valid values are "null", "ssl" or "tls" + + + + // Sendmail command to use when the transport is "sendmail" + + define('MAIL_SENDMAIL_COMMAND', '/usr/sbin/sendmail -bs'); + + + +Настройки базы данных[¶](#database-settings "Ссылка на этот заголовок") +----------------------------------------------------------------------- + + + + // Database driver: sqlite, mysql or postgres (sqlite by default) + + define('DB_DRIVER', 'sqlite'); + + + + // Mysql/Postgres username + + define('DB_USERNAME', 'root'); + + + + // Mysql/Postgres password + + define('DB_PASSWORD', ''); + + + + // Mysql/Postgres hostname + + define('DB_HOSTNAME', 'localhost'); + + + + // Mysql/Postgres database name + + define('DB_NAME', 'kanboard'); + + + + // Mysql/Postgres custom port (null = default port) + + define('DB_PORT', null); + + + + // Mysql SSL key + + define('DB_SSL_KEY', null); + + + + // Mysql SSL certificate + + define('DB_SSL_CERT', null); + + + + // Mysql SSL CA + + define('DB_SSL_CA', null); + + + +Настройки LDAP[¶](#ldap-settings "Ссылка на этот заголовок") +------------------------------------------------------------ + + + + // Enable LDAP authentication (false by default) + + define('LDAP_AUTH', false); + + + + // LDAP server hostname + + define('LDAP_SERVER', ''); + + + + // LDAP server port (389 by default) + + define('LDAP_PORT', 389); + + + + // By default, require certificate to be verified for ldaps:// style URL. Set to false to skip the verification + + define('LDAP_SSL_VERIFY', true); + + + + // Enable LDAP START_TLS + + define('LDAP_START_TLS', false); + + + + // By default Kanboard lowercase the ldap username to avoid duplicate users (the database is case sensitive) + + // Set to true if you want to preserve the case + + define('LDAP_USERNAME_CASE_SENSITIVE', false); + + + + // LDAP bind type: "anonymous", "user" or "proxy" + + define('LDAP_BIND_TYPE', 'anonymous'); + + + + // LDAP username to use with proxy mode + + // LDAP username pattern to use with user mode + + define('LDAP_USERNAME', null); + + + + // LDAP password to use for proxy mode + + define('LDAP_PASSWORD', null); + + + + // LDAP DN for users + + // Example for ActiveDirectory: CN=Users,DC=kanboard,DC=local + + // Example for OpenLDAP: ou=People,dc=example,dc=com + + define('LDAP_USER_BASE_DN', ''); + + + + // LDAP pattern to use when searching for a user account + + // Example for ActiveDirectory: '(&(objectClass=user)(sAMAccountName=%s))' + + // Example for OpenLDAP: 'uid=%s' + + define('LDAP_USER_FILTER', ''); + + + + // LDAP attribute for username + + // Example for ActiveDirectory: 'samaccountname' + + // Example for OpenLDAP: 'uid' + + define('LDAP_USER_ATTRIBUTE_USERNAME', 'uid'); + + + + // LDAP attribute for user full name + + // Example for ActiveDirectory: 'displayname' + + // Example for OpenLDAP: 'cn' + + define('LDAP_USER_ATTRIBUTE_FULLNAME', 'cn'); + + + + // LDAP attribute for user email + + define('LDAP_USER_ATTRIBUTE_EMAIL', 'mail'); + + + + // LDAP attribute to find groups in user profile + + define('LDAP_USER_ATTRIBUTE_GROUPS', 'memberof'); + + + + // LDAP attribute for user avatar image: thumbnailPhoto or jpegPhoto + + define('LDAP_USER_ATTRIBUTE_PHOTO', ''); + + + + // LDAP attribute for user language, example: 'preferredlanguage' + + // Put an empty string to disable language sync + + define('LDAP_USER_ATTRIBUTE_LANGUAGE', ''); + + + + // Allow automatic LDAP user creation + + define('LDAP_USER_CREATION', true); + + + + // LDAP DN for administrators + + // Example: CN=Kanboard-Admins,CN=Users,DC=kanboard,DC=local + + define('LDAP_GROUP_ADMIN_DN', ''); + + + + // LDAP DN for managers + + // Example: CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local + + define('LDAP_GROUP_MANAGER_DN', ''); + + + + // Enable LDAP group provider for project permissions + + // The end-user will be able to browse LDAP groups from the user interface and allow access to specified projects + + define('LDAP_GROUP_PROVIDER', false); + + + + // LDAP Base DN for groups + + define('LDAP_GROUP_BASE_DN', ''); + + + + // LDAP group filter + + // Example for ActiveDirectory: (&(objectClass=group)(sAMAccountName=%s*)) + + define('LDAP_GROUP_FILTER', ''); + + + + // LDAP user group filter + + // If this filter is configured, Kanboard will search user groups in LDAP_GROUP_BASE_DN + + // Example for OpenLDAP: (&(objectClass=posixGroup)(memberUid=%s)) + + define('LDAP_GROUP_USER_FILTER', ''); + + + + // LDAP attribute for the group name + + define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn'); + + + +Настройки аутентификации Reverse-Proxy[¶](#reverse-proxy-authentication-settings "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------ + + + + // Enable/disable the reverse proxy authentication + + define('REVERSE_PROXY_AUTH', false); + + + + // Header name to use for the username + + define('REVERSE_PROXY_USER_HEADER', 'REMOTE_USER'); + + + + // Username of the admin, by default blank + + define('REVERSE_PROXY_DEFAULT_ADMIN', ''); + + + + // Default domain to use for setting the email address + + define('REVERSE_PROXY_DEFAULT_DOMAIN', ''); + + + +Настройки аутентификации RememberMe[¶](#rememberme-authentication-settings "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------ + + + + // Enable/disable remember me authentication + + define('REMEMBER_ME_AUTH', true); + + + +Настройки Secure HTTP headers[¶](#secure-http-headers-settings "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------ + + + + // Enable or disable "Strict-Transport-Security" HTTP header + + define('ENABLE_HSTS', true); + + + + // Enable or disable "X-Frame-Options: DENY" HTTP header + + define('ENABLE_XFRAME', true); + + + +Запись событий[¶](#logging "Ссылка на этот заголовок") +------------------------------------------------------ + + + +По умолчанию, Канборд записывает не все события. Если вы хотите включить запись событий, вы должны установить обработчик логов. + + + + // Available log drivers: syslog, stderr, stdout or file + + define('LOG_DRIVER', ''); + + + + // Log filename if the log driver is "file" + + define('LOG_FILE', __DIR__.DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR.'debug.log'); + + + +Защита от Brute-force[¶](#brute-force-protection "Ссылка на этот заголовок") +---------------------------------------------------------------------------- + + + + // Enable captcha after 3 authentication failure + + define('BRUTEFORCE_CAPTCHA', 3); + + + + // Lock the account after 6 authentication failure + + define('BRUTEFORCE_LOCKDOWN', 6); + + + + // Lock account duration in minute + + define('BRUTEFORCE_LOCKDOWN_DURATION', 15); + + + +Сессии[¶](#session "Ссылка на этот заголовок") +---------------------------------------------- + + + + // Session duration in second (0 = until the browser is closed) + + // See http://php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime + + define('SESSION_DURATION', 0); + + + +Проксирование клиентских HTTP[¶](#http-client-proxy "Ссылка на этот заголовок") +------------------------------------------------------------------------------- + + + +Если внешние запросы HTTP необходимо пробрасывать через прокси: + + + + define('HTTP_PROXY_HOSTNAME', ''); + + define('HTTP_PROXY_PORT', '3128'); + + define('HTTP_PROXY_USERNAME', ''); + + define('HTTP_PROXY_PASSWORD', ''); + + + +Другие настройки[¶](#various-settings "Ссылка на этот заголовок") +----------------------------------------------------------------- + + + + // Escape html inside markdown text + + define('MARKDOWN_ESCAPE_HTML', true); + + + + // API alternative authentication header, the default is HTTP Basic Authentication defined in RFC2617 + + define('API_AUTHENTICATION_HEADER', ''); + + + + // Hide login form, useful if all your users use Google/Github/ReverseProxy authentication + + define('HIDE_LOGIN_FORM', false); + + + + // Disabling logout (for external SSO authentication) + + define('DISABLE_LOGOUT', false); + + + + // Override API token stored in the database, useful for automated tests + + define('API_AUTHENTICATION_TOKEN', 'My unique API Token'); + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/contributing.markdown b/doc/ru_RU/contributing.markdown new file mode 100644 index 00000000..54917067 --- /dev/null +++ b/doc/ru_RU/contributing.markdown @@ -0,0 +1,96 @@ +Руководство для участников проекта +================================== + + + +Как я могу помочь проекту?[¶](#how-can-i-help "Ссылка на этот заголовок") +------------------------------------------------------------------------- + + + +Канборд пока не идеален, поэтому есть несколько вариантов помочь проекту: + + + +- Присылать отзывы +- Сообщать об ошибках +- Добавлять или обновлять переводы +- Улучшать документацию +- Писать код +- Рассказать друзьям, что Канборд отличная программа :) + + + +Перед тем как начать большое дело, создайте новое “обсуждение вопроса” (issue) на [https://github.com/fguillot/kanboard/issues](https://github.com/fguillot/kanboard/issues) и объясните ваше предложение. + + + +Я хочу внести предложения по проекту[¶](#i-want-to-give-feedback "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------- + + + +- У вас есть идея по улучшению (пользовательский интерфейс или другие возможности) +- Посмотрите в обсуждениях (issue), может ваша идея уже предложена кем-то +- Откройте новое обсуждение (issue) +- Опишите вашу идею +- Вы можете проголосовать +1 за имеющиеся предложения + + +Я хочу сообщить об ошибке[¶](#i-want-to-report-a-bug "Ссылка на этот заголовок") +-------------------------------------------------------------------------------- + +- Убедитесь, что обсуждение вопроса (issue) ранее не публиковалось +- Откройте новую заявку (ticket) +- Опишите, что именно не работает +- Опишите, как воспроизвести ошибку (последовательность, как вы вышли на данную ошибку) +- Опишите ваше окружение (версию Канборда, какая ОС, веб сервер, версию PHP, база данных и версия, хостинг провайдер) + + +Я хочу перевести Канборд на другой язык[¶](#i-want-to-translate-kanboard "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------------------- + +Канборд уже переведен на несколько языков. Вы можете улучшить эти переводы. Некоторые переводы еще не завершены. Для того, чтобы сделать перевод, ознакомтесь с [руководством по переводу на другой язык](translations.markdown). + + +Я хочу улучшить документацию[¶](#i-want-to-improve-the-documentation "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------ + +- Вы считаете, что что-то недостаточно хорошо описано, имеются грамматические или орфографические ошибки, что-то еще. +- Документация написана в формате Markdown и хранится в каталоге `docs`{.docutils .literal}. +- Редактируйте файлы и присылайте pull-request. +- Документация на официальном вебсайте синхронизируется с репозиторием. + + +Я хочу внести свой вклад в код[¶](#i-want-to-contribute-to-the-code "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------------- + +Pull-requests всегда приветствуются, однако, чтобы они были приняты, вы должны следовать следующим указаниям: + +- **Перед тем как внести большое изменение или переделать дизайн, откройте новую заявку (ticket) для обсуждения.** +- Если вы хотите добавить новую возможность, уважайте филосовию Канборда: **Мы фокусируемся на простоте**, мы не хотим иметь раздутую программу. +- Это же относится и к пользовательскому интерфейсу: **простота и производительность** +- Присылайте только по одному pull-request для новой возможности или исправления ошибки. +- Небольшие pull-request легче просмотреть и быстрее влить в проект. +- Убедитесь, что [модульные тесты выполняются успешно](tests.markdown). +- Уважайте [стандарты кодирования](coding-standards.markdown). +- Пишите код, который могут поддерживать другие, избегайте дублирования, используйте лучше практики PHP. + +В любом случае, если вы не уверены в чем-то - открывайте новую заявку (ticket) + + +Рассказать друзьям, что Канборд отличная программа :)[¶](#tell-your-friends-that-kanboard-is-awesome "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------------------------------- + +Если вы используете Канборд, покажите его и окружающим. Расскажите всем о прелестях бесплатного и опенсурсного программного обеспечения. + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/create-tasks-by-email.markdown b/doc/ru_RU/create-tasks-by-email.markdown new file mode 100644 index 00000000..baddc682 --- /dev/null +++ b/doc/ru_RU/create-tasks-by-email.markdown @@ -0,0 +1,61 @@ +Создание задач через email +========================== + + +Вы можете создавать задачи отправляя email (сообщения через электронную почту). Эта возможность доступна при использовании плагинов. + +В настоящий момент, Канборд поддерживает три внешних плагина: + + +- [Mailgun](https://github.com/kanboard/plugin-mailgun) +- [Sendgrid](https://github.com/kanboard/plugin-sendgrid) +- [Postmark](https://github.com/kanboard/plugin-postmark) + +Эти плагины позволяют обрабатывать входящие электронные сообщения (email) без дополнительной настройки SMTP сервера. + +При получении плагином email сообщения, плагин передает это сообщение в веб транслятор Канборда. + + +Обработка входящих email сообщений[¶](#incoming-emails-workflow "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------- + + +1. Вы отправляете email сообщение на определенный адрес, например **something+myproject@inbound.mydomain.tld** +2. Email сообщение перенаправляется на SMTP сервер +3. SMTP провайдер передает в веб сервис Канборда email сообщение в JSON формате или в формате multipart/form-data +4. Канборд обрабатывает полученное email сообщение и создает задачу в указанном проекте + +**Заметка**: Новые задачи автоматически создаются в первой колонке. + + +Формат email сообщения[¶](#email-format "Ссылка на этот заголовок") +------------------------------------------------------------------- + +- Email адрес до знака **@** должен содержать разделитель **плюс**, например **kanboard+project123** +- Строка следующая после знака плюс означает **Идентификатор проекта**, например, проект **Проект 123** может иметь идентификатор проекта **project123**. Идентификатор проекта можно задать в свойствах проекта **Меню** -\> **Настройки** -\> **Изменить проект** -\> **Идентификатор**. **Идентификатор** должен быть из цифр и латинских букв. +- Тема из email сообщения становится названием задачи +- Текст email сообщения становится описанием задачи (в формате Markdown) + +Email сообщения могут быть написаны в текстовом или HTML формате. **Канборд сам переконвертирует формат сообщения в Markdown** + + +Безопастность и требования[¶](#security-and-requirements "Ссылка на этот заголовок") +------------------------------------------------------------------------------------ + +- Веб транслятор Канборд защищен случайным ключом +- Email адрес отправителя должен быть такой же как и у пользователя Канборд +- Проект в Канборде должен иметь уникальный идентификатор +- Отправитель email сообщения должен быть участником проекта + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/creating-projects.markdown b/doc/ru_RU/creating-projects.markdown new file mode 100644 index 00000000..b878a538 --- /dev/null +++ b/doc/ru_RU/creating-projects.markdown @@ -0,0 +1,62 @@ +Создание проектов +================= + + +Kanboard может содержать одновременно несколько проектов. Проекты могут быть следующих типов: + +- Командный проект +- Приватный проект для одного пользователя + +Создание проекта для нескольких пользователей[¶](#creating-projects-for-multiple-users "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------------ + +- Только пользователи с ролью администратор и менеджер могут создавать такие проекты +- Можно добавлять к проекту пользователей и группы + +На рабочей панели нажмите ссылку **Новый проект**: + +![Project creation form](screenshots/new-project.png) + +Рисунок. Форма создания проекта. + + +Теперь надо только добавить название для проекта! Легко, не правда ли? + + +Создание приватного проекта[¶](#creating-a-private-project "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------- + +- Любой пользователь Kanboard может создать приватный проект +- **Нет** возможности добавлять участников к приватному проекту +- Только владелец приватного проекта и администратор могут получить доступ к проекту + + +На рабочей панели нажмите **Новый проект с ограниченным доступом**. + + + +Создание проекта из другого проекта[¶](#creating-projects-from-another-project "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------------------------- + +При создании нового проекта у вас есть возможность использовать данные другого (ранее созданного) проекта: + +- Разрешения +- Действия +- Дорожки +- Категории +- Задачи + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/creating-tasks.markdown b/doc/ru_RU/creating-tasks.markdown new file mode 100644 index 00000000..ec2922a8 --- /dev/null +++ b/doc/ru_RU/creating-tasks.markdown @@ -0,0 +1,42 @@ +Создание задач +============== + + +На Доске нажмите значок плюс рядом с названием колонки: + + +![Task creation from the board](https://kanboard.net/screenshots/documentation/task-creation-board.png) + +Рисунок. Создание задачи на Доске + + +Далее появится форма создания задачи: + +![Task creation form](https://kanboard.net/screenshots/documentation/task-creation-form.png) + +Рисунок. Форма создания задачи. + + +Только поле **Название** является обязательным полем для заполнения. + + +Описание полей: + +- **Название**: Название вашей задачи, которое будет отображаться на доске. +- **Описание**: Позволяет вам добавить больше информации о задаче, содержимое может содержать синтаксис [Markdown](syntax-guide.markdown). +- **Создать другую задачу**: Отметьте этот чекбокс если вы хотите создать похожую задачу (некоторые поля будут заполнены). +- **Назначена**: Пользователь, которому будет назначена для выполнения эта задача. +- **Категория**: Только одна категория может быть назначена задаче. +- **Колонка**: Колонка в которой задача будет создана, ваша задача будет помещена вниз. +- **Цвет**: Выберите цвет для карточки. +- **Сложность**: используется в быстрых управлениях проектами (Scrum); сложность - это число, которое говорит команде проекта насколько тяжело выполнить задачу. Обычно пользователи используют шкалу Фибоначи. +- **Запланировано часов**: Планирование времени, которое будет затрачено на выполнение задачи. Измеряется в часах. +- **Сделать до**: Просроченные задачи будут иметь дату завершения красного цвета, а предстоящие задачи будут иметь дату завершения черного цвета. + +**-** + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/cronjob.markdown b/doc/ru_RU/cronjob.markdown new file mode 100644 index 00000000..c3bb5f6d --- /dev/null +++ b/doc/ru_RU/cronjob.markdown @@ -0,0 +1,41 @@ +Ежедневные фоновые задачи +========================= + + +Для корректной работы, Канборд должен запускать ежедневные фоновые задачи. На Unix платформах этот процесс выполнятся в `cron`. + +Фоновые задачи необходимы для следующих возможностей: + +- Отчеты и аналитика (подсчет ежедневной статистики для каждого проекта) +- Рассылка оповещений для просроченных задач +- Выполнение автоматических действий подключенных к событиям “Ежедневные фоновые процессы для задач” + + +Настройка на Unix и Linux платформах[¶](#configuration-on-unix-and-linux-platforms "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------------- + +Для создания фоновых задач под операционной системой Unix/Linux используются разные решения. Здесь приведен пример для Ubuntu 14.04. Для других систем процедура похожа. + + +Отредактируйте crontab под пользователем вашего веб сервера: + + + sudo crontab -u www-data -e + + +Пример запуска ежедневной фоновой задачи в 8 утра: + + + 0 8 * * * cd /path/to/kanboard && ./kanboard cronjob >/dev/null 2>&1 + + +Примечание: процес выполнения фоновых задач должен иметь права доступа к вашей базе данных в случае если вы используете Sqlite. Обычно, достаточно запускать фоновую задачу под пользователем веб сервера. + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/currency-rate.markdown b/doc/ru_RU/currency-rate.markdown new file mode 100644 index 00000000..6d7dbc3e --- /dev/null +++ b/doc/ru_RU/currency-rate.markdown @@ -0,0 +1,43 @@ +Курсы валют +=========== + + +Каждый пользователь может иметь предопределенный ежечасный курс для разных валют. Если вы хотите вручную занести курсы валют, то вы можете указать ставку в соответсвии с курсом. + +Эта опция используются для расчета бюджета проекта. + +![Currency Rate](https://kanboard.net/screenshots/documentation/currency-rate.png) + +Рисунок. Курсы валют + + +Для настроек курса валют выберите, справа вверху в выпадающем меню, **Настройки** -\> затем, слева, **Курсы валют**. + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/custom-filters.markdown b/doc/ru_RU/custom-filters.markdown new file mode 100644 index 00000000..60630860 --- /dev/null +++ b/doc/ru_RU/custom-filters.markdown @@ -0,0 +1,36 @@ +Пользовательские фильтры +======================== + +Пользовательские фильтры позволяют вам сохранять любые поисковые запросы. Таким образом, вы можете легко расширить стандартные фильтры и сохранить часто используемые поисковые запросы. + +- Пользовательские фильтры сохраняются в проекте и имеют привязку к создателю. +- Если создатель фильтра является менеджером проекта, то он может предоставить этот фильтр всем участникам проекта. + + +Создание фильтра[¶](#filter-creation "Ссылка на этот заголовок") +---------------------------------------------------------------- + + +Перейдите в **Меню** -\> **Пользовательские фильтры** или **Меню** -\> **Настройки** -\> **Пользовательские фильтры** + +![Custom Filter Creation](https://kanboard.net/screenshots/documentation/custom-filter-creation.png) + +Рисунок. Создание пользовательского фильтра. + + + +Созданый фильтр появится на Доске рядом со стандартными фильтрами + +![Custom Filter Dropdown](https://kanboard.net/screenshots/documentation/custom-filter-dropdown.png) + +Рисунок. Выпадающий список - Пользовательский фильтр. + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/debian-installation.markdown b/doc/ru_RU/debian-installation.markdown new file mode 100644 index 00000000..2c33465e --- /dev/null +++ b/doc/ru_RU/debian-installation.markdown @@ -0,0 +1,104 @@ +Как установить Канборд на Debian? +================================= + +Некоторые возможности Канборда требуют [запуск ежедневных фоновых задач](cronjob.markdown). + + +Debian 8 (Jessie)[¶](#debian-8-jessie "Ссылка на этот заголовок") +----------------------------------------------------------------- + + +Установите Apache и PHP: + + + apt-get update + + apt-get install -y php5 php5-sqlite php5-gd unzip + + service apache2 restart + + + +Установите Канборд: + + + cd /var/www/html + + wget https://kanboard.net/kanboard-latest.zip + + unzip kanboard-latest.zip + + chown -R www-data:www-data kanboard/data + + rm kanboard-latest.zip + + + +Debian 7 (Wheezy)[¶](#debian-7-wheezy "Ссылка на этот заголовок") +----------------------------------------------------------------- + + + +Установите Apache и PHP: + + + + apt-get update + + apt-get install -y php5 php5-sqlite php5-gd unzip + + + +Установите Канборд: + + + + cd /var/www + + wget https://kanboard.net/kanboard-latest.zip + + unzip kanboard-latest.zip + + chown -R www-data:www-data kanboard/data + + rm kanboard-latest.zip + + + +Debian 6 (Squeeze)[¶](#debian-6-squeeze "Ссылка на этот заголовок") +------------------------------------------------------------------- + + + +Установите Apache и PHP: + + + + apt-get update + + apt-get install -y libapache2-mod-php5 php5-sqlite php5-gd unzip + + + +Установите Канборд: + + + + cd /var/www + + wget https://kanboard.net/kanboard-latest.zip + + unzip kanboard-latest.zip + + chown -R www-data:www-data kanboard/data + + rm kanboard-latest.zip + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/docker.markdown b/doc/ru_RU/docker.markdown new file mode 100644 index 00000000..358ade73 --- /dev/null +++ b/doc/ru_RU/docker.markdown @@ -0,0 +1,134 @@ +Как запустить Канборд с Docker? +=============================== + + +Канборд можно легко запустить с [Docker](https://www.docker.com). + + +Размер образа, приблизительно, **50MB** содержит: + +- [Alpine Linux](http://alpinelinux.org/) +- The [process manager S6](http://skarnet.org/software/s6/) +- Nginx +- PHP-FPM + + +Канборд запускает фоновые задачи каждый день в полночь. Переписывание URL (URL rewriting) включено в базовой конфигурации. + +Когда контейнер запущен, использование памяти около **20MB**. + + +Использование стабильной версии[¶](#use-the-stable-version "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------- + + +Для получения последней стабильной версии Канборда используйте тег **stable**: + + + + docker pull kanboard/kanboard + + docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:stable + + + +Использование разрабатываемой версии (автоматической сборки)[¶](#use-the-development-version-automated-build "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------------------------------------------------------- + + + +Каждый новый коммит в репозитории вызывает новую сборку в [Docker Hub](https://registry.hub.docker.com/u/kanboard/kanboard/). + + + + docker pull kanboard/kanboard + + docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:latest + + + +Используя **разрабатываемую версию** Канборда с тегом **latest**, вы принимаете на себя все риски нестабильной версии. + + + +Создание своего образа Docker[¶](#build-your-own-docker-image "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------- + +Для сборки своего образа, в репозитории Канборда имеется `Dockerfile`{.docutils .literal}. Склонируйте репозиторий Канборда и выполните следующую команду: + + + + docker build -t youruser/kanboard:master . + + + +или + + + + make docker-image + + + +Для запуска вашего контейнера в фоновом режиме на порту 80: + + + + docker run -d --name kanboard -p 80:80 -t youruser/kanboard:master + + + +Тома[¶](#volumes "Ссылка на этот заголовок") +-------------------------------------------- + + +Вы можете прикрепить 2 тома к вашему контейнеру: + +- Каталог с данными: `/var/www/kanboard/data` +- Каталог с плагинами: `/var/www/kanboard/plugins` + + + +Используйте опцию `-v` для монтирования тома на удаленной машине как описано в [официальной документации Docker](https://docs.docker.com/engine/userguide/containers/dockervolumes/). + + + +Обновление вашего контейнера[¶](#upgrade-your-container "Ссылка на этот заголовок") +----------------------------------------------------------------------------------- + +- Загрузите новый образ +- Удалите старый контейнер +- Перезапустите новый контейнер с теми же томами + + +Переменные окружения[¶](#environment-variables "Ссылка на этот заголовок") +-------------------------------------------------------------------------- + + +Список переменных окружения доступен на [этой странице](env.markdown). + + + +Файлы конфигурации[¶](#config-files "Ссылка на этот заголовок") +--------------------------------------------------------------- + +- Контейнер уже содержит конфигурационный файл расположенный в `/var/www/kanboard/config.php`. +- Вы можете сохранить свой конфиг файл в томе с данными: `/var/www/kanboard/data/config.php`. + + + +Ссылки[¶](#references "Ссылка на этот заголовок") +------------------------------------------------- + +- [Официальные образы Канборд](https://registry.hub.docker.com/u/kanboard/kanboard/) +- [Документация Docker](https://docs.docker.com/) +- [Стабильная версия Dockerfile](https://github.com/kanboard/docker) +- [Разрабатываемая версия Dockerfile](https://github.com/fguillot/kanboard/blob/master/Dockerfile) + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/duplicate-move-tasks.markdown b/doc/ru_RU/duplicate-move-tasks.markdown new file mode 100644 index 00000000..48cec06c --- /dev/null +++ b/doc/ru_RU/duplicate-move-tasks.markdown @@ -0,0 +1,79 @@ +Дублирование и перенос задач +============================ + + +Создание копии задачи в том же проекте[¶](#duplicate-a-task-into-the-same-project "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------- + + +Перейдите в детальное представление задачи и выберите в боковой панели (слева) **Клонировать**. + +![Task Duplication](https://kanboard.net/screenshots/documentation/task-duplication.png) + +Рисунок. Создание копии задачи. + + +Новая задача будет создана с теми же свойствами как и у оригинальной задачи. + + +Создание копии задачи в другой проект[¶](#duplicate-a-task-to-another-project "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------- + + +Перейдите в детальное представление задачи и выберите в боковом меню (слева) **Клонировать в другой проект**. + +![Task Duplication Another Project](https://kanboard.net/screenshots/documentation/task-duplication-another-project.png) + +Рисунок. Создание копии задачи в другой проект. + + +При выборе проекта в выпадающем списке, показываются только те проекты в которых вы являетесь участниками. + +Перед тем как скопировать задачу, Канборд просит вас указать свойства проекта (куда будет копироваться), потому что проекты могуг иметь разные столбцы, дорожки и т.д. + +Вам нужно указать: + +- Дорожку, в которую скопируется задача +- Колонку +- Категорию +- Испольнителя + +Перемещение задачи в другой проект[¶](#move-a-task-to-another-project "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------- + +Перейдите в детальное представление задачи и выберите в боковом меню **Переместить в другой проект** + +Процедура перемещения задачи в другой проект такая же как и при копировании, вы должны указать новые свойства для задачи. + + +Список копируемых полей[¶](#list-of-fields-duplicated "Ссылка на этот заголовок") +--------------------------------------------------------------------------------- + + +Ниже приведен список полей (свойств), которые будут скопированы: + +- заголовок +- описание +- дата\_исполнение +- цвет\_id +- проект\_id +- колонка\_id +- владелец\_id +- оценка +- категория\_id +- время\_запланировано +- дорожка\_id +- повторение\_статус +- повторение\_триггер +- повторение\_фактор +- повторение\_timeframe +- повторение\_basedate + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/editing-projects.markdown b/doc/ru_RU/editing-projects.markdown new file mode 100644 index 00000000..5ff81f90 --- /dev/null +++ b/doc/ru_RU/editing-projects.markdown @@ -0,0 +1,25 @@ +Редактирование проектов +======================= + + +Проект может быть переименован и выключен в любое время + +Для переименования проекта нажмите на ссылку **“Изменить проект”** (для перехода выберите **Меню** -\> **Настройки**) + + +![Project edition](screenshots/project-edition.png) + +Рисунок. Изменение проекта. + +- Дата начала и дата завершения используются при генерации диаграммы Ганта +- Описание отображается как подсказка на Доске и на странице со списком проектов +- Администраторы и менеджеры проекта могут сделать приватный проект доступным для других пользователей установив галочку в чекбоксе **“Приватный проект”** +- Вы можете сделать публичный проект приватным. + +Внимание: Когда вы делаете приватный проект из публичного, все пользователи ранее присоединенные к проекту будут иметь доступ. Ограничьте список пользователей для вашего приватного проекта. + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/email-configuration.markdown b/doc/ru_RU/email-configuration.markdown new file mode 100644 index 00000000..e04aca7b --- /dev/null +++ b/doc/ru_RU/email-configuration.markdown @@ -0,0 +1,156 @@ +Настройка email +=============== + + +Настройки пользователя[¶](#user-settings "Ссылка на этот заголовок") +-------------------------------------------------------------------- + +Для получение уведомлений на email, пользователи Канборда должны иметь: + +- Включенные уведомления, должны быть включены в профиле пользователя +- Должен быть прописан правильный email адрес в профиле пользователя +- Быть участником проекта, который отсылает уведомления + + +Примечание: Пользователь, выполнивший вход в Канборд и выполняющий действие, не будет получать уведомления. Уведомления будут получать только другие участники проекта. + + + +Email шлюзы[¶](#email-transports "Ссылка на этот заголовок") +------------------------------------------------------------ + +В Канборд доступны несколько шлюзов для email: + +- SMTP +- Sendmail +- Встроенная mail функция PHP +- Другие методы могут предоставить внешние плагины: Postmark, Sendgrid and Mailgun + + +Настройки сервера[¶](#server-settings "Ссылка на этот заголовок") +----------------------------------------------------------------- + +По умолчанию, Канборд использует встроенную в PHP функцию для передачи email сообщений. Обычно не требуется дополнительных настроек, если ваш сервер уже может отправлять email сообщения. + +Если вы захотите использовать другие методы: SMTP протокол и Sendmail, то ниже приведены инструкции по настройке. + +### Настройка SMTP[¶](#smtp-configuration "Ссылка на этот заголовок") + +Переименуйте файл `config.default.php`{.docutils .literal} в `config.php`{.docutils .literal} и измените следующие значения: + + + // We choose "smtp" as mail transport + + define('MAIL_TRANSPORT', 'smtp'); + + + + // We define our server settings + + define('MAIL_SMTP_HOSTNAME', 'mail.example.com'); + + define('MAIL_SMTP_PORT', 25); + + + + // Credentials for authentication on the SMTP server (not mandatory) + + define('MAIL_SMTP_USERNAME', 'username'); + + define('MAIL_SMTP_PASSWORD', 'super password'); + + + +Возможно понадобится использовать шифрованное подключение TLS или SSL: + + + define('MAIL_SMTP_ENCRYPTION', 'ssl'); // Valid values are "null", "ssl" or "tls" + + +### Настройка Sendmail[¶](#sendmail-configuration "Ссылка на этот заголовок") + +По умолчанию команда отправки сообщений выглядит так `/usr/sbin/sendmail -bs`{.docutils .literal}, но вы можете изменить ее в файле конфигурации. + +Например: + + + + // We choose "sendmail" as mail transport + + define('MAIL_TRANSPORT', 'sendmail'); + + + + // If you need to change the sendmail command, replace the value + + define('MAIL_SENDMAIL_COMMAND', '/usr/sbin/sendmail -bs'); + + + +### Встроенная mail функция PHP[¶](#php-native-mail-function "Ссылка на этот заголовок") + +Это конфигурация по умолчанию: + + + + define('MAIL_TRANSPORT', 'mail'); + + + +### Email адрес отправителя[¶](#the-sender-email-address "Ссылка на этот заголовок") + +По умолчанию, сообщения отправляются с адресом отправителя `notifications@kanboard.local`{.docutils .literal}. На этот адрес нельзя ответить. + +Вы можете настроить этот адрес изменив значение константы `MAIL_FROM`{.docutils .literal} в вашем конфигурационном файле. + + + define('MAIL_FROM', 'kanboard@mydomain.tld'); + + +Это может быть полезным, если ваш SMTP сервер не принимает неправильные адреса. + + +### Как отобразить ссылку на задачу в уведомлении?[¶](#how-to-display-a-link-to-the-task-in-notifications "Ссылка на этот заголовок") + +Чтобы сделать это, вы должны указать URL вашего установленного Канборда в [Настройках приложения](application-configuration.markdown). + +Например: + + + +- [http://demo.kanboard.ru/](http://demo.kanboard.ru/) + + + +- <http:/>/имясервера/kanboard/ + + + +- [http://kanboard.mydomain.com/](http://kanboard.mydomain.com/) + + + +Не забудьте добавить в конце слеш `/`{.docutils .literal}. + + + +Вы должны сделать это вручную, потому что Канборд не может угадать URL из скрипта командной строки и некоторые конфигурации веб серверов очень специфичны. + + +Решение проблем[¶](#troubleshooting "Ссылка на этот заголовок") +--------------------------------------------------------------- + +Если email сообщения не отправляются и вы уверены, что все настроили правильно: + +- Проверьте папку Спам +- Включите режим отладки и посмотрите отладочный файл `data/debug.log`{.docutils .literal}, вы можете увидеть конкретную ошибку +- Убедитесь, что ваш сервер или ваш хостинг провайдер позволяет вам отсылать email сообщения +- Если вы используете SeLinux, разрешите PHP отсылать email сообщения. + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/env.markdown b/doc/ru_RU/env.markdown new file mode 100644 index 00000000..3764e98e --- /dev/null +++ b/doc/ru_RU/env.markdown @@ -0,0 +1,21 @@ +Переменные окружения +==================== + +Переменные окружения могут пригодится когда Канборд развертывается как контейнер (Docker). + + +| Переменная | Описание | +|---------|------------------------------------------------------------------| +| DATABASE\_URL | `[database type]://[username]:[password]@[host]:[port]/[database name]`, например: `postgres://foo:foo@myserver:5432/kanboard` | +| DEBUG | Включение/выключение режима отладки: “true” или “false” | +| LOG\_DRIVER | Logging driver: stdout, stderr, file or syslog | + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/ext-search.markdown b/doc/ru_RU/ext-search.markdown new file mode 100644 index 00000000..1d6e7fe1 --- /dev/null +++ b/doc/ru_RU/ext-search.markdown @@ -0,0 +1,235 @@ +Синтаксис расширенного поиска +============================= + + +В Канборде используется простой язык запросов для расширенного поиска. Вы можете искать задачи, комментарии, подзадачи, ссылки, но только активные. + + +Пример запроса[¶](#example-of-query "Ссылка на этот заголовок") +--------------------------------------------------------------- + + + +В этом примере показываются как отобразить задачи назначенные мне с датой окончания завтра и название содержит “my title”: + + + + assigne:me due:tomorrow my title + + + +Глобальный поиск[¶](#global-search "Ссылка на этот заголовок") +-------------------------------------------------------------- + + + +### Поиск по id задачи или названию задачи[¶](#search-by-task-id-or-title "Ссылка на этот заголовок") + +- Поиск задачи по id: `#123` +- Поиск по id задачи и названию задачи: `123` +- Поиск по названию задачи: `любые слова и цифры`, но не должны содержать атрибуты поиска + + +### Поиск по статусу[¶](#search-by-status "Ссылка на этот заголовок") + +Атрибут: **status** + +- Запрос на поиск открытых задач: `status:open` +- Запрос на поиск закрытых задач: `status:closed` + + + +### Поиск по испольнителю[¶](#search-by-assignee "Ссылка на этот заголовок") + + +Атрибут: **assignee** + +- Поиск по полному имени испольнителя: `assignee:"Петр Иванов"` +- Поиск исполнителя по имени пользователя: `assignee:pivanov` +- Отбор нескольких испольнителей: `assignee:tsemenov assignee:"Петр Иванов"` +- Поиск задач без исполнителя: `assignee:nobody` +- Поиск задач назначенных мне: `assignee:me` + + +### Поиск по создателю задач[¶](#search-by-task-creator "Ссылка на этот заголовок") + + +Атрибут: **creator** + +- Отбор задач созданных мной: `creator:me` +- Отбор задач которые создал Петр Иванов: `creator:"Петр Иванов"` +- Отбор задач созданных пользователем с id \#1: `creator:1` + + +### Поиск по исполнителю подзадач[¶](#search-by-subtask-assignee "Ссылка на этот заголовок") + +Атрибут: **subtask:assignee** + +- Например: `subtask:assignee:"Петр Иванов"` + + +### Поиск по цвету[¶](#search-by-color "Ссылка на этот заголовок") + +Атрибут: **color** + +- Отбор по цвету с id blue: `color:blue` +- Отбор по названию цвета: `color:"Deep Orange"` + + +### Отбор по “Сделать до”[¶](#search-by-the-due-date "Ссылка на этот заголовок") + + +Атрибут: **due** + +- Поиск задач со сроком испольнения до сегодня: `due:today` +- Поиск задач со сроком исполнения завтра: `due:tomorrow` +- Поиск задач со сроком исполнения вчера: `due:yesterday` +- Поиск задач с конкретной датой исполнения: `due:2016-06-29` + +Дата должна быть в формате ISO 8601: **YYYY-MM-DD**. + +Все строковые форматы поддерживаемые функцией `strtotime()` допустимы. Например, `next Thursday`, `-2 days`{.docutils .literal}, `+2 months`, `tomorrow` и т.д. + + +Операторы сравнения с датой: + +- Старше чем: **due:\>2015-06-29** +- Моложе чем: **due:\<2015-06-29** +- Старше чем или равно: **due:\>=2015-06-29** +- Моложе чем или равно: **due:\<=2015-06-29** + + +### Поиск по дате изменения[¶](#search-by-modification-date "Ссылка на этот заголовок") + +Атрибут: **modified** или **updated** + +Формат даты такой же как и у “Сделать до” + +Отфильтровать недавно измененные задачи: `modified:recently`. + +Этот запрос использует тоже значение что и в настройках Доски - “Время подсвечивания задачи”. + + +### Поиск по дате создания[¶](#search-by-creation-date "Ссылка на этот заголовок") + +Атрибут: **created** + +Работает также как и поиск по дате изменения. + + +### Поиск по описанию[¶](#search-by-description "Ссылка на этот заголовок") + +Атрибут: **description** or **desc** + +Например: `description:"здесь пишем тескт для поиска"` + + +### Поиск по внешним ссылкам[¶](#search-by-external-reference "Ссылка на этот заголовок") + +Например: нужно найти задачу, которая содержит ссылку на id или название другой задачи. + +- `ref:1234` или `reference:TICKET-1234` + + +### Поиск по категории[¶](#search-by-category "Ссылка на этот заголовок") + +Атрибут: **category** + +- Найти задачи с указанной категорией: `category:"Важные запросы"` +- Найти задачи, которые содержать указанные категории: `category:"Ошибки" category:"Изменения"` +- Найти задачи без категорий: `category:none` + + +### Поиск проектов[¶](#search-by-project "Ссылка на этот заголовок") + +Атрибут: **project** + +- Поиск задач по имени проекта: `project:"Какой-то проект"` +- Поиск задач по id проекта: `project:23` +- Поиск задач в нескольких проектах: `project:"Проект A" project:"Проект B"` + + +### Поиск в колонках[¶](#search-by-columns "Ссылка на этот заголовок") + +Атрибут: **column** + +- Поиск задач в указанной колонке: `column:"В работе"` +- Поиск задач в нескольких колонках: `column:"Невыполненные заказы" column:ready` + + +### Поиск в Дорожках[¶](#search-by-swim-lane "Ссылка на этот заголовок") + +Атрибут: **swimlane** + +- Поиск задач в указанной Дорожке: `swimlane:"Версия 42"` +- Поиск задач в базовой Дорожке: `swimlane:default` +- Поиск задач в нескольких Дорожках: `swimlane:"Версия 1.2" swimlane:"Версия 1.3"` + + +### Поиск ссылки на задачу[¶](#search-by-task-link "Ссылка на этот заголовок") + +Атрибут: **link** + +- Поиск задач содержащих ссылку: `link:"это веха задачи "` +- Поиск задач по нескольким ссылкам: `link:"веха задачи " link:"относится к"` + + +### Поиск по комментарию[¶](#search-by-comment "Ссылка на этот заголовок") + +Атрибут: **comment** + +- Найти комментарии, которые содержат указанное название: `comment:"Какое-то название"` + + +Поиск активности задач[¶](#activity-stream-search "Ссылка на этот заголовок") +----------------------------------------------------------------------------- + + + +### Поиск событий по названию задачи[¶](#search-events-by-task-title "Ссылка на этот заголовок") + + + +Атрибут: **title** или без ничего (по умолчанию) + +- Например: `title:"My task"` +- Поиск задачи по id: `#123` + + +### Поиск событий по статусу задачи[¶](#search-events-by-task-status "Ссылка на этот заголовок") + +Атрибут: **status** + + + +### Поиск событий по создателю[¶](#search-by-event-creator "Ссылка на этот заголовок") + +Атрибут: **creator** + + + +### Поиск событий по дате создания[¶](#search-by-event-creation-date "Ссылка на этот заголовок") + +Атрибут: **created** + + + +### Поиск событий по проекту[¶](#search-events-by-project "Ссылка на этот заголовок") + +Атрибут: **project** + + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/faq.markdown b/doc/ru_RU/faq.markdown new file mode 100644 index 00000000..0730f2c8 --- /dev/null +++ b/doc/ru_RU/faq.markdown @@ -0,0 +1,162 @@ +Часто задаваемые вопросы +======================== + + +Вы можете порекомендовать веб хостинг провайдера для Канборд?[¶](#can-you-recommend-a-web-hosting-provider-for-kanboard "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------------------------------- + +Работу Канборд поддерживают несколько крупных провайдеров VPS, такие как [Digital Ocean](https://www.digitalocean.com/?refcode=4b541f47aae4), [Linode](https://www.linode.com/?r=4e381ac8a61116f40c60dc7438acc719610d8b11) или [Gandi](https://www.gandi.net/). + +Для получения большей производительности, выбирайте провайдера с быстрыми дисками чтения/записи, потому что Канборд использует по умолчанию Sqlite. Избегайте провайдеров которые используют подключения NFS. + + +У меня выводится пустая страница после установки или обновления Канборд[¶](#i-get-a-blank-page-after-installing-or-upgrading-kanboard "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------------------------------------------------------------------------------- + +- Проверьте, установили ли вы всё на сервер, что было указано в требованиях +- Посмотрите ошибки в PHP и Apache логах +- Проверьте права доступа к файлам +- Если вы используете кеширование OPcode, перезапустите ваш веб сервер или php-fpm + + +У меня выводится ошибка “There is no suitable CSPRNG installed on your system”[¶](#i-have-the-error-there-is-no-suitable-csprng-installed-on-your-system "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ + +Если вы используете PHP \< 7.0, то вам нужно включить расширение openssl или доступ из приложения к `/dev/urandom`, если имеются ограничения от `open_basedir`. + + +Страница не найдена и URL выглядит криво (&)[¶](#page-not-found-and-the-url-seems-wrong-amp "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------- + +- UTL выглядит как `/?controller=auth&action=login&redirect_query=` вместо `?controller=auth&action=login&redirect_query=` +- Канборд выдает ошибку “Страница не найдена” + + +Эта ошибка исходит из настроек конфигурации вашего PHP, значение `arg_separator.output` отсутствует в базовой настройке. Есть разные пути решения этой проблемы: + +Измените значение прямо в вашем `php.ini`: + + + arg_separator.output = "&" + + +Переделайте значение с помощью `.htaccess`: + + + php_value arg_separator.output "&" + + +Иначе Канборд будет брать значение напрямую из PHP. + + + +Ошибка аутентификации в API и Apache + PHP-FPM[¶](#authentication-failure-with-the-api-and-apache-php-fpm "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------------------------------- + +По умолчанию, php-cgi под Apache не передает HTTP Basic user/pass в PHP. Чтобы это окружение заработало, добавьте эти строки в ваш файл `.htaccess`: + + + + RewriteCond %{HTTP:Authorization} ^(.+)$ + + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + + +Проблемы с eAccelerator[¶](#known-issues-with-eaccelerator "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------- + +Канборд не очень хорошо работает с [eAccelerator](http://eaccelerator.net). Проблема в том, что выдается чистая страница или падает Apache: + + + [Wed Mar 05 21:36:56 2014] [notice] child pid 22630 exit signal Segmentation fault (11) + + +Лучшее решение, чтобы избежать этой проблемы, выключить eAccelerator или прописать в конфиге какие файлы вы хотите кешировать (параметр `eaccelerator.filter`). + + + +Проект [eAccelerator выглядит мертвым и не обновляется с 2012](https://github.com/eaccelerator/eaccelerator/commits/master). Мы рекомендуем перейти на последнюю версию PHP, потому что в него включен [OPcache](http://php.net/manual/en/intro.opcache.php). + + +Почему минимальная рекомендуемая версия PHP 5.3.3?[¶](#why-the-minimum-requirement-is-php-5-3-3 "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------- + +Канборд использует функцию `password_hash()` для шифрования пароля, а эта функция доступна только для PHP \>= 5.5. + +Однако, имеется back-port для [более ранних версий PHP](https://github.com/ircmaxell/password_compat#requirements). Эта библиотека требует минимум PHP 5.3.7 для корректной работы. + +По всей видимости, патчи безопасности back-port имеются в Centos и Debian, поэтому PHP 5.3.3 подходит для работы Канборд. + +Канборд v1.0.10 и v1.0.11 требует минимум PHP 5.3.7, но эти изменения возвращены на PHP 5.3.3 в Канборде \>= v1.0.12 + + + +Как проверить работу Канборда со встроенным веб-сервером PHP?[¶](#how-to-test-kanboard-with-the-php-built-in-web-server "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------------------------------- + +Если вы не хотите устанавливать веб сервер типа Apache, то вы можете протестировать работу Канборда на [встроенном в PHP веб сервере](http://www.php.net/manual/en/features.commandline.webserver.php): + + + unzip kanboard-VERSION.zip + + cd kanboard + + php -S localhost:8000 + + open http://localhost:8000/ + + + +Как установить Канборд на Yunohost?[¶](#how-to-install-kanboard-on-yunohost "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------- + +[YunoHost](https://yunohost.org/) это серверная операционная система, цель которой предоставить хостинг для всех. + +Отсюда можно [загрузить инсталяционный пакет Kanboard для Yunohost](https://github.com/mbugeia/kanboard_ynh). + + +Где я могу найти список связанных с Канборд проектов?[¶](#where-can-i-find-a-list-of-related-projects "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------------- + +- [Kanboard API python client by @freekoder]([https://github.com/freekoder/kanboard-py](https://github.com/freekoder/kanboard-py)) + +- [Kanboard Presenter by David Eberlein](https://github.com/davideberlein/kanboard-presenter) + +- [CSV2Kanboard by @ashbike]([https://github.com/ashbike/csv2kanboard](https://github.com/ashbike/csv2kanboard)) + +- [Kanboard for Yunohost by @mbugeia]([https://github.com/mbugeia/kanboard\_ynh](https://github.com/mbugeia/kanboard_ynh)) + +- [Trello import script by @matueranet]([https://github.com/matueranet/kanboard-import-trello](https://github.com/matueranet/kanboard-import-trello)) + +- [Chrome extension by Timo](https://chrome.google.com/webstore/detail/kanboard-quickmenu/akjbeplnnihghabpgcfmfhfmifjljneh?utm_source=chrome-ntp-icon), [Source code](https://github.com/BlueTeck/kanboard_chrome_extension) + +- [Python client script by @dzudek]([https://gist.github.com/fguillot/84c70d4928eb1e0cb374](https://gist.github.com/fguillot/84c70d4928eb1e0cb374)) + +- [Shell script for SQLite to MySQL/MariaDB migration by @oliviermaridat]([https://github.com/oliviermaridat/kanboard-sqlite2mysql](https://github.com/oliviermaridat/kanboard-sqlite2mysql)) + +- [Git hooks for integration with Kanboard by Gene Pavlovsky](https://github.com/gene-pavlovsky/kanboard-git-hooks) + + + +Имеются ли руководства по Канборду на других языках?[¶](#are-there-some-tutorials-about-kanboard-in-other-languages "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------------------------------------------------------------- + +- [Серия статей про Kanboard на немецком языке](http://demaya.de/wp/2014/07/kanboard-eine-jira-alternative-im-detail-installation/) . +- [Русская документация по Канборд](http://kanboard.ru/doc/). + + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/freebsd-installation.markdown b/doc/ru_RU/freebsd-installation.markdown new file mode 100644 index 00000000..b014e354 --- /dev/null +++ b/doc/ru_RU/freebsd-installation.markdown @@ -0,0 +1,187 @@ +Инсталяция на FreeBSD 10 +======================== + + +Инсталяция из пакетов[¶](#install-from-packages "Ссылка на этот заголовок") +--------------------------------------------------------------------------- + + $ pkg update + + $ pkg upgrade + + $ pkg install apache24 mod_php56 kanboard + + + +Включите Apache в `/etc/rc.conf`{.docutils .literal}: + + + + $ echo apache24_enable="YES" >> /etc/rc.conf + + + +Установите PHP для Apache: + + + + $ echo "AddType application/x-httpd-php .php" >> /usr/local/etc/apache24/Includes/php.conf + + $ echo "DirectoryIndex index.php index.html" >> /usr/local/etc/apache24/Includes/php.conf + + + +Затем, запустите Apache: + + + + $ service apache24 start + + + +Создайте символическую ссылку на каталог Kanboard в корне Apache: + + + + cd /usr/local/www/apache24/data + + ln -s /usr/local/www/kanboard + + + +Готово. Можете перейти в <http:/>/вашвебсервер/kanboard и начинать работать! + + + +*Примечание*: Если вы хотите добавить дополнительные возможности, типа интеграции LDAP, то нужно установить соответствующий PHP модуль. Также, вам необходимо настроить соответсвующие права на каталог data. + + + +Установка из портов[¶](#installing-from-ports "Ссылка на этот заголовок") +------------------------------------------------------------------------- + + +Нужно установить 3 основных элемента: + + + +- Apache + +- mod\_php for Apache + +- Kanboard + + + +Загрузите и распакуйте порты: + + + + $ portsnap fetch + + $ portsnap extract + + + +или обновите имеющиеся: + + + + $ portsnap fetch + + $ portsnap update + + + +Дополнительную информацию о дереве портов вы можете посмотреть на [FreeBSD Handbook](https://www.freebsd.org/doc/handbook/ports-using.html). + + + +Установка Apache: + + + + $ cd /usr/ports/www/apache24 + + $ make install clean + + + +Включите Apache в `/etc/rc.conf`{.docutils .literal}: + + + + $ echo apache24_enable="YES" >> /etc/rc.conf + + + +Установите mod\_php для Apache: + + + + $ cd /usr/ports/www/mod_php5 + + $ make install clean + + + +Установите Kanboard из портов: + + + + $ cd /usr/ports/www/kanboard + + $ make install clean + + + +Установите PHP для Apache: + + + + $ echo "AddType application/x-httpd-php .php" >> /usr/local/etc/apache24/Includes/php.conf + + $ echo "DirectoryIndex index.php index.html" >> /usr/local/etc/apache24/Includes/php.conf + + + +Затем, запустите Apache: + + + + $ service apache24 start + + + +Готово. Можете перейти в <http:/>/вашвебсервер/kanboard и начинать работать! + + + +*Примечание*: Если вы хотите использовать дополнительные возможности, типа интеграции LDAP, то нужно установить PHP модуль из `lang/php5-extensions`{.docutils .literal}. + + + +Установка из архива[¶](#manual-installation "Ссылка на этот заголовок") +----------------------------------------------------------------------- + +Начина с версии 1.0.16 Kanboard имеется в портах FreeBSD, поэтому нет необходимости устанавливать вручную. + + + +Обратите внимание[¶](#please-note "Ссылка на этот заголовок") +------------------------------------------------------------- + +- Порт расположен на хостинге [bitbucket](https://bitbucket.org/if0/freebsd-kanboard/). Делайте комментарии, ответвления и предлагайте обновления! +- Некоторые возможности Канборд требуют [запуск ежедневных фоновых задач](cronjob.markdown). + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/gantt-chart-projects.markdown b/doc/ru_RU/gantt-chart-projects.markdown new file mode 100644 index 00000000..d440a85d --- /dev/null +++ b/doc/ru_RU/gantt-chart-projects.markdown @@ -0,0 +1,60 @@ +Диаграмма Ганта для всех проектов +================================= + + + +Цель диаграммы Ганта для проектов - показать прогресс проектов основанный на дате начала и дате завершения. + + + +- Диаграмма Ганта для проектов доступна из раздела **Управление проектами** + + + +- Только менеджеры проекта и администраторы имеют доступ в этот раздел + + + +- Менеджеры проекта могут видеть только те проекты, в которых они являются участниками + + + +- Приватные проекты не показывают этот график + + + +![Gantt Chart for all projects](https://kanboard.net/screenshots/documentation/gantt-chart-all-projects.png) + +Рисунок. Диаграмма Ганта для всех проектов + + + +- **Дата начала** и **дата завершения** проекта используются для рисования графика + + + +- Горизонтальные полосы (столбики) могут быть расширены (сжаты) и перемещены горизонтально с помощью мыши + + + +- Перемещение по вертикали невозможно + + + +- Полосы (столбики) проекта отображаются черным, когда проект не имеет дату начала и завершения + + + +- Информационная подсказка показывает список менеджеров и участников проекта + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/gantt-chart-tasks.markdown b/doc/ru_RU/gantt-chart-tasks.markdown new file mode 100644 index 00000000..1b8c4a2c --- /dev/null +++ b/doc/ru_RU/gantt-chart-tasks.markdown @@ -0,0 +1,66 @@ +Диаграмма Ганта для задач +========================= + + + +Цель диаграммы Ганта - показать время отведенное на задачу в заданном проекте. + + + +- Диаграмма Ганта доступна в рабочем окружении проекта + + + +- Только менеджеры проектов могут иметь доступ в этот раздел + + + +![Gantt Chart](https://kanboard.net/screenshots/documentation/gantt-chart-project.png) + +Рисунок. Диаграмма Ганта. + + + +- Дата начала и дата завершения задач используется для рисования диаграммы + + + +- Задача может быть расширена и перемещена горизонтально с помощью мыши + + + +- Перемещение по вертикали невозможно + + + +- Полоса (горизонтальный столбик) на диаграмме имеет такой же цвет как и задача + + + +- Каждая полоса отображает статус прогресса в процентах. Проценты подсчитываются с учетом позиции задачи в колонке на Доске. + + + +- Для соответсвия модели Kanban, задачи могут быть отсортированы в соответствии с позициями на доске или по дате начала + + + +- Новые задачи созданные через диаграмму Ганта будут показаны на Доске в первой колонке на первой позиции + + + +- Задачи отображаются черным цветом, если не указана дата начала или дата исполнения + + + +![Task not defined](https://kanboard.net/screenshots/documentation/gantt-chart-not-defined.png) + +Рисунок. Задача без указанных дат начала или завершения + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/genindex.markdown b/doc/ru_RU/genindex.markdown new file mode 100644 index 00000000..ceb48d17 --- /dev/null +++ b/doc/ru_RU/genindex.markdown @@ -0,0 +1,15 @@ +Алфавитный указатель +==================== + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/groups.markdown b/doc/ru_RU/groups.markdown new file mode 100644 index 00000000..5ab043d4 --- /dev/null +++ b/doc/ru_RU/groups.markdown @@ -0,0 +1,35 @@ +Управление группами +=================== + + + +В Канборде каждый пользователь может быть членом одной или нескольких групп. Группа - это что-то вроде команды или организации. + + + +Только администраторы могут создавать новую группу и добавлять туда пользователей. + + + +Настройка групп доступна через **Управление пользователями** (выпадающее меню справа вверху) -\> **Просмотр всех пользователей**. Здесь вы можете создавать новые группы и добавлять пользователей в группы. + + + +![Group Management](screenshots/groups-management.png) + +Рисунок. Управление группами. + + + +Менеджеры проектов могут предоставлять доступ группам к проектам на [странице Разрешения проекта](project-permissions.markdown). + + + +Внешние id в основном используются для предоставления доступа внешним группам. Канборд поддерживает группы из LDAP посредством [автоматической синхронизации групп из LDAP сервера](ldap-group-sync.markdown). + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/heroku.markdown b/doc/ru_RU/heroku.markdown new file mode 100644 index 00000000..6e2bd945 --- /dev/null +++ b/doc/ru_RU/heroku.markdown @@ -0,0 +1,72 @@ +Развертывание Канборд на Heroku +=============================== + +Вы можете бесплатно испытать работу Kanboard на [Heroku](https://www.heroku.com/). Вам нужно нажать кнопку **Deploy to Heroku** и следовать руководству приведенному ниже: + +[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/fguillot/kanboard) + + + +Требования[¶](#requirements "Ссылка на этот заголовок") +------------------------------------------------------- + + + +- Учетная запись на Heroku. Вы можете зарегистрироваться бесплатно. +- Установленная утилита командной строки Heroku + + + +Руководство по установке[¶](#manual-instructions "Ссылка на этот заголовок") +---------------------------------------------------------------------------- + + + # Get the last development version + + git clone https://github.com/fguillot/kanboard.git + + cd kanboard + + + + # Push the code to Heroku (You can also use SSH if git over HTTP doesn't work) + + heroku create + + git push heroku master + + + + # Start a new dyno with a Postgresql database + + heroku ps:scale web=1 + + heroku addons:add heroku-postgresql:hobby-dev + + + + # Open your browser + + heroku open + + + +Ограничения[¶](#limitations "Ссылка на этот заголовок") +------------------------------------------------------- + +- Хранилище на Heroku эфимерное. Это означает, что файлы, загружаемые через Канборд, будут отсутствовать в системе после перезагрузки. Вы можете установить плагин для хранения файлов в облаке, например [Amazon S3](https://github.com/kanboard/plugin-s3). +- Некоторые возможности Канборда требуют, чтобы вы выполняли [запуск ежедневных фоновых задач](cronjob.markdown). + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/ical.markdown b/doc/ru_RU/ical.markdown new file mode 100644 index 00000000..77b6340e --- /dev/null +++ b/doc/ru_RU/ical.markdown @@ -0,0 +1,111 @@ +Синхронизация вашего календаря +============================== + + +Канборд поддерживает iCal транслятор для проектов и пользователей. Эта возможность позволяет вам импортировать задачи из Канборд в любую программу календарь (например, Microsoft Outlook, Apple Calendar, Mozilla Thunderbird и Google Calendar). + +Подписки на календарь возможны только на **чтение**, т.е. вы не можете создавать задачи во внешнем календаре. Данные из Календаря экспортируются в стандарте iCal. + +Заметка: Только задачи в промежутке от -2 месяцев до +6 месяцев (прошедшие два месяца и предстоящие 6 месяцев) экспортируются в iCalendar транслятор. + + +Календарь проекта[¶](#project-calendars "Ссылка на этот заголовок") +------------------------------------------------------------------- + +- Каждый проект имеет свой календарь. +- Ссылка на подписку уникальна для каждого проекта. Ссылка становится активной, когда вы включаете общий доступ к вашему проекту: **Меню** -\> **Настройки** -\> **Общий доступ** +- Этот календарь показывает только задачи для выбранного проекта. + + +Календарь пользователя[¶](#user-calendars "Ссылка на этот заголовок") +--------------------------------------------------------------------- + +- Каждый пользователь имеет свой собственный календарь. +- Ссылка на подписку уникальная для каждого пользователя. Ссылка становится активной, когда вы включите общий доступ для пользователя: в правом верхнем выпадающем меню - **Мой профиль** -\> в левом меню - **Общий доступ**. +- Этот календарь показывает задачи назначенные пользователю во всех проектах. + + +Добавление Канборд календаря в календарь Apple[¶](#adding-your-kanboard-calendar-to-apple-calendar "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------------------------ + +- Откройте календарь +- Выберите **Файл** -\> **Новая подписка на календарь** +- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте + +![Add iCal subscription](https://kanboard.net/screenshots/documentation/apple-calendar-add-subscription.png) + +Рисунок. Добавление подписки на календарь. + + +- Вы можете выбрать синхронизацию календаря с iCloud, чтобы иметь доступ к календарю с любых ваших устройств +- Не забудьте указать частоту синхронизации + + +![Edit iCal subscription](https://kanboard.net/screenshots/documentation/apple-calendar-edit-subscription.png) + +Рисунок. Редактирование подписки на календарь. + + +Добавление вашего календаря из Канборд в Microsoft Outlook[¶](#adding-your-kanboard-calendar-to-microsoft-outlook "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------------------------- + +![Outlook Add Internet Calendar](https://kanboard.net/screenshots/documentation/outlook-add-subscription.png) + +Рисунок. Добавление в Outlook календаря из интернет + +- Откройте Outlook +- Выберите **Открыть календарь** -\> **Из интернета** +- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте + + +![Outlook Edit Internet Calendar](https://kanboard.net/screenshots/documentation/outlook-edit-subscription.png) + +Рисунок. Настройка интернет календаря в Outlook. + + +Добавление вашего календаря из Канборд в Mozilla Thunderbird[¶](#adding-your-kanboard-calendar-to-mozilla-thunderbird "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------------------------------------------- + + +- Установите в Thunderbird Дополнение **Lightning** +- Выберите **Файл** -\> **Новый календарь** +- В диалоговом окне, выберите **Из сети** + +![Thunderbird Step 1](https://kanboard.net/screenshots/documentation/thunderbird-new-calendar-step1.png) + +Рисунок. Создание календаря в Thunderbird, шаг 1. + + + +- Выберите формат iCalendar +- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте + +![Thunderbird Step 2](https://kanboard.net/screenshots/documentation/thunderbird-new-calendar-step2.png) + +Рисунок. Создание календаря в Thunderbird, шаг 2. + +- Выберите цвета и другие настройки и в завершении нажмите **Сохранить**. + + +Добавление вашего календаря Канборд в календарь Google[¶](#adding-your-kanboard-calendar-to-google-calendar "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------------------- + +- Нажмите иконку “треугольник” рядом с **Другие календари** (слева). +- Вставьте ссылку на календарь из Канборд в поле “Добавить календарь друга” +- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте + + +![Google Calendar](https://kanboard.net/screenshots/documentation/google-calendar-add-subscription.png) + +Рисунок. Календарь Google. + +Ваш календарь из Канборд будет доступен на планшетах и смартфонах, нужно только сделать синхронизацию. + + +[Справка по настройке календаря Google](https://support.google.com/calendar/?hl=ru#topic=3417969). + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/index.markdown b/doc/ru_RU/index.markdown new file mode 100644 index 00000000..c4a12d52 --- /dev/null +++ b/doc/ru_RU/index.markdown @@ -0,0 +1,248 @@ +Документация +============ + + +Как работать в Kanboard[¶](#using-kanboard "Ссылка на этот заголовок") +---------------------------------------------------------------------- + + +### Введение[¶](#introduction "Ссылка на этот заголовок") + + +- [Что такое Kanban?](what-is-kanban.markdown) + +- [Kanban против Todo списков и Scrum](kanban-vs-todo-and-scrum.markdown) + +- [Где можно использовать Kanboard](usage-examples.markdown) + + +### Использование доски[¶](#using-the-board "Ссылка на этот заголовок") + + +- [Доска, Календарь, Список и Гант представления](project-views.markdown) + +- [Компактное или развернутое отображение задач](board-collapsed-expanded.markdown) + +- [Горизонтальная прокрутка и компактный вид](board-horizontal-scrolling-and-compact-view.markdown) + +- [Отображение и скрытие колонок](board-show-hide-columns.markdown) + + +### Работа с проектами[¶](#working-with-projects "Ссылка на этот заголовок") + +- [Типы проектов](project-types.markdown) + +- [Создание проектов](creating-projects.markdown) + +- [Редактирование проектов](editing-projects.markdown) + +- [Публичные доски и задачи](sharing-projects.markdown) + +- [Автоматизация процессов](automatic-actions.markdown) + +- [Права доступа к проекту](project-permissions.markdown) + +- [Дорожки](swimlanes.markdown) + +- [Календарь](calendar.markdown) + +- [Аналитика](analytics.markdown) + +- [Диаграмма Ганта для задач](gantt-chart-tasks.markdown) + +- [Диаграмма Ганта для проектов](gantt-chart-projects.markdown) + +- [Пользовательские фильтры](custom-filters.markdown) + + + +### Работа с задачами[¶](#working-with-tasks "Ссылка на этот заголовок") + +- [Создание задач](creating-tasks.markdown) + +- [Закрытие задач](closing-tasks.markdown) + +- [Дублирование и перенос задач](duplicate-move-tasks.markdown) + +- [Добавление снимка экрана](screenshots.markdown) + +- [Ссылки на задачу](task-links.markdown) + +- [Перемещения](transitions.markdown) + +- [Отслеживание времени](time-tracking.markdown) + +- [Повторяющиеся задачи](recurring-tasks.markdown) + +- [Создание задач через email](create-tasks-by-email.markdown) + +- [Подзадачи](subtasks.markdown) + +- [Аналитика для задач](analytics-tasks.markdown) + +- [Ссылка на пользователя](user-mentions.markdown) + + + +### Работа с пользователями и группами[¶](#working-with-users-and-groups "Ссылка на этот заголовок") + +- [Роли](roles.markdown) + +- [Типы пользователей](user-types.markdown) + +- [Управление группами](groups.markdown) + +- [Управление пользователями](user-management.markdown) + +- [Уведомления](notifications.markdown) + +- [Двухуровневая аутентификация](2fa.markdown) + + + +### Настройки[¶](#settings "Ссылка на этот заголовок") + +- [Горячие клавиши](keyboard-shortcuts.markdown) + +- [Настройки приложения](application-configuration.markdown) + +- [Настройки проекта](project-configuration.markdown) + +- [Настройка Доски](board-configuration.markdown) + +- [Настройки календаря](calendar-configuration.markdown) + +- [Настройка ссылок](link-labels.markdown) + +- [Курсы валют](currency-rate.markdown) + + +### Встроенные возможности[¶](#integrations "Ссылка на этот заголовок") + +- [iCalendar подписки](ical.markdown) + +- [RSS/Atom подписки](rss.markdown) + +- [Json-RPC API](api-json-rpc.markdown) + +- [Webhooks](webhooks.markdown) + +- [Плагины](plugins.markdown) + + +### Дополнительно[¶](#more "Ссылка на этот заголовок") + +- [Синтаксис расширенного поиска](ext-search.markdown) + +- [Интерфейс командной строки](cli.markdown) + +- [Руководство по синтаксису](syntax-guide.markdown) + +- [Защита от Brute force](bruteforce-protection.markdown) + +- [Часто задаваемые вопросы](faq.markdown) + + + +Технические детали[¶](#technical-details "Ссылка на этот заголовок") +-------------------------------------------------------------------- + + +### Инсталяция[¶](#installation "Ссылка на этот заголовок") + +- [Требования](requirements.markdown) + +- [Инструкция по инсталяции](installation.markdown) + +- [Обновление Kanboard до новой версии](update.markdown) + +- [Инсталяция на Ubuntu](ubuntu-installation.markdown) + +- [Инсталяция на Debian](debian-installation.markdown) + +- [Инсталяция на Centos](centos-installation.markdown) + +- [Инсталяция на OpenSuse](suse-installation.markdown) + +- [Инсталяция на FreeBSD](freebsd-installation.markdown) + +- [Инсталяция на Windows Server и IIS](windows-iis-installation.markdown) + +- [Инсталяция на Windows Server и Apache](windows-apache-installation.markdown) + +- [Инсталяция на Heroku](heroku.markdown) + +- [Запуск Kanboard под Docker](docker.markdown) + +- [Запуск Kanboard под Vagrant](vagrant.markdown) + +- [Запуск Kanboard на Cloudron](cloudron.markdown) + +- [Запуск Kanboard на Nitrous](nitrous.markdown) + + +### Настройка[¶](#configuration "Ссылка на этот заголовок") + +- [Ежедневные фоновые задачи](cronjob.markdown) + +- [Конфигурационный файл](config.markdown) + +- [Переменные окружения](env.markdown) + +- [Настройка email](email-configuration.markdown) + +- [Переопределение URL](nice-urls.markdown) + +- [Директория плагинов](plugin-directory.markdown) + + + +### База данных[¶](#database "Ссылка на этот заголовок") + +- [База данных Sqlite](sqlite-database.markdown) + +- [Как использовать Mysql](mysql-configuration.markdown) + +- [Как использовать Postgresql](postgresql-configuration.markdown) + + +### Аутентификация[¶](#authentication "Ссылка на этот заголовок") + +- [LDAP аутентификация](ldap-authentication.markdown) + +- [Синхронизация групп LDAP](ldap-group-sync.markdown) + +- [Изображения из профиля LDAP](ldap-profile-picture.markdown) + +- [Параметры LDAP](ldap-parameters.markdown) + +- [Пример конфигурации LDAP](ldap-configuration-examples.markdown) + +- [Аутентификация Reverse proxy](reverse-proxy-authentication.markdown) + + +### Участие в проекте[¶](#contributors "Ссылка на этот заголовок") + +- [Руководство для участников проекта](contributing.markdown) + +- [Переводы на другие языки](translations.markdown) + +- [Стандарты при написании кода](coding-standards.markdown) + +- [Выполнение тестов](tests.markdown) + +- [Создание assets](assets.markdown) + + +[Документация](https://github.com/fguillot/kanboard/tree/master/doc) написана в формате [Markdown](https://ru.wikipedia.org/wiki/Markdown). Если вы желаете улучшить документацию - пошлите pull-request. + + + +* [Проект перевода документации Канборд на русский язык](https://github.com/hairetdin/kanboard-doc-ru). [Русская документация Канборд в формате html](http://kanboard.ru/doc/). + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/installation.markdown b/doc/ru_RU/installation.markdown new file mode 100644 index 00000000..e59e43d2 --- /dev/null +++ b/doc/ru_RU/installation.markdown @@ -0,0 +1,117 @@ +Инсталяция +========== + + + +В первую очередь, ознакомтесь с [требованиями](requirements.markdown). + + + +Инсталяция из архива (стабильная версия)[¶](#from-the-archive-stable-version "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------- + + + +1. У вас должен быть установлен веб сервер с PHP + +2. Скачайте исходный код и скопируйте директорию `kanboard` в каталог веб сервера + +3. Проверьте, чтобы директория `data` была доступна на запись + +4. В вашем браузере перейдите по ссылке <http:/>/вашвебсервер/kanboard + +5. Логин и пароль по умолчанию - **admin/admin** + +6. Все, теперь вы можете работать в Канборд + +7. Не забудьте сменить пароль! + + + +Место хранения данных: + + +- База данных Sqlite: `db.sqlite` + +- Файл отладки: `debug.log` (если включена отладка) + +- Загруженные файлы: `files/*` + +- Изображения: `files/thumbnails/*` + + + +Те, кто использует удаленную базу данных (Mysql/Postgresql) и удаленное файловое хранилище (Aws S3 или подобное), могут не назначать права доступа к локальным данным. + + +Инсталяция из репозитория (разрабатываемая версия)[¶](#from-the-repository-development-version "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------------------------- + + + +Вы можете установить [composer](https://getcomposer.org/) для этого метода инсталяции. + + +1. `git clone https://github.com/fguillot/kanboard.git` + +2. `composer install --no-dev` + +3. Далее, перейдите к третьему шагу [Инсталяция из архива](installation.html#from-the-archive-stable-version) + + + +**Внимание**: Инсталируя **текущую разрабатываемую версию**, вы должны понимать, что это нестабильная версия и берете все риски по работе Канборд на себя. + + + +Инсталяция в другой каталог[¶](#installation-outside-of-the-document-root "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------------------- + + + +Если вы хотите инсталировать Канборд в другую директорию, вне корневого каталога веб сервера, вам нужно создать, как минимум, следующие символьные ссылки: + + . + + ├── assets -> ../kanboard/assets + ├── doc -> ../kanboard/doc + ├── favicon.ico -> ../kanboard/favicon.ico + ├── index.php -> ../kanboard/index.php + ├── jsonrpc.php -> ../kanboard/jsonrpc.php + └── robots.txt -> ../kanboard/robots.txt + + + +`.htaccess` необязательно, потому что его содержимое может быть включена прямо в конфигурацию Apache. + + +Вы можете указать текущее месторасположение директорий плагинов и файлов изменив [конфигурационный файл](config.markdown). + + + +Безопасность[¶](#security "Ссылка на этот заголовок") +----------------------------------------------------- + +- Не забудьте изменить логин и пароль пользователя admin, назначенный по умолчанию + +- Не предоставляйте всем права на директорию `data` через URL. + + + +Примечание[¶](#notes "Ссылка на этот заголовок") +------------------------------------------------ + + +- Некоторые возможности Канборда требуют, чтобы [ежедневно выполнялись фоновые задачи](cronjob.markdown). + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/kanban-vs-todo-and-scrum.markdown b/doc/ru_RU/kanban-vs-todo-and-scrum.markdown new file mode 100644 index 00000000..7c1b205b --- /dev/null +++ b/doc/ru_RU/kanban-vs-todo-and-scrum.markdown @@ -0,0 +1,75 @@ +Сравнение Kanban, Todo lists и Scrum +==================================== + + +Сравнение Kanban и Todo lists[¶](#kanban-vs-todo-lists "Ссылка на этот заголовок") +---------------------------------------------------------------------------------- + + +### Todo lists (списки для исполнения):[¶](#todo-lists "Ссылка на этот заголовок") + +- Имеют одну фазу (только список пунктов) + +- Возможна многозадачность (не эффективна) + + + +### Kanban:[¶](#kanban "Ссылка на этот заголовок") + + + +- Имеет много фаз, каждая колонка представлена как шаг процесса + +- Концентрация внимания и исключение многозадачности, потому что вы можете установить этап процесса заданной колонкой + + + +Сравнение Kanban и Scrum[¶](#kanban-vs-scrum "Ссылка на этот заголовок") +------------------------------------------------------------------------ + + +### [Scrum:](https://ru.wikipedia.org/wiki/Scrum)[¶](#scrum "Ссылка на этот заголовок") + + +- Спринты жестко фиксированные временем, обычно 2 или 4 недели + +- Не позволяет вносить изменения в течении итерации + +- Обязательна предварительная оценка + +- Используется скорость как единица измерения по умолчанию + +- Доска Scrum очищается между спринтами + +- Scrum имеет преопределенные роли, такие как, мастер, владелец продукта и команда + +- Множество встреч: планирование, беклог груминг (причесывание), ежедневные совещания, ретроспектива + + + +### Kanban:[¶](#id1 "Ссылка на этот заголовок") + +- Непрерывный поток + +- Гибкость - изменения могут быть сделаны в любое время + +- Предварительная оценка опциональна + +- Используется время выполнения (lead time) и время цикла (cycle time) для измерения производительности + +- Доска Kanboar постоянна + +- Kanban не навязывает строгих ограничений или встреч, процессы более гибкие + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/keyboard-shortcuts.markdown b/doc/ru_RU/keyboard-shortcuts.markdown new file mode 100644 index 00000000..a09c92bc --- /dev/null +++ b/doc/ru_RU/keyboard-shortcuts.markdown @@ -0,0 +1,99 @@ +Горячие клавиши +=============== + + +Горячие клавиши доступны в зависимости от страницы на которой вы находитесь. + + + +В проекте (Доска, Календарь, Список, Гант)[¶](#project-views-board-calendar-list-gantt "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------------ + +- Переключиться на Обзор проектов = **v o** (переключите клавиатуру в английскую раскладку и нажмите клавиши **v** и **o** ) + + + +- Переключиться на Доску = **v b** + + + +- Переключиться на Календарь = **v c** + + + +- Переключиться на список = **v l** + + + +- Переключиться на диаграмму Ганта = **v g** + + + +На Доске[¶](#board-view "Ссылка на этот заголовок") +--------------------------------------------------- + +- Новая задача = **n** + + + +- Свернуть/развернуть задачи = **s** + + + +- Компактный/широкий вид = **c** + + + +В Задаче[¶](#task-view "Ссылка на этот заголовок") +-------------------------------------------------- + +- Редактировать задачу = **e** + + + +- Новая подзадача = **s** + + + +- Новый комментарий = **c** + + + +- Новая внутренняя ссылка = **l** + + + +В приложении (главное окно Канборд)[¶](#application "Ссылка на этот заголовок") +------------------------------------------------------------------------------- + + +- Показать список горячих клавиш = **?** + + + +- Открыть переключатель проектов = **b** + + + +- Переход в окно поиска = **f** + + + +- Очистить окно поиска = **r** + + + +- Закрыть окно диалога = **ESC** + + + +- Расширенный поиск = **CTRL+ENTER** or **⌘+ENTER** + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/ldap-authentication.markdown b/doc/ru_RU/ldap-authentication.markdown new file mode 100644 index 00000000..a94d8f89 --- /dev/null +++ b/doc/ru_RU/ldap-authentication.markdown @@ -0,0 +1,327 @@ +Аутентификация LDAP +=================== + + +Требования[¶](#requirements "Ссылка на этот заголовок") +------------------------------------------------------- + + + +- Включенное в PHP раширение LDAP + + + +- Сервер LDAP: + + + + - OpenLDAP + + - Microsoft Active Directory + + - Novell eDirectory + + + +Рабочий процесс[¶](#workflow "Ссылка на этот заголовок") +-------------------------------------------------------- + + + +Когда активирована аутентификация LDAP, процесс входа выглядит следующим образом: + + + +1. Выполняется попытка аутентификации пользователя в базе данных Канборда + +2. Если пользователь не найден в базе Канборда, выполняется аутентификация LDAP + +3. Если аутентификация LDAP выполнена успешно, по умолчанию, локальный пользователь (в Канборде) создается автоматически без пароля и помечается как пользователь LDAP. + + + +Полное имя и email адрес автоматически подгружаются из сервера LDAP. + + + +Типы аутентификации[¶](#authentication-types "Ссылка на этот заголовок") +------------------------------------------------------------------------ + + +| Тип | Описание | +|--------------|-------------------------------------------------------------| +| Proxy User | Использовать специального пользователя для просмотра директории LDAP | +| User | Использовать учетные данные конечного пользователя для просмотра директории LDAP | +| Anonymous | Не надо выполнять аутентификацию для доступа к каталогу LDAP | + + +**Рекомендуемый метод аутентификации - “Proxy”**. + + + +### Анонимный (Anonymous) метод[¶](#anonymous-mode "Ссылка на этот заголовок") + + + + define('LDAP_BIND_TYPE', 'anonymous'); + + define('LDAP_USERNAME', null); + + define('LDAP_PASSWORD', null); + + + +Этот метод используется по умолчанию, но некоторые сервера LDAP не поддерживают доступ анонимам, из соображений безопасности. + + + +### Proxy метод[¶](#proxy-mode "Ссылка на этот заголовок") + + + +Специальный пользователь используется для доступа к директории LDAP: + + + + define('LDAP_BIND_TYPE', 'proxy'); + + define('LDAP_USERNAME', 'my proxy user'); + + define('LDAP_PASSWORD', 'my proxy password'); + + + +### Пользовательский метод (user)[¶](#user-mode "Ссылка на этот заголовок") + + + +Этот метод используется для доступа под учетной записью конечного пользователя. + + + +Например, Microsoft Active Directory не разрешает подключение под анонимным пользователем и если вы не хотите использовать пользователя proxy, то используйте этот метод. + + + + define('LDAP_BIND_TYPE', 'user'); + + define('LDAP_USERNAME', '%s@kanboard.local'); + + define('LDAP_PASSWORD', null); + + + +В этом методе, константа `LDAP_USERNAME` использутся как шаблон для пользователя ldap, например: + + + +- `%s@kanboard.local` будет заменен `my_user@kanboard.local` + + + +- `KANBOARD\\%s` будет заменен на `KANBOARD\my_user` + + + +Фильтр пользователей LDAP[¶](#user-ldap-filter "Ссылка на этот заголовок") +-------------------------------------------------------------------------- + + +Параметр конфигурации `LDAP_USER_FILTER` используется для поиска пользователей по директории LDAP. + + + +Например: + + + +- `(&(objectClass=user)(sAMAccountName=%s))` будет заменено на `(&(objectClass=user)(sAMAccountName=указанный_пользователь))` + + +- `uid=%s` is replaced by `uid=указанный_пользователь` + + + +Другие примеры [фильтров для Active Directory](http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx) + + + +Пример фильра доступа в Канборд: + + + +`(&(objectClass=user)(sAMAccountName=%s)(memberOf=CN=Kanboard Users,CN=Users,DC=kanboard,DC=local))` + + + +Этот пример разрешает подключатся к Канборду только пользователям участникам группы “Kanboard Users” + + + +Пример для Microsoft Active Directory[¶](#example-for-microsoft-active-directory "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------ + + + +Предположим, что мы имеем домен `KANBOARD` (kanboard.local) и контролер домена `myserver.kanboard.local`. + + + +Первый пример для метода прокси (proxy): + + + + <?php + + + + // Enable LDAP authentication (false by default) + + define('LDAP_AUTH', true); + + + + define('LDAP_BIND_TYPE', 'proxy'); + + define('LDAP_USERNAME', 'administrator@kanboard.local'); + + define('LDAP_PASSWORD', 'my super secret password'); + + + + // LDAP server hostname + + define('LDAP_SERVER', 'myserver.kanboard.local'); + + + + // LDAP properties + + define('LDAP_USER_BASE_DN', 'CN=Users,DC=kanboard,DC=local'); + + define('LDAP_USER_FILTER', '(&(objectClass=user)(sAMAccountName=%s))'); + + + +Второй пример с пользовательским методом (user): + + + + <?php + + + + // Enable LDAP authentication (false by default) + + define('LDAP_AUTH', true); + + + + define('LDAP_BIND_TYPE', 'user'); + + define('LDAP_USERNAME', '%s@kanboard.local'); + + define('LDAP_PASSWORD', null); + + + + // LDAP server hostname + + define('LDAP_SERVER', 'myserver.kanboard.local'); + + + + // LDAP properties + + define('LDAP_USER_BASE_DN', 'CN=Users,DC=kanboard,DC=local'); + + define('LDAP_USER_FILTER', '(&(objectClass=user)(sAMAccountName=%s))'); + + + +Пример для OpenLDAP[¶](#example-for-openldap "Ссылка на этот заголовок") +------------------------------------------------------------------------ + + + +Наш сервер LDAP - `myserver.example.com` и все пользователи хранятся в `ou=People,dc=example,dc=com`. + + + +Для этого примера мы использовали анонимное подключение. + + + + <?php + + + + // Enable LDAP authentication (false by default) + + define('LDAP_AUTH', true); + + + + // LDAP server hostname + + define('LDAP_SERVER', 'myserver.example.com'); + + + + // LDAP properties + + define('LDAP_USER_BASE_DN', 'ou=People,dc=example,dc=com'); + + define('LDAP_USER_FILTER', 'uid=%s'); + + + +Выключение автоматического создания учетных записей[¶](#disable-automatic-account-creation "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------------------------------------- + + + +По умолчанию, Канборд автоматически создает учетную запись пользователя, если такой пользователь не найден. + + + +Вы можете выключить это поведение, если вы предпочитаете создавать учетные записи вручную. + + + +Для этого установите значение `LDAP_ACCOUNT_CREATION` в `false`: + + + + // Automatically create user account + + define('LDAP_ACCOUNT_CREATION', false); + + + +Устранение неисправностей[¶](#troubleshooting "Ссылка на этот заголовок") +------------------------------------------------------------------------- + +Если включен SELinux, вы должны разрешить Apache доступ к вашему серверу LDAP. + + + +- Вы должны переключить SELinux в разрешающий режим (permissive mode) или совсем выключить (не рекомендуется) + +- Вы должны разрешить все сетевые подключения, например `setsebool -P httpd_can_network_connect=1` или назначить более ограничивающие правила + + + +В любом случае, ознакомтесь с официальной документацией Redhat/Centos. + + + +Если вам не удается настроить аутентификацию LDAP, то вы можете [включить режим отладки](config.markdown) и посмотреть файлы событий. + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/ldap-configuration-examples.markdown b/doc/ru_RU/ldap-configuration-examples.markdown new file mode 100644 index 00000000..32b8a29d --- /dev/null +++ b/doc/ru_RU/ldap-configuration-examples.markdown @@ -0,0 +1,438 @@ +Пример конфигурации LDAP +======================== + + +Microsoft Active Directory[¶](#microsoft-active-directory "Ссылка на этот заголовок") +------------------------------------------------------------------------------------- + +- Аутентификация пользователя + + + +- Загрузка пользовательского профиля из Active Directory + + + +- Установка языка пользователя из атрибутов LDAP + + + +- Роли в Канборд сопоставляются с группами в Active Directory + + + +- Поставщики групп LDAP включены + + + +<!-- --> + + + + define('LDAP_AUTH', true); + + + + define('LDAP_SERVER', 'my-ldap-server'); + + define('LDAP_PORT', 389); + + + + define('LDAP_BIND_TYPE', 'proxy'); + + define('LDAP_USERNAME', 'administrator@kanboard.local'); + + define('LDAP_PASSWORD', 'secret'); + + + + define('LDAP_USER_BASE_DN', 'CN=Users,DC=kanboard,DC=local'); + + define('LDAP_USER_FILTER', '(&(objectClass=user)(sAMAccountName=%s))'); + + + + define('LDAP_USER_ATTRIBUTE_USERNAME', 'samaccountname'); + + define('LDAP_USER_ATTRIBUTE_FULLNAME', 'displayname'); + + define('LDAP_USER_ATTRIBUTE_PHOTO', 'jpegPhoto'); + + define('LDAP_USER_ATTRIBUTE_LANGUAGE', 'preferredLanguage'); + + + + define('LDAP_GROUP_ADMIN_DN', 'CN=Kanboard Admins,CN=Users,DC=kanboard,DC=local'); + + define('LDAP_GROUP_MANAGER_DN', 'CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local'); + + + + define('LDAP_GROUP_PROVIDER', true); + + define('LDAP_GROUP_BASE_DN', 'CN=Users,DC=kanboard,DC=local'); + + define('LDAP_GROUP_FILTER', '(&(objectClass=group)(sAMAccountName=%s*))'); + + define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn'); + + + +OpenLDAP с memberOf overlay[¶](#openldap-with-memberof-overlay "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------ + +Пример LDIF пользователя: + + + dn: uid=manager,ou=Users,dc=kanboard,dc=local + + objectClass: top + + objectClass: person + + objectClass: organizationalPerson + + objectClass: inetOrgPerson + + uid: manager + + sn: Lastname + + givenName: Firstname + + cn: Kanboard Manager + + displayName: Kanboard Manager + + mail: manager@kanboard.local + + userPassword: password + + memberOf: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local + + + +Пример LDIF группы: + + + + dn: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local + + objectClass: top + + objectClass: groupOfNames + + cn: Kanboard Managers + + member: uid=manager,ou=Users,dc=kanboard,dc=local + + + +Конфигурация Канборд: + + +- Аутентификация пользователя + + + +- Роли в Канборд сопоставляются с группами LDAP + + + +- Поставщики групп LDAP включены + + + +<!-- --> + + + + define('LDAP_AUTH', true); + + + + define('LDAP_SERVER', 'my-ldap-server'); + + define('LDAP_PORT', 389); + + + + define('LDAP_BIND_TYPE', 'proxy'); + + define('LDAP_USERNAME', 'cn=admin,DC=kanboard,DC=local'); + + define('LDAP_PASSWORD', 'password'); + + + + define('LDAP_USER_BASE_DN', 'OU=Users,DC=kanboard,DC=local'); + + define('LDAP_USER_FILTER', 'uid=%s'); + + + + define('LDAP_GROUP_ADMIN_DN', 'cn=Kanboard Admins,ou=Groups,dc=kanboard,dc=local'); + + define('LDAP_GROUP_MANAGER_DN', 'cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local'); + + + + define('LDAP_GROUP_PROVIDER', true); + + define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local'); + + define('LDAP_GROUP_FILTER', '(&(objectClass=groupOfNames)(cn=%s*))'); + + define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn'); + + + +OpenLDAP с Posix groups (memberUid)[¶](#openldap-with-posix-groups-memberuid "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------- + + +Пример LDIF пользователя: + + + + dn: uid=manager,ou=Users,dc=kanboard,dc=local + + objectClass: inetOrgPerson + + objectClass: posixAccount + + objectClass: shadowAccount + + uid: manager + + sn: Lastname + + givenName: Firstname + + cn: Kanboard Manager + + displayName: Kanboard Manager + + uidNumber: 10001 + + gidNumber: 8000 + + userPassword: password + + homeDirectory: /home/manager + + mail: manager@kanboard.local + + + +Пример LDIF группы: + + + + dn: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local + + objectClass: posixGroup + + cn: Kanboard Managers + + gidNumber: 5001 + + memberUid: manager + + + +Конфигурация Канборд: + + + +- Аутентификация пользователя + + + +- Роли в Канборд сопоставляются с группами LDAP + + + +- Поставщики групп LDAP включены + + + +<!-- --> + + + + define('LDAP_AUTH', true); + + + + define('LDAP_SERVER', 'my-ldap-server'); + + define('LDAP_PORT', 389); + + + + define('LDAP_BIND_TYPE', 'proxy'); + + define('LDAP_USERNAME', 'cn=admin,DC=kanboard,DC=local'); + + define('LDAP_PASSWORD', 'password'); + + + + define('LDAP_USER_BASE_DN', 'OU=Users,DC=kanboard,DC=local'); + + define('LDAP_USER_FILTER', 'uid=%s'); + + + + define('LDAP_GROUP_ADMIN_DN', 'cn=Kanboard Admins,ou=Groups,dc=kanboard,dc=local'); + + define('LDAP_GROUP_MANAGER_DN', 'cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local'); + + + + // This filter is used to find the groups of our user + + define('LDAP_GROUP_USER_FILTER', '(&(objectClass=posixGroup)(memberUid=%s))'); + + + + define('LDAP_GROUP_PROVIDER', true); + + define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local'); + + define('LDAP_GROUP_FILTER', '(&(objectClass=posixGroup)(cn=%s*))'); + + define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn'); + + + +OpenLDAP с groupOfNames[¶](#openldap-with-groupofnames "Ссылка на этот заголовок") +---------------------------------------------------------------------------------- + + +Пример LDIF пользователя: + + + + dn: uid=manager,ou=Users,dc=kanboard,dc=local + + objectClass: top + + objectClass: person + + objectClass: organizationalPerson + + objectClass: inetOrgPerson + + uid: manager + + sn: Lastname + + givenName: Firstname + + cn: Kanboard Manager + + displayName: Kanboard Manager + + mail: manager@kanboard.local + + userPassword: password + + + +Пример LDIF группы: + + + + dn: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local + + objectClass: top + + objectClass: groupOfNames + + cn: Kanboard Managers + + member: uid=manager,ou=Users,dc=kanboard,dc=local + + + +Конфигурация Канборд: + + + +- Аутентификация пользователя + + + +- Роли в Канборд сопоставляются с группами LDAP + + + +- Поставщики групп LDAP включены + + + +<!-- --> + + + + define('LDAP_AUTH', true); + + + + define('LDAP_SERVER', 'my-ldap-server'); + + define('LDAP_PORT', 389); + + + + define('LDAP_BIND_TYPE', 'proxy'); + + define('LDAP_USERNAME', 'cn=admin,DC=kanboard,DC=local'); + + define('LDAP_PASSWORD', 'password'); + + + + define('LDAP_USER_BASE_DN', 'OU=Users,DC=kanboard,DC=local'); + + define('LDAP_USER_FILTER', 'uid=%s'); + + + + define('LDAP_GROUP_ADMIN_DN', 'cn=Kanboard Admins,ou=Groups,dc=kanboard,dc=local'); + + define('LDAP_GROUP_MANAGER_DN', 'cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local'); + + + + // This filter is used to find the groups of our user + + define('LDAP_GROUP_USER_FILTER', '(&(objectClass=groupOfNames)(member=uid=%s,ou=Users,dc=kanboard,dc=local))'); + + + + define('LDAP_GROUP_PROVIDER', true); + + define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local'); + + define('LDAP_GROUP_FILTER', '(&(objectClass=groupOfNames)(cn=%s*))'); + + define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn'); + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/ldap-group-sync.markdown b/doc/ru_RU/ldap-group-sync.markdown new file mode 100644 index 00000000..87d9d1cc --- /dev/null +++ b/doc/ru_RU/ldap-group-sync.markdown @@ -0,0 +1,153 @@ +Синхронизация групп LDAP +======================== + + + +Требования[¶](#requirements "Ссылка на этот заголовок") +------------------------------------------------------- + + + +- Правильно настроенную аутентификацию LDAP + + + +- Используется сервер LDAP, который поддерживает `memberOf` или `memberUid` (PosixGroups) + + + +Автоматическое определение ролей пользователей на основании LDAP групп[¶](#define-automatically-user-roles-based-on-ldap-groups "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------------------------------------------------------------------------- + + + +Используйте следующие константы в вашем конфигурационном файле: + + + +- `LDAP_GROUP_ADMIN_DN`: Уникальные имена (Distinguished Names) для администраторов приложения + + + +- `LDAP_GROUP_MANAGER_DN`: Уникальные имена (Distinguished Names) для менеджеров приложения + + + +### Пример для Active Directory:[¶](#example-for-active-directory "Ссылка на этот заголовок") + + + + define('LDAP_GROUP_ADMIN_DN', 'CN=Kanboard Admins,CN=Users,DC=kanboard,DC=local'); + + define('LDAP_GROUP_MANAGER_DN', 'CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local'); + + + +- Участники группы “Kanboard Admins” будут иметь роль “Администратор” + + + +- Участники группы “Kanboard Managers” будут иметь роль “Менеджер” + + + +- Все, кто не попадает под предыдущие определения, будут иметь роль “Пользователь” + + + +### Пример OpenLDAP с Posix Groups:[¶](#example-for-openldap-with-posix-groups "Ссылка на этот заголовок") + + + + define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local'); + + define('LDAP_GROUP_USER_FILTER', '(&(objectClass=posixGroup)(memberUid=%s))'); + + define('LDAP_GROUP_ADMIN_DN', 'cn=Kanboard Admins,ou=Groups,dc=kanboard,dc=local'); + + define('LDAP_GROUP_MANAGER_DN', 'cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local'); + + + +Вы **должны определить параметр** `LDAP_GROUP_USER_FILTER`, если ваше сервер LDAP использует `memberUid` вместо `memberOf`. Все параметры в этом примере обязательные. + + + +Автоматическая загрузка групп LDAP для Канборд проекта[¶](#automatically-load-ldap-groups-for-project-permissions "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------------------------- + + + +Эта возможность позволяет вам синхронизировать автоматически группы LDAP с группами Канборд. Каждая группа может иметь разные роли в проектах. + + + +В проекте на странице *Разрешения*, можно ввести имя группы (имеется автодополнение) и Канборд будет искать группу во всех подключенных поставщиках. + + + +Если группа не найдена в локальной базе данных, то она будет автоматически синхронизированна. + + + +- `LDAP_GROUP_PROVIDER`: Включение поставщика группы LDAP + + + +- `LDAP_GROUP_BASE_DN`: Уникальное имя (Distinguished Names) для поиска группы в LDAP директории + + + +- `LDAP_GROUP_FILTER`: фильтр LDAP используемый для выполнения запроса + + + +- `LDAP_GROUP_ATTRIBUTE_NAME`: атрибут LDAP используемый для получения имени группы + + + +### Пример для Active Directory:[¶](#id1 "Ссылка на этот заголовок") + + + + define('LDAP_GROUP_PROVIDER', true); + + define('LDAP_GROUP_BASE_DN', 'CN=Groups,DC=kanboard,DC=local'); + + define('LDAP_GROUP_FILTER', '(&(objectClass=group)(sAMAccountName=%s*))'); + + + +С помощью фильтра, в примере выше, Канборд будет искать группы соответсвующие запросу. Если пользователь введет текст “Мои группы” в автозаполняемое поле, Канборд вернет все группы которые соответсвуют шаблону: `(&(objectClass=group)(sAMAccountName=Мои группы*))`. + + + +- Примечание 1: Спец символ `*` очень важен, в противном случает **будет выбрано только точное совпадение** + + + +- Примечание 2: Эта функция возможна только с аутентификацией LDAP настроенной на метод “proxy” или “anonymous” + + + +[Больше примеров фильтров LDAP для Active Directory](http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx) + + + +### Пример OpenLDAP с Posix Groups:[¶](#id2 "Ссылка на этот заголовок") + + + + define('LDAP_GROUP_PROVIDER', true); + + define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local'); + + define('LDAP_GROUP_FILTER', '(&(objectClass=posixGroup)(cn=%s*))'); + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/ldap-parameters.markdown b/doc/ru_RU/ldap-parameters.markdown new file mode 100644 index 00000000..5d00913d --- /dev/null +++ b/doc/ru_RU/ldap-parameters.markdown @@ -0,0 +1,49 @@ +Параметры LDAP для конфигурации +=============================== + + + +Список доступных параметров LDAP: + + +| Параметр | Значение по умолчанию |Описание | +|---------------------------|------------------------------|-----------------------------| +| `LDAP_AUTH` | false | Включить аутентификацию LDAP | +| `LDAP_SERVER` | Нет значения | Имя сервера LDAP | +| `LDAP_PORT` | 389 | Порт сервера LDAP | +| `LDAP_SSL_VERIFY` | true | Проверка сертификата для URL `ldaps://` | +| `LDAP_START_TLS` | false | Включение LDAP start TLS | +| `LDAP_USERNAME_CASE_SENSITIVE` | false | Включение/выключение нижнего и верхнего регистра букв в Канборд для пользователей ldap для исключения дублирования пользователей (база данных чувствительна к регистру) | +| `LDAP_BIND_TYPE` | anonymous | Тип подключения: “anonymous”, “user” or “proxy” | +| `LDAP_USERNAME` | null | Имя пользователя LDAP для использования в методе proxy или шаблон имени пользователя для использования в методе user | +| `LDAP_PASSWORD` | null | Пароль LDAP при использовании метода proxy | +| `LDAP_USER_BASE_DN`| Нет значения | Уникальное имя (DN) LDAP для пользователей (Пример: “CN=Users,DC=kanboard,DC=local”) | +| `LDAP_USER_FILTER` | Нет значения | Шаблон LDAP, который используется для поиска пользователей (Пример: “(&(objectClass=user)(sAMAccountName=%s))”) | +| `LDAP_USER_ATTRIBUTE_USERNAME` | uid | Атрибут LDAP для имени пользователя (Например: “samaccountname”) | +| `LDAP_USER_ATTRIBUTE_FULLNAME` | cn | Атрибут LDAP полного имени пользователя (Например: “displayname”) | +| `LDAP_USER_ATTRIBUTE_EMAIL` | mail | Атрибут LDAP для email пользователя | +| `LDAP_USER_ATTRIBUTE_GROUPS` | memberof | Атрибут LDAP для поиска групп в профиле пользователя | +| `LDAP_USER_ATTRIBUTE_PHOTO` | Нет значения | Атрибут LDAP для поиска фотографии пользователя (jpegPhoto или thumbnailPhoto) | +| `LDAP_USER_ATTRIBUTE_LANGUAGE` | Нет значения | Атрибут LDAP для языка пользователя (preferredlanguage), применимый формат языка - “ru-RU” | +| `LDAP_USER_CREATION` | true | Включение автоматического создания пользователя из LDAP | +| `LDAP_GROUP_ADMIN_DN` | Нет значения | Уникальное имя (DN) LDAP для администраторов (Например: “CN=Kanboard-Admins,CN=Users,DC=kanboard,DC=local”) | +| `LDAP_GROUP_MANAGER_DN` | Нет значения | Уникальное имя (DN) LDAP для менеджеров (Например: “CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local”) | +| `LDAP_GROUP_PROVIDER` | false | Включение поставщика групп LDAP для “Разрешения” в проектах | +| `LDAP_GROUP_BASE_DN` | Нет значения | Уникальное имя (Base DN) LDAP для групп | +| `LDAP_GROUP_FILTER` | Нет значения | Фильтр групп LDAP (Например: “(&(objectClass=group)(sAMAccountName=%s\*))”) | +| `LDAP_GROUP_USER_FILTER` | Empty | Если определено, то Канборд будет искать группы пользователей в LDAP\_GROUP\_BASE\_DN с помощью этого фильтра, это удобно только для posixGroups (Например: `(&(objectClass=posixGroup)(memberUid=%s))`| +| `LDAP_GROUP_ATTRIBUTE_NAME` | cn | атрибут LDAP для имени группы | + + +Примечание + + + +- Атрибуты LDAP должны быть в нижнем регистре + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/ldap-profile-picture.markdown b/doc/ru_RU/ldap-profile-picture.markdown new file mode 100644 index 00000000..9d6bb543 --- /dev/null +++ b/doc/ru_RU/ldap-profile-picture.markdown @@ -0,0 +1,46 @@ +Фотография пользователя из профиля LDAP +======================================= + + + +Канборд может автоматически загружать фотографию пользователя из сервера LDAP. + + + +Эта функция возможна только если активирована аутентификация LDAP и указан параметр `LDAP_USER_ATTRIBUTE_PHOTO`. + + + +Настройка[¶](#configuration "Ссылка на этот заголовок") +------------------------------------------------------- + + + +В вашем `config.php`, вы должны установить атрибут LDAP, используемый для хранения изображения. + + + + define('LDAP_USER_ATTRIBUTE_PHOTO', 'jpegPhoto'); + + + +Обычно используются атрибуты `jpegPhoto` или `thumbnailPhoto`. Изображения могут хранится в формате JPEG или PNG. + + + +Для загрузки изображения в пользовательски профиль, администраторы Active Directory могут использовать программу [AD Photo Edit](http://www.cjwdev.co.uk/Software/ADPhotoEdit/Info.html). + + + +Примечание[¶](#notes "Ссылка на этот заголовок") +------------------------------------------------ + +Изображение из профиля **загружается при входе, только если изображение не было загружено ранее**. + +Для смены изображения, нужно вручную удалить ранее загруженное изображение из профиля пользователя. + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/link-labels.markdown b/doc/ru_RU/link-labels.markdown new file mode 100644 index 00000000..d091a33c --- /dev/null +++ b/doc/ru_RU/link-labels.markdown @@ -0,0 +1,23 @@ +Настройки ссылки +================ + + +Связи в задачах могут быть изменены в настройках приложения (**Настройки** -\> **Настройки ссылки**) + +![Link Labels](https://kanboard.net/screenshots/documentation/link-labels.png) + +Рисунок. Метки для ссылок. + + +Каждая метка может иметь противоположное опеределение. Если нет противоположного значения, метка считается двунаправленная. + +![Link Label Creation](https://kanboard.net/screenshots/documentation/link-label-creation.png) + +Рисунок. Создание ссылки. + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/mysql-configuration.markdown b/doc/ru_RU/mysql-configuration.markdown new file mode 100644 index 00000000..82c02b37 --- /dev/null +++ b/doc/ru_RU/mysql-configuration.markdown @@ -0,0 +1,128 @@ +Настройка Mysql/MariaDB +======================= + + + +По умолчанию Канборд использует для хранения данных Sqlite. Вместо Sqlite возможно использовать Mysql или MariaDB. + + + +Требования[¶](#requirements "Ссылка на этот заголовок") +------------------------------------------------------- + + + +- Сервер Mysql + + + +- Установленное расширение PHP - `pdo_mysql` + + + +Примечание: работа Канборда протестирована с **Mysql \>= 5.5 и MariaDB \>= 10.0** + + + +Настройка Mysql[¶](#mysql-configuration "Ссылка на этот заголовок") +------------------------------------------------------------------- + + + +### Создание базы данных[¶](#create-a-database "Ссылка на этот заголовок") + + + +Первым шагом надо создать базу данных на вашем сервере Mysql. Например, вы можете создать базу в командной строке клиента mysql: + + + + CREATE DATABASE kanboard; + + + +### Создание файла конфигурации[¶](#create-a-config-file "Ссылка на этот заголовок") + + + +Файл `config.php` должен содержать следующие значения: + + + + <?php + + + + // We choose to use Mysql instead of Sqlite + + define('DB_DRIVER', 'mysql'); + + + + // Mysql parameters + + define('DB_USERNAME', 'REPLACE_ME'); + + define('DB_PASSWORD', 'REPLACE_ME'); + + define('DB_HOSTNAME', 'REPLACE_ME'); + + define('DB_NAME', 'kanboard'); + + + +Примечание: Вы можете переименовать демонстрационный файл `config.default.php` в `config.php`. + + + +### Импорт SQL дампа (альтернативный метод)[¶](#importing-sql-dump-alternative-method "Ссылка на этот заголовок") + + + +В первый раз, Канборд запускает по очереди каждую миграцию базы данных и этот процес может занять некоторое время, в зависимости от вашей конфигурации. + + + +Чтобы избежать задержек, вы можете инициализировать базу данных напрямую, имопртируя SQL схему: + + + + mysql -u root -p my_database < app/Schema/Sql/mysql.sql + + + +Файл [\`\`](#id1)app/Schema/Sql/mysql.sql\`\`это SQL дамп, который представляет последнюю версию базы данных. + + + +Конфигурация SSL[¶](#ssl-configuration "Ссылка на этот заголовок") +------------------------------------------------------------------ + + + +Эти параметры должны быть указаны для включения соединения Mysql SSL: + + + + // Mysql SSL key + + define('DB_SSL_KEY', '/path/to/client-key.pem'); + + + + // Mysql SSL certificate + + define('DB_SSL_CERT', '/path/to/client-cert.pem'); + + + + // Mysql SSL CA + + define('DB_SSL_CA', '/path/to/ca-cert.pem'); + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/nice-urls.markdown b/doc/ru_RU/nice-urls.markdown new file mode 100644 index 00000000..ca516f78 --- /dev/null +++ b/doc/ru_RU/nice-urls.markdown @@ -0,0 +1,233 @@ +Переопределение URL +=================== + + + +Канборд может работать и с переопределенными URL и с простыми. + + + +- Пример переопределенного URL: `/board/123` + + + +- По другому: `?controller=board&action=show&project_id=123` + + + +Если вы используете Канборд с Apache и включенным mode rewrite, красивые URL будут использоваться автоматически. В случае, если вы получаете ошибку “404 Not Found”, то возможно надо внести изменения в DocumentRoot: + + + + <Directory /var/www/kanboard/> + + AllowOverride FileInfo Options=All,MultiViews AuthConfig + + </Directory> + + + +URL ярлыки[¶](#url-shortcuts "Ссылка на этот заголовок") +-------------------------------------------------------- + + + +- Перейти к задаче \#123: **/t/123** + + + +- Перейти на доску в проект \#2: **/b/2** + + + +- Перейти в календарь проекта \#5: **/c/5** + + + +- Перейти к просмотру списком проекта \#8: **/l/8** + + + +- Перейти к настройкам проекта для проекта id \#42: **/p/42** + + + +Настройка[¶](#configuration "Ссылка на этот заголовок") +------------------------------------------------------- + + + +По умолчанию, Канборд проверяет включен ли в Apache mode rewrite. + + + +Для исключения автоматической проверки переопределения URL на веб сервере, вы должны включить эту опцию в вашем конфигурационном фале: + + + + define('ENABLE_URL_REWRITE', true); + + + +Когда константа имеет значение `true`: + + + +- Сгенерированные из утилиты командной строки URL будут также преобразованы + + + +- Если вы используете другой веб сервер вместо Apache, например Nginx или Microsoft IIS, вы можете сами настроить переопределение URL + + + +Примечание: Канборд всегда использует URL по “старинке”, если данная константа не настроена. Эта настройка опциональна. + + + +Пример настройки Nginx[¶](#nginx-configuration-example "Ссылка на этот заголовок") +---------------------------------------------------------------------------------- + + + +В разделе `server`, вашего конфигурационного файла Nginx, вы можете использовать этот пример: + + + + index index.php; + + + + location / { + + try_files $uri $uri/ /index.php$is_args$args; + + + + # If Kanboard is under a subfolder + + # try_files $uri $uri/ /kanboard/index.php; + + } + + + + location ~ \.php$ { + + try_files $uri =404; + + fastcgi_split_path_info ^(.+\.php)(/.+)$; + + fastcgi_pass unix:/var/run/php5-fpm.sock; + + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + + fastcgi_index index.php; + + include fastcgi_params; + + } + + + + # Deny access to the directory data + + location ~* /data { + + deny all; + + return 404; + + } + + + + # Deny access to .htaccess + + location ~ /\.ht { + + deny all; + + return 404; + + } + + + +В конфигурационном файле Канборда `config.php`: + + + + define('ENABLE_URL_REWRITE', true); + + + +Адаптируйте пример приведенный выше к вашей конфигурации. + + + +Пример настройки IIS[¶](#iis-configuration-example "Ссылка на этот заголовок") +------------------------------------------------------------------------------ + + + +Создайте web.config в каталоге где установлен Канборд: + + + + <?xml version="1.0" encoding="UTF-8"?> + + <configuration> + + <system.webServer> + + <rewrite> + + <rules> + + <rule name="Imported Rule 1" stopProcessing="true"> + + <match url="^" ignoreCase="false" /> + + <conditions logicalGrouping="MatchAll"> + + <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> + + </conditions> + + <action type="Rewrite" url="index.php" appendQueryString="true" /> + + </rule> + + </rules> + + </rewrite> + + </system.webServer> + + </configuration> + + + +В конфигурационном файле Канборда `config.php`: + + + + define('ENABLE_URL_REWRITE', true); + + + +Адаптируйте пример приведенный выше к вашей конфигурации. + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/nitrous.markdown b/doc/ru_RU/nitrous.markdown new file mode 100644 index 00000000..8b975b0d --- /dev/null +++ b/doc/ru_RU/nitrous.markdown @@ -0,0 +1,16 @@ +Nitrous быстрый старт +===================== + + +Создайте свободное окружение разработки для проекта Kanboard в облаке на [Nitrous.io](https://www.nitrous.io). + +Зайдите на ваш сайт через ссылку в IDE `Preview > 3000`{.docutils .literal}. + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/notifications.markdown b/doc/ru_RU/notifications.markdown new file mode 100644 index 00000000..8fc37876 --- /dev/null +++ b/doc/ru_RU/notifications.markdown @@ -0,0 +1,111 @@ +Уведомления +=========== + + + +Канборд имеет возможность отправлять сообщения по нескольким каналам: + + + +- Email + +- Веб (уведомления в Канборд) + + + +Внешние плагины позволяют вам посылать уведомления в Slack, Hipchat, Jabber или другие чат системы. + + + +Настройка[¶](#configuration "Ссылка на этот заголовок") +------------------------------------------------------- + + + +Любой пользователь может включить уведоления в своем профиле: в правом верхнем углу выберите во всплывающем меню **Мой профиль** -\> **Уведомления**. Уведомления по умолчанию выключены. + + + +Для получения уведомлений по email вам надо иметь электронную почту (email), которая должна быть указана в вашем профиле, и Канборд должен быть настроен на отправку электронной почты. + + + +![Notifications](https://kanboard.net/screenshots/documentation/notifications.png) + +Рисунок. Уведомления + + + +Вы можете выбрать, удобный для вас, способ получения уведомлений: + + + +- Email + + + +- Веб (смотрите ниже) + + + +Для каждого проекта в котором вы являетесь участником, вы можете выбрать получение уведомления для: + + + +- Всех задач + + + +- Только для задач назначеных вам + + + +- Только для задач, которые создали вы + + + +- Только для задач, созданных вами и назначенных вам + + + +Также, вы можете выбрать проекты из которых хотите получать уведомления. По умолчанию - все проекты, в которых вы являетесь участником. + + + +Веб уведомления[¶](#web-notifications "Ссылка на этот заголовок") +----------------------------------------------------------------- + + + +Веб уведомления доступны на рабочей панели **Мои уведомления** или вверху в виде иконки: + + + +![Web Notifications Icon](https://kanboard.net/screenshots/documentation/web-notifications-icon.png) + +Рисунок. Иконка веб уведомления. + + + +Уведомления отображаются списком. Вы можете выбрать действие **Пометить как прочитанное** для каждого сообщения или отметить сразу все. + + + +![Web Notifications](https://kanboard.net/screenshots/documentation/web-notifications.png) + +Рисунок. Веб уведомления. + + + +Таким образом, вы можете получать веб уведомления без использования электронной почты. + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/plugin-directory.markdown b/doc/ru_RU/plugin-directory.markdown new file mode 100644 index 00000000..1920c91d --- /dev/null +++ b/doc/ru_RU/plugin-directory.markdown @@ -0,0 +1,38 @@ +Настройка директории плагинов +============================= + + + +Для установки, обновления и удаления плагинов в интерфейсе пользователя, вам необходимо выполнить следующие пункты: + + + +- Директория плагинов должна быть доступна на запись от пользователя веб сервера + + + +- Расширение zip должно быть доступно на вашем сервере + + + +- Параметр в конфигурации `PLUGIN_INSTALLER` должен быть установлен в `true` + + + +Для отключения этой возможности, измените значение в конфигурационном файле `PLUGIN_INSTALLER` на `false`. Также, вы должны изменить права доступа на директорию плагинов. + + + +Только администраторы могут устанавливать плагины через пользовательский интерфейс. + + + +По умолчанию, доступны только плагины из списка на веб сайте Канборда. + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/plugins.markdown b/doc/ru_RU/plugins.markdown new file mode 100644 index 00000000..e5ec2719 --- /dev/null +++ b/doc/ru_RU/plugins.markdown @@ -0,0 +1,167 @@ +Разработка плагина +================== + + + +**Внимание: API плагинов на данный момент в состоянии альфа.** + + + +Плагины удобны для расширения базового функционала Канборда: добавление возможностей, создание тем или изменения базового поведения. + + + +Создатели плагина должны указать точную версию Канборда, под которую написан плагин. Внутренний код Канборда может изменяться и ваш плагин должен тестироваться на совместимость с новой версией. Всегда следите за [ChangeLog](https://github.com/fguillot/kanboard/blob/master/ChangeLog) для внесения изменений. + + + +- [Создание вашего плагина](plugin-registration.markdown) + + + +- [Использование plugin hooks](plugin-hooks.markdown) + + + +- [События](plugin-events.markdown) + + + +- [Изменение базового поведения приложений](plugin-overrides.markdown) + + + +- [Добавление миграции схемы для плагинов](plugin-schema-migrations.markdown) + + + +- [Пользовательские маршруты](plugin-routes.markdown) + + + +- [Добавление обработчиков](plugin-helpers.markdown) + + + +- [Добавление почтовых трансляторов](plugin-mail-transports.markdown) + + + +- [Добавление типов оповещений](plugin-notifications.markdown) + + + +- [Добавление автоматических действий](plugin-automatic-actions.markdown) + + + +- [Расширение данных пользователей, задач и проектов](plugin-metadata.markdown) + + + +- [Архитектура аутентификации](plugin-authentication-architecture.markdown) + + + +- [Регистрация плагина аутентификации](plugin-authentication.markdown) + + + +- [Архитектура авторизации](plugin-authorization-architecture.markdown) + + + +- [Провайдер пользовательской группы](plugin-group-provider.markdown) + + + +- [Провайдер внешней ссылки](plugin-external-link.markdown) + + + +- [Добавление провайдера аватара](plugin-avatar-provider.markdown) + + + +- [Клиент LDAP](plugin-ldap-client.markdown) + + + +Примеры плагинов[¶](#examples-of-plugins "Ссылка на этот заголовок") +-------------------------------------------------------------------- + + + +- [Двухуровневая аутентификация SMS](https://github.com/kanboard/plugin-sms-2fa) + + + +- [Аутентификация Reverse-Proxy с поддержкой LDAP](https://github.com/kanboard/plugin-reverse-proxy-ldap) + + + +- [Slack](https://github.com/kanboard/plugin-slack) + + + +- [Hipchat](https://github.com/kanboard/plugin-hipchat) + + + +- [Jabber](https://github.com/kanboard/plugin-jabber) + + + +- [Sendgrid](https://github.com/kanboard/plugin-sendgrid) + + + +- [Mailgun](https://github.com/kanboard/plugin-mailgun) + + + +- [Postmark](https://github.com/kanboard/plugin-postmark) + + + +- [Amazon S3](https://github.com/kanboard/plugin-s3) + + + +- [Планирование бюджета](https://github.com/kanboard/plugin-budget) + + + +- [Расписание пользователя](https://github.com/kanboard/plugin-timetable) + + + +- [Прогнозирование подзадач](https://github.com/kanboard/plugin-subtask-forecast) + + + +- [Пример автоматических действий](https://github.com/kanboard/plugin-example-automatic-action) + + + +- [Пример плагина темы](https://github.com/kanboard/plugin-example-theme) + + + +- [Пример плагина CSS](https://github.com/kanboard/plugin-example-css) + + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/postgresql-configuration.markdown b/doc/ru_RU/postgresql-configuration.markdown new file mode 100644 index 00000000..9407ce59 --- /dev/null +++ b/doc/ru_RU/postgresql-configuration.markdown @@ -0,0 +1,92 @@ +Настройка Postgresql +==================== + + + +По умолчанию, Канборд использует для хранения данных Sqlite, но возможно использовать и Postgresql. + + + +Требования[¶](#requirements "Ссылка на этот заголовок") +------------------------------------------------------- + + + +- Установленный и настроенный сервер Postgresql + + + +- Установленное PHP расширение - `pdo_pgsql` (Debian/Ubuntu: `apt-get install php5-pgsql`) + + + +Примечание: работа Канборда протестирована с **Postgresql 9.3 и 9.4** + + + +Настройка[¶](#configuration "Ссылка на этот заголовок") +------------------------------------------------------- + + + +### Создайте пустую базу данных выполнив команду `pgsql`:[¶](#create-an-empty-database-with-the-command-pgsql "Ссылка на этот заголовок") + + + + CREATE DATABASE kanboard; + + + +### Создание конфигурационного файла[¶](#create-a-config-file "Ссылка на этот заголовок") + + + +Файл `config.php` должен содержать следующие значения: + +```php +<?php + +// We choose to use Postgresql instead of Sqlite +define('DB_DRIVER', 'postgres'); + +// Mysql parameters +define('DB_USERNAME', 'REPLACE_ME'); +define('DB_PASSWORD', 'REPLACE_ME'); +define('DB_HOSTNAME', 'REPLACE_ME'); +define('DB_NAME', 'kanboard'); +``` + + + +Примечание: Вы можете переименовать демонстрационный файл `config.default.php` в `config.php`. + + + +### Импортирование дампа SQL (альтернативный метод)[¶](#importing-sql-dump-alternative-method "Ссылка на этот заголовок") + + + +В первый раз, Канборд запускает по очереди каждую миграцию базы данных и этот процес может занять некоторое время, в зависимости от вашей конфигурации. + + + +Для избежания проблем или задержек вы можете инициализировать базу данных напрямую посредством импорта схемы SQL: + +```bash +psql -U postgres my_database < app/Schema/Sql/postgres.sql +``` + +Файл `app/Schema/Sql/postgres.sql` - это sql дамп, который представляет последнюю версию базы данных. + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/project-configuration.markdown b/doc/ru_RU/project-configuration.markdown new file mode 100644 index 00000000..af4863d7 --- /dev/null +++ b/doc/ru_RU/project-configuration.markdown @@ -0,0 +1,105 @@ +Настройки проекта +================= + + + +В правом верхнем выпадающем меню выберите **Настройки**, затем выберите **Настройки проекта** слева. + + + +![Project settings](https://kanboard.net/screenshots/documentation/project-settings.png) + +Рисунок. Настройки проекта. + + + +Колонки по умолчанию для новых проектов[¶](#default-columns-for-new-projects "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------- + + + +Вы можете изменить колонки по умолчанию. Это удобно, когда вы создаете однотипные проекты с одними и теми же колонками. + + + +Название колонок должны быть разделены запятой. + + + +По умолчанию, в Канборде используются следующие колонки: Ожидающие, Готовые, В процессе, Выполнено + + + +Стандартные категории для новых проектов[¶](#default-categories-for-new-projects "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------ + + + +Категории не являются общими для приложения, но могут использоваться в проектах. Каждый проект может иметь разные категории. + + + +Однако, если вы постоянно создаете одни и теже категории для разных проектов, то вы можете задать список категорий, которые будут автоматически создаваться при создании проекта. + + + +Разрешена только одна подзадача в разработке одновременно для одного пользователя[¶](#allow-only-one-subtask-in-progress-at-the-same-time-for-a-user "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + + +Когда эта опция включена, пользователь может работать только с одной подзадачей одновременно. + + + +Если другая подзадача перейдет статус “В процессе”, то пользователь увидит следующее диалоговое окно: + + + +![Subtask user restriction](https://kanboard.net/screenshots/documentation/subtask-user-restriction.png) + +Рисунок. Ограничение пользовательских подзадач. + + + +Триггер автоматического отслеживания времени подзадач[¶](#trigger-automatically-subtask-time-tracking "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------------- + + + +- Если этот триггер включен когда статус подзадачи меняется на “В процессе”, то таймер автоматически запускается. + + + +- Выключите эту опцию, если вы не хотите отслеживать время. + + + +Включить в диаграмму закрытые задачи[¶](#include-closed-tasks-in-the-cumulative-flow-diagram "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------------------ + + + +- Если эта опция включена, закрытые задачи будут добавлены в накопительную диаграмму. + + + +- Если выключена, то только открытые задачи будут подсчитаны. + + + +- Эта опция влияет на колонку “total” (всего) в таблице “project\_daily\_column\_stats” (проект\_ежедневно\_колонка\_статистика) + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/project-permissions.markdown b/doc/ru_RU/project-permissions.markdown new file mode 100644 index 00000000..580162fb --- /dev/null +++ b/doc/ru_RU/project-permissions.markdown @@ -0,0 +1,55 @@ +Права доступа к проекту +======================= + + + +Все проекты изолированы и отделены друг от друга. Доступ к проекту может назначать владелец проекта. + + + +Каждый пользователь и каждая группа могут иметь разные назначенные роли. Имеются [три типа ролей для проектов](roles.markdown): + + + +- Менеджер проекта + + + +- Участник проекта + + + +- Наблюдатель проекта + + + +Только администратор может иметь полный доступ ко всему. + + + +Назначение ролей доступно через **Меню -\> Настройки -\> Разрешения** + + + +![Project Permissions](screenshots/project-permissions.png) + +Рисунок. Права доступа к проекту + + + +Если вы выберите **Разрешить любому**, то все пользователи Канборд будут считаться участниками Проекта. В таком случае, нет необходимости назначать роли. Потому что, разрешения, назначенные пользователям и группам, на доступ к Проекту не будут работать. + + + +Приватный проект не позволяет устанавливать разрешения. + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/project-types.markdown b/doc/ru_RU/project-types.markdown new file mode 100644 index 00000000..d1169241 --- /dev/null +++ b/doc/ru_RU/project-types.markdown @@ -0,0 +1,27 @@ +Типы проектов +============= + + + +Проекты могут быть двух типов: + + + +| Тип | Описание | +|-----------------|----------------------------------------------------------| +| Командный проект| В проекте могут принимать участие пользователи и группы | +| Приватный проект| Проект принадлежит только одному пользователю, к проекту нельзя присоединить участников| + + + +- Командный проект могут создавать только пользователи с ролью Администратор и Менеджер. +- Приватный проект могут создавать все пользователи. + + +[Читать документацию про роли в Kanboard](roles.markdown) + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/project-views.markdown b/doc/ru_RU/project-views.markdown new file mode 100644 index 00000000..1d1f1117 --- /dev/null +++ b/doc/ru_RU/project-views.markdown @@ -0,0 +1,154 @@ +Представления Доска, Календарь, Список и Гант +============================================= + + + +В каждом проекте задачи могут быть отображены в разных представлениях: **Доска, Календарь, Список и Гант**. Для отображения представлений используется фильтр в верхней части рабочей панели. Для поиска используется [расширенный синтаксис](ext-search.markdown). + + + +Представление - Доска[¶](#board-view "Ссылка на этот заголовок") +---------------------------------------------------------------- + + + +![Board view](screenshots/board-view.png) + +Рисунок. Представление зачад в виде доски + + + +- В этом представлении вы можете мышкой перемещать задачи между колонками. + + + +- Также, для перемещения задач на доске, можно использовать горячие клавиши **“v b”**. + + + +- Затемнения вокруг задачи показывает активную или измененную задачу. + + + +![Board Task Limit](screenshots/board-task-limit.png) + +Рисунок. Лимит задач на Доске + + + +Когда лимит задач для колонки достигнут, тогда фон колонки становится красный. Это означает, что слишком много задач выполняются одновременно. + + + +[Ознакомится с настройками Доски](board-configuration.markdown) + + + +Представление - Календарь[¶](#calendar-view "Ссылка на этот заголовок") +----------------------------------------------------------------------- + + + +![Calendar view](screenshots/calendar-view.png) + +Рисунок. Представление в виде календаря + + + +- В этом представлении вы можете видеть задачи на конкретные даты. + + + +- Вы можете сделать настройки, которые позволят вам видеть задачи в работе. + + + +- Вы можете использовать горячие клавиши **“v c”** для перехода на представление Календарь. + + + +- [Ознакомится с настройками Календаря](calendar-configuration.markdown) + + + +Представление - Список[¶](#list-view "Ссылка на этот заголовок") +---------------------------------------------------------------- + + + +![List view](https://kanboard.net/screenshots/documentation/list-view.png) + +Рисунок. Представление списком. + + + +- С помощью этого представления все результаты отображаются в виде таблицы. + + + +- Для быстрого перехода на представление Список вы можете использовать горячие клавиши **“v l”**. + + + +Представление - Гант.[¶](#gantt-view "Ссылка на этот заголовок") +---------------------------------------------------------------- + + + +![Gantt view](screenshots/gantt-view.png) + +Рисунок. Представление диаграммой Ганта. + + + +- Представление Гант отображает задачи горизонтальными графиками + + + +- Для построения графика используется дата начала и срок выполнения + + + +- Для быстрого перехода к представлению Гант используйте горячие клавиши : **“v g”** + + + +Обзор Проекта[¶](#project-overview "Ссылка на этот заголовок") +-------------------------------------------------------------- + + + +![Project overview](screenshots/project-view.png) + +Рисунок. Представления проекта + + + +- Отображает описание проекта + + + +- Показывает прикрепленные и загруженные документы проекта + + + +- Показывает список участников проекта + + + +- Показывает последнюю активность в проекте + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/recurring-tasks.markdown b/doc/ru_RU/recurring-tasks.markdown new file mode 100644 index 00000000..a6572f2c --- /dev/null +++ b/doc/ru_RU/recurring-tasks.markdown @@ -0,0 +1,67 @@ +Повторяющиеся задачи +==================== + + + +Для соответсвия методологии Канбан, повторяющиеся задачи не имеют в качестве основы дату, а запускаются при наступлении событий на Доске. + + + +- Повторяющиеся задачи копируются (появляются вновь) в первой колонке Доски когда наступает определенное событие + + + +- Дата завершения (срок выполнения задачи) пересчитывается автоматически + + + +- Each task records the task id of the parent task that created it and the child task created + + + +Настройка[¶](#configuration "Ссылка на этот заголовок") +------------------------------------------------------- + + + +Перейдите на страницу детального представления задачи или используйте выпадающее меню на доске, выберите **Редактировать повторы**. + + + +![Recurring task](https://kanboard.net/screenshots/documentation/recurring-tasks.png) + +Рисунок. Редактировать повторы. + + + +В редактировании повторов имеется выбор 3 триггеров для генерации периодической задачи: + + + +- Когда задача перемещается из первой колонки + + + +- Когда задача перемещается в последнюю колонку + + + +- Когда задача закрывается + + + +Дата завершения, если установлена для текущей задачи, может быть пересчитана с учетом **Коэффициента для расчета новой даты** и **Период для рассчета новой даты завершения** (например, 7 дней, 6 месяцев, 1 год). Базовой датой вычисления новой даты завершения может быть и имеющаяся дата завершения, или дата действия. + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/requirements.markdown b/doc/ru_RU/requirements.markdown new file mode 100644 index 00000000..aa6933b9 --- /dev/null +++ b/doc/ru_RU/requirements.markdown @@ -0,0 +1,137 @@ +Системные требования +==================== + + + +На сервере[¶](#server-side "Ссылка на этот заголовок") +------------------------------------------------------ + + + +### Поддерживаемые операционные системы[¶](#compatible-operating-systems "Ссылка на этот заголовок") + +|Операционная система| +|-----------------------------------| +|Linux Ubuntu Xenial Xerus 16.04 LTS| +| Linux Ubuntu Trusty 14.04 LTS| +| Linux Centos 6.x| +| Linux Centos 7.x| +| Linux Redhat 6.x| +|Linux Redhat 7.x| +| Linux Debian 8| +| FreeBSD 10.x| +| Microsoft Windows 2012 R2| +| Microsoft Windows 2008| + + + +### Поддерживаемые базы данных[¶](#compatible-databases "Ссылка на этот заголовок") + + +|База данных | +|----------------------| +|Sqlite 3.x | +|Mysql \>= 5.5 | +|MariaDB \>= 10 | +| Postgresql \>= 9.3 | + + + +Какую базу данных выбрать? + + +| Тип | Когда использовать | +|--------------------|--------------------------------------------------------| +| Sqlite | Один пользователь или небольшая команда | +| Mysql/Postgres | Большая команда, конфигурация высокой доступности | + + + + +Не используйте Sqlite на смонтированном NFS. Используйте Sqlite только на дисках с высокой скоростью чтение/запись. + + + +### Совместимые веб сервера[¶](#compatible-web-servers "Ссылка на этот заголовок") + +Apache HTTP Server, Nginx , Microsoft IIS + +Канборд изначально сконфигурирован для работы с Apache (URL rewriting). + + + +### Версии PHP[¶](#php-versions "Ссылка на этот заголовок") + + +PHP \>= 5.3.3, PHP 5.4, PHP 5.5, PHP 5.6, PHP 7.x + + + +### Требуемые расширения для PHP[¶](#php-extensions-required "Ссылка на этот заголовок") + + +| Требуемые расширения для PHP | Примечание | +|----------------------------------|-----------------------------------------| +| pdo\_sqlite | Только при использовании Sqlite | +| pdo\_mysql | Только при использоании Mysql/MariaDB | +| pdo\_pgsql | Только при использовании Postgres | +| gd | | +| mbstring | | +| openssl | | +| json | | +| hash | | +| ctype | | +| session | | +| ldap | Только для аутентификации LDAP | +| Zend OPcache | Рекомендуется | + + +### Рекомендуется[¶](#recommendations "Ссылка на этот заголовок") + + + +- Современная Linux или Unix операционная система. + + + +- Высокая производительность достигается с последней версией PHP со включенным кешированием OPcode. + + + +На клиенте[¶](#client-side "Ссылка на этот заголовок") +------------------------------------------------------ + + + +### Браузеры[¶](#browsers "Ссылка на этот заголовок") + + + +Используйте современные браузеры, обновленные до последней версии: + +|Браузер | +|-----------------| +| Safari | +| Google Chrome | +| Mozilla Firefox | +| Microsoft Internet Explorer \>= 11| +| Microsoft Edge | + + + +### Устройства[¶](#devices "Ссылка на этот заголовок") + + +| Устройство | Разрешение экрана | +|--------------------------------------|--------------------------------------| +| Персональный компьютер или ноутбук | \>= 1366 x 768 | +| Планшет | \>= 1024 x 768 | + + +Канборд, пока, не оптимизирован для работы на смартфонах. Конечно, он работает, но пользовательский интерфейс не совсем удобный для использования. + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/reverse-proxy-authentication.markdown b/doc/ru_RU/reverse-proxy-authentication.markdown new file mode 100644 index 00000000..2d97a6e4 --- /dev/null +++ b/doc/ru_RU/reverse-proxy-authentication.markdown @@ -0,0 +1,138 @@ +Аутентификация Reverse Proxy +============================ + + + +Этот метод аутентификации часто используется для [SSO](https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%B5%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%85%D0%BE%D0%B4%D0%B0) (Технология единого входа), особенно удобно в больших организациях. + + + +Аутентификация выполняется с помощью другой системы, поэтому Канборд не знает вашего пароля и допускает вас к приложению, так как вы уже прошли аутентификацию. + + + +Требования[¶](#requirements "Ссылка на этот заголовок") +------------------------------------------------------- + + + +- Правильно сконфигурированный reverse proxy + + + +или + + + +- Apache Auth на том же сервере + + + +Как это работает?[¶](#how-does-this-work "Ссылка на этот заголовок") +-------------------------------------------------------------------- + + + +1. Ваш reverse proxy аутентифицирует пользователя и посылает имя пользователя через заголовок HTTP. + + + +2. Канборд извлекает имя пользователя из запроса + + + + - Пользователь создается в Канборд автоматически (опция настраивается) + + + + - Открывается новая сессия Канборд (дополнительная аутентификация в Канборд не нужна) + + + +Инструкция по установке[¶](#installation-instructions "Ссылка на этот заголовок") +--------------------------------------------------------------------------------- + + + +### Настройка вашего reverse proxy[¶](#setting-up-your-reverse-proxy "Ссылка на этот заголовок") + + + +В рамках данной документации не рассматривается установка и настройка reverse proxy. Вы должны убедится, что логин пользователя отправляется с reverse proxy в заголовке HTTP. + + + +### Настройки Канборда[¶](#setting-up-kanboard "Ссылка на этот заголовок") + + + +Создайте свой файл конфигурации `config.php` или скопируйте конфигурацию из файла `config.default.php`: + + + + <?php + + + + // Enable/disable reverse proxy authentication + + define('REVERSE_PROXY_AUTH', true); // Set this value to true + + + + // The HTTP header to retrieve. If not specified, REMOTE_USER is the default + + define('REVERSE_PROXY_USER_HEADER', 'REMOTE_USER'); + + + + // The default Kanboard admin for your organization. + + // Since everything should be filtered by the reverse proxy, + + // you should want to have a bootstrap admin user. + + define('REVERSE_PROXY_DEFAULT_ADMIN', 'myadmin'); + + + + // The default domain to assume for the email address. + + // In case the username is not an email address, it + + // will be updated automatically as USER@mydomain.com + + define('REVERSE_PROXY_DEFAULT_DOMAIN', 'mydomain.com'); + + + +Примечание: + + + +- Если proxy находится на том же сервере, что и Канборд, то в соответствии с протоколом \<[http://www.ietf.org/rfc/rfc3875](http://www.ietf.org/rfc/rfc3875)\>\`\_\_ имя заголовка будет `REMOTE_USER`. Например, Apache добавляет `REMOTE_USER` по умолчанию, если установлено `Require valid-user`. + + + +- Если Apache служит reverse proxy для другого Apache выполняющего Канборд, то заголовок `REMOTE_USER` не установлен (это же относится к IIS и Nginx). + + + +- Если у вас имеется действующий reverse proxy, то [проект HTTP ICAP](http://tools.ietf.org/html/draft-stecher-icap-subid-00#section-3.4) предполагает, что заголовок должен быть `X-Authenticated-User`. Этот стандарт де-факто был принят разными инструментами. + + + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/roles.markdown b/doc/ru_RU/roles.markdown new file mode 100644 index 00000000..5af8a937 --- /dev/null +++ b/doc/ru_RU/roles.markdown @@ -0,0 +1,44 @@ +Пользовательские роли +===================== + + + +Роли в приложениях[¶](#application-roles "Ссылка на этот заголовок") + +-------------------------------------------------------------------- + + + +Каждый пользователь системы Канборд имеет одну из этих ролей + + + +| Роль | Описание | +|----------------|-----------------------------------------------------------| +| Администратор | Имеет доступ ко всему | +| Менеджер | Может создавать командные проекты, но не может изменять настройки приложения | +| Пользователь | Может создавать только приватные проекты | + + + + +Роли в проектах[¶](#project-roles "Ссылка на этот заголовок") + +------------------------------------------------------------- + + + +В каждом командном проекте могут быть назначены разные роли для пользователей и групп: + + +| Роль | Описание | +|-----------------|----------------------------------------------------------| +| Менеджер проекта| Может изменять настройки проекта, имеет доступ к диаграмме Ганта и отчетам | +| Участник проекта| Может создавать задачи и пользоваться доской | +| Наблюдатель проекта | Имеет доступ к доске и задачам только на просмотр (чтение) | + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/rss.markdown b/doc/ru_RU/rss.markdown new file mode 100644 index 00000000..c4718880 --- /dev/null +++ b/doc/ru_RU/rss.markdown @@ -0,0 +1,58 @@ +RSS/Atom подписки +================= + + + +Канборд поддерживает RSS ленты для проектов и пользователей. + + + +- RSS/Atom лента для проекта - содержит только активность в проекте + + + +- RSS/Atom лента пользователя - содержит поток активности пользователя во всех проектах, в которых пользователь является участником + + + +Эти подписки доступны только при включенном общем доступе в пользовательском профиле или в настройках проекта. + + + +Включение/выключение RSS ленты проекта[¶](#enable-disable-project-rss-feeds "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------- + + + +Перейдите в **Настройки проекта** -\> **Общий доступ** + + + +![Disable public access](https://kanboard.net/screenshots/documentation/project-disable-sharing.png) + +Рисунок. Выключение общего доступа. + + + +Включение/выключение RSS ленты пользователя[¶](#enable-disable-user-rss-feeds "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------- + + + +Перейдите в **Мой профиль** -\> **Общий доступ** + + + +Ссылка на RSS ленту защищена случайным ключом, только пользователи, которые знают URL ссылку, могут иметь доступ к ленте. + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/screenshots.markdown b/doc/ru_RU/screenshots.markdown new file mode 100644 index 00000000..2260f258 --- /dev/null +++ b/doc/ru_RU/screenshots.markdown @@ -0,0 +1,74 @@ +Добавление снимков экрана (скриншота) +===================================== + + + +Для экономии времени вы можете копировать и вставлять изображения прямо в Канборде. Загруженные изображения прикрепляются к задаче. + + + +Например, очень удобно для решения проблемы прикрепить снимок экрана. + + + +Вы можете добавить снимок экрана прямо из Доски нажав на выпадающее меню задачи и выбрав **Прикрепить картинку** или на странице детального просмотра задачи. + + + +![Drop-down screenshot menu](https://kanboard.net/screenshots/documentation/dropdown-screenshot.png) + + + +Рисунок. Выпадающее меню задачи - **Прикрепить картинку**. + + + +Для добавления нового снимка экрана (скриншота), сделайте снимок экрана (нажмите клавиши Ctrl+PrtScn) и вставьте его используя сочетания клавиш CTRL+V или Command+V + + + +![Screenshot page](https://kanboard.net/screenshots/documentation/task-screenshot.png) + +Рисунок. Прикрепить картинку. + + + +В Mac OS X вы можете использовать следующие горячие клавиши для создания снимка экрана: + + + +- Command-Control-Shift-3: Делает снимок экрана и сохраняет его в буфер обмена + + + +- Command-Control-Shift-4 и выделите необходимую область на экране: Делает снимок экрана для области экрана и сохраняет ее в буфер обмена + + + +- Command-Control-Shift-4, затем пробел, затем нажать на окно: Делает снимок окна и сохраняет его в буфер обмена + + + +Имеется много разных других программ для создания снимков с экрана с примечаниями и разными формами. + + + +**Заметка**: Эта возможность работает не во всех браузерах. Например, не работает в Safari из-за этой ошибки: [https://bugs.webkit.org/show\_bug.cgi?id=49141](https://bugs.webkit.org/show_bug.cgi?id=49141) + + + + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/search.markdown b/doc/ru_RU/search.markdown new file mode 100644 index 00000000..14c3f5b1 --- /dev/null +++ b/doc/ru_RU/search.markdown @@ -0,0 +1,24 @@ +Поиск + +===== + + + +Для работы поиска включите JavaScript в браузере. + + + +Здесь можно делать поиск по всем разделам этой документации. Введите ключевые слова в текстовое поле и нажмите кнопку «искать». Внимание: будут найдены только те страницы, в которых есть все указанные слова. Страницы, где есть только часть этих слов, отобраны не будут. + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/sharing-projects.markdown b/doc/ru_RU/sharing-projects.markdown new file mode 100644 index 00000000..e8448189 --- /dev/null +++ b/doc/ru_RU/sharing-projects.markdown @@ -0,0 +1,82 @@ +Публичные доски и задачи +======================== + + + +По умолчанию, Доска имеет приватный доступ, но имеется возможность сделать Доску публичной. + + + +Публичная доска **не может быть изменена (имеется только доступ на чтение)**. Доступ к доске защищен случайно сгенерированным ключом, только пользователи знающие правильный URL могут увидеть публичную Доску. + + + +Публичная Доска автоматически обновляется каждые 60 секунд. Детали задач, также, доступны только для чтения. + + + +Пример использования: + + + +- Публикация вашей Доски для кого-либо снаружи (работник из другой организации) + + + +- Отображение Доски на большом экране в вашем офисе + + + +Включение общего доступа[¶](#enable-public-access "Ссылка на этот заголовок") +----------------------------------------------------------------------------- + + + +Выберете ваш проект, затем нажмите на ссылку **“Общий доступ”** и в завершении нажмите на кнопку **“Включить общий доступ”** + + + +![Enable public access](screenshots/project-enable-sharing.png) + +Рисунок. Включение общего доступа + + + +Когда общий доступ к проекту включен, сгенерируется несколько ссылок: + + + +- Ссылка для просмотра + + + +- RSS лента + + + +- iCalendar данные + + + +![Disable public access](screenshots/project-disable-sharing.png) + +Рисунок. Отключить общий доступ. + + + +Вы можете выключить общий доступ к проекту в любой момент. + + + +Каждый раз, когда вы включаете или выключаете общий доступ, генерируется новый ключ. **Доступ по предыдущей ссылке будет невозможен**. + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/sqlite-database.markdown b/doc/ru_RU/sqlite-database.markdown new file mode 100644 index 00000000..202452cb --- /dev/null +++ b/doc/ru_RU/sqlite-database.markdown @@ -0,0 +1,96 @@ +Настройка базы данных Sqlite +============================ + + + +Канборд использует для хранения данных Sqlite по умолчанию. Все задачи, проекты и учетные записи пользователей храняться в этой базе данных. + + + +База данных Sqlite хранит данные в файле `db.sqlite` в директории `data`. + + + +Экспорт/Резервное копирование[¶](#export-backup "Ссылка на этот заголовок") +--------------------------------------------------------------------------- + + + +### Командная строка[¶](#command-line "Ссылка на этот заголовок") + + + +Создание резервных копий выполняется просто, надо скопировать файл `data/db.sqlite` туда, где у вас будут хранится резервные копии. + + + +### Пользовательский интерфейс[¶](#user-interface "Ссылка на этот заголовок") + + + +Также, в любое время, вы можете скачать базу данных прямо через меню **Настройки**. + + + +Выгружаемая база данных упакована с помощью Gzip и имя базы выглядитит как `db.sqlite.gz`. + + + +Импорт/Восстановление[¶](#import-restoration "Ссылка на этот заголовок") +------------------------------------------------------------------------ + + + +Загрузить базу данных через пользовательский интерфейс невозможно. Восстановление должно быть выполнено вручную, когда никто не работает с программой. + + + +- Для восстановления резервной копии, достаточно заменить рабочий файл `data/db.sqlite`. + + + +- Для разархивирования базы данных упакованной с помощью gzip, выполните следующую команду в терминале: `gunzip db.sqlite.gz`. + + + +Оптимизация[¶](#optimization "Ссылка на этот заголовок") +-------------------------------------------------------- + + + +Время от времени, рекомендуется оптимизировать базу данных выполнив команду `VACUUM`. Эта команда пересоздает всю базу данных и используется в следующих случаях: + + + +- Для уменьшения размера файла базы данных. В процессе работы пользователей, после удаления записей, в базе данных остается пустое пространство и, соответственно, размер файла базы данных остается прежним. + + + +- Дефрагментация, база данных фрагментирована выполнением частыми вставками или обновлениями. + + + +### Выполнение оптимизации в командной строке[¶](#from-the-command-line "Ссылка на этот заголовок") + + + + sqlite3 data/db.sqlite 'VACUUM' + + + +### Выполнение оптимизации через пользовательский интерфейс[¶](#from-the-user-interface "Ссылка на этот заголовок") + + + +Перейдите в правое выпадающее меню **Настройки** и нажмите на ссылку **Оптимизировать базу данных** + + + +Для дополнительной информации, изучите [документацию Sqlite](https://sqlite.org/lang_vacuum.html). + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/subtasks.markdown b/doc/ru_RU/subtasks.markdown new file mode 100644 index 00000000..c78aee73 --- /dev/null +++ b/doc/ru_RU/subtasks.markdown @@ -0,0 +1,111 @@ +Подзадачи +========= + + +Подзадачи - это прекрасная возможность разделить основную задачу на части. + + + +Каждая подзадача: + + + +- Может быть назначена участнику проекта + + + +- Имеет 3 разных статуса: **Для исполнения**, **В работе**, **Выполнено** + + + +- Имеет информацию по отслеживанию времени: **затраченное время** и **запланированное время** + + + +- Может быть перемещена в списке, для изменения порядка выполнения + + + +Создание подзадачи[¶](#creating-subtasks "Ссылка на этот заголовок") +-------------------------------------------------------------------- + + + +В детальном представлении задачи, в левой боковой панели нажмите **Добавить подзадачу**: + + + +![Add a subtask](https://kanboard.net/screenshots/documentation/add-subtask.png) + +Рисунок. Добавление подзадачи. + + + +Вы, также, можете быстро добавить подзадачу нажав на заголовок: + + + +![Add a subtask from the task view](https://kanboard.net/screenshots/documentation/add-subtask-shortcut.png) + +Рисунок. Добавление подзадачи на странице детального просмотра задачи. + + + +Изменение статуса подзадачи[¶](#change-subtask-status "Ссылка на этот заголовок") +--------------------------------------------------------------------------------- + + + +Когда вы нажимаете на заголовок подзадачи стату меняется: + + + +![Subtask in progress](https://kanboard.net/screenshots/documentation/subtask-status-inprogress.png) + +Рисунок. Выполнение подзадачи. + + + +Иконка перед названием подзадачи обновляется в соответсвии со статусом. + + + +![Subtask done](https://kanboard.net/screenshots/documentation/subtask-status-done.png) + +Рисунок. Подзадача выполнена. + + + +**Заметка**: Когда задача закрыта, то все подзадачи меняют статус на **Выполнена**. + + + +Таймер подзадачи[¶](#subtask-timer "Ссылка на этот заголовок") +-------------------------------------------------------------- + + + +- Когда подзадача выполняется, таймер должен быт запущен. Таймер можно запустить и остановить в любое время. + + + +- Время таймера записывается автоматически в затраченное время. Так же, вы можете изменить вручную значение **затраченного времени** при редактировании подзадачи. + + + +- Подсчитываемое время округляется до 15 минут. Эта информация записывается в отдельную таблицу. + + + +- Время, затраченное на выполнение задачи, и запланированнное время обновляется автоматически, в соответсвии с суммой всех подзадач. + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/suse-installation.markdown b/doc/ru_RU/suse-installation.markdown new file mode 100644 index 00000000..6d508708 --- /dev/null +++ b/doc/ru_RU/suse-installation.markdown @@ -0,0 +1,36 @@ +Инсталяция на OpenSuse +====================== + + + +OpenSuse Leap 42.1[¶](#opensuse-leap-42-1 "Ссылка на этот заголовок") +--------------------------------------------------------------------- + + + + sudo zypper install php5 php5-sqlite php5-gd php5-json php5-mcrypt php5-mbstring php5-openssl + + cd /srv/www/htdocs + + sudo wget https://kanboard.net/kanboard-latest.zip + + sudo unzip kanboard-latest.zip + + sudo chmod -R 777 kanboard + + sudo rm kanboard-latest.zip + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/swimlanes.markdown b/doc/ru_RU/swimlanes.markdown new file mode 100644 index 00000000..d6e36fdd --- /dev/null +++ b/doc/ru_RU/swimlanes.markdown @@ -0,0 +1,81 @@ +Дорожки +======= + + + +Дорожки - это горизонтальное разделение вашей Доски. Например, очень удобно разделять релизы программ, разделить ваши задачи для разных продуктов, команд или чего-то еще. + + + +Доска с дорожками[¶](#board-with-swimlanes "Ссылка на этот заголовок") +---------------------------------------------------------------------- + + + +![Swimlanes](screenshots/swimlanes.png) + +Рисунок. Дорожки + + + +- Вы можете свернуть дорожку нажав на иконку слева + + + +- “Стандатная дорожка” всегда расположена сверху + + + +Управление дорожками[¶](#managing-swimlanes "Ссылка на этот заголовок") +----------------------------------------------------------------------- + + + +- Все проекты имеют дорожку по умолчанию - **Стандартная дорожка** + + + +- Если имеется больше одной дорожки, то на Доске будут показаны все имеющиеся дорожки. + + + +- Вы можете перемещать мышкой задачи между дорожками. + + + +Для настройки дорожек перейдите на страницу **настройки проекта** (Меню -\> Настройки) и нажмите **Дорожки** (слева). + + + +![Swimlanes Configuration](screenshots/swimlane-configuration.png) + +Рисунок. Настройка Дорожек. + + + +Теперь вы можете добавить новую дорожку или переименовать стандартную дорожку. Также, вы можете выключить дорожку или изменить расположение любой дорожки. + + + +- Стандартная дорожка всегда расположена сверху, но вы можете ее выключить и она не будет отображаться на Доске. + + + +- Выключенные дорожки не отображаются на Доске. + + + +- **Удаление дорожки не влечет за собой удаление расположенных на этой дорожке задач**, эти задачи будут перемещены в “Стандартную дорожку”. + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/syntax-guide.markdown b/doc/ru_RU/syntax-guide.markdown new file mode 100644 index 00000000..9d7414a8 --- /dev/null +++ b/doc/ru_RU/syntax-guide.markdown @@ -0,0 +1,246 @@ +Руководство по синтаксису +========================= + + + +Канборд использует [Markdown синтаксис](https://ru.wikipedia.org/wiki/Markdown) для комментариев или описания задач. Далее приведены примеры: + + + +Жирный и курсив[¶](#bold-and-italic "Ссылка на этот заголовок") +--------------------------------------------------------------- + +- Жирный текст: Используйте 2 звездочки или 2 подчеркивания вокруг слов(а) + + + +- Курсив: Используйте 1 звездочку или 1 подчеркивание вокруг слов(а) + + + +### Пример написания (источник)[¶](#source "Ссылка на этот заголовок") + + + + This **word** is very __important__. + + + + And here, an *italic* word with one _underscore_. + + + +### Результат[¶](#result "Ссылка на этот заголовок") + + + +This **word** is very **important**. + + + +And here, an *italic* word with one *underscore*. + + + +Неупорядоченные списки[¶](#unordered-lists "Ссылка на этот заголовок") +---------------------------------------------------------------------- + + + +Неупорядоченный список использует звездочки, минусы или плюсы вначале абзаца + + + +### Пример написания (источник)[¶](#id1 "Ссылка на этот заголовок") + + + + - Item 1 + + - Item 2 + + - Item 3 + + + + or + + + + * Item 1 + + * Item 2 + + * Item 3 + + + +### Результат[¶](#id2 "Ссылка на этот заголовок") + + + +- Item 1 + +- Item 2 + +- Item 3 + + + +Упорядоченные списки[¶](#ordered-lists "Ссылка на этот заголовок") +------------------------------------------------------------------ + + + +Упорядоченные списки префиксом имеют цифру: + + + +### Пример написания (источник)[¶](#id3 "Ссылка на этот заголовок") + + + + 1. Do that first + + 2. Do this + + 3. And that + + + +### Результат[¶](#id4 "Ссылка на этот заголовок") + + + +1. Do that first + +2. Do this + +3. And that + + + +Ссылки[¶](#links "Ссылка на этот заголовок") +-------------------------------------------- + + + +### Пример написания (источник)[¶](#id5 "Ссылка на этот заголовок") + + + + [My link title](https://kanboard.net/) + + + + <https://kanboard.net> + + + +### Результат[¶](#id6 "Ссылка на этот заголовок") + + + +[My link title](https://kanboard.net/) + + + +[https://kanboard.net](https://kanboard.net) + + + +Исходный код[¶](#source-code "Ссылка на этот заголовок") +-------------------------------------------------------- + + + +### Код встраиваемый в текст[¶](#inline-code "Ссылка на этот заголовок") + + + +Используйте обратные кавычки (переключитесь на анлийскую раскладку и нажмите ё) + + + + Execute this command: `tail -f /var/log/messages`. + + + +### Результат[¶](#id7 "Ссылка на этот заголовок") + + + +Execute this command: `tail -f /var/log/messages`{.docutils .literal}. + + + +### Блоки кода[¶](#code-blocks "Ссылка на этот заголовок") + + + +Используйте 3 обратных кавычки с указанием языка программирования + + + + ```php + + <?php + + + + phpinfo(); + + + + ?> + + ``` + + + +### Результат[¶](#id8 "Ссылка на этот заголовок") + + + + <?php + + + + phpinfo(); + + + + ?> + + + +Заголовки[¶](#titles "Ссылка на этот заголовок") +------------------------------------------------ + + + +### Пример написания (источник)[¶](#id9 "Ссылка на этот заголовок") + + + + # Title level 1 + + + + ## Title level 2 + + + + ### Title level 3 + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/task-links.markdown b/doc/ru_RU/task-links.markdown new file mode 100644 index 00000000..2912f91b --- /dev/null +++ b/doc/ru_RU/task-links.markdown @@ -0,0 +1,93 @@ +Ссылки на задачи +================ + + + +Задачи могут быть созданы вместе с предопределенными связями: + + + +![Task Links](https://kanboard.net/screenshots/documentation/task-links.png) + +Рисунок. Ссылки на задачи + + + +Связи по умолчанию: + + + +- **относится к** + + + +- **блокирована**| блокирует + + + +- **блокирует** | блокирована + + + +- **дублирована** | дублирует + + + +- **дублирует** | дублирована + + + +- **является продолжением** | является началом для + + + +- **является началом для** | является продолжением + + + +- **часть вехи** | является вехой для + + + +- **является вехой для** | часть вехи + + + +- **исправлено** | исправляет + + + +- **исправляет** | исправлено + + + +Эти названия могут быть быть изменены в настройках приложения. + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/tests.markdown b/doc/ru_RU/tests.markdown new file mode 100644 index 00000000..2373d030 --- /dev/null +++ b/doc/ru_RU/tests.markdown @@ -0,0 +1,262 @@ +Автоматизированные тесты +======================== + + + +[PHPUnit](https://phpunit.de/) используется для запуска автоматизированных тестов в Канборд. + + + +Вы можете запускать тесты для разных баз данных (Sqlite, Mysql and Postgresql), чтобы убедится, что результаты будут одинаковые. + + + +Требования[¶](#requirements "Ссылка на этот заголовок") +------------------------------------------------------- + + + +- Компьютер Linux/Unix + + + +- PHP cli + + + +- Установленный PHPUnit + + + +- Mysql и Postgresql (опционально) + + + +Unit тесты[¶](#unit-tests "Ссылка на этот заголовок") +----------------------------------------------------- + + + +### Тестирование с Sqlite[¶](#test-with-sqlite "Ссылка на этот заголовок") + + + +Sqlite тестирование использует базу данных в памяти, без использования записи на файловую систему. + + + +Конфигурационный файл PHPUnit - `tests/units.sqlite.xml`. Из директории Kanboard запустите команду `phpunit -c tests/units.sqlite.xml`. + + + +Пример: + + + + phpunit -c tests/units.sqlite.xml + + + + PHPUnit 5.0.0 by Sebastian Bergmann and contributors. + + + + ............................................................... 63 / 649 ( 9%) + + ............................................................... 126 / 649 ( 19%) + + ............................................................... 189 / 649 ( 29%) + + ............................................................... 252 / 649 ( 38%) + + ............................................................... 315 / 649 ( 48%) + + ............................................................... 378 / 649 ( 58%) + + ............................................................... 441 / 649 ( 67%) + + ............................................................... 504 / 649 ( 77%) + + ............................................................... 567 / 649 ( 87%) + + ............................................................... 630 / 649 ( 97%) + + ................... 649 / 649 (100%) + + + + Time: 1.22 minutes, Memory: 151.25Mb + + + + OK (649 tests, 43595 assertions) + + + +### Тестирование с Mysql[¶](#test-with-mysql "Ссылка на этот заголовок") + + + +У вас должна быть локально установлена база данных Mysql или MariaDb. + + + +По умолчанию, используются следующие учетные данные: + + + +- Hostname: **localhost** + +- Username: **root** + +- Password: none + +- Database: **kanboard\_unit\_test** + + + +При каждом выполнении база данных удаляется и создается снова. + + + +Конфигурационный файл HPUnit - `tests/units.mysql.xml`. Из директории Kanboard запустите команду `phpunit -c tests/units.mysql.xml`. + + + +### Тестирование с Postgresql[¶](#test-with-postgresql "Ссылка на этот заголовок") + + + +У вас должен быть локально установлен Postgresql. + + + +По умолчанию, используются следующие учетные данные: + + + +- Hostname: **localhost** + +- Username: **postgres** + +- Password: none + +- Database: **kanboard\_unit\_test** + + + +Убедитесь, что пользователь `postgres` может создавать и удалять базу данных. База данных пересоздается при каждом выполнении теста. + + + +Конфигурационных файл PHPUnit - `tests/units.postgres.xml`. Из директории Kanboard, запустите команду `phpunit -c tests/units.postgres.xml`. + + + +Тесты интеграции[¶](#integration-tests "Ссылка на этот заголовок") +------------------------------------------------------------------ + + + +Фактически тестируются только вызовы API. + + + +Реальные HTTP calls выполняются с этими тестами. Поэтому, необходим локальный экземпляр Канборда, который слушает на `http://localhost:8000/`. + + + +Все данные будут удалены/изменены при тестировании. Более того скрипт будет сброшен и установлен новый ключ API. + + + +1. Запустите локольный экземпляр Канборда: `php -S 127.0.0.1:8000` + + + +2. Запустите тест в другом терминале + + + +Этот же метод используется для запуска тестов для разных баз данных: + + + +- Sqlite: `phpunit -c tests/integration.sqlite.xml` + +- Mysql: `phpunit -c tests/integration.mysql.xml` + +- Postgresql: `phpunit -c tests/integration.postgres.xml` + + + +Пример: + + + + phpunit -c tests/integration.sqlite.xml + + + + PHPUnit 5.0.0 by Sebastian Bergmann and contributors. + + + + ............................................................... 63 / 135 ( 46%) + + ............................................................... 126 / 135 ( 93%) + + ......... 135 / 135 (100%) + + + + Time: 1.18 minutes, Memory: 14.75Mb + + + + OK (135 tests, 526 assertions) + + + +Непрерывная интеграция с Travis-CI[¶](#continuous-integration-with-travis-ci "Ссылка на этот заголовок") + +-------------------------------------------------------------------------------------------------------- + + + +После каждого commit влитого в мой репозиторий, юнит тесты выполняются для 5 различных версий PHP: + + + +- PHP 7.0 + +- PHP 5.6 + +- PHP 5.5 + +- PHP 5.4 + +- PHP 5.3 + + + +При тестировании каждой версии PHP используются 3 поддерживаемые базы данных: Sqlite, Mysql and Postgresql. + + + +Конфигурационный файл Travis - `.travis.yml` - находится в корневой директории Kanboard. + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/time-tracking.markdown b/doc/ru_RU/time-tracking.markdown new file mode 100644 index 00000000..98364d38 --- /dev/null +++ b/doc/ru_RU/time-tracking.markdown @@ -0,0 +1,112 @@ +Отслеживание времени +==================== + + + +Отслеживание времени (контроль времени) может быть использовано для уровня задач или для уровня подзадач. + + + +Отслеживание времени испольнения задач[¶](#task-time-tracking "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------- + + + +![Task time tracking](https://kanboard.net/screenshots/documentation/task-time-tracking.png) + +Рисунок. Отслеживание времени испольнения задач + + + +Задачи имеют два поля: + + + +- Запланировано времени + + + +- Затрачено времени + + + +Эти значения показывают время работы и могут быть установлены вручную + + + +Отслеживание времени подзадач[¶](#subtask-time-tracking "Ссылка на этот заголовок") +----------------------------------------------------------------------------------- + + + +![Subtask time tracking](https://kanboard.net/screenshots/documentation/subtask-time-tracking.png) + +Рисунок. Отслеживание времени подзадач + + + +Подзадачи тоже имеют поля “Запланировано” и “Затрачено” время. + + + +Когда вы меняете значения в этих полях, **отслеживание времени задачи обновляется автоматически и формируется суммарное время всех подзадач** + + + +Канборд записывает время между изменениями статуса каждой подзадачи в отдельную таблицу. + + + +- При изменении статуса подзадачи с **“Для испольнения”** на **“В работе”**, записывается время начала + + + +- При изменении статуса подзадачи с **“В работе”** на **“Выполнено”**, записывается как время окончания и, при этом, обновляется **затраченное время** в подзадаче и в задаче. + + + +Анализ всех записей можно увидеть на странице детального просмотра задачи: + + + +![Task timesheet](https://kanboard.net/screenshots/documentation/task-timesheet.png) + +Рисунок. Таблица учета времени. + + + +Для каждой подзадачи, таймер может быть остановлен и запущен в любое время: + + + +![Subtask timer](https://kanboard.net/screenshots/documentation/subtask-timer.png) + +Рисунок. Таймер подзадач. + + + +- Таймер не зависит от статуса подзадачи + + + +- Вы можете запустить таймер для новой записи, созданной в таблице отслеживания задач, в любое время + + + +- Вы можете остановить учет времени даты завершения в таблице отслеживания задач, в любое время + + + +- Подсчет затраченного времени округляется до четверти часа + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/transitions.markdown b/doc/ru_RU/transitions.markdown new file mode 100644 index 00000000..efb95c50 --- /dev/null +++ b/doc/ru_RU/transitions.markdown @@ -0,0 +1,60 @@ +Перемещения задач +================= + + + +Запись о перемещении отражает каждое движение задачи между колонками. + + + +![Transitions](https://kanboard.net/screenshots/documentation/transitions.png) + +Рисунок. Перемещения. + + + +Перемещение доступно в боковом меню в детальном представлении задачи (**Перемещения**). Вы можете увидеть следующую информацию: + + + +- Дата, когда было выполенено перемещение + + + +- Исходная колонка - колонка, из которой было сделано перемещение + + + +- Колонка назначения - колонка, в которую была перемещена задача + + + +- Исполнитель (пользователь, который переместил задачу) + + + +- Время проведенное в колонке (сколько времени было затрачено на выполнение задачи в указанной колонке) + + + +Данные о перемещении задач, также, могут быть экспортированы со страницы настроек проекта (**Меню** -\> **Экспорт**). + + + +![Transitions Export](https://kanboard.net/screenshots/documentation/transitions-export.png) + +Рисунок. Экспорт перемещений задач. + + + +Для указанного промежутка времени вы можете сформировать CSV файл, который вы можете импортировать в любое программное обеспечение с электронными таблицами (например, Excell). + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/translations.markdown b/doc/ru_RU/translations.markdown new file mode 100644 index 00000000..f4bcafc0 --- /dev/null +++ b/doc/ru_RU/translations.markdown @@ -0,0 +1,155 @@ +Переводы на другие языки (локализация) +====================================== + + + +Как перевести Канборд на новый язык?[¶](#how-to-translate-kanboard-to-a-new-language "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------------------------------- + + + +- Переводы хранятся в директории `app/Locale` + + + +- В этой директории есть поддиректории для разных языков, например, для русского имеется `ru_RU`, для французского - `fr_FR` и т.д. + + + +- Переводы находятся в PHP файле, который возвращает массив с парой ключ-значение + + + +- Ключ - оригинальный текст на английском и значение - перевод на соответсвующем языке + + + +- **Французские переводы всегда в актуальном состоянии** + + + +- Всегда используйте последнюю версию (branch master) + + + +### Создание нового перевода[¶](#create-a-new-translation "Ссылка на этот заголовок") + + + +1. Создайте новую директорию: `app/Locale/xx_XX`, например `app/Locale/fr_CA` для канадского фрацузского + + + +2. Создайте новый файл для перевода: `app/Locale/xx_XX/translations.php` + + + +3. Используйте как образец содержимое французского перевода (локализации) и замените значения + + + +4. Внесите изменения в файл `app/Model/Language.php` + + + +5. Проверьте добавленный язык на локальной версии Канборда + + + +6. Пошлите [pull-request на Github](https://help.github.com/articles/using-pull-requests/) + + + +Как обновить имеющийся перевод?[¶](#how-to-update-an-existing-translation "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------------------- + + + +1. Откройте файл перевода `app/Locale/xx_XX/translations.php` + + + +2. Отсутсвующие переводы закоментированы - `//` и значения пустые, нужно заполнить значения и удалить коментарий + + + +3. Проверьте внесенные изменения на локальной версии Канборда и пошлите [pull-request](https://help.github.com/articles/using-pull-requests/) + + + +Как добавить новый текст перевода в приложение?[¶](#how-to-add-new-translated-text-in-the-application "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------------------- + + + +Переводы отображаются с помощью функций в исходном коде: + + + +- `t()`: показывает текст с HTML escaping + + + +- `e()`: показывает текст без HTML escaping + + + +Всегда используйте английскую версию исходного кода. + + + +Текстовые строки используют функцию `sprintf()` для замены элементов: + + + +- `%s` используется для замены строки + + + +- `%d` используется для замены цифры + + + +Ознакомится с доступными форматами вы можете в [документации PHP](http://php.net/sprintf). + + + +Как найти отсутствующие переводы в приложении?[¶](#how-to-find-missing-translations-in-the-applications "Ссылка на этот заголовок") +----------------------------------------------------------------------------------------------------------------------------------- + + + +Из терминала запустите следующую команду: + + + + ./kanboard locale:compare + + + +Все отсутствующие и неиспользуемые переводы будут показаны на экране. Добавьте их во французскую локализацию и синхронизируйте с другими локализациями (смотрите ниже) + + + +Как синхронизировать файлы переводов?[¶](#how-to-synchronize-translation-files "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------------------------- + + + +В оболочке Unix запустите следующую команду: + + + + ./kanboard locale:sync + + + +Французский перевод используется для ссылки на другие локализации. + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/ubuntu-installation.markdown b/doc/ru_RU/ubuntu-installation.markdown new file mode 100644 index 00000000..ac3cb565 --- /dev/null +++ b/doc/ru_RU/ubuntu-installation.markdown @@ -0,0 +1,111 @@ +Как инсталировать Канборд на Ubuntu? +==================================== + + + +Ubuntu Xenial 16.04 LTS[¶](#ubuntu-xenial-16-04-lts "Ссылка на этот заголовок") +------------------------------------------------------------------------------- + + + +Установите Apache и PHP: + + + + sudo apt-get update + + sudo apt-get install -y apache2 libapache2-mod-php7.0 php7.0-cli php7.0-mbstring php7.0-sqlite3 \ + + php7.0-opcache php7.0-json php7.0-mysql php7.0-pgsql php7.0-ldap php7.0-gd + + + +Установите Канборд: + + + + cd /var/www/html + + sudo wget https://kanboard.net/kanboard-latest.zip + + sudo unzip kanboard-latest.zip + + sudo chown -R www-data:www-data kanboard/data + + sudo rm kanboard-latest.zip + + + +Ubuntu Trusty 14.04 LTS[¶](#ubuntu-trusty-14-04-lts "Ссылка на этот заголовок") +------------------------------------------------------------------------------- + + + +Установите Apache и PHP: + + + + sudo apt-get update + + sudo apt-get install -y php5 php5-sqlite php5-mysql php5-pgsql php5-ldap php5-gd php5-json php5-mcrypt unzip + + + +Установите Канборд: + + + + cd /var/www/html + + sudo wget https://kanboard.net/kanboard-latest.zip + + sudo unzip kanboard-latest.zip + + sudo chown -R www-data:www-data kanboard/data + + sudo rm kanboard-latest.zip + + + +Ubuntu Precise 12.04 LTS[¶](#ubuntu-precise-12-04-lts "Ссылка на этот заголовок") +--------------------------------------------------------------------------------- + + + +Установите Apache и PHP: + + + + sudo apt-get update + + sudo apt-get install -y php5 php5-sqlite php5-mysql php5-pgsql php5-ldap php5-gd php5-json php5-mcrypt unzip + + + +Установите Канборд: + + + + cd /var/www + + sudo wget https://kanboard.net/kanboard-latest.zip + + sudo unzip kanboard-latest.zip + + sudo chown -R www-data:www-data kanboard/data + + sudo rm kanboard-latest.zip + + + +Некоторые возможности Канборда требуют [запуска ежедневных фоновых задач](cronjob.markdown). + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/update.markdown b/doc/ru_RU/update.markdown new file mode 100644 index 00000000..7cfabdb0 --- /dev/null +++ b/doc/ru_RU/update.markdown @@ -0,0 +1,57 @@ +Обновление Канборд до новой версии +================================== + + +Обновление Канборда до новой версии бесшовное. Процесс сводится к тому, что надо просто скопировать каталог с данными из старой версии в новый Канборд. Канборд запустит миграцию баз данных автоматически. + + + +Важные замечания перед обновлением[¶](#important-things-to-do-before-updating "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------- + +- Перед обновлением, обязательно сделайте копию ваших данных со старой версии Канборда + +- Всегда следите за [историей изменений](https://github.com/fguillot/kanboard/blob/master/ChangeLog) для отслеживания критических изменений + +- Всегда закрывайте все пользовательские сессии (очищайте все сессии на сервере) + + +Обновление из архива (стабильная версия)[¶](#from-the-archive-stable-version "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------- + + + +1. Скачайте и распакуйте архив с новой версией + +2. Скопируйте содержимое каталога с данными старой версии во вновь распакованный каталог + +3. Скопируйте из старой версии Канборда `config.php`, если вы его создавали + +4. Скопируйте плагины, если есть + +5. Убедитесь, что директория `data` имеет права на запись от пользователя веб сервера + +6. Проверьте работу новой версии + +7. Удалите старую версию Канборда + + +Обновление из репозитория (разрабатываемая версия)[¶](#from-the-repository-development-version "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------------------------- + + + +1. `git pull` + +2. `composer install --no-dev` + +3. Выполните вход и проверьте, что все работает корректно + + +**Внимание**: Выполняя обновление из разрабатываемой версии, вы должны понимать, что это нестабильная версия и берете все риски по работе Канборд на себя. + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/usage-examples.markdown b/doc/ru_RU/usage-examples.markdown new file mode 100644 index 00000000..d0d580e8 --- /dev/null +++ b/doc/ru_RU/usage-examples.markdown @@ -0,0 +1,193 @@ +Примеры использования +===================== + + + +Вы можете настроить вашу доску в соответсвии с вашими бизнес-процессами + + + +Разработка программного обеспечения[¶](#software-development "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------- + + + +- Заказ + + + +- Готов + + + +- В работе + + + +- Требуется утверждение + + + +- Утверждено + + + +- Развернуто в продакшн + + + +Отслеживание ошибок[¶](#bug-tracking "Ссылка на этот заголовок") +---------------------------------------------------------------- + + + +- Сообщение + + + +- Подтверждено + + + +- В работе + + + +- Проверено + + + +- Исправлено + + + +Продажи[¶](#sales "Ссылка на этот заголовок") +--------------------------------------------- + + + +- Клиенты + + + +- Встречи + + + +- Предложения + + + +- Приобретение + + + +Эффективное управление бизнесом[¶](#lean-business-management "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------- + + + +- Идеи + + + +- События + + + +- Мероприятия + + + +- Анализы + + + +- Исполненно + + + +Подбор персонала[¶](#recruiting-process "Ссылка на этот заголовок") +------------------------------------------------------------------- + + + +- Предложения о работе + + + +- Кандидаты + + + +- Телефонный отбор + + + +- Собеседование + + + +- Наем + + + +Онлайн магазин[¶](#online-shops "Ссылка на этот заголовок") +----------------------------------------------------------- + + + +- Заказы + + + +- Упаковка + + + +- Готов к отправке + + + +- Отправлен + + + +Производство[¶](#manufactory "Ссылка на этот заголовок") +-------------------------------------------------------- + + + +- Заказы покупателей + + + +- Сборка + + + +- Проверка + + + +- Упаковка + + + +- Готово к отгрузке + + + +- Отправлен + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/user-management.markdown b/doc/ru_RU/user-management.markdown new file mode 100644 index 00000000..ce74b7f8 --- /dev/null +++ b/doc/ru_RU/user-management.markdown @@ -0,0 +1,89 @@ +Управление пользователями +========================= + + + +Создание нового пользователя[¶](#add-a-new-user "Ссылка на этот заголовок") +--------------------------------------------------------------------------- + + + +Только администратор может создавать нового пользователя. + + + +1. В выпадающем меню, в правом верхнем углу, выберите **Управление пользователями** + + + +2. Вверху имеются ссылки - **Новый локальный пользователь** и **Новый удаленный пользователь** + + + +3. При создании пользователя нужно заполнить форму и сохранить + + + +![New user](screenshots/new-user.png) + +Рисунок. Форма создания нового пользователя. + + + +При создании **Локального пользователя** вы должны, как минимум, заполнить следующие поля: + + + +- **Имя пользователя**: это поле является уникальным идентификатором вашего пользователя (логин) + + + +- **Пароль**: Пароль пользователя должен иметь минимум 6 символов + + + +Для **удаленных пользователей** обязательно только **Имя пользователя**. + + + +Редактирование пользователей[¶](#edit-users "Ссылка на этот заголовок") +----------------------------------------------------------------------- + + + +После перехода в **Управление пользователями**, вам будет доступен список пользователей. Кликните на пользователя в столбце **Имя пользователя**. Далее, вам будет доступно редактирование настроек и профиля пользователя. + + + +- Если вы имеете права пользователя, то вы сможете только изменить ваш профиль + + + +- Для редактирования любого пользователя вам должны быть назначены права администратора + + + +Удаеление пользователей[¶](#remove-users "Ссылка на этот заголовок") +-------------------------------------------------------------------- + + + +В списке пользователей выберите в колонке **Действия** в выпадающем меню **Удалить**. Эта ссылка доступна только для администраторов. + + + +Если вы удалите пользователя, то все задачи назначенные пользователю перестанут быть назначенными. + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/user-mentions.markdown b/doc/ru_RU/user-mentions.markdown new file mode 100644 index 00000000..766103e3 --- /dev/null +++ b/doc/ru_RU/user-mentions.markdown @@ -0,0 +1,49 @@ +Ссылка на пользователя +====================== + + + +В Канборде есть возможность посылать уведомления пользователю, если кто-то ссылается на него в тексте. + + + +Если вы хотите заострить внимание о ком-либо в комментарии или в задаче, то вы можете использовать символ @ и следом указать имя пользователя. Канборд автоматически предлагает список пользователей: + + + +![User Mention](screenshots/mention-autocomplete.png) + +Рисунок. Ссылка на пользователя. + + + +- В данный момент, добавлять ссылку на пользователя можно только в описании задачи и тексте комментария. + + + +- Ссылка на пользователя работает только в задачах и при создании комментария. + + + +- Для получения уведомления, пользователь, на которого ссылаются, должен быть участником проекта, в котором создается ссылка. + + + +- Если была создана ссылка на пользователя, то этот пользователь получит уведомление. + + + +- @username - выглядит как ссылка на публичный профиль пользователя. + + + +Уведомление посылаются пользователю в соответсвии с пользовательскими настройками: это может быть email, уведомление на веб странице или даже сообщение в Slack/Hipchat/Jabber, если вы установили соответсвующие плагины. + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/user-types.markdown b/doc/ru_RU/user-types.markdown new file mode 100644 index 00000000..9afb58b8 --- /dev/null +++ b/doc/ru_RU/user-types.markdown @@ -0,0 +1,26 @@ +Типы пользователей +================== + + + +В Канборде могут быть два типа пользователей: + + + +| Тип | Описание | +|--------------|-------------------------------------------------------------| +| Локальный пользователь | Пароль пользователя хранится в базе данных Канборда| +| Удаленный пользователь | Учетные данные пользователя управляются (контролируются) другой системой (например, LDAP сервер). Другими словами, аутентификация пользователя происходит во внешней системе, не в Канборде.| + + + +Примеры удаленных пользователей: + +- LDAP пользователь + +- Аутентификация пользователя через реверс-прокси + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/vagrant.markdown b/doc/ru_RU/vagrant.markdown new file mode 100644 index 00000000..59e920cc --- /dev/null +++ b/doc/ru_RU/vagrant.markdown @@ -0,0 +1,51 @@ +Запуск Канборда с Vagrant +========================= + + + +Вы можете легко развернуть Канборд с Vagrant: + + + +- Склонируйте проект с репозитория git + + + +- Выполните `vagrant up` + + + +- Для входа в приложение используйте URL `http://localhost:8001/` + + + +Виртуальная машина построена на Ubuntu 14.04 с PHP 5.5. + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/webhooks.markdown b/doc/ru_RU/webhooks.markdown new file mode 100644 index 00000000..dbba0867 --- /dev/null +++ b/doc/ru_RU/webhooks.markdown @@ -0,0 +1,477 @@ +Webhooks +======== + +Webhooks служат для взаимодействия с внешними приложениями. Webhook посылает уведомление стороннему приложению о событиях, которые произошли в Канборд. + + +- Webhooks могут быть использованы для создания задач вызовом простого URL (Вы можете сделать это и при помощи API) +- Обращение к внешнему приложению может происходить автоматически, когда наступает какое-либо событие в Канборд (создана задача, обновлен комментарий и т.д.) + + + +Как написать webhook приемник во внешнем приложении?[¶](#how-to-write-a-web-hook-receiver "Ссылка на этот заголовок") +--------------------------------------------------------------------------------------------------------------------- + +Все внутренние события в Канборде могут быть посланы во внешний URL. + +- Webhook URL (url приемник внешнего приложения) может быть задан в **Настройки** -\> **Webhooks** -\> **Webhook URL** +- Когда в Канборде происходит событие, Канборд обращается к указанному URL автоматически +- Данные конвертируются в формат JSON и передаются с помощью POST HTTP запроса +- Webhook ключ передается в составе запроса в виде строкового параметра. Таким образом, вы можете проверить, что запрос на самом деле пришел из Канборда. +- **Созданный вами URL должен среагировать в течении 1 секунды**. Это желательно сделать потому, что запросы являются синхронными (ограничения языка PHP) и возможны тормоза в пользовательском интерфейсе, если скрипт будет слишком медленный! + + + +### Список поддерживаемых событий[¶](#list-of-supported-events "Ссылка на этот заголовок") + +- comment.create +- comment.update +- comment.delete +- file.create +- task.move.project +- task.move.column +- task.move.position +- task.move.swimlane +- task.update +- task.create +- task.close +- task.open +- task.assignee_change +- subtask.update +- subtask.create +- subtask.delete +- task_internal_link.create_update +- task_internal_link.delete + + + +### Пример HTTP запроса[¶](#example-of-http-request "Ссылка на этот заголовок") + + + + POST https://your_webhook_url/?token=WEBHOOK_TOKEN_HERE + + User-Agent: Kanboard Webhook + + Content-Type: application/json + + Connection: close + + + + { + + "event_name": "task.move.column", + + "event_data": { + + "task_id": "1", + + "project_id": "1", + + "position": 1, + + "column_id": "1", + + "swimlane_id": "0", + + "src_column_id": "2", + + "dst_column_id": "1", + + "date_moved": "1431991532", + + "recurrence_status": "0", + + "recurrence_trigger": "0" + + } + + } + + + +Функциональная часть всех событий имеет следующий формат: + + + + { + + "event_name": "model.event_name", + + "event_data": { + + "key1": "value1", + + "key2": "value2", + + ... + + } + + } + + + +Значения `event_data`{.docutils .literal} могут быть неупорядочены в событиях. + + + +### Пример функциональной части события[¶](#examples-of-event-payloads "Ссылка на этот заголовок") + + + +Создание задачи: + + + + { + + "event_name": "task.create", + + "event_data": { + + "title": "Demo", + + "description": "", + + "project_id": "1", + + "owner_id": "1", + + "category_id": 0, + + "swimlane_id": 0, + + "column_id": "2", + + "color_id": "yellow", + + "score": 0, + + "time_estimated": 0, + + "date_due": 0, + + "creator_id": 1, + + "date_creation": 1431991532, + + "date_modification": 1431991532, + + "date_moved": 1431991532, + + "position": 1, + + "task_id": 1 + + } + + } + + + +Изменение задачи: + + + + { + + "event_name": "task.update", + + "event_data": { + + "id": "1", + + "title": "Demo", + + "description": "", + + "date_creation": "1431991532", + + "color_id": "yellow", + + "project_id": "1", + + "column_id": "1", + + "owner_id": "1", + + "position": "1", + + "is_active": "1", + + "date_completed": null, + + "score": "0", + + "date_due": "0", + + "category_id": "2", + + "creator_id": "1", + + "date_modification": 1431991603, + + "reference": "", + + "date_started": 1431993600, + + "time_spent": 0, + + "time_estimated": 0, + + "swimlane_id": "0", + + "date_moved": "1431991572", + + "recurrence_status": "0", + + "recurrence_trigger": "0", + + "recurrence_factor": "0", + + "recurrence_timeframe": "0", + + "recurrence_basedate": "0", + + "recurrence_parent": null, + + "recurrence_child": null, + + "task_id": "1", + + "changes": { + + "category_id": "2" + + } + + } + + } + + + +События изменеия задачи имеют поле `changes`{.docutils .literal}, которое содержит обновленные значения. + + + +Перемещение задачи в другую колонку: + + + + { + + "event_name": "task.move.column", + + "event_data": { + + "task_id": "1", + + "project_id": "1", + + "position": 1, + + "column_id": "1", + + "swimlane_id": "0", + + "src_column_id": "2", + + "dst_column_id": "1", + + "date_moved": "1431991532", + + "recurrence_status": "0", + + "recurrence_trigger": "0" + + } + + } + + + +Перемещение задачи в другое место: + + + + { + + "event_name": "task.move.position", + + "event_data": { + + "task_id": "2", + + "project_id": "1", + + "position": 1, + + "column_id": "1", + + "swimlane_id": "0", + + "src_column_id": "1", + + "dst_column_id": "1", + + "date_moved": "1431996905", + + "recurrence_status": "0", + + "recurrence_trigger": "0" + + } + + } + + + +Создание комментария: + + + + { + + "event_name": "comment.create", + + "event_data": { + + "id": 1, + + "task_id": "1", + + "user_id": "1", + + "comment": "test", + + "date_creation": 1431991615 + + } + + } + + + +Изменение комментария: + + + + { + + "event_name": "comment.update", + + "event_data": { + + "id": "1", + + "task_id": "1", + + "user_id": "1", + + "comment": "test edit" + + } + + } + + + +Создание подзадачи: + + + + { + + "event_name": "subtask.create", + + "event_data": { + + "id": 3, + + "task_id": "1", + + "title": "Test", + + "user_id": "1", + + "time_estimated": "2", + + "position": 3 + + } + + } + + + +Изменение подзадачи: + + + + { + + "event_name": "subtask.update", + + "event_data": { + + "id": "1", + + "status": 1, + + "task_id": "1" + + } + + } + + + +Загрузка файла: + + + + { + + "event_name": "file.create", + + "event_data": { + + "task_id": "1", + + "name": "test.png" + + } + + } + + + +Создан снимок экрана: + + + + { + + "event_name": "file.create", + + "event_data": { + + "task_id": "2", + + "name": "Screenshot taken May 19, 2015 at 10:56 AM" + + } + + } + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/what-is-kanban.markdown b/doc/ru_RU/what-is-kanban.markdown new file mode 100644 index 00000000..46196bbb --- /dev/null +++ b/doc/ru_RU/what-is-kanban.markdown @@ -0,0 +1,80 @@ +Что такое Kanban? +================= + + + +Kanban - методология, которая первоначально применила компания Toyota для увеличения производительности. Описание в википедии - [Канбан доска](https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BD%D0%B1%D0%B0%D0%BD-%D0%B4%D0%BE%D1%81%D0%BA%D0%B0) + + + +Смысл Kanban заключается в следующем: + + + +- Визуализация рабочих процессов + + + +- Уменьшение времени для достижения цели + + + +Визуализация рабочих процессов[¶](#visualize-your-workflow "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------- + + + +- Ваш рабочий процесс отображается на доске и вы ясно видете картину вашего проекта + + + +- Каждая колонка представляет шаг вашего рабочего процесса + + + +Сосредоточте внимание и избегайте многозадачности[¶](#bring-focus-and-avoid-multitasking "Ссылка на этот заголовок") +-------------------------------------------------------------------------------------------------------------------- + + + +- Каждая фаза может иметь работу ограниченную временем + + + +- Уменьшайте объем для определения узких мест + + + +- Ограничте количество одновременно выполняемых задач + + + +Подсчет производительности и улучшений[¶](#measure-performance-and-improvement "Ссылка на этот заголовок") +---------------------------------------------------------------------------------------------------------- + + + +Kanban использует время выполнения (lead time) и время цикла (cycle time) для подсчета производительности: + + + +- **Время выполнения**: Время между созданием задачи и ее завершением + + + +- **Время цикла**: Время между началом выполнения задачи и ее завершением + + + +Например, вам заложено время выполнения - 100 дней, а затратили на выполнение задачи (время цикла) всего 1 час. + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/windows-apache-installation.markdown b/doc/ru_RU/windows-apache-installation.markdown new file mode 100644 index 00000000..7f181e10 --- /dev/null +++ b/doc/ru_RU/windows-apache-installation.markdown @@ -0,0 +1,253 @@ +Установка Канборд на Windows Server и Apache +============================================ + + + +Это руководство поможет вам шаг за шагом установить Канборд на Windows Server с Apache и PHP + + + +**Внимание**: Если у вас 64 разрядная платформа, то вам нужно выбрать “x64”, и выберите “x86” для 32 разрядной операционной системы. + + + +Установка распространяемого пакета Visual C++[¶](#visual-c-redistributable-installation "Ссылка на этот заголовок") +------------------------------------------------------------------------------------------------------------------- + + + +PHP и Apache скомпилированы с Visual Studio, поэтому вам нужно установить эту библиотеку, если вы не сделали это ранее. + + + +1. Скачайте библиотеку с [официального вебсайта Microsoft](http://www.microsoft.com/en-us/download/details.aspx?id=30679) + + + +2. Запустите установку `vcredist_x64.exe` или `vcredist_x86.exe`, в соответствии с вашей платформой + + + +Установка Apache[¶](#apache-installation "Ссылка на этот заголовок") +-------------------------------------------------------------------- + + + +1. Скачайте исходники Apache с [Apache Lounge](http://www.apachelounge.com/download/) + + + +2. Разархивируйте Apache24 в каталог `C:\Apache24` + + + +### Назначение имени сервера[¶](#define-the-server-name "Ссылка на этот заголовок") + + + +Откройте файл `C:\Apache24\conf\httpd.conf` и добавьте директиву: + + + + ServerName localhost + + + +### Установка сервиса Apache[¶](#install-the-apache-service "Ссылка на этот заголовок") + + + +Откройте консоль (`cmd.exe`), перейдите в каталог `C:\Apache24\bin` и установите сервис Apache: + + + + cd C:\Apache24\bin + + + + # Install the windows service + + httpd.exe -k install + + + +### Установка ApacheMonitor[¶](#install-apachemonitor "Ссылка на этот заголовок") + + + +- Выполните `C:\Apache24\bin\ApacheMonitor.exe` и добавьте его в автозагрузку. + + + +- Теперь во всплывающем меню, при нажатии правой кнопки мыши на иконке, нажмите запустить Apache + + + +### Проверка работы Apache[¶](#check-the-apache-installation "Ссылка на этот заголовок") + + + +В браузере откройте <http://localhost/>. Вы должны увидеть пустую страницу и текст “It works!”. + + + +Установка PHP[¶](#php-installation "Ссылка на этот заголовок") +-------------------------------------------------------------- + + + +1. Скачайте последнюю стабильную версию PHP с [официального сайта PHP](http://windows.php.net/download/), выберите версию **Thread Safe** и используйте соответствующую разрядность: x86 or x64. + + + +2. Разархивируйте файлы в `C:\php` + + + +3. Перейдите в каталог PHP (`C:\php`) и переименуйе файл `php.ini-production` в `php.ini` + + + +Отредактируйте `php.ini`: + + + +Раскоментируйте директорию расширений: + + + + extension_dir = "C:/php/ext" + + + +Раскоментируйте следующие модули PHP: + + + + extension=php_gd2.dll + + extension=php_ldap.dll + + extension=php_mbstring.dll + + extension=php_openssl.dll + + extension=php_pdo_sqlite.dll + + + +Установите часовой пояс: + + + + date.timezone = America/Montreal + + + +Список всех поддерживаемых часовых поясов можно посмотреть в [документации PHP](http://php.net/manual/en/timezones.america.php). + + + +Загрузка модулей PHP для Apache: + + + +Добавьте следующие строки конфигурации в файл `C:\Apache24\conf\httpd.conf`: + + + + LoadModule php5_module "c:/php/php5apache2_4.dll" + + AddHandler application/x-httpd-php .php + + + + # configure the path to php.ini + + PHPIniDir "C:/php" + + + + # change this directive + + DirectoryIndex index.php index.html + + + +Перезапустите Apache. + + + +Проверка работы PHP: + + + +Создайте файл `phpinfo.php` в каталоге `C:\Apache24\htdocs`: + + + + <?php + + + + phpinfo(); + + + + ?> + + + +Откройте в браузере [http://localhost/phpinfo.php](http://localhost/phpinfo.php) и вы должны увидеть информацию о PHP. + + + +Устновка Канборд[¶](#kanboard-installation "Ссылка на этот заголовок") +---------------------------------------------------------------------- + + + +- [Скачайте zip файл](https://kanboard.net/downloads) + + + +- Разархивируйте архив в `C:\Apache24\htdocs\kanboard` + + + +- Откройте в браузере <http://localhost/kanboard/>. Ура. Теперь вы можете работать в Канборд. Все легко и просто. + + + +- Учетная запись и пароль по умолчанию - **admin/admin** + + + +Протестировано на[¶](#tested-configuration "Ссылка на этот заголовок") +---------------------------------------------------------------------- + + + +- Windows 2008 R2 / Apache 2.4.12 / PHP 5.6.8 + + + +Примечание[¶](#notes "Ссылка на этот заголовок") +------------------------------------------------ + + + +- Некоторые функции Канборда требуют выполнять [запуск ежедневных фоновых задач](cronjob.markdown). + + + + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/ru_RU/windows-iis-installation.markdown b/doc/ru_RU/windows-iis-installation.markdown new file mode 100644 index 00000000..0aabca6a --- /dev/null +++ b/doc/ru_RU/windows-iis-installation.markdown @@ -0,0 +1,150 @@ +Инсталяция Kanboard на Windows 2008/2012 с IIS +============================================== + + + +Это пошаговое руководство поможет вам установить Канборд на Windows Server с IIS и PHP. + + + +Установка PHP[¶](#php-installation "Ссылка на этот заголовок") +-------------------------------------------------------------- + + + +- Установите IIS на ваш Windows сервер (Добавьте новую роль и не забудьте включить CGI/FastCGI) + + + +- При инсталяции PHP можете использовать следующую официальную документацию: + + + + - [Microsoft IIS 5.1 and IIS 6.0](http://php.net/manual/en/install.windows.iis6.php) + + - [Microsoft IIS 7.0 and later](http://php.net/manual/en/install.windows.iis7.php) + + - [PHP for Windows is available here](http://windows.php.net/download/) + + + +Отредактируйте `php.ini`, раскоментируйте эти PHP модули: + + + + extension=php_gd2.dll + + extension=php_ldap.dll + + extension=php_mbstring.dll + + extension=php_openssl.dll + + extension=php_pdo_sqlite.dll + + + +Установите часовой пояс + + + + date.timezone = America/Montreal + + + +Список поддерживаемых часовых поясов можно посмотреть в [документации PHP](http://php.net/manual/en/timezones.america.php). + + + +Проверьте, что PHP работает корректно: + + + +Перейдите в корневой каталог IIS `C:\inetpub\wwwroot` и создайте файл `phpinfo.php`, со следующим содержимым: + + + + <?php + + + + phpinfo(); + + + + ?> + + + +В браузере откройте страницу `http://localhost/phpinfo.php` и вы должны увидеть текущие настройки PHP. Если вы видите ошибку 500, значит что-то сделано неправильно при установке. + + + +Примечание: + + + +- Если вы используете PHP \< 5.4, то необходимо включить короткие теги (short tags) в php.ini + + + +- Не забудьте включить необходимые php расширения, упомянутые выше + + + +- Если вы наблюдаете ошибку “the library MSVCP110.dll is missing”, то возможно вам нужно скачать распространяемый пакет Visual C++ для Visual Studio с сайта Microsoft. + + + +Установка Канборд[¶](#kanboard-installation "Ссылка на этот заголовок") +----------------------------------------------------------------------- + + + +- Скачайте zip файл + + + +- Распакуйте архив в `C:\inetpub\wwwroot\kanboard` (например) + + + +- Убедитесь, что у пользователя вебсервера IIS имеется доступ на запись на директорию `data` + + + +- Откройте веб браузер и используйте Kanboard <http://localhost/kanboard/> + + + +- Пользователь и пароль по умолчанию - **admin/admin** + + + +Работа Канборд тестировалось на[¶](#tested-configurations "Ссылка на этот заголовок") +------------------------------------------------------------------------------------- + + + +- Windows 2008 R2 Standard Edition / IIS 7.5 / PHP 5.5.16 + +- Windows 2012 Standard Edition / IIS 8.5 / PHP 5.3.29 + + + +Примечание[¶](#notes "Ссылка на этот заголовок") +------------------------------------------------ + + + +- Некоторые возможности Канборда требуют [запуск выполнения ежедневных фоновых задач](cronjob.markdown). + + + + + + + + +[Русская документация Kanboard](http://kanboard.ru/doc/) + diff --git a/doc/update.markdown b/doc/update.markdown index 44f81ff0..4aa59fff 100644 --- a/doc/update.markdown +++ b/doc/update.markdown @@ -10,7 +10,7 @@ Important things to do before updating - **Always make a backup of your data before upgrading** - Check that your backup is valid -- Always read the [change log](https://github.com/fguillot/kanboard/blob/master/ChangeLog) to check for breaking changes +- Always read the [change log](https://github.com/kanboard/kanboard/blob/master/ChangeLog) to check for breaking changes - Always close all user sessions (flush all sessions on the server) From the archive (stable version) diff --git a/doc/web.config b/doc/web.config new file mode 100644 index 00000000..1461fe2d --- /dev/null +++ b/doc/web.config @@ -0,0 +1,22 @@ +<?xml version="1.0"?> +<configuration> + <system.webServer> + <defaultDocument> + <files> + <clear /> + <add value="index.php" /> + </files> + </defaultDocument> + <rewrite> + <rules> + <rule name="Kanboard URL Rewrite" stopProcessing="true"> + <match url="^(.*)$" ignoreCase="false" /> + <conditions logicalGrouping="MatchAll"> + <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> + </conditions> + <action type="Rewrite" url="index.php" appendQueryString="true" /> + </rule> + </rules> + </rewrite> + </system.webServer> +</configuration> diff --git a/doc/webhooks.markdown b/doc/webhooks.markdown index 628c7e38..e43ab9ce 100644 --- a/doc/webhooks.markdown +++ b/doc/webhooks.markdown @@ -1,5 +1,5 @@ -Web Hooks -========= +Webhooks +======== Webhooks are useful to perform actions with external applications. @@ -21,6 +21,7 @@ All internal events of Kanboard can be sent to an external URL. - comment.create - comment.update +- comment.delete - file.create - task.move.project - task.move.column @@ -33,6 +34,9 @@ All internal events of Kanboard can be sent to an external URL. - task.assignee_change - subtask.update - subtask.create +- subtask.delete +- task_internal_link.create_update +- task_internal_link.delete ### Example of HTTP request @@ -43,19 +47,65 @@ Content-Type: application/json Connection: close { - "event_name": "task.move.column", - "event_data": { - "task_id": "1", - "project_id": "1", - "position": 1, - "column_id": "1", - "swimlane_id": "0", - "src_column_id": "2", - "dst_column_id": "1", - "date_moved": "1431991532", - "recurrence_status": "0", - "recurrence_trigger": "0" - } + "event_name": "task.move.column", + "event_data": { + "task_id": "4", + "task": { + "id": "4", + "reference": "", + "title": "My task", + "description": "", + "date_creation": "1469314356", + "date_completed": null, + "date_modification": "1469315422", + "date_due": "1469491200", + "date_started": "0", + "time_estimated": "0", + "time_spent": "0", + "color_id": "green", + "project_id": "1", + "column_id": "1", + "owner_id": "1", + "creator_id": "1", + "position": "1", + "is_active": "1", + "score": "0", + "category_id": "0", + "priority": "0", + "swimlane_id": "0", + "date_moved": "1469315422", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null, + "category_name": null, + "swimlane_name": null, + "project_name": "Demo Project", + "default_swimlane": "Default swimlane", + "column_title": "Backlog", + "assignee_username": "admin", + "assignee_name": null, + "creator_username": "admin", + "creator_name": null + }, + "changes": { + "src_column_id": "2", + "dst_column_id": "1", + "date_moved": "1469315398" + }, + "project_id": "1", + "position": 1, + "column_id": "1", + "swimlane_id": "0", + "src_column_id": "2", + "dst_column_id": "1", + "date_moved": "1469315398", + "recurrence_status": "0", + "recurrence_trigger": "0" + } } ``` @@ -80,26 +130,51 @@ Task creation: ```json { - "event_name": "task.create", - "event_data": { - "title": "Demo", - "description": "", - "project_id": "1", - "owner_id": "1", - "category_id": 0, - "swimlane_id": 0, - "column_id": "2", - "color_id": "yellow", - "score": 0, - "time_estimated": 0, - "date_due": 0, - "creator_id": 1, - "date_creation": 1431991532, - "date_modification": 1431991532, - "date_moved": 1431991532, - "position": 1, - "task_id": 1 - } + "event_name": "task.create", + "event_data": { + "task_id": 5, + "task": { + "id": "5", + "reference": "", + "title": "My new task", + "description": "", + "date_creation": "1469315481", + "date_completed": null, + "date_modification": "1469315481", + "date_due": "0", + "date_started": "0", + "time_estimated": "0", + "time_spent": "0", + "color_id": "orange", + "project_id": "1", + "column_id": "2", + "owner_id": "1", + "creator_id": "1", + "position": "1", + "is_active": "1", + "score": "3", + "category_id": "0", + "priority": "2", + "swimlane_id": "0", + "date_moved": "1469315481", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null, + "category_name": null, + "swimlane_name": null, + "project_name": "Demo Project", + "default_swimlane": "Default swimlane", + "column_title": "Ready", + "assignee_username": "admin", + "assignee_name": null, + "creator_username": "admin", + "creator_name": null + } + } } ``` @@ -107,113 +182,121 @@ Task modification: ```json { - "event_name": "task.update", - "event_data": { - "id": "1", - "title": "Demo", - "description": "", - "date_creation": "1431991532", - "color_id": "yellow", - "project_id": "1", - "column_id": "1", - "owner_id": "1", - "position": "1", - "is_active": "1", - "date_completed": null, - "score": "0", - "date_due": "0", - "category_id": "2", - "creator_id": "1", - "date_modification": 1431991603, - "reference": "", - "date_started": 1431993600, - "time_spent": 0, - "time_estimated": 0, - "swimlane_id": "0", - "date_moved": "1431991572", - "recurrence_status": "0", - "recurrence_trigger": "0", - "recurrence_factor": "0", - "recurrence_timeframe": "0", - "recurrence_basedate": "0", - "recurrence_parent": null, - "recurrence_child": null, - "task_id": "1", - "changes": { - "category_id": "2" + "event_name": "task.update", + "event_data": { + "task_id": "5", + "task": { + "id": "5", + "reference": "", + "title": "My new task", + "description": "New description", + "date_creation": "1469315481", + "date_completed": null, + "date_modification": "1469315531", + "date_due": "1469836800", + "date_started": "0", + "time_estimated": "0", + "time_spent": "0", + "color_id": "purple", + "project_id": "1", + "column_id": "2", + "owner_id": "1", + "creator_id": "1", + "position": "1", + "is_active": "1", + "score": "3", + "category_id": "0", + "priority": "2", + "swimlane_id": "0", + "date_moved": "1469315481", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null, + "category_name": null, + "swimlane_name": null, + "project_name": "Demo Project", + "default_swimlane": "Default swimlane", + "column_title": "Ready", + "assignee_username": "admin", + "assignee_name": null, + "creator_username": "admin", + "creator_name": null + }, + "changes": { + "description": "New description", + "color_id": "purple", + "date_due": 1469836800 + } } - } } ``` Task update events have a field called `changes` that contains updated values. -Move a task to another column: - -```json -{ - "event_name": "task.move.column", - "event_data": { - "task_id": "1", - "project_id": "1", - "position": 1, - "column_id": "1", - "swimlane_id": "0", - "src_column_id": "2", - "dst_column_id": "1", - "date_moved": "1431991532", - "recurrence_status": "0", - "recurrence_trigger": "0" - } -} -``` - -Move a task to another position: - -```json -{ - "event_name": "task.move.position", - "event_data": { - "task_id": "2", - "project_id": "1", - "position": 1, - "column_id": "1", - "swimlane_id": "0", - "src_column_id": "1", - "dst_column_id": "1", - "date_moved": "1431996905", - "recurrence_status": "0", - "recurrence_trigger": "0" - } -} -``` - Comment creation: ```json { - "event_name": "comment.create", - "event_data": { - "id": 1, - "task_id": "1", - "user_id": "1", - "comment": "test", - "date_creation": 1431991615 - } -} -``` - -Comment modification: - -``` -{ - "event_name": "comment.update", - "event_data": { - "id": "1", - "task_id": "1", - "user_id": "1", - "comment": "test edit" - } + "event_name": "comment.create", + "event_data": { + "comment": { + "id": "1", + "task_id": "5", + "user_id": "1", + "date_creation": "1469315727", + "comment": "My comment.", + "reference": null, + "username": "admin", + "name": null, + "email": null, + "avatar_path": null + }, + "task": { + "id": "5", + "reference": "", + "title": "My new task", + "description": "New description", + "date_creation": "1469315481", + "date_completed": null, + "date_modification": "1469315531", + "date_due": "1469836800", + "date_started": "0", + "time_estimated": "0", + "time_spent": "0", + "color_id": "purple", + "project_id": "1", + "column_id": "2", + "owner_id": "1", + "creator_id": "1", + "position": "1", + "is_active": "1", + "score": "3", + "category_id": "0", + "priority": "2", + "swimlane_id": "0", + "date_moved": "1469315481", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null, + "category_name": null, + "swimlane_name": null, + "project_name": "Demo Project", + "default_swimlane": "Default swimlane", + "column_title": "Ready", + "assignee_username": "admin", + "assignee_name": null, + "creator_username": "admin", + "creator_name": null + } + } } ``` @@ -221,28 +304,65 @@ Subtask creation: ```json { - "event_name": "subtask.create", - "event_data": { - "id": 3, - "task_id": "1", - "title": "Test", - "user_id": "1", - "time_estimated": "2", - "position": 3 - } -} -``` - -Subtask modification: - -```json -{ - "event_name": "subtask.update", - "event_data": { - "id": "1", - "status": 1, - "task_id": "1" - } + "event_name": "subtask.create", + "event_data": { + "subtask": { + "id": "1", + "title": "My subtask", + "status": "0", + "time_estimated": "0", + "time_spent": "0", + "task_id": "5", + "user_id": "1", + "position": "1", + "username": "admin", + "name": null, + "timer_start_date": 0, + "status_name": "Todo", + "is_timer_started": false + }, + "task": { + "id": "5", + "reference": "", + "title": "My new task", + "description": "New description", + "date_creation": "1469315481", + "date_completed": null, + "date_modification": "1469315531", + "date_due": "1469836800", + "date_started": "0", + "time_estimated": "0", + "time_spent": "0", + "color_id": "purple", + "project_id": "1", + "column_id": "2", + "owner_id": "1", + "creator_id": "1", + "position": "1", + "is_active": "1", + "score": "3", + "category_id": "0", + "priority": "2", + "swimlane_id": "0", + "date_moved": "1469315481", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null, + "category_name": null, + "swimlane_name": null, + "project_name": "Demo Project", + "default_swimlane": "Default swimlane", + "column_title": "Ready", + "assignee_username": "admin", + "assignee_name": null, + "creator_username": "admin", + "creator_name": null + } + } } ``` @@ -250,22 +370,118 @@ File upload: ```json { - "event_name": "file.create", - "event_data": { - "task_id": "1", - "name": "test.png" - } + "event_name": "task.file.create", + "event_data": { + "file": { + "id": "1", + "name": "kanboard-latest.zip", + "path": "tasks/5/6f32893e467e76671965b1ec58c06a2440823752", + "is_image": "0", + "task_id": "5", + "date": "1469315613", + "user_id": "1", + "size": "4907308" + }, + "task": { + "id": "5", + "reference": "", + "title": "My new task", + "description": "New description", + "date_creation": "1469315481", + "date_completed": null, + "date_modification": "1469315531", + "date_due": "1469836800", + "date_started": "0", + "time_estimated": "0", + "time_spent": "0", + "color_id": "purple", + "project_id": "1", + "column_id": "2", + "owner_id": "1", + "creator_id": "1", + "position": "1", + "is_active": "1", + "score": "3", + "category_id": "0", + "priority": "2", + "swimlane_id": "0", + "date_moved": "1469315481", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null, + "category_name": null, + "swimlane_name": null, + "project_name": "Demo Project", + "default_swimlane": "Default swimlane", + "column_title": "Ready", + "assignee_username": "admin", + "assignee_name": null, + "creator_username": "admin", + "creator_name": null + } + } } ``` -Screenshot created: +Task link creation: ```json { - "event_name": "file.create", - "event_data": { - "task_id": "2", - "name": "Screenshot taken May 19, 2015 at 10:56 AM" - } + "event_name": "task_internal_link.create_update", + "event_data": { + "task_link": { + "id": "2", + "opposite_task_id": "5", + "task_id": "4", + "link_id": "3", + "label": "is blocked by", + "opposite_link_id": "2" + }, + "task": { + "id": "4", + "reference": "", + "title": "My task", + "description": "", + "date_creation": "1469314356", + "date_completed": null, + "date_modification": "1469315422", + "date_due": "1469491200", + "date_started": "0", + "time_estimated": "0", + "time_spent": "0", + "color_id": "green", + "project_id": "1", + "column_id": "1", + "owner_id": "1", + "creator_id": "1", + "position": "1", + "is_active": "1", + "score": "0", + "category_id": "0", + "priority": "0", + "swimlane_id": "0", + "date_moved": "1469315422", + "recurrence_status": "0", + "recurrence_trigger": "0", + "recurrence_factor": "0", + "recurrence_timeframe": "0", + "recurrence_basedate": "0", + "recurrence_parent": null, + "recurrence_child": null, + "category_name": null, + "swimlane_name": null, + "project_name": "Demo Project", + "default_swimlane": "Default swimlane", + "column_title": "Backlog", + "assignee_username": "admin", + "assignee_name": null, + "creator_username": "admin", + "creator_name": null + } + } } ``` |