diff options
Diffstat (limited to 'doc')
26 files changed, 394 insertions, 99 deletions
diff --git a/doc/api-json-rpc.markdown b/doc/api-json-rpc.markdown index fc612682..fad19466 100644 --- a/doc/api-json-rpc.markdown +++ b/doc/api-json-rpc.markdown @@ -63,6 +63,7 @@ Usage - [Task Files](api-task-file-procedures.markdown) - [Project Files](api-project-file-procedures.markdown) - [Links](api-link-procedures.markdown) +- [Tags](api-tags-procedures.markdown) - [Internal Task Links](api-internal-task-link-procedures.markdown) - [External Task Links](api-external-task-link-procedures.markdown) - [Comments](api-comment-procedures.markdown) diff --git a/doc/api-tags-procedures.markdown b/doc/api-tags-procedures.markdown new file mode 100644 index 00000000..8d69430c --- /dev/null +++ b/doc/api-tags-procedures.markdown @@ -0,0 +1,195 @@ +API Tags Procedures +=================== + +getAllTags +---------- + +- Purpose: **Get all tags** +- Parameters: none +- Result on success: **List of tags** +- Result on failure: **false|null** + +Request example: + +```json +{"jsonrpc":"2.0","method":"getAllTags","id":45253426} +``` + +Response example: + +```json +{ + "jsonrpc": "2.0", + "result": [ + { + "id": "1", + "name": "another tag", + "project_id": "33" + } + ], + "id": 45253426 +} +``` + +getTagsByProject +---------------- + +- Purpose: **Get all tags for a given project** +- Parameters: + - **project_id** (integer) +- Result on success: **List of tags** +- Result on failure: **false|null** + +Request example: + +```json +{"jsonrpc":"2.0","method":"getTagsByProject","id":1217591720,"params":[33]} +``` + +Response example: + +```json +{ + "jsonrpc": "2.0", + "result": [ + { + "id": "1", + "name": "some tag", + "project_id": "33" + } + ], + "id": 1217591720 +} +``` + +createTag +--------- + +- Purpose: **Create a new tag** +- Parameters: + - **project_id** (integer) + - **tag** (string) +- Result on success: **tag_id** +- Result on failure: **false** + +Request example: + +```json +{"jsonrpc":"2.0","method":"createTag","id":1775436017,"params":[33,"some tag"]} +``` + +Response example: + +```json +{ + "jsonrpc": "2.0", + "result": 1, + "id": 1775436017 +} +``` + +updateTag +--------- + +- Purpose: **Rename a tag** +- Parameters: + - **tag_id** (integer) + - **tag** (string) +- Result on success: **true** +- Result on failure: **false** + +Request example: + +```json +{"jsonrpc":"2.0","method":"updateTag","id":2037516512,"params":["1","another tag"]} +``` + +Response example: + +```json +{ + "jsonrpc": "2.0", + "result": true, + "id": 2037516512 +} +``` + +removeTag +--------- + +- Purpose: **removeTag** +- Parameters: + - **tag_id** (integer) +- Result on success: **true** +- Result on failure: **false** + +Request example: + +```json +{"jsonrpc":"2.0","method":"removeTag","id":907581298,"params":["1"]} +``` + +Response example: + +```json +{ + "jsonrpc": "2.0", + "result": true, + "id": 907581298 +} +``` + +setTaskTags +----------- + +- Purpose: **Assign/Create/Update tags for a task** +- Parameters: + - **project_id** (integer) + - **task_id** (integer) + - **tags** List of tags ([]string) +- Result on success: **true** +- Result on failure: **false** + +Request example: + +```json +{"jsonrpc":"2.0","method":"setTaskTags","id":1524522873,"params":[39,17,["tag1","tag2"]]} +``` + +Response example: + +```json +{ + "jsonrpc": "2.0", + "result": true, + "id": 1524522873 +} +``` + +getTaskTags +----------- + +- Purpose: **Get assigned tags to a task** +- Parameters: + - **task_id** (integer) +- Result on success: **Dictionary of tags** +- Result on failure: **false|null** + +Request example: + +```json +{"jsonrpc":"2.0","method":"getTaskTags","id":1667157705,"params":[17]} +``` + +Response example: + +```json +{ + "jsonrpc": "2.0", + "result": { + "1": "tag1", + "2": "tag2" + }, + "id": 1667157705 +} +``` diff --git a/doc/api-task-procedures.markdown b/doc/api-task-procedures.markdown index 2897c81a..db106f74 100644 --- a/doc/api-task-procedures.markdown +++ b/doc/api-task-procedures.markdown @@ -17,11 +17,12 @@ API Task Procedures - **score** (integer, optional) - **swimlane_id** (integer, optional) - **priority** (integer, optional) - - **recurrence_status** (integer, optional) - - **recurrence_trigger** (integer, optional) - - **recurrence_factor** (integer, optional) - - **recurrence_timeframe** (integer, optional) - - **recurrence_basedate** (integer, optional) + - **recurrence_status** (integer, optional) + - **recurrence_trigger** (integer, optional) + - **recurrence_factor** (integer, optional) + - **recurrence_timeframe** (integer, optional) + - **recurrence_basedate** (integer, optional) + - **tags** ([]string, optional) - Result on success: **task_id** - Result on failure: **false** @@ -400,11 +401,12 @@ Response example: - **category_id** (integer, optional) - **score** (integer, optional) - **priority** (integer, optional) - - **recurrence_status** (integer, optional) - - **recurrence_trigger** (integer, optional) - - **recurrence_factor** (integer, optional) - - **recurrence_timeframe** (integer, optional) - - **recurrence_basedate** (integer, optional) + - **recurrence_status** (integer, optional) + - **recurrence_trigger** (integer, optional) + - **recurrence_factor** (integer, optional) + - **recurrence_timeframe** (integer, optional) + - **recurrence_basedate** (integer, optional) + - **tags** ([]string, optional) - Result on success: **true** - Result on failure: **false** diff --git a/doc/automatic-actions.markdown b/doc/automatic-actions.markdown index d109a95b..add62662 100644 --- a/doc/automatic-actions.markdown +++ b/doc/automatic-actions.markdown @@ -1,15 +1,15 @@ Automatic Actions ================= -To minimize the user interaction, Kanboard support automated actions. +To minimize user interaction, Kanboard support automated actions. -Each automatic action is defined like that: +Each automatic action is defined with these properties: - An event to listen -- Action linked to this event -- Eventually there is some parameters to define +- Action linked to the event +- Additional parameters -Each project has a different set of automatic actions, the configuration panel is located on the project listing page, just click on the link **Automatic actions**. +Each project has a different set of automatic actions. The configuration panel is located on the project listing page - just click on the link **Automatic actions**. Add a new action ---------------- @@ -18,19 +18,19 @@ Click on the link **Add a new automatic action**.  -- Choose an action -- Then, select an event -- And finally, define the parameters +1. Choose an action +2. Select an event +3. Define the parameters -List of available actions +Available actions ------------------------- - Create a comment from an external provider - Add a comment log when moving the task between columns -- Assign automatically a category based on a color +- Automatically assign a category based on a color - Change the category based on an external label -- Assign automatically a category based on a link -- Assign automatically a color based on a category +- Automatically assign a category based on a link +- Automatically assign a color based on a category - Assign a color when the task is moved to a specific column - Change task color when using a specific task link - Assign a color to a specific user @@ -75,7 +75,7 @@ Here are some examples used in real life: ### When a task is completed, duplicate this task to another project -Let's say we have two projects "Customer orders" and "Production", once the order is validated, swap it to the "Production" project. +Let's say we have two projects: "Customer orders" and "Production". Once the order is validated, swap it to the "Production" project. - Choose action: **Duplicate the task to another project** - Choose the event: **Closing a task** @@ -83,7 +83,7 @@ Let's say we have two projects "Customer orders" and "Production", once the orde ### When a task is moved to the last column, move the exact same task to another project -Let's say we have two projects "Ideas" and "Development", once the idea is validated, swap it to the "Development" project. +Let's say we have two projects: "Ideas" and "Development". Once the idea is validated, swap it to the "Development" project. - Choose action: **Move the task to another project** - Choose the event: **Move a task to another column** diff --git a/doc/board-collapsed-expanded.markdown b/doc/board-collapsed-expanded.markdown index 0164da95..aeffcf10 100644 --- a/doc/board-collapsed-expanded.markdown +++ b/doc/board-collapsed-expanded.markdown @@ -9,7 +9,7 @@ Collapsed mode  -- If the task is assigned to someone, the initials of the person are shown next to the task number +- If the task is assigned to someone, the initials of the person are shown next to the task number. - If the task title is too long, you can put your mouse over the task to show a tooltip with the full title. Expanded mode diff --git a/doc/board-show-hide-columns.markdown b/doc/board-show-hide-columns.markdown index 113298d3..0da2d28d 100644 --- a/doc/board-show-hide-columns.markdown +++ b/doc/board-show-hide-columns.markdown @@ -9,4 +9,4 @@ To hide a column, click on the column dropdown menu and choose "Hide this column  -To show again the column, click on the "plus icon". +To show the column again, click on the "plus icon". diff --git a/doc/cli.markdown b/doc/cli.markdown index 8bd5bde5..b1722308 100644 --- a/doc/cli.markdown +++ b/doc/cli.markdown @@ -30,6 +30,7 @@ Options: Available commands: cronjob Execute daily cronjob help Displays help for a command + job Execute individual job (read payload from stdin) list Lists commands worker Execute queue worker db @@ -207,6 +208,12 @@ Note: Installed files will have the same permissions as the current user ./cli worker ``` +### Execute individual job (mostly for debugging) + +```bash +echo 'RAW_JOB_DATA' | ./cli job +``` + ### Execute database migrations If the parameter `DB_RUN_MIGRATIONS` is set to `false`, you have run the database migrations manually: diff --git a/doc/creating-projects.markdown b/doc/creating-projects.markdown index 373d93eb..05d5b20c 100644 --- a/doc/creating-projects.markdown +++ b/doc/creating-projects.markdown @@ -16,24 +16,24 @@ From the dashboard, click on the link **New project**:  -It's very easy, you just have to find a name for your project! +It's very easy: you just have to find a name for your project! Creating a private project -------------------------- -- Everybody can create a private project +- Anybody can create a private project - There is **NO** user management -- Only the owner and administrators can access to the project +- Only the owner and administrators can access the project From the dashboard, click on the link **New private project**. Creating projects from another project -------------------------------------- -When you create a new project, your can choose to duplicate the properties of another project : +When you create a new project, you can choose to duplicate the properties of another project: - Permissions - Actions - Swimlanes -- Catégories +- Categories - Tasks diff --git a/doc/editing-projects.markdown b/doc/editing-projects.markdown index e7fea212..c9c1a5a0 100644 --- a/doc/editing-projects.markdown +++ b/doc/editing-projects.markdown @@ -1,15 +1,15 @@ Editing Projects ================ -Projects can be renamed and disabled at any time. +Projects can be renamed or disabled at any time. -To rename a project, just click on the link "Edit project" on the left. +To rename a project, just click on the link entitled "Edit project" on the left.  -- The start date and end date are used to generate the project Gantt chart -- The description is visible as tooltip on the board and on the projects listing page -- Administrators and project administrators can convert a private project to multiple users project by changing the checkbox "Private project". -- You can also convert multiple users project to a private project. +- The start date and end date are used to generate the project Gantt chart. +- The description is visible as a tooltip on the board and on the projects listing page. +- Administrators and project administrators can convert a private project to a multiple-user project by changing the checkbox "Private project". +- You can also convert a multiple-user project to a private project. -Note: When you make a project private, all existing users will still have access to the project. Adjust the list of users according to your needs. +Note: When you make a project private, all existing users will still have access to the project. You can adjust the list of users according to your needs. diff --git a/doc/es_ES/kanban-vs-todo-and-scrum.markdown b/doc/es_ES/kanban-vs-todo-and-scrum.markdown index 6e8d9e6c..5295a6d1 100644 --- a/doc/es_ES/kanban-vs-todo-and-scrum.markdown +++ b/doc/es_ES/kanban-vs-todo-and-scrum.markdown @@ -11,7 +11,7 @@ Kanban vs Todo lists ### Kanban: -- Multi fases, +- Multi fases, - Concentración absoluta para evitar multitareas por que se puede establecer un limite por columna para mejorar el progreso diff --git a/doc/installation.markdown b/doc/installation.markdown index 518282be..d8969c1c 100644 --- a/doc/installation.markdown +++ b/doc/installation.markdown @@ -60,7 +60,7 @@ Other Database Types Kanboard supports Mysql and Postgres as alternative to Sqlite. -- [Mysql configuration](mysql-configuration.markdown] +- [Mysql configuration](mysql-configuration.markdown) - [Postgres configuration](postgresql-configuration.markdown) Optional Installation diff --git a/doc/kanban-vs-todo-and-scrum.markdown b/doc/kanban-vs-todo-and-scrum.markdown index 4e083ff8..ea97811c 100644 --- a/doc/kanban-vs-todo-and-scrum.markdown +++ b/doc/kanban-vs-todo-and-scrum.markdown @@ -11,8 +11,8 @@ Kanban vs Todo lists ### Kanban: -- Multiple phases, each column represent a step -- Bring focus and avoid multitasking because you can set a work in progress limit per column +- Multiple phases, each column represents a step +- Bring focus and avoid multitasking by setting a work-in-progress limit per column Kanban vs Scrum --------------- @@ -23,15 +23,15 @@ Kanban vs Scrum - Do not allow changes during the iteration - Estimation is required - Uses velocity as default metric -- Scrum board is cleared between each sprint +- Scrum board is cleared between sprints - Scrum has pre-defined roles like scrum master, product owners and the team - A lot of meetings: planning, backlogs grooming, daily stand-up, retrospective ### Kanban: - Continuous flow -- Changes can be made at anytime +- Changes can be made at any time - Estimation is optional - Use lead and cycle time to measure performance - Kanban board is persistent -- Kanban doesn't impose strict constraints or meetings, process is more flexible +- Kanban doesn't impose strict constraints or meetings; process is more flexible diff --git a/doc/mysql-configuration.markdown b/doc/mysql-configuration.markdown index 9d60271c..c199353e 100644 --- a/doc/mysql-configuration.markdown +++ b/doc/mysql-configuration.markdown @@ -1,23 +1,23 @@ -Mysql/MariaDB Configuration +MySQL/MariaDB Configuration =========================== By default Kanboard use Sqlite to stores its data. -However it's possible to use Mysql or MariaDB instead of Sqlite. +However it's possible to use MySQL or MariaDB instead of Sqlite. Requirements ------------ -- Mysql server +- MySQL server - The PHP extension `pdo_mysql` installed -Note: Kanboard is tested with **Mysql >= 5.5 and MariaDB >= 10.0** +Note: Kanboard is tested with **MySQL >= 5.5 and MariaDB >= 10.0** -Mysql configuration +MySQL configuration ------------------- ### Create a database -The first step is to create a database on your Mysql server. +The first step is to create a database on your MySQL server. By example, you can do that with the command line mysql client: ```sql @@ -31,10 +31,10 @@ The file `config.php` should contains those values: ```php <?php -// We choose to use Mysql instead of Sqlite +// We choose to use MySQL instead of Sqlite define('DB_DRIVER', 'mysql'); -// Mysql parameters +// MySQL parameters define('DB_USERNAME', 'REPLACE_ME'); define('DB_PASSWORD', 'REPLACE_ME'); define('DB_HOSTNAME', 'REPLACE_ME'); @@ -58,15 +58,15 @@ The file `app/Schema/Sql/mysql.sql` is a SQL dump that represents the last versi SSL configuration ----------------- -These parameters have to be defined to enable the Mysql SSL connection: +These parameters have to be defined to enable the MySQL SSL connection: ```php -// Mysql SSL key +// MySQL SSL key define('DB_SSL_KEY', '/path/to/client-key.pem'); -// Mysql SSL certificate +// MySQL SSL certificate define('DB_SSL_CERT', '/path/to/client-cert.pem'); -// Mysql SSL CA +// MySQL SSL CA define('DB_SSL_CA', '/path/to/ca-cert.pem'); ``` diff --git a/doc/nice-urls.markdown b/doc/nice-urls.markdown index bfea719d..a054e85d 100644 --- a/doc/nice-urls.markdown +++ b/doc/nice-urls.markdown @@ -85,6 +85,51 @@ In your Kanboard `config.php`: define('ENABLE_URL_REWRITE', true); ``` +Another example with Kanboard in a subfolder: + +``` +server { + listen 443 ssl default_server; + listen [::]:443 ssl default_server; + + root /var/www/html; + index index.php index.html index.htm; + server_name _; + + location / { + try_files $uri $uri/ =404; + } + + location ^~ /kanboard { + + location /kanboard { + try_files $uri $uri/ /kanboard/index.php$is_args$args; + } + + location ~ ^/kanboard/(?:kanboard|config.php|config.default.php) { + deny all; + } + + location ~* /kanboard/data { + deny all; + } + + location ~ \.php(?:$|/) { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param HTTPS on; # Use only if HTTPS is configured + include fastcgi_params; + fastcgi_pass unix:/var/run/php5-fpm.sock; + } + + location ~ /kanboard/\.ht { + deny all; + } + } +} +``` + Adapt the example above according to your own configuration. IIS configuration example diff --git a/doc/plugin-helpers.markdown b/doc/plugin-helpers.markdown index 8cc6b42a..d65467f8 100644 --- a/doc/plugin-helpers.markdown +++ b/doc/plugin-helpers.markdown @@ -6,7 +6,7 @@ Helper skeleton: ```php <?php -namespace Kanboard\Plugin\MyPlugin\Helper\MyHelper; +namespace Kanboard\Plugin\MyPlugin\Helper; use Kanboard\Core\Base; diff --git a/doc/plugin-hooks.markdown b/doc/plugin-hooks.markdown index 8f1a3bb7..23750ff7 100644 --- a/doc/plugin-hooks.markdown +++ b/doc/plugin-hooks.markdown @@ -202,6 +202,7 @@ List of template hooks: | `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:board:column:header` | Board column header | | `template:board:tooltip:subtasks:header:before-assignee` | Header of Subtask table on tootip before Assignee | | `template:board:tooltip:subtasks:rows` | Column on row of Subtask table on tooltip | | `template:config:sidebar` | Sidebar on settings page | @@ -212,8 +213,6 @@ List of template hooks: | `template:dashboard:show` | Main page of the dashboard | | `template:dashboard:subtasks:header:before-timetracking` | Header of Subtask table before Time Tracking | | `template:dashboard:subtasks:rows` | Column on row of Subtask table of the dashboard | -| `template:export:sidebar` | Sidebar on export pages | -| `template:import:sidebar` | Sidebar on import pages | | `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 | @@ -227,6 +226,7 @@ List of template hooks: | `template:project-user:sidebar` | Sidebar on project user overview page | | `template:project-list:menu:before` | Project list: before menu entries | | `template:project-list:menu:after` | Project list: after menu entries | +| `template:project-overview:before-description` | Project overview: before description | | `template:task:layout:top` | Task layout top (after page header) | | `template:task:details:top` | Task summary top | | `template:task:details:bottom` | Task summary bottom | diff --git a/doc/plugin-overrides.markdown b/doc/plugin-overrides.markdown index 96a09e47..3b94bd60 100644 --- a/doc/plugin-overrides.markdown +++ b/doc/plugin-overrides.markdown @@ -40,3 +40,34 @@ You can still use the original template using the "kanboard:" prefix: ```php <?= $this->render('kanboard:header') ?> ``` + +Formatter Overrides +------------------- + +Here an example to override formatter objects in Kanboard: + +```php +class MyFormatter extends UserAutoCompleteFormatter +{ + public function format() + { + $users = parent::format(); + + foreach ($users as &$user) { + $user['label'] = 'something'; // Do something useful here + } + + return $users; + } +} + +class Plugin extends Base +{ + public function initialize() + { + $this->container['userAutoCompleteFormatter'] = $this->container->factory(function ($c) { + return new MyFormatter($c); + }); + } +} +``` diff --git a/doc/plugin-registration.markdown b/doc/plugin-registration.markdown index 2c80aab3..5a4a6234 100644 --- a/doc/plugin-registration.markdown +++ b/doc/plugin-registration.markdown @@ -71,6 +71,15 @@ class Plugin extends Base { $this->template->hook->attach('template:layout:head', 'theme:layout/head'); } + + public function getCompatibleVersion() + { + // Examples: + // >=1.0.37 + // <1.0.37 + // <=1.0.37 + return '1.0.37'; + } } ``` @@ -93,6 +102,7 @@ Available methods from `Kanboard\Core\Plugin\Base`: - `getPluginHomepage()`: Should return plugin Homepage (link) - `setContentSecurityPolicy(array $rules)`: Override default HTTP CSP rules - `onStartup()`: If present, this method is executed automatically when the event "app.bootstrap" is triggered +- `getCompatibleVersion()`: You may want to specify the Kanboard version compatible with the plugin Your plugin registration class can also inherit from Kanboard\Core\Base, that way you can access all classes and methods of Kanboard easily. diff --git a/doc/project-permissions.markdown b/doc/project-permissions.markdown index 16586bc6..99e4caa2 100644 --- a/doc/project-permissions.markdown +++ b/doc/project-permissions.markdown @@ -1,8 +1,8 @@ Project Permissions =================== -Each project is isolated and compartmented from each other. -The project access must be allowed by the project owner. +Each project is isolated from other projects. +Project access must be allowed by the project owner. Each user and each group can have a different role assigned. There are 3 types of [roles for projects](roles.markdown): @@ -13,11 +13,11 @@ There are 3 types of [roles for projects](roles.markdown): Only administrators have access to everything. -Roles assignation is available from **Project Settings > Permissions**: +Role assignments are visible in **Project Settings > Permissions**:  -If you choose to allow everybody, all Kanboard users will be considered Project Member. -That also means there is no role management anymore. Permission per user or per group cannot be applied. +If you choose to allow everybody, all Kanboard users will be considered 'Project Member'. +With this setting, role management will have no effect. Permission per user or per group cannot be applied. -Private projects cannot define permission. +Private projects cannot define permissions. diff --git a/doc/project-views.markdown b/doc/project-views.markdown index 19284407..f700055e 100644 --- a/doc/project-views.markdown +++ b/doc/project-views.markdown @@ -10,7 +10,7 @@ Board View  -- With this view you can drag and drop tasks between columns easily. +- With this view, you can drag and drop tasks between columns easily. - You can also use the keyboard shortcut **"v b"** to switch to the board view. - Tasks with a shadow are recently modified. @@ -25,7 +25,7 @@ Calendar View  -- With this view you can visualize tasks with a due date. +- With this view, you can visualize tasks with a due date. - Depending of the settings, you can also see tasks in progress. - You can also use the keyboard shortcut **"v c"** to switch to the calendar view. - [Learn more about calendar configuration](calendar-configuration.markdown) @@ -35,7 +35,7 @@ List View  -- With this view all results of your search are displayed in a table. +- With this view, all results of your search are displayed in a table. - You can also use the keyboard shortcut **"v l"** to switch to the list view. Gantt View @@ -43,16 +43,16 @@ Gantt View  -- The Gantt view displays tasks on a horizontal timeline -- The start date and the due date are used to display the chart -- For quick access, use the keyboard shortcut: **v g** +- The Gantt view displays tasks on a horizontal timeline. +- The start date and the due date are used to display the chart. +- For quick access, use the keyboard shortcut: **v g**. Project Overview ----------------  -- View the description of the project -- Attach and upload documents to the project -- View list of project members -- View the last activities of the project +- View the description of the project. +- Attach and upload documents to the project. +- View list of project members. +- View the last activities of the project. diff --git a/doc/removing-projects.markdown b/doc/removing-projects.markdown index f9e622cb..0c4c5f36 100644 --- a/doc/removing-projects.markdown +++ b/doc/removing-projects.markdown @@ -1,10 +1,10 @@ Removing Projects ================= -To remove a project, you must be manager of the project or administrator. +To remove a project, you must be the manager of the project or an administrator. Go to the **"Project settings"**, and from the menu on the left, at the bottom, choose **"Remove"**.  -Removing a project remove all tasks that belongs to this project. +Removing a project removes all tasks that belong to this project. diff --git a/doc/search.markdown b/doc/search.markdown index 17d27416..760551df 100644 --- a/doc/search.markdown +++ b/doc/search.markdown @@ -106,6 +106,10 @@ Attribute: **description** or **desc** Example: `description:"text search"` +### Search by completion + +Attribute: **completed** + ### Search by external reference The task reference is an external id of your task, by example a ticket number from another software. diff --git a/doc/sharing-projects.markdown b/doc/sharing-projects.markdown index 614c3230..400f7cb4 100644 --- a/doc/sharing-projects.markdown +++ b/doc/sharing-projects.markdown @@ -1,13 +1,13 @@ Sharing boards and tasks ======================== -By default, boards are private but it's possible to make a board public. +By default, boards are private, but it's possible to make a board public. -A public board **cannot be modified, it's a read-only access**. -This access is protected by a random token, only people who have the right URL can see the board. +A public board **cannot be modified: it has read-only access**. +Access is protected by a random token. Only people who have the right URL can see the board. Public boards are automatically refreshed every 60 seconds. -Task details are also available in read-only. +Task details are also available in read-only mode. Usage examples: @@ -21,7 +21,7 @@ Select your project, then click on "Public access" and finally click on the butt  -When the public access is enabled, a couple of links are generated: +When public access is enabled, a couple of links are generated: - Public board view - RSS feed subscription link @@ -29,7 +29,7 @@ When the public access is enabled, a couple of links are generated:  -You can also disable the public access whenever you want. +You can also disable public access whenever you want. -Each time, you enable or disable the public access a new random token is generated. -**The previous links will not work anymore**. +Each time you enable or disable public access, a new random token is generated. +**The previous links will not work anymore**! diff --git a/doc/suse-installation.markdown b/doc/suse-installation.markdown index 788b4fce..2af773f7 100644 --- a/doc/suse-installation.markdown +++ b/doc/suse-installation.markdown @@ -9,6 +9,6 @@ sudo zypper install php5 php5-sqlite php5-gd php5-json php5-mcrypt php5-mbstring cd /srv/www/htdocs sudo wget https://kanboard.net/kanboard-latest.zip sudo unzip kanboard-latest.zip -sudo chmod -R 777 kanboard +sudo chown -R wwwrun /srv/www/htdocs/kanboard sudo rm kanboard-latest.zip ``` diff --git a/doc/usage-examples.markdown b/doc/usage-examples.markdown index 5efc6f9a..c200e082 100644 --- a/doc/usage-examples.markdown +++ b/doc/usage-examples.markdown @@ -8,7 +8,7 @@ Software development - Backlog - Ready -- Work in progress +- Work-in-progress - To be validated - Validated - Deployed in production @@ -18,7 +18,7 @@ Bug tracking - Reported - Confirmed -- Work in progress +- Work-in-progress - Tested - Fixed diff --git a/doc/what-is-kanban.markdown b/doc/what-is-kanban.markdown index 5d2eed02..de8377b2 100644 --- a/doc/what-is-kanban.markdown +++ b/doc/what-is-kanban.markdown @@ -11,22 +11,22 @@ There are only two constraints imposed by Kanban: Visualize your workflow ----------------------- -- Your work is displayed on a board, you have a clear overview of your project +- Your work is displayed on a board so that you have a clear overview of your project - Each column represents a step in your workflow -Bring focus and avoid multitasking +Limit your work in progress ---------------------------------- - -- Each phase can have a work in progress limits -- Limits are great to identify bottlenecks +- Encourages focus by avoiding multitasking +- Each phase can have work-in-progress limits +- Limits help identify bottlenecks - Limits avoid working on too many tasks at the same time -Measure performance and improvement ------------------------------------ +Performance Measurement +======================= Kanban uses lead and cycle times to measure performance: -- **Lead time**: Time between the task is created and completed -- **Cycle time**: Time between the task is started and completed +- **Lead time**: Time between task creation and completion +- **Cycle time**: Time between task start and completion -For example, you may have a lead time of 100 days and only have to work 1 hour to complete the task. +For example, you may have a lead time of 100 days but only have to work 1 hour to complete the task. |