From e5c449788a4239720b34e15d7441ff996c11231b Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Sat, 8 Oct 2016 09:52:28 -0400 Subject: [PATCH] Update documentation --- doc/2fa.markdown | 4 +-- doc/faq.markdown | 9 ------- doc/fr_FR/index.markdown | 2 +- doc/fr_FR/roles.markdown | 2 ++ doc/fr_FR/screenshots/internal-task-links.png | Bin 0 -> 14772 bytes doc/fr_FR/screenshots/task-transitions.png | Bin 0 -> 16975 bytes doc/fr_FR/task-links.markdown | 6 +++-- doc/fr_FR/transitions.markdown | 12 +++------ doc/index.markdown | 11 ++++++--- doc/roles.markdown | 2 ++ doc/screenshots/internal-task-links.png | Bin 0 -> 9893 bytes doc/screenshots/task-transitions.png | Bin 0 -> 38420 bytes doc/solving-blank-page-issue.markdown | 7 ++++++ ...solving-database-migration-issues.markdown | 23 ++++++++++++++++++ doc/swimlanes.markdown | 1 - doc/task-links.markdown | 8 +++--- doc/transitions.markdown | 12 +++------ doc/update.markdown | 9 ++++--- doc/vagrant.markdown | 2 +- doc/web.config | 22 ----------------- doc/worker.markdown | 2 +- 21 files changed, 67 insertions(+), 67 deletions(-) create mode 100644 doc/fr_FR/screenshots/internal-task-links.png create mode 100644 doc/fr_FR/screenshots/task-transitions.png create mode 100644 doc/screenshots/internal-task-links.png create mode 100644 doc/screenshots/task-transitions.png create mode 100644 doc/solving-blank-page-issue.markdown create mode 100644 doc/solving-database-migration-issues.markdown delete mode 100644 doc/web.config diff --git a/doc/2fa.markdown b/doc/2fa.markdown index 9c02d309b..bef256e47 100644 --- a/doc/2fa.markdown +++ b/doc/2fa.markdown @@ -4,12 +4,12 @@ Two-Factor Authentication Each user can enable the [two-factor authentication](http://en.wikipedia.org/wiki/Two_factor_authentication). After a successful login, a one-time code (6 characters) is asked to the user to allow access to Kanboard. -This code has to be provided by a compatible software generally installed on your smartphone. +This code has to be provided by a compatible software usually installed on your smartphone. Kanboard use the [Time-based One-time Password Algorithm](http://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm) defined in the [RFC 6238](http://tools.ietf.org/html/rfc6238). There are many software compatible with the standard TOTP system. -For example, you can use these free and open source applications: +For example, you can use these applications: - [Google Authenticator](https://github.com/google/google-authenticator/) (Android, iOS, Blackberry) - [FreeOTP](https://fedorahosted.org/freeotp/) (Android, iOS) diff --git a/doc/faq.markdown b/doc/faq.markdown index 76ee07aba..412bbe9b2 100644 --- a/doc/faq.markdown +++ b/doc/faq.markdown @@ -11,15 +11,6 @@ To have the best performances, choose a provider with fast disk I/O because Kanb Avoid hosting providers that use a shared NFS mount point. -I get a blank page after installing or upgrading Kanboard ---------------------------------------------------------- - -- Check if you have installed all requirements on your server -- Check the PHP and Apache error logs -- Check if the files have the correct permission -- If you use an aggressive OPcode caching, reload your web-server or php-fpm - - I have the error "There is no suitable CSPRNG installed on your system" ----------------------------------------------------------------------- diff --git a/doc/fr_FR/index.markdown b/doc/fr_FR/index.markdown index a73c5c239..8f658d783 100644 --- a/doc/fr_FR/index.markdown +++ b/doc/fr_FR/index.markdown @@ -38,7 +38,7 @@ Utiliser Kanboard - [Fermer des tâches](closing-tasks.markdown) - [Dupliquer et déplacer des tâches](duplicate-move-tasks.markdown) - [Ajouter des captures d'écran](screenshots.markdown) -- [Liens entre les tâches](task-links.markdown) +- [Liens internes entre les tâches](task-links.markdown) - [Transitions](transitions.markdown) - [Suivi du temps](time-tracking.markdown) - [Tâches récurrentes](recurring-tasks.markdown) diff --git a/doc/fr_FR/roles.markdown b/doc/fr_FR/roles.markdown index e55a3969b..c6a41aa11 100644 --- a/doc/fr_FR/roles.markdown +++ b/doc/fr_FR/roles.markdown @@ -22,3 +22,5 @@ Chaque membre d'un projet peut avoir un rôle différent : | Chef de projet | Peut changer les paramètres du projet, accéder aux rapports | | Membre du projet | Peut créer des tâches et utiliser le tableau Kanban | | Visualiseur de projet | Accès en lecture seule au projet | + +Il est également possible de créer des rôles personnalisés pour appliquer des restrictions supplémentaires sur les utilisateurs. diff --git a/doc/fr_FR/screenshots/internal-task-links.png b/doc/fr_FR/screenshots/internal-task-links.png new file mode 100644 index 0000000000000000000000000000000000000000..b0aa91ce4a8d7b071d2c66997e96ed86b172daf9 GIT binary patch literal 14772 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 z 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 literal 0 HcmV?d00001 diff --git a/doc/fr_FR/screenshots/task-transitions.png b/doc/fr_FR/screenshots/task-transitions.png new file mode 100644 index 0000000000000000000000000000000000000000..b71e82cd9a0f9d60f94e7c9c7bafea836e10d600 GIT binary patch literal 16975 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

L2qnD?d{m~$;P5sKHW^)V_(Z|c0J-we@A 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 Vx4wpx2;g7KvXV*?72;pM{}0$Xsh|J= literal 0 HcmV?d00001 diff --git a/doc/fr_FR/task-links.markdown b/doc/fr_FR/task-links.markdown index f2756ac71..3f58378f4 100644 --- a/doc/fr_FR/task-links.markdown +++ b/doc/fr_FR/task-links.markdown @@ -1,9 +1,11 @@ Liens entre les tâches -========== +====================== Les tâches peuvent être liées ensemble avec des relations prédéfinies. -![Task Links](https://kanboard.net/screenshots/documentation/task-links.png) +![Task Links](screenshots/internal-task-links.png) + +Il est également possible de connecter des tâches entre plusieurs projets. Les relations établies par défaut sont les suivantes : diff --git a/doc/fr_FR/transitions.markdown b/doc/fr_FR/transitions.markdown index 94a14bbc1..1b7b0879f 100644 --- a/doc/fr_FR/transitions.markdown +++ b/doc/fr_FR/transitions.markdown @@ -1,20 +1,14 @@ Transitions entre les tâches -================ +============================ Les transitions enregistrent tous les mouvements des tâches entre les colonnes -![Transitions](https://kanboard.net/screenshots/documentation/transitions.png) +![Transitions](screenshots/task-transitions.png) -Depuis la page des tâches, vous pouvez accéder à ces informations: +Depuis la page détaillée de la tâche, vous pouvez accéder à ces informations: - Date de l'action - Colonne d'origine - Colonne de destination - Exécutant (Pour l'utilisateur qui a déplacé la tâche) - Temps passé sur la colonne d’origine - -Les données de transition entre les tâches peuvent aussi être exportées depuis la page des paramètres du projet - -![Transitions Export](https://kanboard.net/screenshots/documentation/transitions-export.png) - -Pour la période spécifiée, vous allez générer un fichier CSV que vous pouvez utiliser avec n’importe quel tableur diff --git a/doc/index.markdown b/doc/index.markdown index b510190d0..54010d0cd 100644 --- a/doc/index.markdown +++ b/doc/index.markdown @@ -40,7 +40,7 @@ Using Kanboard - [Closing tasks](closing-tasks.markdown) - [Duplicate and move tasks](duplicate-move-tasks.markdown) - [Adding screenshots](screenshots.markdown) -- [Task links](task-links.markdown) +- [Internal Task links](task-links.markdown) - [Transitions](transitions.markdown) - [Time tracking](time-tracking.markdown) - [Recurring tasks](recurring-tasks.markdown) @@ -77,7 +77,7 @@ Using Kanboard - [Webhooks](webhooks.markdown) - [Plugins](plugins.markdown) -### More +### More information - [Advanced Search Syntax](search.markdown) - [Command line interface](cli.markdown) @@ -85,6 +85,12 @@ Using Kanboard - [Brute force protection](bruteforce-protection.markdown) - [Frequently asked questions](faq.markdown) +### Troubleshooting + +- [Solving database migration issues](solving-database-migration-issues.markdown) +- [Blank page after upgrading](solving-blank-page-issue.markdown) +- [Performances](performances.markdown) + Technical details ----------------- @@ -108,7 +114,6 @@ Technical details ### Configuration -- [Performances](performances.markdown) - [Daily background job](cronjob.markdown) - [Background Worker](worker.markdown) - [Config file](config.markdown) diff --git a/doc/roles.markdown b/doc/roles.markdown index 181904d5a..caa4380d2 100644 --- a/doc/roles.markdown +++ b/doc/roles.markdown @@ -22,3 +22,5 @@ Each individual team project can assign a different role to each user and group: | Project Manager | Can change project settings, access to the Gantt chart and reports | | Project Member | Can create tasks and use the board | | Project Viewer | Read-only access to the board and tasks | + +Custom project roles can be created to apply a set of restrictions to the users. diff --git a/doc/screenshots/internal-task-links.png b/doc/screenshots/internal-task-links.png new file mode 100644 index 0000000000000000000000000000000000000000..97870e92dfa344360bc610303f1f73b1a7b1136b GIT binary patch literal 9893 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 a8t3xU;Ok3*;IcoVRw*$#(L&)*-v0y8Q#D!u literal 0 HcmV?d00001 diff --git a/doc/screenshots/task-transitions.png b/doc/screenshots/task-transitions.png new file mode 100644 index 0000000000000000000000000000000000000000..7665fa599163d11621f097b31248d822dc38e427 GIT binary patch literal 38420 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 G1^)~6;`cNF literal 0 HcmV?d00001 diff --git a/doc/solving-blank-page-issue.markdown b/doc/solving-blank-page-issue.markdown new file mode 100644 index 000000000..c24e1f6c4 --- /dev/null +++ b/doc/solving-blank-page-issue.markdown @@ -0,0 +1,7 @@ +I get a blank page after installing or upgrading Kanboard +========================================================= + +- Check if you have installed all requirements on your server +- Check the PHP and Apache error logs +- Check if the files have the correct permissions +- If you use an aggressive OPcode caching, reload your web-server or php-fpm diff --git a/doc/solving-database-migration-issues.markdown b/doc/solving-database-migration-issues.markdown new file mode 100644 index 000000000..ddd39db61 --- /dev/null +++ b/doc/solving-database-migration-issues.markdown @@ -0,0 +1,23 @@ +Solving Database Migration Issues +================================= + +- SQL migrations are executed automatically when you upgrade Kanboard to a new version +- For Postgres and Mysql, the current schema version number is stored in the table `schema_version` and for Sqlite this is stored in the variable `user_version +- Migrations are defined in the file `app/Schema/.php` +- Each function is a migration +- Each migration is executed in a transaction +- If migration generate an error, a rollback is performed + +When upgrading: + +- Always backup your data +- Do not run migrations in parallel from multiple processes + +If you got the error "Unable to run SQL migrations [...]", here are the steps to fix it manually: + +1. Open the file corresponding to your database `app/Schema/Sqlite.php` or `app/Schema/Mysql.php` +2. Go to the failed migration function +3. Execute manually the SQL queries defined in the function +4. If you encounter an error, report the issue to the bug tracker with the exact SQL error +5. When all SQL statements of the migration are executed, update the schema version number +6. Run other migrations diff --git a/doc/swimlanes.markdown b/doc/swimlanes.markdown index f76336b93..776af138e 100644 --- a/doc/swimlanes.markdown +++ b/doc/swimlanes.markdown @@ -29,4 +29,3 @@ You can also disable and change the position of the different swimlanes. - The default swimlane is always on the top but you can hide it. - Inactive swimlanes are not shown on the board. - **Removing a swimlane doesn't remove tasks assigned to it**, those tasks will be moved to the default swimlane. - diff --git a/doc/task-links.markdown b/doc/task-links.markdown index cd36ed299..7c8c1add6 100644 --- a/doc/task-links.markdown +++ b/doc/task-links.markdown @@ -1,9 +1,11 @@ -Task Links -========== +Internal Task Links +=================== Tasks can be linked together with pre-defined relationships: -![Task Links](https://kanboard.net/screenshots/documentation/task-links.png) +![Task Links](screenshots/internal-task-links.png) + +This is also possible to link tasks across projects. The default relationships are: diff --git a/doc/transitions.markdown b/doc/transitions.markdown index 7b2ad97ba..383dfa1d7 100644 --- a/doc/transitions.markdown +++ b/doc/transitions.markdown @@ -1,9 +1,9 @@ -Task transitions +Task Transitions ================ -Transitions record each movement of the tasks between columns. +Each movement of a task between columns is recorded in the database. -![Transitions](https://kanboard.net/screenshots/documentation/transitions.png) +![Task Transitions](screenshots/task-transitions.png) Available from the task view, you can see that information: @@ -12,9 +12,3 @@ Available from the task view, you can see that information: - Destination column - Executor (users that moves the task) - Time spent in the origin column - -Task transition data can also be exported from the project settings page. - -![Transitions Export](https://kanboard.net/screenshots/documentation/transitions-export.png) - -For the specified time range you will generate a CSV file that you can use with any spreadsheet software. diff --git a/doc/update.markdown b/doc/update.markdown index 68e1f5879..73269b1e6 100644 --- a/doc/update.markdown +++ b/doc/update.markdown @@ -1,15 +1,16 @@ Upgrade Kanboard to a new version ================================= -Upgrading Kanboard to a newer version is seamless. -The process can be summarized to simply copy your data folder to the new Kanboard folder. +Most of the time, upgrading Kanboard to a newer version is seamless. +The process could be summarized to simply copy your data folder to the new Kanboard folder. Kanboard will run database migrations automatically for you. Important things to do before updating -------------------------------------- - **Always make a backup of your data before upgrading** -- Check that your backup is valid! +- **Check that your backup is valid!** +- Check again - 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) @@ -19,7 +20,7 @@ From the archive (stable version) 1. Decompress the new archive 2. Copy the content of your data folder into the newly uncompressed directory 3. Copy your custom `config.php` if you have one -4. Copy your plugins if necessary +4. If you have installed some plugins, use the latest version 5. Make sure the directory `data` is writeable by your web server user 6. Test 7. Remove your old Kanboard directory diff --git a/doc/vagrant.markdown b/doc/vagrant.markdown index 864f37b8f..8fb05b20e 100644 --- a/doc/vagrant.markdown +++ b/doc/vagrant.markdown @@ -4,7 +4,7 @@ Run Kanboard with Vagrant You can try Kanboard with Vagrant very easily: - Clone the project from the git repository -- Run `vagrant up` +- Execute `vagrant up` - You can access to the application by using the URL `http://localhost:8001/` The virtual machine is based on Ubuntu 14.04 with PHP 5.5. diff --git a/doc/web.config b/doc/web.config deleted file mode 100644 index 1461fe2d2..000000000 --- a/doc/web.config +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/worker.markdown b/doc/worker.markdown index fba661385..8516068b6 100644 --- a/doc/worker.markdown +++ b/doc/worker.markdown @@ -32,4 +32,4 @@ This feature is optional and require the installation of a queue daemon on your ### Notes - You should start the Kanboard worker with a process supervisor (systemd, upstart or supervisord) -- The process must be have access to the data folder if you store files on the local filesystem and have Sqlite +- The process must have access to the data folder if you store files on the local filesystem or use Sqlite