diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/analytics-tasks.markdown | 24 | ||||
-rw-r--r-- | docs/analytics.markdown | 37 | ||||
-rw-r--r-- | docs/api-json-rpc.markdown | 71 | ||||
-rw-r--r-- | docs/cli.markdown | 55 | ||||
-rw-r--r-- | docs/config.markdown | 13 | ||||
-rw-r--r-- | docs/docker.markdown | 28 | ||||
-rw-r--r-- | docs/duplicate-move-tasks.markdown | 58 | ||||
-rw-r--r-- | docs/faq.markdown | 19 | ||||
-rw-r--r-- | docs/github-authentication.markdown | 127 | ||||
-rw-r--r-- | docs/gitlab-webhooks.markdown | 14 | ||||
-rw-r--r-- | docs/google-authentication.markdown | 29 | ||||
-rw-r--r-- | docs/ical.markdown | 2 | ||||
-rw-r--r-- | docs/index.markdown | 6 | ||||
-rw-r--r-- | docs/ldap-authentication.markdown | 18 | ||||
-rw-r--r-- | docs/nice-urls.markdown | 36 | ||||
-rw-r--r-- | docs/recommended-configuration.markdown | 36 | ||||
-rw-r--r-- | docs/search.markdown | 117 | ||||
-rw-r--r-- | docs/slack.markdown | 10 | ||||
-rw-r--r-- | docs/user-management.markdown | 16 |
19 files changed, 486 insertions, 230 deletions
diff --git a/docs/analytics-tasks.markdown b/docs/analytics-tasks.markdown new file mode 100644 index 00000000..c5acea5f --- /dev/null +++ b/docs/analytics-tasks.markdown @@ -0,0 +1,24 @@ +Analytics for tasks +=================== + +Each task have an analytics section available from the left menu in the task view. + +Lead and cycle time +------------------- + + + +- The lead time is the time between the task creation and the date of completion (task closed). +- The cycle time is the time between the start date and the date of completion. +- If the task is not closed the current time is used instead of the date of completion. +- If the start date is not specified, the cycle time is not calculated. + +Note: You can configure an automatic action to define automatically the start date when you move a task to the column of your choice. + +Time spent into each column +--------------------------- + + + +- This chart show the total time spent into each column for the task. +- The time spent is calculated until the task is closed. diff --git a/docs/analytics.markdown b/docs/analytics.markdown index a6685917..810b5921 100644 --- a/docs/analytics.markdown +++ b/docs/analytics.markdown @@ -1,6 +1,8 @@ Analytics ========= +Each project have an analytics section. Depending how you are using Kanboard, you can see those reports: + User repartition ---------------- @@ -20,7 +22,8 @@ Cumulative flow diagram  -This chart show the number of tasks cumulatively for each column over the time. +- This chart show the number of tasks cumulatively for each column over the time. +- Everyday, the total number of tasks is recorded for each column. Note: You need to have at least 2 days of data to see the graph. @@ -30,13 +33,37 @@ Burndown chart  The [burn down chart](http://en.wikipedia.org/wiki/Burn_down_chart) is available for each project. -This chart is a graphical representation of work left to do versus time. -Kanboard use the complexity or story point to generate this diagram. +- This chart is a graphical representation of work left to do versus time. +- Kanboard use the complexity or story point to generate this diagram. +- Everyday, the sum of the story points for each column is calculated. + +Average time spent into each column +----------------------------------- + + + +This chart show the average time spent into each column for the last 1000 tasks. + +- Kanboard use the task transitions to calculate the data. +- The time spent is calculated until the task is closed. + +Average Lead and Cycle time +--------------------------- + + + +This chart show the average lead and cycle time for the last 1000 tasks over the time. + +- The lead time is the time between the task creation and the date of completion. +- The cycle time is time between the specified start date of the task to completion date. +- If the task is not closed, the current time is used instead of the date of completion. + +Those metrics are calculated and recorded everyday for the whole project. Don't forget to run the daily job for stats calculation ------------------------------------------------------- -To generate accurate analytics data, you should run the daily cronjob **project daily summaries** just before midnight. +To generate accurate analytics data, you should run the daily cronjob **project daily statistics**. -[Read the documentation about Kanboard CLI](http://kanboard.net/documentation/cli) +[Read the documentation about Kanboard CLI](cli.markdown) diff --git a/docs/api-json-rpc.markdown b/docs/api-json-rpc.markdown index e54c3a13..8a637412 100644 --- a/docs/api-json-rpc.markdown +++ b/docs/api-json-rpc.markdown @@ -306,9 +306,19 @@ Response example: "name": "API test", "is_active": "1", "token": "", - "last_modified": "1410263246", + "last_modified": "1436119135", "is_public": "0", - "description": "A sample project" + "is_private": "0", + "is_everybody_allowed": "0", + "default_swimlane": "Default swimlane", + "show_default_swimlane": "1", + "description": "test", + "identifier": "", + "url": { + "board": "http:\/\/127.0.0.1:8000\/?controller=board&action=show&project_id=1", + "calendar": "http:\/\/127.0.0.1:8000\/?controller=calendar&action=show&project_id=1", + "list": "http:\/\/127.0.0.1:8000\/?controller=listing&action=show&project_id=1" + } } } ``` @@ -345,9 +355,19 @@ Response example: "name": "Test", "is_active": "1", "token": "", - "last_modified": "0", + "last_modified": "1436119135", "is_public": "0", - "description": "A sample project" + "is_private": "0", + "is_everybody_allowed": "0", + "default_swimlane": "Default swimlane", + "show_default_swimlane": "1", + "description": "test", + "identifier": "", + "url": { + "board": "http:\/\/127.0.0.1:8000\/?controller=board&action=show&project_id=1", + "calendar": "http:\/\/127.0.0.1:8000\/?controller=calendar&action=show&project_id=1", + "list": "http:\/\/127.0.0.1:8000\/?controller=listing&action=show&project_id=1" + } } } ``` @@ -366,7 +386,7 @@ Request example: { "jsonrpc": "2.0", "method": "getAllProjects", - "id": 134982303 + "id": 2134420212 } ``` @@ -375,25 +395,26 @@ Response example: ```json { "jsonrpc": "2.0", - "id": 134982303, + "id": 2134420212, "result": [ { - "id": "2", - "name": "PHP client", - "is_active": "1", - "token": "", - "last_modified": "0", - "is_public": "0", - "description": "PHP client project" - }, - { "id": "1", - "name": "Test", + "name": "API test", "is_active": "1", "token": "", - "last_modified": "0", + "last_modified": "1436119570", "is_public": "0", - "description": "Test project" + "is_private": "0", + "is_everybody_allowed": "0", + "default_swimlane": "Default swimlane", + "show_default_swimlane": "1", + "description": null, + "identifier": "", + "url": { + "board": "http:\/\/127.0.0.1:8000\/?controller=board&action=show&project_id=1", + "calendar": "http:\/\/127.0.0.1:8000\/?controller=calendar&action=show&project_id=1", + "list": "http:\/\/127.0.0.1:8000\/?controller=listing&action=show&project_id=1" + } } ] } @@ -1970,8 +1991,9 @@ Response example: "recurrence_timeframe": "0", "recurrence_basedate": "0", "recurrence_parent": null, - "recurrence_child": null - } + "recurrence_child": null, + "url": "http:\/\/127.0.0.1:8000\/?controller=task&action=show&task_id=1&project_id=1" + } } ``` @@ -2033,7 +2055,8 @@ Response example: "recurrence_timeframe": "0", "recurrence_basedate": "0", "recurrence_parent": null, - "recurrence_child": null + "recurrence_child": null, + "url": "http:\/\/127.0.0.1:8000\/?controller=task&action=show&task_id=5&project_id=1" } } ``` @@ -2097,7 +2120,8 @@ Response example: "recurrence_timeframe": "0", "recurrence_basedate": "0", "recurrence_parent": null, - "recurrence_child": null + "recurrence_child": null, + "url": "http:\/\/127.0.0.1:8000\/?controller=task&action=show&task_id=1&project_id=1" }, { "id": "2", @@ -2128,7 +2152,8 @@ Response example: "recurrence_timeframe": "0", "recurrence_basedate": "0", "recurrence_parent": null, - "recurrence_child": null + "recurrence_child": null, + "url": "http:\/\/127.0.0.1:8000\/?controller=task&action=show&task_id=2&project_id=1" }, ... ] diff --git a/docs/cli.markdown b/docs/cli.markdown index 21183177..38cba496 100644 --- a/docs/cli.markdown +++ b/docs/cli.markdown @@ -13,36 +13,35 @@ Usage - Run the command `./kanboard` ```bash -$ ./kanboard Kanboard version master Usage: - command [options] [arguments] + command [options] [arguments] Options: - --help (-h) Display this help message - --quiet (-q) Do not output any message - --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug - --version (-V) Display this application version - --ansi Force ANSI output - --no-ansi Disable ANSI output - --no-interaction (-n) Do not ask any interactive question + -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: - help Displays help for a command - list Lists commands -export - export:daily-project-summary Daily project summary 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 -projects - projects:daily-summary Calculate daily summary data for all projects + 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 + projects + projects:daily-stats Calculate daily statistics for all projects ``` Available commands @@ -97,13 +96,13 @@ Example: The exported data will be printed on the standard output: ```bash -./kanboard export:daily-project-summary <project_id> <start_date> <end_date> +./kanboard export:daily-project-column-stats <project_id> <start_date> <end_date> ``` Example: ```bash -./kanboard export:daily-project-summary 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv +./kanboard export:daily-project-column-stats 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv ``` ### Send notifications for overdue tasks @@ -133,12 +132,12 @@ Cronjob example: 0 8 * * * cd /path/to/kanboard && ./kanboard notification:overdue-tasks >/dev/null 2>&1 ``` -### Run daily project summaries calculation +### Run daily project stats calculation -You can add a background task that calculate the daily project summaries everyday: +You can add a background task to calculate the project statistics everyday: ```bash -$ ./kanboard projects:daily-summary +$ ./kanboard projects:daily-stats Run calculation for Project #0 Run calculation for Project #1 Run calculation for Project #10 diff --git a/docs/config.markdown b/docs/config.markdown index 081f9c71..45ba7a91 100644 --- a/docs/config.markdown +++ b/docs/config.markdown @@ -32,6 +32,13 @@ define('FILES_DIR', 'data/files/'); Don't forget the trailing slash. +Enable/disable url rewrite +-------------------------- + +```php +define('ENABLE_URL_REWRITE', false); +``` + Email configuration ------------------- @@ -128,6 +135,9 @@ define('LDAP_ACCOUNT_ID', 'samaccountname'); // 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); + +// Automatically create user account +define('LDAP_ACCOUNT_CREATION', true); ``` Google Authentication settings @@ -195,4 +205,7 @@ 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); ``` diff --git a/docs/docker.markdown b/docs/docker.markdown index b4334e1f..44f3b976 100644 --- a/docs/docker.markdown +++ b/docs/docker.markdown @@ -1,13 +1,25 @@ -How to test Kanboard with Docker? -================================= +How to run Kanboard with Docker? +================================ -Kanboard can run with [Docker](https://www.docker.com). +Kanboard can run easily with [Docker](https://www.docker.com). There is a `Dockerfile` in the repository to build your own container. +Use the automated build +----------------------- + +Every new commit on the repository trigger a new build on [Docker Hub](https://registry.hub.docker.com/u/kanboard/kanboard/). + +```bash +docker pull kanboard/kanboard +docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:latest +``` + +The tag **latest** is the **development version** of Kanboard, use at your own risk. + Build your own Docker image --------------------------- -From your kanboard directory run the following command: +Clone the Kanboard repository and run the following command: ```bash docker build -t youruser/kanboard:master . @@ -22,8 +34,14 @@ docker run -d --name kanboard -p 80:80 -t youruser/kanboard:master Store your data on a volume --------------------------- -You can also save your data outside of the container, on the local machine: +By default Kanboard will store attachments and the Sqlite database in the directory data. Run this command to use a custom volume path: ```bash docker run -d --name kanboard -v /your/local/data/folder:/var/www/html/data -p 80:80 -t kanboard/kanboard:master ``` + +References +---------- + +- [Official Kanboard images](https://registry.hub.docker.com/u/kanboard/kanboard/) +- [Docker documentation](https://docs.docker.com/) diff --git a/docs/duplicate-move-tasks.markdown b/docs/duplicate-move-tasks.markdown new file mode 100644 index 00000000..dcb01df5 --- /dev/null +++ b/docs/duplicate-move-tasks.markdown @@ -0,0 +1,58 @@ +Duplicate and move tasks +======================== + +Duplicate a task into the same project +-------------------------------------- + +Go to the task view and choose **Duplicate** on the left. + + + +A new task will be created with the same properties as the original. + +Duplicate a task to another project +----------------------------------- + +Go to the task view and choose **Duplicate to another project**. + + + +Only projects where you are member will be shown in the dropdown. + +Before to copy the tasks, Kanboard will ask you the destination properties that are not common between the source and destination project. + +Basically, you need to define: + +- The destination swimlane +- The column +- The category +- The assignee + +Move a task to another project +------------------------------ + +Go to the task view and choose **Move to another project**. + +Moving a task to another project work in the same way as the duplication, you have to choose the new properties of the task. + +List of fields duplicated +------------------------- + +Here are the list of properties duplicated: + +- title +- description +- date_due +- color_id +- project_id +- column_id +- owner_id +- score +- category_id +- time_estimated +- swimlane_id +- recurrence_status +- recurrence_trigger +- recurrence_factor +- recurrence_timeframe +- recurrence_basedate diff --git a/docs/faq.markdown b/docs/faq.markdown index b4cf9148..3d542a30 100644 --- a/docs/faq.markdown +++ b/docs/faq.markdown @@ -10,25 +10,6 @@ Kanboard works well with any great VPS hosting provider such as [Digital Ocean]( To have the best performances, choose a provider with fast disk I/O because Kanboard use Sqlite by default. Avoid hosting providers that use a shared NFS mount point. - -Which web browsers are supported? ---------------------------------- - -Kanboard have been tested on the following devices: - -### Desktop - -- Mozilla Firefox -- Safari -- Google Chrome -- Internet Explorer 11 - -### Tablets - -- iPad (iOS) -- Nexus 7 (Android/Chrome) - - I get a blank page after installing or upgrading Kanboard --------------------------------------------------------- diff --git a/docs/github-authentication.markdown b/docs/github-authentication.markdown index d6c1e1e8..8c3b622d 100644 --- a/docs/github-authentication.markdown +++ b/docs/github-authentication.markdown @@ -1,64 +1,63 @@ -GitHub Authentication
-=====================
-
-Requirements
-------------
-
-- OAuth GitHub API credentials (available in your [Settings > Applications > Developer applications](https://github.com/settings/applications))
-
-How does this work?
--------------------
-
-The GitHub authentication in Kanboard uses the [OAuth 2.0](http://oauth.net/2/) protocol, so any user of Kanboard can be linked to a GitHub account.
-
-When that is done, they no longer need to manually login with their Kanboard account, but can simply automatically login with their GitHub account.
-
-How to link a GitHub account
-----------------------------------
-
-1. Login to Kanboard with the desired user
-2. Go to the **Edit user** page and click on the link **Link my GitHub Account**
-3. You are redirected to the GitHub **Authorize application** form, authorize Kanboard by clicking on the button **Accept**
-4. Finally, you are redirected to Kanboard and now your user account is linked to your GitHub account
-5. During the process, Kanboard has updated your full name and your email address based on your GitHub profile, if either of those are publically available
-6. Log out of Kanboard and you should be able to login directly with GitHub by clicking on the link **Login with my GitHub Account**
-
-Installation instructions
--------------------------
-
-### Setting up OAuth 2.0
-
-On Github, go to the page ["Register a new OAuth application"](https://github.com/settings/applications/new).
-
-Just follow the [official GitHub documentation](https://developer.github.com/guides/basics-of-authentication/#registering-your-app):
-
-- Open your [Settings](https://github.com/settings), select [Applications](https://github.com/settings/applications) from the sidebar and click on [Register new application](https://github.com/settings/applications/new) on the top, next to where it says **Developer applications**
-- Fill out the form with whatever values you like, the **Authorization callback URL** _must_ be: **http://YOUR_SERVER/?controller=user&action=gitHub**
-
-### Setting up Kanboard
-
-Either create a new `config.php` file or rename the `config.default.php` file and set the following values:
-
-```php
-// Enable/disable GitHub authentication
-define('GITHUB_AUTH', true);
-
-// GitHub client id (Copy it from your settings -> Applications -> Developer applications)
-define('GITHUB_CLIENT_ID', 'YOUR_GITHUB_CLIENT_ID');
-
-// GitHub client secret key (Copy it from your settings -> Applications -> Developer applications)
-define('GITHUB_CLIENT_SECRET', 'YOUR_GITHUB_CLIENT_SECRET');
-
-```
-
-Notes
------
-**Important:** _*Never*_ store your GITHUB_CLIENT_ID or GITHUB_CLIENT_SECRET in GitHub or somewhere with full public access in general!
-
-Kanboard uses these information from your public GitHub profile:
-
-- Full name
-- Public email address
-- GitHub unique id
-
-The GitHub unique id is used to link the local user account and the GitHub account.
+Github Authentication +===================== + +Requirements +------------ + +OAuth Github API credentials (available in your [Settings > Applications > Developer applications](https://github.com/settings/applications)) + +How does this work? +------------------- + +The Github authentication in Kanboard uses the [OAuth 2.0](http://oauth.net/2/) protocol, so any user of Kanboard can be linked to a Github account. + +When that is done, they no longer need to manually login with their Kanboard account, but can simply automatically login with their Github account. + +How to link a Github account +---------------------------- + +1. Go to your user profile +2. Click on **External accounts** +3. Click on the link **Link my Github Account** +4. You are redirected to the **Github Authorize application form** +5. Authorize Kanboard by clicking on the button **Accept** +6. Your account is now linked + +Now, on the login page you can be authenticated in one click with the link **Login with my Github Account**. + +Your name and email are automatically updated from your Github Account if defined. + +Installation instructions +------------------------- + +### Setting up OAuth 2.0 + +- On Github, go to the page [Register a new OAuth application](https://github.com/settings/applications/new) +- Just follow the [official Github documentation](https://developer.github.com/guides/basics-of-authentication/#registering-your-app) +- In Kanboard, you can get the **callback url** in **Settings > Integrations > Github Authentication** + +### Setting up Kanboard + +Either create a new `config.php` file or rename the `config.default.php` file and set the following values: + +```php +// Enable/disable Github authentication +define('GITHUB_AUTH', true); + +// Github client id (Copy it from your settings -> Applications -> Developer applications) +define('GITHUB_CLIENT_ID', 'YOUR_GITHUB_CLIENT_ID'); + +// Github client secret key (Copy it from your settings -> Applications -> Developer applications) +define('GITHUB_CLIENT_SECRET', 'YOUR_GITHUB_CLIENT_SECRET'); +``` + +Notes +----- + +Kanboard uses these information from your public Github profile: + +- Full name +- Public email address +- Github unique id + +The Github unique id is used to link the local user account and the Github account. diff --git a/docs/gitlab-webhooks.markdown b/docs/gitlab-webhooks.markdown index 9ef73f97..9d9ecaf5 100644 --- a/docs/gitlab-webhooks.markdown +++ b/docs/gitlab-webhooks.markdown @@ -9,22 +9,24 @@ List of supported events - Gitlab commit received - Gitlab issue opened - Gitlab issue closed +- Gitlab issue comment created List of supported actions ------------------------- - Create a task from an external provider - Close a task +- Create a comment from an external provider Configuration ------------- - + 1. On Kanboard, go to the project settings and choose the section **Integrations** 2. Copy the Gitlab webhook url 3. On Gitlab, go to the project settings and go to the section **Webhooks** -4. Check the boxes **Push Events** and **Issues Events** +4. Check the boxes **Push Events**, **Comments** and **Issues Events** 5. Paste the url and save Examples @@ -53,3 +55,11 @@ When a task is created from a Gitlab issue, the link to the issue is added to th - Choose the event: **Gitlab issue closed** - Choose the action: **Close the task** + +### Create a comment on Kanboard when an issue is commented on Gitlab + +- Choose the event: **Gitlab issue comment created** +- Choose the action: **Create a comment from an external provider** + +If the username is the same between Gitlab and Kanboard the comment author will be assigned, otherwise there is no author. +The user also have to be member of the project in Kanboard.
\ No newline at end of file diff --git a/docs/google-authentication.markdown b/docs/google-authentication.markdown index 033cf4bb..0f4f3ec1 100644 --- a/docs/google-authentication.markdown +++ b/docs/google-authentication.markdown @@ -4,7 +4,7 @@ Google Authentication Requirements ------------ -- OAuth Google API credentials (available in the Google Developer Console) +OAuth Google API credentials (available in the Google Developer Console) How does this work? ------------------- @@ -16,24 +16,24 @@ How does this work? Procedure to link a Google Account ---------------------------------- -1. The first step is to link an existing user account to a Google Account -2. Login with the desired user -3. Go to the **Edit user** page and click on the link **Link my Google Account** -4. You are redirected to the **Google Consent screen**, authorize Kanboard by clicking on the button **Accept** -5. Finally, you are redirected to Kanboard and now your user account is linked to your Google account -6. During the process, Kanboard have updated your full name and your email address based on your Google profile -7. Log out and you should be able to login directly with Google by clicking on the link **Login with my Google Account** +1. Go to your user profile +2. Click on **External accounts** +3. Click on the link **Link my Google Account** +4. You are redirected to the **Google Consent screen** +5. Authorize Kanboard by clicking on the button **Accept** +6. Your account is now linked + +Now, on the login page you can be authenticated in one click with the link **Login with my Google Account**. + +Your name and email are automatically updated from your Google Account. Installation instructions ------------------------- -### Setting up OAuth 2.0 +### Setting up OAuth 2.0 in Google Developer Console -Follow the [official Google documentation](https://developers.google.com/accounts/docs/OAuth2Login#appsetup), in summary: - -- Go to the [Developer Console](https://console.developers.google.com) -- On the sidebar, click on **Credentials** and choose **Create a new Client Id** -- Fill the form, the redirect URL must be: **http://YOUR_SERVER/?controller=user&action=google** +- Follow the [official Google documentation](https://developers.google.com/accounts/docs/OAuth2Login#appsetup) to create a new application +- In Kanboard, you can get the **redirect url** in **Settings > Integrations > Google Authentication** ### Setting up Kanboad @@ -50,7 +50,6 @@ define('GOOGLE_CLIENT_ID', 'YOUR_CLIENT_ID'); // Google client secret key (Get this value from the Google developer console) define('GOOGLE_CLIENT_SECRET', 'YOUR_CLIENT_SECRET'); - ``` Notes diff --git a/docs/ical.markdown b/docs/ical.markdown index e5f2f936..5c52bf82 100644 --- a/docs/ical.markdown +++ b/docs/ical.markdown @@ -7,6 +7,8 @@ This feature allow you to import Kanboard tasks in almost any calendar program ( Calendar subscriptions are **read-only** access, you cannot create tasks from an external calendar software. The Calendar feed export follow the iCal standard. +Note: Only tasks within the date range of -2 months to +6 months are exported to the iCalendar feed. + Project calendars ----------------- diff --git a/docs/index.markdown b/docs/index.markdown index bf315ee6..014dfa58 100644 --- a/docs/index.markdown +++ b/docs/index.markdown @@ -26,6 +26,7 @@ Using Kanboard - [Creating tasks](creating-tasks.markdown) - [Closing tasks](closing-tasks.markdown) +- [Duplicate and move tasks](duplicate-move-tasks.markdown) - [Adding screenshots](screenshots.markdown) - [Task links](task-links.markdown) - [Transitions](transitions.markdown) @@ -33,6 +34,7 @@ Using Kanboard - [Recurring tasks](recurring-tasks.markdown) - [Create tasks by email](create-tasks-by-email.markdown) - [Subtasks](subtasks.markdown) +- [Analytics for tasks](analytics-tasks.markdown) ### Working with users @@ -81,6 +83,7 @@ Technical details ### Installation +- [Recommended configuration](recommended-configuration.markdown) - [Installation instructions](installation.markdown) - [Upgrade Kanboard to a new version](update.markdown) - [Installation on Ubuntu](ubuntu-installation.markdown) @@ -96,6 +99,7 @@ Technical details ### Configuration - [Email configuration](email-configuration.markdown) +- [URL rewriting](nice-urls.markdown) ### Database @@ -107,7 +111,7 @@ Technical details - [LDAP authentication](ldap-authentication.markdown) - [Google authentication](google-authentication.markdown) -- [GitHub authentication](github-authentication.markdown) +- [Github authentication](github-authentication.markdown) - [Reverse proxy authentication](reverse-proxy-authentication.markdown) ### Contributors diff --git a/docs/ldap-authentication.markdown b/docs/ldap-authentication.markdown index 2428194d..8c7e5ff5 100644 --- a/docs/ldap-authentication.markdown +++ b/docs/ldap-authentication.markdown @@ -17,7 +17,7 @@ When the LDAP authentication is activated, the login process work like that: 1. Try first to authenticate the user by using the database 2. If the user is not found inside the database, a LDAP authentication is performed -3. If the LDAP authentication is successful, a local user is created automatically with no password and marked as LDAP user. +3. If the LDAP authentication is successful, by default a local user is created automatically with no password and marked as LDAP user. ### Differences between a local user and a LDAP user are the following: @@ -85,6 +85,22 @@ define('LDAP_ACCOUNT_ID', 'samaccountname'); // 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); + +// Automatically create user account +define('LDAP_ACCOUNT_CREATION', true); +``` + +### Disable automatic account creation + +By default, Kanboard will create automatically a user account if nothing is found. + +You can disable this behavior if you prefer to create user accounts manually to restrict Kanboard to only some people. + +Just change the value of `LDAP_ACCOUNT_CREATION` to `false`: + +```php +// Automatically create user account +define('LDAP_ACCOUNT_CREATION', false); ``` ### LDAP bind type diff --git a/docs/nice-urls.markdown b/docs/nice-urls.markdown new file mode 100644 index 00000000..38f7c41d --- /dev/null +++ b/docs/nice-urls.markdown @@ -0,0 +1,36 @@ +URL rewriting +============= + +Kanboard is able to work indifferently with url rewriting enabled or not. + +- Example of URL rewritten: `/board/123` +- Otherwise: `?controller=board&action=show&project_id=123` + +If you use Kanboard with Apache and with the mode rewrite enabled, nice urls will be used automatically. + +URL Shortcuts +------------- + +- Go to the task #123: **/t/123** +- Go to the board of the project #2: **/b/2** +- Go to the project calendar #5: **/c/5** +- Go to the list view of the project #8: **/l/8** +- Go to the project settings for the project id #42: **/p/42** + +Configuration +------------- + +By default, Kanboard will check if the Apache mode rewrite is enabled. + +To avoid the automatic detection of url rewriting from the web server, you can enable this feature in your config file: + +``` +define('ENABLE_URL_REWRITE', true); +``` + +When this constant is at `true`: + +- URLs generated from command line tools will be also converted +- If you use another web server than Apache, by example Nginx or Microsoft IIS, you have to configure yourself the url rewriting + +Note: Kanboard always fallback to old school urls when it's not configured, this configuration is optional. diff --git a/docs/recommended-configuration.markdown b/docs/recommended-configuration.markdown new file mode 100644 index 00000000..93b49723 --- /dev/null +++ b/docs/recommended-configuration.markdown @@ -0,0 +1,36 @@ +Recommended Configuration +========================= + +Server side +----------- + +- Modern Linux/Unix operating system: **Ubuntu/Debian or FreeBSD** +- Most recent version of PHP and Apache +- Use the Sqlite database only when you have a disk with fast I/O (SSD disks) otherwise use Mysql or Postgresql + +Client side +----------- + +- Use a modern browser: **Mozilla Firefox or Google Chrome or Safari** + +Tested configurations +--------------------- + +The following configurations are tested with Kanboard but that doesn't mean all features are available: + +### Server + +- Ubuntu 14.04 LTS +- Debian 6, 7 and 8 +- Centos 6.5 and 7.0 +- Windows 2012 Server +- Windows 2008 Server + +### Desktops + +- Last version of Mozilla Firefox, Safari and Google Chrome +- Microsoft Internet Explorer 11 + +### Tablets + +- iPad mini 3 diff --git a/docs/search.markdown b/docs/search.markdown index 1d254b29..c269b5c1 100644 --- a/docs/search.markdown +++ b/docs/search.markdown @@ -12,6 +12,12 @@ This example will returns all tasks assigned to me with a due date for tomorrow assigne:me due:tomorrow my title ``` +Search by task id or title +-------------------------- + +- Search by task id: `#123` or `123` +- Search by task title: anything that don't match any search attributes mentioned below + Search by status ---------------- @@ -25,92 +31,60 @@ Search by assignee Attribute: **assignee** -Query with the full name: - -``` -assignee:"Frederic Guillot" -``` - -Query with the username: - -``` -assignee:fguillot -``` - -Multiple assignee lookup: - -``` -assignee:user1 assignee:"John Doe" -``` - -Kanboard will search tasks assigned to the "user1" or "John Doe". +- Query with the full name: `assignee:"Frederic Guillot"` +- Query with the username: `assignee:fguillot` +- Multiple assignee lookup: `assignee:user1 assignee:"John Doe"` +- Query for unassigned tasks: `assignee:nobody` +- Query for my assigned tasks: `assignee:me` -Query for unassigned tasks: - -``` -assignee:nobody -``` - -Query for my assigned tasks - -``` -assignee:me -``` +Note: Kanboard will also search in assigned subtasks with the status todo and in progress. Search by color --------------- Attribute: **color** -Query to search by color id: - -``` -color:blue -``` - -Query to search by color name: - -``` -color:"Deep Orange" -``` +- Query to search by color id: `color:blue` +- Query to search by color name: `color:"Deep Orange"` Search by due date ------------------ Attribute: **due** -Query to search tasks due today: +- Search tasks due today: `due:today` +- Search tasks due tomorrow: `due:tomorrow` +- Search tasks due yesterday: `due:yesterday` +- Search tasks due with the exact date: `due:2015-06-29` -``` -due:today -``` +The date must use the ISO8601 format: **YYYY-MM-DD**. -Query to search tasks due tomorrow: +All string formats supported by the `strtotime()` function are supported, by example `next Thursday`, `-2 days`, `+2 months`, `tomorrow`, etc... -``` -due:tomorrow -``` +Operators supported with a date: -Query to search tasks due yesterday: +- Greater than: **due:>2015-06-29** +- Lower than: **due:<2015-06-29** +- Greater than or equal: **due:>=2015-06-29** +- Lower than or equal: **due:<=2015-06-29** -``` -due:yesterday -``` +Search by modification date +--------------------------- -Query to search tasks due with the exact date: +Attribute: **modified** or **updated** -``` -due:2015-06-29 -``` +The date formats are the same as the due date. -The date must use the ISO8601 format: **YYYY-MM-DD**. +There is also a filter by recently modified tasks: `modified:recently`. -Operators supported: +This query will use the same value as the board highlight period configured in settings. -- Greater than: **due:>2015-06-29** -- Lower than: **due:<2015-06-29** -- Greater than or equal: **due:>=2015-06-29** -- Lower than or equal: **due:<=2015-06-29** +Search by creation date +----------------------- + +Attribute: **created** + +Works in the same way as the modification date queries. Search by description --------------------- @@ -119,6 +93,13 @@ Attribute: **description** Example: `description:"text search"` +Search by external reference +---------------------------- + +The task reference is an external id of your task, by example a ticket number from another software. + +- Find tasks with a reference: `ref:1234` or `reference:TICKET-1234` + Search by category ------------------ @@ -144,3 +125,13 @@ Attribute: **column** - Find tasks by column name: `column:"Work in progress"` - Find tasks for several columns: `column:"Backlog" column:ready` + +Search by swimlane +------------------ + +Attribute: **swimlane** + +- Find tasks by swimlane: `swimlane:"Version 42"` +- Find tasks in the default swimlane: `swimlane:default` +- Find tasks into several swimlanes: `swimlane:"Version 1.2" swimlane:"Version 1.3"` + diff --git a/docs/slack.markdown b/docs/slack.markdown index af60d38e..f90464e8 100644 --- a/docs/slack.markdown +++ b/docs/slack.markdown @@ -26,3 +26,13 @@ This feature use the [Incoming webhook](https://api.slack.com/incoming-webhooks) 3. Copy the webhook url to the Kanboard settings page: **Settings > Integrations > Slack** or **Project settings > Integrations > Slack** Now, Kanboard events will be sent to the Slack channel. + +### Overriding Channel (Optional) + +Optionally you can override the channel, private group or send direct messages by filling up **Channel/Group/User** text box. Leaving it empty will post to the channel configured during webhook configuration. + +Examples: + +- Send messages to another channel: **#mychannel1** +- Send messages to a private group: **#myprivategroup1** +- Send messages directly to someone: **@anotheruser1** diff --git a/docs/user-management.markdown b/docs/user-management.markdown index bd9cdb17..98691ddd 100644 --- a/docs/user-management.markdown +++ b/docs/user-management.markdown @@ -1,8 +1,8 @@ User management =============== -Type of users -------------- +Group of users +-------------- Kanboard use a basic permission system, there is two kind of users: @@ -18,22 +18,30 @@ There is also permissions defined at the project level, users can be seen as: Project managers have more privileges than a simple user member. +Local and remote users +---------------------- + +- A local user is an account that use the database to store credentials. Local users use the login form for the authentication. +- A remote user is an account that use an external system to store credentials. By example, it can be LDAP, Github or Google accounts. Authentication of these users can be done through the login form or not. + Add a new user -------------- To add a new user, you must be administrator. 1. From the dashboard, go to the menu **User Management** -2. On the top, you have a link **New user** +2. On the top, you have a link **New local user** or **New remote user** 3. Fill the form and save  -When you create a new user, you have to specify at least those values: +When you create a **local user**, you have to specify at least those values: - **username**: This is the unique identifier of your user (login) - **password**: The password of your user must have at least 6 characters +For **remote users**, only the username is mandatory. You can also pre-link Github or Google accounts if you already know their unique id. + Edit users ---------- |