diff options
Diffstat (limited to 'doc')
612 files changed, 0 insertions, 37836 deletions
diff --git a/doc/cs_CZ/board-collapsed-expanded.markdown b/doc/cs_CZ/board-collapsed-expanded.markdown deleted file mode 100644 index 5c4d3822..00000000 --- a/doc/cs_CZ/board-collapsed-expanded.markdown +++ /dev/null @@ -1,18 +0,0 @@ -Sbalený a rozbalený režim -=========================== - -Úkoly na desce mohou být zobrazeny ve sbaleném nebo v rozbaleném režimu. -Přechod z jednoho pohledu na druhý lze provést pomocí klávesové zkratky **"s"** nebo pomocí rozbalovací nabídky vlevo. - -Sbalený režim --------------- - -![Sbalené úkoly](../screenshots/board-collapsed-mode.png) - -- Pokud je úkol někomu přiřazen, zobrazí se vedle čísla úlohy iniciály osoby. -- Pokud je název úlohy příliš dlouhý, můžete svou myš umístit přes úkol, aby se zobrazil popis s celým názvem. - -Rozbalený režim -------------- - -![Rozbalené úkoly](../screenshots/board-expanded-mode.png)
\ No newline at end of file diff --git a/doc/cs_CZ/board-horizontal-scrolling-and-compact-view.markdown b/doc/cs_CZ/board-horizontal-scrolling-and-compact-view.markdown deleted file mode 100644 index ef188c14..00000000 --- a/doc/cs_CZ/board-horizontal-scrolling-and-compact-view.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Horizontální rolování a kompaktní režim -===================================== - -Pokud se nástěnka nevejde na obrazovku, zobrazí se v dolní části vodorovná posuvná lišta. - -Je však možné přepnout na kompaktní zobrazení, aby se zobrazily všechny sloupce na obrazovce. - -![Přepnout do kompaktního režimu](../screenshots/board-compact-mode.png) - -Přepínání mezi horizontálním rolováním a kompaktním zobrazením lze provést pomocí klávesové zkratky **"c"** nebo pomocí rozbalovací nabídky vlevo nahoře. diff --git a/doc/cs_CZ/board-show-hide-columns.markdown b/doc/cs_CZ/board-show-hide-columns.markdown deleted file mode 100644 index 92d6a011..00000000 --- a/doc/cs_CZ/board-show-hide-columns.markdown +++ /dev/null @@ -1,12 +0,0 @@ -Zobrazit a skrýt sloupce na nástěnce -================================== - -Sloupce můžete velmi snadno skrýt nebo zobrazit na nástěnce: - -![Skrýt sloupec](../screenshots/hide-column.png) - -Chcete-li sloupec skrýt, klikněte na rozbalovací nabídku sloupců a zvolte "Skrýt tento sloupec". - -![Zobrazit sloupec](../screenshots/show-column.png) - -Chcete-li znovu zobrazit sloupec, klikněte na ikonu plus. diff --git a/doc/cs_CZ/closing-tasks.markdown b/doc/cs_CZ/closing-tasks.markdown deleted file mode 100644 index 7bb6b54a..00000000 --- a/doc/cs_CZ/closing-tasks.markdown +++ /dev/null @@ -1,16 +0,0 @@ -Uzavírání úkolů -============= - -Když je úkol uzavřen, je skrytý z nástěnky. - -Vždy však můžete získat přístup k seznamu uzavřených úkolů pomocí dotazu **status:closed** v libovolném vyhledávacím formuláři nebo jednoduše vybrat **Uzavřené úkoly** z rozevírací nabídky filtru. - -Existují dva různé způsoby jak zavřít úkol z rozbalovací nabídky úloh na nástěnce: - -![Uzavřít úkol z rozbalovací nabídky](../screenshots/menu-close-task.png) - -Nebo z nabídky postranního panelu úloh v detailním zobrazení úkolu: - -![Uzavřít úkol](../screenshots/closing-tasks.png) - -Poznámka: Když zavřete úkol, všechny dílčí úkoly, které nebyly dokončeny, budou změněny na stav "Dokončeno". diff --git a/doc/cs_CZ/creating-projects.markdown b/doc/cs_CZ/creating-projects.markdown deleted file mode 100644 index 625efd73..00000000 --- a/doc/cs_CZ/creating-projects.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Vytváření projektů -================= - -Kanboard dokáže zpracovat více projektů. Existují dva druhy projektů: - -- Týmové projekty -- Soukromý projekt pro jednoho uživatele - -Vytváření projektů pro více uživatelů -------------------------------------- - -- Tyto projekty mohou vytvářet pouze správci a správci projektů -- Správa uživatelů je k dispozici - -Na nástěnce klikněte na odkaz **Nový projekt**: - -![Formulář pro tvorbu projektu](../screenshots/new-project.png) - -Je to velmi snadné: stačí najít jméno pro svůj projekt! - -Vytváření soukromého projektu ------------------------------ - -- Každý může vytvořit soukromý projekt -- **Není** zde možnost správy uživatelů -- Do projektu mohou přistupovat pouze vlastníci a správci - -Na nástěnce klikněte na odkaz **Nový soukromý projekt**. - -Vytváření projektů z jiného projektu --------------------------------------- - -Při vytváření nového projektu můžete zvolit duplikování vlastností jiného projektu: - -- Oprávnění -- Akce -- Dráhy -- Kategorie -- Úkoly
\ No newline at end of file diff --git a/doc/cs_CZ/creating-tasks.markdown b/doc/cs_CZ/creating-tasks.markdown deleted file mode 100644 index c7d72555..00000000 --- a/doc/cs_CZ/creating-tasks.markdown +++ /dev/null @@ -1,30 +0,0 @@ -Vytváření úkolů -============== - -Na nástěnce klikněte na znaménko plus vedle názvu sloupce: - -![Vytváření úkolů z nástěnky](../screenshots/task-creation-board.png) - -Poté se zobrazí formulář vytvoření úkolu: - -![Formulář pro tvorbu úkolů](../screenshots/task-creation-form.png) - -Popis pole: - -- **Název**: Název vašeho úkolu, který bude zobrazen na nástěnce. -- **Popis**: Popis, který používá formát [Markdown](syntax-guide.markdown). -- **Štítky**: Seznam štítků přidružených k úkolům. -- **Vytvoření dalšího úkolu**: Zaškrtněte toto políčko, pokud chcete vytvořit podobný úkol (některé pole budou předem naplněny). -- **Barva**: Vyberte barvu karty. -- **Vlastník**: Osoba, která bude na úkolu pracovat. -- **Kategorie**: K úloze lze přiřadit pouze jednu kategorii (viditelné pouze v případě, že projekty mají kategorie). -- **Sloupec**: Sloupec, ve kterém bude úloha vytvořena, úkol bude umístěn v dolní části. -- **Priorita**: Priorita úkolu, rozsah lze definovat v nastavení projektu, výchozí hodnoty jsou P0 až P3. -- **Složitost**: Používá se v agilním řízení projektů (Scrum), složitost nebo tzv. "story-points", to je číslo, které říká týmu, jak těžký je úkol. Často lidé používají Fibonacciho posloupnost. -- **Reference**: Externí ID úkolu, např. to může být číslo ticketu, které pochází z jiného systému -- **Časový odhad**: Odhad v hodinách pro dokončení úkolu. -- **Čas strávený**: Doba strávená při práci na úkolu. -- **Datum zahájení**: Toto je pole pro zadání data a času zahájení. -- **Datum splnění**: Opakované úkoly budou mít červený termín splnění a nadcházející termíny budou černé na nástěnce. Pro zadání datumů je k dispozici několik formátů datumu. - -Pomocí odkazu náhled můžete vidět popis úlohy převedený ze syntaxe Markdown.
\ No newline at end of file diff --git a/doc/cs_CZ/duplicate-move-tasks.markdown b/doc/cs_CZ/duplicate-move-tasks.markdown deleted file mode 100644 index f8064f3c..00000000 --- a/doc/cs_CZ/duplicate-move-tasks.markdown +++ /dev/null @@ -1,58 +0,0 @@ -Kopírovat a přesunout úkoly -======================== - -Kopírovat úkol do stejného projektu --------------------------------------- - -Přejděte do zobrazení úkolů a vlevo vyberte položku **Vytvořit kopii**. - -![Kopírování úloh](../screenshots/task-duplication.png) - -Nový úkol bude vytvořen se stejnými vlastnostmi jako originál. - -Kopírovat úkol do jiného projektu ------------------------------------ - -Přejděte do zobrazení úkolů a vyberte možnost **Vytvořit kopii v jiném projektu **. - -![Kopírování úkolů do jiného projektu](../screenshots/task-duplication-another-project.png) - -V rozbalovací nabídce se zobrazí pouze projekty, ve kterých jste členem. - -Než provedete kopírování úkolů, Kanboard se vás zeptá na cílové vlastnosti, které nejsou společné mezi zdrojovým a cílovým projektem. - -V zásadě musíte definovat: - -- cílová dráha -- Sloupec -- Kategorie -- Vlastník - -Přesunout úkol do jiného projektu ------------------------------- - -Přejděte do zobrazení úkolů a vyberte možnost **Přesunout do jiného projektu**. - -Přesunutí úkolu do jiného projektu pracuje stejným způsobem jako kopírování, musíte zvolit nové vlastnosti úkolu. - -Seznam kopírovaných polí -------------------------- - -Zde je seznam kopírovaných vlastností: - -- název -- popis -- datum splnění -- barva -- projekt -- sloupec -- vlastník -- skóre -- kategorie -- strávený čas -- dráha -- stav opakování -- spouštěč opakování -- faktor pro opakování -- časové okno pro opakování -- výchozí datum pro výpočet opakování diff --git a/doc/cs_CZ/editing-projects.markdown b/doc/cs_CZ/editing-projects.markdown deleted file mode 100644 index e4b6ed9d..00000000 --- a/doc/cs_CZ/editing-projects.markdown +++ /dev/null @@ -1,15 +0,0 @@ -Úpravy projektů -================ - -Projekty lze kdykoli přejmenovat nebo zakázat. - -Chcete-li projekt přejmenovat, klikněte na odkaz "Upravit projekt" vlevo. - -![Úprava projektu](../screenshots/project-edition.png) - -- Datum zahájení a datum ukončení se používají k vygenerování Ganttova grafu projektu. -- Popis je viditelný jako nápověda na nástěnce a na stránce výpisů projektů. -- Správci a správci projektů mohou převádět soukromý projekt na projekt s více uživateli změnou zaškrtávacího políčka "Soukromý projekt". -- Můžete také převést týmový projekt na soukromý projekt. - -Poznámka: Když převedete projekt na soukromý, všichni stávající uživatelé budou stále mít přístup k projektu. Seznam uživatelů můžete upravit podle vašich potřeb.
\ No newline at end of file diff --git a/doc/cs_CZ/index.markdown b/doc/cs_CZ/index.markdown deleted file mode 100644 index 8797e099..00000000 --- a/doc/cs_CZ/index.markdown +++ /dev/null @@ -1,149 +0,0 @@ -Obsah -============= - -Používání Kanboard --------------- - -### Úvod - -- [Co je Kanban?](what-is-kanban.markdown) -- [Kanban vs Todo Lists and Scrum](kanban-vs-todo-and-scrum.markdown) -- [Usage examples](usage-examples.markdown) - -### Používání nástěnky - -- [Zobrazení Nástěnka, Kalendář, Seznam a Gantt](project-views.markdown) -- [Sbalený a rozbalený režim](board-collapsed-expanded.markdown) -- [Horizontální rolování a kompaktní režim](board-horizontal-scrolling-and-compact-view.markdown) -- [Zobrazit a skrýt sloupce](board-show-hide-columns.markdown) - -### Práce s projekty - -- [Typy projektů](project-types.markdown) -- [Vytváření projektů](creating-projects.markdown) -- [Úpravy projektů](editing-projects.markdown) -- [Odstranění projektů](removing-projects.markdown) -- [Sharing boards and tasks](sharing-projects.markdown) -- [Automatic actions](automatic-actions.markdown) -- [Oprávnění projektu](project-permissions.markdown) -- [Swimlanes](swimlanes.markdown) -- [Calendar](calendar.markdown) -- [Analytics](analytics.markdown) -- [Gantt chart for tasks](gantt-chart-tasks.markdown) -- [Gantt chart for projects](gantt-chart-projects.markdown) -- [Custom filters](custom-filters.markdown) -- [Custom project roles](custom-project-roles.markdown) - -### Práce s úkoly - -- [Vytváření úkolů](creating-tasks.markdown) -- [Uzavírání úkolů](closing-tasks.markdown) -- [Kopírovat a přesunout úkoly](duplicate-move-tasks.markdown) -- [Adding screenshots](screenshots.markdown) -- [Internal Task links](task-links.markdown) -- [Transitions](transitions.markdown) -- [Time tracking](time-tracking.markdown) -- [Recurring tasks](recurring-tasks.markdown) -- [Create tasks by email](create-tasks-by-email.markdown) -- [Subtasks](subtasks.markdown) -- [Analytics for tasks](analytics-tasks.markdown) -- [User mentions](user-mentions.markdown) -- [Tags](tags.markdown) - -### Working with users and groups - -- [Roles](roles.markdown) -- [User Types](user-types.markdown) -- [Group management](groups.markdown) -- [User management](user-management.markdown) -- [Notifications](notifications.markdown) -- [Two factor authentication](2fa.markdown) - -### Settings - -- [Keyboard shortcuts](keyboard-shortcuts.markdown) -- [Application settings](application-configuration.markdown) -- [Nastavení projektu](project-configuration.markdown) -- [Board settings](board-configuration.markdown) -- [Calendar settings](calendar-configuration.markdown) -- [Link settings](link-labels.markdown) -- [Currency rate](currency-rate.markdown) - -### Integrations - -- [iCalendar subscriptions](ical.markdown) -- [RSS/Atom subscriptions](rss.markdown) -- [Json-RPC API](api-json-rpc.markdown) -- [Webhooks](webhooks.markdown) -- [Plugins](plugins.markdown) - -### More information - -- [Advanced Search Syntax](search.markdown) -- [Command line interface](cli.markdown) -- [Syntax guide](syntax-guide.markdown) -- [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) -- [Unable to open a session on Windows IIS and Internet Explorer](solving-session-issue-windows-iis-ie.markdown) -- [Performances](performances.markdown) - -Technical details ------------------ - -### Installation - -- [Requirements](requirements.markdown) -- [Installation instructions](installation.markdown) -- [Upgrade Kanboard to a new version](update.markdown) -- [Installation on Ubuntu](ubuntu-installation.markdown) -- [Installation on Debian](debian-installation.markdown) -- [Installation on Centos](centos-installation.markdown) -- [Installation on OpenSuse](suse-installation.markdown) -- [Installation on FreeBSD](freebsd-installation.markdown) -- [Installation on Windows Server with IIS](windows-iis-installation.markdown) -- [Installation on Windows Server with Apache](windows-apache-installation.markdown) -- [Installation on Heroku](heroku.markdown) -- [Run Kanboard with Docker](docker.markdown) -- [Run Kanboard with Vagrant](vagrant.markdown) -- [Run Kanboard on Cloudron](cloudron.markdown) - -### Configuration - -- [Daily background job](cronjob.markdown) -- [Background Worker](worker.markdown) -- [Config file](config.markdown) -- [Environment variables](env.markdown) -- [Email configuration](email-configuration.markdown) -- [URL rewriting](nice-urls.markdown) -- [Plugin Directory](plugin-directory.markdown) - -### Database - -- [Sqlite database management](sqlite-database.markdown) -- [How to use Mysql](mysql-configuration.markdown) -- [How to use Postgresql](postgresql-configuration.markdown) - -### Authentication - -- [LDAP authentication](ldap-authentication.markdown) -- [LDAP group synchronization](ldap-group-sync.markdown) -- [LDAP profile picture](ldap-profile-picture.markdown) -- [LDAP parameters](ldap-parameters.markdown) -- [LDAP configuration examples](ldap-configuration-examples.markdown) -- [Reverse proxy authentication](reverse-proxy-authentication.markdown) - -### Contributors - -- [Contributor guide](contributing.markdown) -- [Translations](translations.markdown) -- [Coding standards](coding-standards.markdown) -- [Running tests](tests.markdown) -- [Build assets](assets.markdown) - -The documentation is written in [Markdown](http://en.wikipedia.org/wiki/Markdown). -If you want to improve the documentation, just send a pull-request. diff --git a/doc/cs_CZ/project-configuration.markdown b/doc/cs_CZ/project-configuration.markdown deleted file mode 100644 index 53d38efe..00000000 --- a/doc/cs_CZ/project-configuration.markdown +++ /dev/null @@ -1,41 +0,0 @@ -Nastavení projektu -================ - -Přejděte do nabídky **Nastavení** a poté vlevo vyberte možnost **Nastavení projektu**. - -![Nastavení projektu](../screenshots/project-settings.png) - -### Výchozí sloupce pro nové projekty - -Zde můžete změnit výchozí názvy sloupců. -Toto je užitečné, pokud vždy vytváříte projekty se stejnými sloupci. - -Každé jméno sloupce musí být odděleno čárkou. - -Ve výchozím nastavení Kanboard používá tyto názvy sloupců: Nevyřízené, Připraveno, V řešení a Dokončeno. - -### Výchozí kategorie pro nové projekty - -Kategorie nejsou globální pro aplikaci, ale jsou připojeny k projektu. -Každý projekt může mít různé kategorie. - -Pokud však vždy vytvoříte stejné kategorie pro všechny vaše projekty, můžete zde definovat seznam kategorií, které chcete vytvořit automaticky. - -### Povolit současně pouze jednu dílčí úlohu pro uživatele - -Je-li tato volba povolena, může uživatel pracovat pouze s jednou dílčí úlohou v daném okamžiku. - -Pokud má další dílčí úloha stav "probíhající", zobrazí se toto dialogové okno: - -![Omezení uživatele dílčího úkolu](../screenshots/subtask-user-restriction.png) - -### Spustit automaticky sledování času - -- Pokud je povoleno, když je stav dílčí úlohy změněn na "probíhající", časovač se spustí automaticky. -- Tuto možnost deaktivujte, pokud nepoužíváte sledování času. - -### Zahrnout uzavřené úkoly v kumulativním vývojovém diagramu - -- Pokud je povoleno, uzavřené úkoly budou zahrnuty do kumulativního diagramu. -- Pokud je zakázáno, budou zahrnuty pouze otevřené úkoly. -- Tato volba ovlivňuje sloupec "celkem" tabulky "project_daily_column_stats" diff --git a/doc/cs_CZ/project-permissions.markdown b/doc/cs_CZ/project-permissions.markdown deleted file mode 100644 index 208a5698..00000000 --- a/doc/cs_CZ/project-permissions.markdown +++ /dev/null @@ -1,20 +0,0 @@ -Oprávnění projektu -=================== - -Každý projekt je izolován od jiných projektů. -Přístup k projektu musí být povolen vlastníkem projektu. - -Každý uživatel a každá skupina mohou mít přiřazenou jinou roli. -Existují 3 typy [rolí projektu](roles.markdown): - -- Správce projektu -- Člen projektu -- Čtenář projektu - -Pouze správci mají přístup ke všemu. - -Přiřazení rolí je viditelné v **Nastavení projektu > Oprávnění**: - -![Oprávnění projektu](../screenshots/project-permissions.png) - -U soukromých projektů nelze definovat oprávnění.
\ No newline at end of file diff --git a/doc/cs_CZ/project-types.markdown b/doc/cs_CZ/project-types.markdown deleted file mode 100644 index c0bd29b9..00000000 --- a/doc/cs_CZ/project-types.markdown +++ /dev/null @@ -1,14 +0,0 @@ -Typy projektů -============= - -Existují dva druhy projektů: - -| Type | Description | -|-------------------|-----------------------------------------------------------------------| -| Týmový projekt | Projekt s řízením uživatelů a skupin | -| Soukromý projekt | Projekt, který patří pouze jedné osobě, nemá správu uživatelů | - -- Pouze správci a aplikační správci mohou vytvářet týmové projekty. -- Soukromé projekty může vytvářet každý. - -[Přečtěte si dokumentaci o rolích v Kanboard](roles.markdown) diff --git a/doc/cs_CZ/project-views.markdown b/doc/cs_CZ/project-views.markdown deleted file mode 100644 index 23fc9ec4..00000000 --- a/doc/cs_CZ/project-views.markdown +++ /dev/null @@ -1,58 +0,0 @@ -Nástěnka, kalendář a zobrazení seznamu -============================== - -Pro každý projekt je možné úkoly vizualizovat s několika pohledy: ** Nástěnka, Kalendář, Seznam a Gantt **. -V každém zobrazení se zobrazí výsledek pole filtru v horní části. -Vyhledávač používá [advanced syntax](search.markdown). - -Zobrazení nástěnky ------------------ - -![Nástěnka](../screenshots/board-view.png) - -- S tímto pohledem můžete snadno přetáhnout úkoly mezi sloupci. -- Můžete také použít klávesovou zkratku **"v b"** pro přepnutí na nástěnku. -- Úkoly se stínem byly nedávno upraveny. - -![Omezení počtu úkolů na nástěnce](../screenshots/board-task-limit.png) - -Po dosažení limitu úkolů pro sloupec se pozadí stává červeným. To znamená, že probíhá příliš mnoho úkolů ve stejnou dobu. - -[Další informace o konfiguraci nástěnky](board-configuration.markdown) - -Zobrazení kalendáře --------------- - -![Zobrazení kalendáře](../screenshots/calendar-view.png) - -- Pomocí tohoto pohledu můžete vizualizovat úkoly s datem splnění. -- V závislosti na nastavení můžete také vidět probíhající úlohy. -- K přepnutí do zobrazení kalendáře můžete také použít klávesovou zkratku **"v c"**. -- [Další informace o konfiguraci kalendáře](calendar-configuration.markdown) - -Zobrazení seznamu ---------- - -![Zobrazení seznamu](../screenshots/list-view.png) - -- V tomto zobrazení jsou všechny výsledky vašeho vyhledávání zobrazeny v tabulce. -- K přepnutí do zobrazení seznamu můžete také použít klávesovou zkratku **"v l"**. - -Zobrazení jako Gantt ------------------ - -![Zobrazení Gantt](../screenshots/gantt-view.png) - -- Zobrazení Gantt zobrazuje úkoly na horizontální časové ose. -- Datum zahájení a datum splnění se používají k zobrazení grafu. -- Pro rychlý přístup použijte klávesovou zkratku: **v g**. - -Přehled projektu ----------------- - -![Přehled projektu](../screenshots/project-view.png) - -- Zobrazení popisu projektu. -- Připojit a nahrát dokumenty do projektu. -- Zobrazit seznam členů projektu. -- Zobrazit poslední aktivity projektu.
\ No newline at end of file diff --git a/doc/cs_CZ/removing-projects.markdown b/doc/cs_CZ/removing-projects.markdown deleted file mode 100644 index 72a82fd1..00000000 --- a/doc/cs_CZ/removing-projects.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Odstranění projektů -================= - -Chcete-li projekt odebrat, musíte být správcem projektu nebo správcem. - -Přejděte na položku **"Nastavení projektu"** a v nabídce vlevo, v dolní části zvolte možnost "Odstranit"**. - -![Odstranění projektů](../screenshots/project-remove.png) - -Odstranění projektu odstraní všechny úkoly, které patří tomuto projektu.
\ No newline at end of file diff --git a/doc/cs_CZ/what-is-kanban.markdown b/doc/cs_CZ/what-is-kanban.markdown deleted file mode 100644 index e84aa71a..00000000 --- a/doc/cs_CZ/what-is-kanban.markdown +++ /dev/null @@ -1,32 +0,0 @@ -Co je Kanban? -=============== - -Kanban je metodika původně vyvinutá společností Toyota aby byla efektivnější. - -Kanban si klade za cíl dva úkoly: - -- Vizualizujte svůj pracovní postup -- Omezte množství své rozdělané práce - -Vizualizujte svůj pracovní postup ------------------------ - -- Vaše práce je zobrazena na nástěnce, takže máte přehled o vašem projektu -- Každý sloupec představuje krok ve vašem pracovním postupu - -Omezte množství své rozdělané práce --------------------------------------------------- -- Slepšuje soustředění, tím že se vyhne souběžné práci -- Každá fáze může mít limity pro rozdělanou práci -- Limity pomáhají identifikovat překážky -- Limity pomáhají vyhnout se práci na příliš mnoha úlohách současně - -Měření výkonu -======================= - -Kanban využívá doby potřebné k realizaci a doby cyklů k měření výkonu: - -- ** Doba potřebná k realizaci **: Čas mezi vytvořením a dokončením úlohy -- ** Doba cyklu **: Čas mezi zahájením a dokončením úlohy - -Můžete například mít 100 dní doby potřebné k realizaci, ale musíte dokončit úkol pouze za 1 hodinu. diff --git a/doc/de_DE/custom-css.markdown b/doc/de_DE/custom-css.markdown deleted file mode 100644 index b58a073f..00000000 --- a/doc/de_DE/custom-css.markdown +++ /dev/null @@ -1,30 +0,0 @@ -Custom CSS -========== - -Einstellung > Anwendungskonfiguration > benutzerdefiniertes Stylesheet - -Inviduelle Kategorien Darstellung ---------------------------------- - -Für den Kategorien-Container allgemeine Darstellung: - -```css -.task-board-category-container-color span { - border: solid 0.5px grey; - color: black; -} -``` - -Für den Text-Inhalt: - -```css -[class*="category-Patchkanditat"] { - background-color: rgba(255, 0, 0, 0.50); - border: none!important; - font-weight: bold; - font-style: italic; - box-shadow: 0 1px 1px rgba(186, 186, 186, 0.55); - color: white!important; - font-size:11px; -} -``` diff --git a/doc/en_US/2fa.markdown b/doc/en_US/2fa.markdown deleted file mode 100644 index 39599ea6..00000000 --- a/doc/en_US/2fa.markdown +++ /dev/null @@ -1,33 +0,0 @@ -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 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 applications: - -- [Google Authenticator](https://github.com/google/google-authenticator/) (Android, iOS, Blackberry) -- [FreeOTP](https://freeotp.github.io/) (Android, iOS) -- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/) (Command line utility on Unix/Linux) - -This system can work offline and you don't necessarily need to have a mobile phone. - -Setup ------ - -1. Go to your user profile -2. On the left, click on **Two factor authentication** and check the box -3. A secret key is generated for you - -![2FA](../screenshots/2fa.png) - -- You have to save the secret key in your TOTP software. If you use a smartphone, the easiest solution is to scan the QR code with FreeOTP or Google Authenticator. -- Each time you will open a new session, a new code will be asked -- Don't forget to test your device before closing your session - -A new secret key is generated each time you enable/disable this feature. diff --git a/doc/en_US/analytics-tasks.markdown b/doc/en_US/analytics-tasks.markdown deleted file mode 100644 index ce5c0690..00000000 --- a/doc/en_US/analytics-tasks.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Analytics for tasks -=================== - -Each task has an analytics section available from the left menu in the task view. - -Lead and cycle time -------------------- - -![Lead and cycle time](../screenshots/task-lead-cycle-time.png) - -- 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 the start date automatically when you move a task to the column of your choice. - -Time spent into each column ---------------------------- - -![Time spent into each column](../screenshots/time-into-each-column.png) - -- This chart shows the total time spent into each column for the task. -- The time spent is calculated until the task is closed. diff --git a/doc/en_US/analytics.markdown b/doc/en_US/analytics.markdown deleted file mode 100644 index 72987530..00000000 --- a/doc/en_US/analytics.markdown +++ /dev/null @@ -1,67 +0,0 @@ -Project Analytics -================= - -Each project have an analytics section. Depending on how you are using Kanboard, you can see those reports: - -User repartition ----------------- - -![User repartition](../screenshots/user-repartition.png) - -This pie chart show the number of open tasks assigned per user. - -Task distribution ------------------ - -![Task distribution](../screenshots/task-distribution.png) - -This pie chart gives an overview of the number of open tasks per column. - -Cumulative flow diagram ------------------------ - -![Cumulative flow diagram](../screenshots/cfd.png) - -- This chart shows the number of tasks cumulatively for each column over the time. -- The legend order is the same as the stack in the chart. -- The color of each column is determined automatically. -- Every day, the number of tasks is recorded for each column. -- If you would like to exclude closed tasks, change the [global project settings](project-configuration.markdown). - -Note: You need to have at least two days of data to see the graph. - -Burn down chart ---------------- - -![Burndown chart](../screenshots/burndown-chart.png) - -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. -- Everyday, the sum of the story points for each column is calculated. - -Average time spent into each column ------------------------------------ - -![Average time spent into each column](../screenshots/average-time-spent-into-each-column.png) - -This chart shows the average time spent into each column for the last 1000 tasks. - -- Kanboard uses the task transitions to calculate the data. -- The time spent is calculated until the task is closed. - -Average Lead and Cycle time ---------------------------- - -![Average time spent into each column](../screenshots/average-lead-cycle-time.png) - -This chart show the average lead and cycle time for the last 1000 tasks over 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 the 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 every day for the whole project. - -Note: Don't forget to run the [daily cronjob](cronjob.markdown) to have accurate statistics. diff --git a/doc/en_US/api-action-procedures.markdown b/doc/en_US/api-action-procedures.markdown deleted file mode 100644 index 377ca56a..00000000 --- a/doc/en_US/api-action-procedures.markdown +++ /dev/null @@ -1,245 +0,0 @@ -API Automatic Actions Procedures -================================ - -## getAvailableActions - -- Purpose: **Get list of available automatic actions** -- Parameters: none -- Result on success: **list of actions** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAvailableActions", - "id": 1217735483 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1217735483, - "result": { - "\Kanboard\Action\TaskLogMoveAnotherColumn": "Add a comment logging moving the task between columns", - "\Kanboard\Action\TaskAssignColorUser": "Assign a color to a specific user", - "\Kanboard\Action\TaskAssignColorColumn": "Assign a color when the task is moved to a specific column", - "\Kanboard\Action\TaskAssignCategoryColor": "Assign automatically a category based on a color", - "\Kanboard\Action\TaskAssignColorCategory": "Assign automatically a color based on a category", - "\Kanboard\Action\TaskAssignSpecificUser": "Assign the task to a specific user", - "\Kanboard\Action\TaskAssignCurrentUser": "Assign the task to the person who does the action", - "\Kanboard\Action\TaskUpdateStartDate": "Automatically update the start date", - "\Kanboard\Action\TaskAssignUser": "Change the assignee based on an external username", - "\Kanboard\Action\TaskAssignCategoryLabel": "Change the category based on an external label", - "\Kanboard\Action\TaskClose": "Close a task", - "\Kanboard\Action\CommentCreation": "Create a comment from an external provider", - "\Kanboard\Action\TaskCreation": "Create a task from an external provider", - "\Kanboard\Action\TaskDuplicateAnotherProject": "Duplicate the task to another project", - "\Kanboard\Action\TaskMoveColumnAssigned": "Move the task to another column when assigned to a user", - "\Kanboard\Action\TaskMoveColumnUnAssigned": "Move the task to another column when assignee is cleared", - "\Kanboard\Action\TaskMoveAnotherProject": "Move the task to another project", - "\Kanboard\Action\TaskOpen": "Open a task" - } -} -``` - -## getAvailableActionEvents - -- Purpose: **Get list of available events for actions** -- Parameters: none -- Result on success: **list of events** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAvailableActionEvents", - "id": 2116665643 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2116665643, - "result": { - "bitbucket.webhook.commit": "Bitbucket commit received", - "task.close": "Closing a task", - "github.webhook.commit": "Github commit received", - "github.webhook.issue.assignee": "Github issue assignee change", - "github.webhook.issue.closed": "Github issue closed", - "github.webhook.issue.commented": "Github issue comment created", - "github.webhook.issue.label": "Github issue label change", - "github.webhook.issue.opened": "Github issue opened", - "github.webhook.issue.reopened": "Github issue reopened", - "gitlab.webhook.commit": "Gitlab commit received", - "gitlab.webhook.issue.closed": "Gitlab issue closed", - "gitlab.webhook.issue.opened": "Gitlab issue opened", - "task.move.column": "Move a task to another column", - "task.open": "Open a closed task", - "task.assignee_change": "Task assignee change", - "task.create": "Task creation", - "task.create_update": "Task creation or modification", - "task.update": "Task modification" - } -} -``` - -## getCompatibleActionEvents - -- Purpose: **Get list of events compatible with an action** -- Parameters: - - **action_name** (string, required) -- Result on success: **list of events** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getCompatibleActionEvents", - "id": 899370297, - "params": [ - "\Kanboard\Action\TaskClose" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 899370297, - "result": { - "bitbucket.webhook.commit": "Bitbucket commit received", - "github.webhook.commit": "Github commit received", - "github.webhook.issue.closed": "Github issue closed", - "gitlab.webhook.commit": "Gitlab commit received", - "gitlab.webhook.issue.closed": "Gitlab issue closed", - "task.move.column": "Move a task to another column" - } -} -``` - -## getActions - -- Purpose: **Get list of actions for a project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **list of actions properties** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getActions", - "id": 1433237746, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1433237746, - "result": [ - { - "id" : "13", - "project_id" : "2", - "event_name" : "task.move.column", - "action_name" : "\Kanboard\Action\TaskAssignSpecificUser", - "params" : { - "column_id" : "5", - "user_id" : "1" - } - } - ] -} -``` - -## createAction - -- Purpose: **Create an action** -- Parameters: - - **project_id** (integer, required) - - **event_name** (string, required) - - **action_name** (string, required) - - **params** (key/value parameters, required) -- Result on success: **action_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createAction", - "id": 1433237746, - "params": { - "project_id" : "2", - "event_name" : "task.move.column", - "action_name" : "\Kanboard\Action\TaskAssignSpecificUser", - "params" : { - "column_id" : "3", - "user_id" : "2" - } - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1433237746, - "result": 14 -} -``` - -## removeAction - -- Purpose: **Remove an action** -- Parameters: - - **action_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeAction", - "id": 1510741671, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1510741671, - "result": true -} -``` diff --git a/doc/en_US/api-application-procedures.markdown b/doc/en_US/api-application-procedures.markdown deleted file mode 100644 index 08474559..00000000 --- a/doc/en_US/api-application-procedures.markdown +++ /dev/null @@ -1,291 +0,0 @@ -API Application Procedures -========================== - -## getVersion - -- Purpose: **Get the application version** -- Parameters: none -- Result: **version** (Example: 1.0.12, master) - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getVersion", - "id": 1661138292 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1661138292, - "result": "1.0.13" -} -``` - -## getTimezone - -- Purpose: **Get the application timezone** -- Parameters: none -- Result on success: **Timezone** (Example: UTC, Europe/Paris) -- Result on failure: **Default timezone** (UTC) - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getTimezone", - "id": 1661138292 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1661138292, - "result": "Europe\/Paris" -} -``` - -## getDefaultTaskColors - -- Purpose: **Get all default task colors** -- Parameters: None -- Result on success: **Color properties** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getDefaultTaskColors", - "id": 2108929212 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2108929212, - "result": { - "yellow": { - "name": "Yellow", - "background": "rgb(245, 247, 196)", - "border": "rgb(223, 227, 45)" - }, - "blue": { - "name": "Blue", - "background": "rgb(219, 235, 255)", - "border": "rgb(168, 207, 255)" - }, - "green": { - "name": "Green", - "background": "rgb(189, 244, 203)", - "border": "rgb(74, 227, 113)" - }, - "purple": { - "name": "Purple", - "background": "rgb(223, 176, 255)", - "border": "rgb(205, 133, 254)" - }, - "red": { - "name": "Red", - "background": "rgb(255, 187, 187)", - "border": "rgb(255, 151, 151)" - }, - "orange": { - "name": "Orange", - "background": "rgb(255, 215, 179)", - "border": "rgb(255, 172, 98)" - }, - "grey": { - "name": "Grey", - "background": "rgb(238, 238, 238)", - "border": "rgb(204, 204, 204)" - }, - "brown": { - "name": "Brown", - "background": "#d7ccc8", - "border": "#4e342e" - }, - "deep_orange": { - "name": "Deep Orange", - "background": "#ffab91", - "border": "#e64a19" - }, - "dark_grey": { - "name": "Dark Grey", - "background": "#cfd8dc", - "border": "#455a64" - }, - "pink": { - "name": "Pink", - "background": "#f48fb1", - "border": "#d81b60" - }, - "teal": { - "name": "Teal", - "background": "#80cbc4", - "border": "#00695c" - }, - "cyan": { - "name": "Cyan", - "background": "#b2ebf2", - "border": "#00bcd4" - }, - "lime": { - "name": "Lime", - "background": "#e6ee9c", - "border": "#afb42b" - }, - "light_green": { - "name": "Light Green", - "background": "#dcedc8", - "border": "#689f38" - }, - "amber": { - "name": "Amber", - "background": "#ffe082", - "border": "#ffa000" - } - } -} -``` - -## getDefaultTaskColor - -- Purpose: **Get default task color** -- Parameters: None -- Result on success: **color_id** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getDefaultTaskColor", - "id": 1144775215 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1144775215, - "result": "yellow" -} -``` - -## getColorList - -- Purpose: **Get the list of task colors** -- Parameters: none -- Result on success: **Dictionary of color_id => color_name** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getColorList", - "id": 1677051386 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1677051386, - "result": { - "yellow": "Yellow", - "blue": "Blue", - "green": "Green", - "purple": "Purple", - "red": "Red", - "orange": "Orange", - "grey": "Grey", - "brown": "Brown", - "deep_orange": "Deep Orange", - "dark_grey": "Dark Grey", - "pink": "Pink", - "teal": "Teal", - "cyan": "Cyan", - "lime": "Lime", - "light_green": "Light Green", - "amber": "Amber" - } -} -``` - -## getApplicationRoles - -- Purpose: **Get the application roles** -- Parameters: none -- Result: **Dictionary of role => role_name** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getApplicationRoles", - "id": 317154243 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 317154243, - "result": { - "app-admin": "Administrator", - "app-manager": "Manager", - "app-user": "User" - } -} -``` - -## getProjectRoles - -- Purpose: **Get the project roles** -- Parameters: none -- Result: **Dictionary of role => role_name** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectRoles", - "id": 8981960 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 8981960, - "result": { - "project-manager": "Project Manager", - "project-member": "Project Member", - "project-viewer": "Project Viewer" - } -} -```
\ No newline at end of file diff --git a/doc/en_US/api-authentication.markdown b/doc/en_US/api-authentication.markdown deleted file mode 100644 index be536be3..00000000 --- a/doc/en_US/api-authentication.markdown +++ /dev/null @@ -1,56 +0,0 @@ -API Authentication -================== - -API endpoint ------------- - -URL: `https://YOUR_SERVER/jsonrpc.php` - - -Default method (HTTP Basic) ---------------------------- - -### Application credentials - -- Username: `jsonrpc` -- Password: API token on the settings page - -### User credentials - -- Username: username -- Password: user password or personal access token - -The API use the [HTTP Basic Authentication Scheme described in the RFC2617](http://www.ietf.org/rfc/rfc2617.txt). - - -Custom HTTP header ------------------- - -You can use an alternative HTTP header for the authentication if your server have a very specific configuration. - -- The header name can be anything you want, by example `X-API-Auth`. -- The header value is the `username:password` encoded in Base64. - -Configuration: - -1. Define your custom header in your `config.php`: `define('API_AUTHENTICATION_HEADER', 'X-API-Auth');` -2. Encode the credentials in Base64, example with PHP `base64_encode('jsonrpc:19ffd9709d03ce50675c3a43d1c49c1ac207f4bc45f06c5b2701fbdf8929');` -3. Test with curl: - -```bash -curl \ --H 'X-API-Auth: anNvbnJwYzoxOWZmZDk3MDlkMDNjZTUwNjc1YzNhNDNkMWM0OWMxYWMyMDdmNGJjNDVmMDZjNWIyNzAxZmJkZjg5Mjk=' \ --d '{"jsonrpc": "2.0", "method": "getAllProjects", "id": 1}' \ -http://localhost/kanboard/jsonrpc.php -``` - -Authentication error --------------------- - -If the credentials are wrong, you will receive a `401 Not Authorized` and the corresponding JSON response. - - -Authorization error -------------------- - -If the connected user is not allowed to access to the resource, you will receive a `403 Forbidden`. diff --git a/doc/en_US/api-board-procedures.markdown b/doc/en_US/api-board-procedures.markdown deleted file mode 100644 index 6f8a878e..00000000 --- a/doc/en_US/api-board-procedures.markdown +++ /dev/null @@ -1,158 +0,0 @@ -API Board Procedures -==================== - -## getBoard - -- Purpose: **Get all necessary information to display a board** -- Parameters: - - **project_id** (integer, required) -- Result on success: **board properties** -- Result on failure: **empty list** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getBoard", - "id": 827046470, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 827046470, - "result": [ - { - "id": 0, - "name": "Default swimlane", - "columns": [ - { - "id": "1", - "title": "Backlog", - "position": "1", - "project_id": "1", - "task_limit": "0", - "description": "", - "tasks": [], - "nb_tasks": 0, - "score": 0 - }, - { - "id": "2", - "title": "Ready", - "position": "2", - "project_id": "1", - "task_limit": "0", - "description": "", - "tasks": [ - { - "nb_comments":"0", - "nb_files":"0", - "nb_subtasks":"0", - "nb_completed_subtasks":"0", - "nb_links":"0", - "id":"2", - "reference":"", - "title":"Test", - "description":"", - "date_creation":"1430870507", - "date_modification":"1430870507", - "date_completed":null, - "date_due":"0", - "color_id":"yellow", - "project_id":"1", - "column_id":"2", - "swimlane_id":"0", - "owner_id":"0", - "creator_id":"1", - "position":"1", - "is_active":"1", - "score":"0", - "category_id":"0", - "date_moved":"1430870507", - "recurrence_status":"0", - "recurrence_trigger":"0", - "recurrence_factor":"0", - "recurrence_timeframe":"0", - "recurrence_basedate":"0", - "recurrence_parent":null, - "recurrence_child":null, - "assignee_username":null, - "assignee_name":null - } - ], - "nb_tasks": 1, - "score": 0 - }, - { - "id": "3", - "title": "Work in progress", - "position": "3", - "project_id": "1", - "task_limit": "0", - "description": "", - "tasks": [ - { - "nb_comments":"0", - "nb_files":"0", - "nb_subtasks":"1", - "nb_completed_subtasks":"0", - "nb_links":"0", - "id":"1", - "reference":"", - "title":"Task with comment", - "description":"", - "date_creation":"1430783188", - "date_modification":"1430783188", - "date_completed":null, - "date_due":"0", - "color_id":"red", - "project_id":"1", - "column_id":"3", - "swimlane_id":"0", - "owner_id":"1", - "creator_id":"0", - "position":"1", - "is_active":"1", - "score":"0", - "category_id":"0", - "date_moved":"1430783191", - "recurrence_status":"0", - "recurrence_trigger":"0", - "recurrence_factor":"0", - "recurrence_timeframe":"0", - "recurrence_basedate":"0", - "recurrence_parent":null, - "recurrence_child":null, - "assignee_username":"admin", - "assignee_name":null - } - ], - "nb_tasks": 1, - "score": 0 - }, - { - "id": "4", - "title": "Done", - "position": "4", - "project_id": "1", - "task_limit": "0", - "description": "", - "tasks": [], - "nb_tasks": 0, - "score": 0 - } - ], - "nb_columns": 4, - "nb_tasks": 2 - } - ] -} -``` diff --git a/doc/en_US/api-category-procedures.markdown b/doc/en_US/api-category-procedures.markdown deleted file mode 100644 index 644c09c6..00000000 --- a/doc/en_US/api-category-procedures.markdown +++ /dev/null @@ -1,172 +0,0 @@ -API Category Procedures -======================= - -## createCategory - -- Purpose: **Create a new category** -- Parameters: -- **project_id** (integer, required) - - **name** (string, required, must be unique for the given project) -- Result on success: **category_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createCategory", - "id": 541909890, - "params": { - "name": "Super category", - "project_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 541909890, - "result": 4 -} -``` - -## getCategory - -- Purpose: **Get category information** -- Parameters: - - **category_id** (integer, required) -- Result on success: **category properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getCategory", - "id": 203539163, - "params": { - "category_id": 1 - } -} -``` - -Response example: - -```json -{ - - "jsonrpc": "2.0", - "id": 203539163, - "result": { - "id": "1", - "name": "Super category", - "project_id": "1" - } -} -``` - -## getAllCategories - -- Purpose: **Get all available categories** -- Parameters: - - **project_id** (integer, required) -- Result on success: **List of categories** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllCategories", - "id": 1261777968, - "params": { - "project_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1261777968, - "result": [ - { - "id": "1", - "name": "Super category", - "project_id": "1" - } - ] -} -``` - -## updateCategory - -- Purpose: **Update a category** -- Parameters: - - **id** (integer, required) - - **name** (string, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateCategory", - "id": 570195391, - "params": { - "id": 1, - "name": "Renamed category" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 570195391, - "result": true -} -``` - -## removeCategory - -- Purpose: **Remove a category** -- Parameters: - - **category_id** (integer) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeCategory", - "id": 88225706, - "params": { - "category_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 88225706, - "result": true -} -``` diff --git a/doc/en_US/api-column-procedures.markdown b/doc/en_US/api-column-procedures.markdown deleted file mode 100644 index c5d2793b..00000000 --- a/doc/en_US/api-column-procedures.markdown +++ /dev/null @@ -1,229 +0,0 @@ -API Column Procedures -===================== - -## getColumns - -- Purpose: **Get all columns information for a given project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **columns properties** -- Result on failure: **empty list** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getColumns", - "id": 887036325, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 887036325, - "result": [ - { - "id": "1", - "title": "Backlog", - "position": "1", - "project_id": "1", - "task_limit": "0" - }, - { - "id": "2", - "title": "Ready", - "position": "2", - "project_id": "1", - "task_limit": "0" - }, - { - "id": "3", - "title": "Work in progress", - "position": "3", - "project_id": "1", - "task_limit": "0" - } - ] -} -``` - -## getColumn - -- Purpose: **Get a single column** -- Parameters: - - **column_id** (integer, required) -- Result on success: **column properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getColumn", - "id": 1242049935, - "params": [ - 2 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1242049935, - "result": { - "id": "2", - "title": "Youpi", - "position": "2", - "project_id": "1", - "task_limit": "5" - } -} -``` - -## changeColumnPosition - -- Purpose: **Change the column position** -- Parameters: - - **project_id** (integer, required) - - **column_id** (integer, required) - - **position** (integer, required, must be >= 1) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "changeColumnPosition", - "id": 99275573, - "params": [ - 1, - 2, - 3 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 99275573, - "result": true -} -``` - -## updateColumn - -- Purpose: **Update column properties** -- Parameters: - - **column_id** (integer, required) - - **title** (string, required) - - **task_limit** (integer, optional) - - **description** (string, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateColumn", - "id": 480740641, - "params": [ - 2, - "Boo", - 5 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 480740641, - "result": true -} -``` - -## addColumn - -- Purpose: **Add a new column** -- Parameters: - - **project_id** (integer, required) - - **title** (string, required) - - **task_limit** (integer, optional) - - **description** (string, optional) -- Result on success: **column_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "addColumn", - "id": 638544704, - "params": [ - 1, - "Boo" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 638544704, - "result": 5 -} -``` - -## removeColumn - -- Purpose: **Remove a column** -- Parameters: - - **column_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeColumn", - "id": 1433237746, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1433237746, - "result": true -} -``` diff --git a/doc/en_US/api-comment-procedures.markdown b/doc/en_US/api-comment-procedures.markdown deleted file mode 100644 index 5ac25b13..00000000 --- a/doc/en_US/api-comment-procedures.markdown +++ /dev/null @@ -1,182 +0,0 @@ -API Comment Procedures -====================== - -## createComment - -- Purpose: **Create a new comment** -- Parameters: - - **task_id** (integer, required) - - **user_id** (integer, required) - - **content** Markdown content (string, required) -- Result on success: **comment_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createComment", - "id": 1580417921, - "params": { - "task_id": 1, - "user_id": 1, - "content": "Comment #1" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1580417921, - "result": 11 -} -``` - -## getComment - -- Purpose: **Get comment information** -- Parameters: - - **comment_id** (integer, required) -- Result on success: **comment properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getComment", - "id": 867839500, - "params": { - "comment_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 867839500, - "result": { - "id": "1", - "task_id": "1", - "user_id": "1", - "date_creation": "1410881970", - "comment": "Comment #1", - "username": "admin", - "name": null - } -} -``` - -## getAllComments - -- Purpose: **Get all available comments** -- Parameters: - - **task_id** (integer, required) -- Result on success: **List of comments** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllComments", - "id": 148484683, - "params": { - "task_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 148484683, - "result": [ - { - "id": "1", - "date_creation": "1410882272", - "task_id": "1", - "user_id": "1", - "comment": "Comment #1", - "username": "admin", - "name": null - }, - ... - ] -} -``` - -## updateComment - -- Purpose: **Update a comment** -- Parameters: - - **id** (integer, required) - - **content** Markdown content (string, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateComment", - "id": 496470023, - "params": { - "id": 1, - "content": "Comment #1 updated" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1493368950, - "result": true -} -``` - -## removeComment - -- Purpose: **Remove a comment** -- Parameters: - - **comment_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeComment", - "id": 328836871, - "params": { - "comment_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 328836871, - "result": true -} -``` diff --git a/doc/en_US/api-examples.markdown b/doc/en_US/api-examples.markdown deleted file mode 100644 index 14d5db98..00000000 --- a/doc/en_US/api-examples.markdown +++ /dev/null @@ -1,152 +0,0 @@ -API Examples -============ - -Example with cURL ------------------ - -From the command line: - -```bash -curl \ --u "jsonrpc:19ffd9709d03ce50675c3a43d1c49c1ac207f4bc45f06c5b2701fbdf8929" \ --d '{"jsonrpc": "2.0", "method": "getAllProjects", "id": 1}' \ -http://localhost/kanboard/jsonrpc.php -``` - -Response from the server: - -```json -{ - "jsonrpc":"2.0", - "id":1, - "result":[ - { - "id":"1", - "name":"API test", - "is_active":"1", - "token":"6bd0932fe7f4b5e6e4bc3c72800bfdef36a2c5de2f38f756dfb5bd632ebf", - "last_modified":"1403392631" - } - ] -} -``` - -Example with Python -------------------- - -You can use the [official Python client for Kanboard](https://github.com/kanboard/kanboard-api-python): - -```bash -pip install kanboard -``` - -Here an example to create a project and a task: - -```python -from kanboard import Kanboard - -kb = Kanboard("http://localhost/jsonrpc.php", "jsonrpc", "your_api_token") - -project_id = kb.create_project(name="My project") - -task_id = kb.create_task(project_id=project_id, title="My task title") -``` - -There are more examples on the [official website](https://github.com/kanboard/kanboard-api-python). - -Example with a PHP client -------------------------- - -You can use this [Json-RPC Client/Server library for PHP](https://github.com/fguillot/JsonRPC), here an example: - -```php -<?php - -$client = new JsonRPC\Client('http://localhost:8000/jsonrpc.php'); -$client->authentication('jsonrpc', '19ffd9709d03ce50675c3a43d1c49c1ac207f4bc45f06c5b2701fbdf8929'); - -print_r($client->getAllProjects()); - -``` - -The response: - -``` -Array -( - [0] => Array - ( - [id] => 1 - [name] => API test - [is_active] => 1 - [token] => 6bd0932fe7f4b5e6e4bc3c72800bfdef36a2c5de2f38f756dfb5bd632ebf - [last_modified] => 1403392631 - ) - -) -``` - -Example with Ruby ------------------ - -This example can be used with Kanboard configured with Reverse-Proxy authentication and the API configured with a custom authentication header: - -```ruby -require 'faraday' - -conn = Faraday.new(:url => 'https://kanboard.example.com') do |faraday| - faraday.response :logger - faraday.headers['X-API-Auth'] = 'XXX' # base64_encode('jsonrpc:API_KEY') - faraday.basic_auth(ENV['user'], ENV['pw']) # user/pass to get through basic auth - faraday.adapter Faraday.default_adapter # make requests with Net::HTTP -end - -response = conn.post do |req| - req.url '/jsonrpc.php' - req.headers['Content-Type'] = 'application/json' - req.body = '{ "jsonrpc": "2.0", "id": 1, "method": "getAllProjects" }' -end - -puts response.body -``` - - -Example with Java ------------------ - -This is a basic example using Spring. For proper usage see [this link](http://spring.io/guides/gs/consuming-rest). - -```java -import java.io.UnsupportedEncodingException; -import java.util.Base64; - -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.web.client.RestTemplate; - -public class ProjectService { - - public void getAllProjects() throws UnsupportedEncodingException { - - RestTemplate restTemplate = new RestTemplate(); - - String url = "http://localhost/kanboard/jsonrpc.php"; - String requestJson = "{\"jsonrpc\": \"2.0\", \"method\": \"getAllProjects\", \"id\": 1}"; - String user = "jsonrpc"; - String apiToken = "19ffd9709d03ce50675c3a43d1c49c1ac207f4bc45f06c5b2701fbdf8929"; - - // encode api token - byte[] xApiAuthTokenBytes = String.join(":", user, apiToken).getBytes("utf-8"); - String xApiAuthToken = Base64.getEncoder().encodeToString(xApiAuthTokenBytes); - - // consume request - HttpHeaders headers = new HttpHeaders(); - headers.add("X-API-Auth", xApiAuthToken); - headers.setContentType(MediaType.APPLICATION_JSON); - HttpEntity<String> entity = new HttpEntity<String>(requestJson, headers); - String answer = restTemplate.postForObject(url, entity, String.class); - System.out.println(answer); - } -} -``` diff --git a/doc/en_US/api-external-task-link-procedures.markdown b/doc/en_US/api-external-task-link-procedures.markdown deleted file mode 100644 index 85f67b60..00000000 --- a/doc/en_US/api-external-task-link-procedures.markdown +++ /dev/null @@ -1,221 +0,0 @@ -External Task Link API Procedures -================================= - -## getExternalTaskLinkTypes - -- Purpose: **Get all registered external link providers** -- Parameters: **none** -- Result on success: **dict** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"getExternalTaskLinkTypes","id":477370568} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": { - "auto": "Auto", - "attachment": "Attachment", - "file": "Local File", - "weblink": "Web Link" - }, - "id": 477370568 -} -``` - -## getExternalTaskLinkProviderDependencies - -- Purpose: **Get available dependencies for a given provider** -- Parameters: - - **providerName** (string, required) -- Result on success: **dict** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"getExternalTaskLinkProviderDependencies","id":124790226,"params":["weblink"]} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": { - "related": "Related" - }, - "id": 124790226 -} -``` - -## createExternalTaskLink - -- Purpose: **Create a new external link** -- Parameters: - - **task_id** (integer, required) - - **url** (string, required) - - **dependency** (string, required) - - **type** (string, optional) - - **title** (string, optional) -- Result on success: **link_id** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"createExternalTaskLink","id":924217495,"params":[9,"http:\/\/localhost\/document.pdf","related","attachment"]} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": 1, - "id": 924217495 -} -``` - -## updateExternalTaskLink - -- Purpose: **Update external task link** -- Parameters: - - **task_id** (integer, required) - - **link_id** (integer, required) - - **title** (string, required) - - **url** (string, required) - - **dependency** (string, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc":"2.0", - "method":"updateExternalTaskLink", - "id":1123562620, - "params": { - "task_id":9, - "link_id":1, - "title":"New title" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": true, - "id": 1123562620 -} -``` - -## getExternalTaskLinkById - -- Purpose: **Get an external task link** -- Parameters: - - **task_id** (integer, required) - - **link_id** (integer, required) -- Result on success: **dict** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"getExternalTaskLinkById","id":2107066744,"params":[9,1]} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": { - "id": "1", - "link_type": "attachment", - "dependency": "related", - "title": "document.pdf", - "url": "http:\/\/localhost\/document.pdf", - "date_creation": "1466965256", - "date_modification": "1466965256", - "task_id": "9", - "creator_id": "0" - }, - "id": 2107066744 -} -``` - -## getAllExternalTaskLinks - -- Purpose: **Get all external links attached to a task** -- Parameters: - - **task_id** (integer, required) -- Result on success: **list of external links** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"getAllExternalTaskLinks","id":2069307223,"params":[9]} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": [ - { - "id": "1", - "link_type": "attachment", - "dependency": "related", - "title": "New title", - "url": "http:\/\/localhost\/document.pdf", - "date_creation": "1466965256", - "date_modification": "1466965256", - "task_id": "9", - "creator_id": "0", - "creator_name": null, - "creator_username": null, - "dependency_label": "Related", - "type": "Attachment" - } - ], - "id": 2069307223 -} -``` - -## removeExternalTaskLink - -- Purpose: **Remove an external link** -- Parameters: - - **task_id** (integer, required) - - **link_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"removeExternalTaskLink","id":552055660,"params":[9,1]} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": true, - "id": 552055660 -} -``` diff --git a/doc/en_US/api-group-member-procedures.markdown b/doc/en_US/api-group-member-procedures.markdown deleted file mode 100644 index 1065ba11..00000000 --- a/doc/en_US/api-group-member-procedures.markdown +++ /dev/null @@ -1,188 +0,0 @@ -Group Member API Procedures -=========================== - -## getMemberGroups - -- Purpose: **Get all groups for a given user** -- Parameters: - - **user_id** (integer, required) -- Result on success: **List of groups** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getMemberGroups", - "id": 1987176726, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1987176726, - "result": [ - { - "id": "1", - "name": "My Group A" - } - ] -} -``` - -## getGroupMembers - -- Purpose: **Get all members of a group** -- Parameters: - - **group_id** (integer, required) -- Result on success: **List of users** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getGroupMembers", - "id": 1987176726, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1987176726, - "result": [ - { - "group_id": "1", - "user_id": "1", - "id": "1", - "username": "admin", - "is_ldap_user": "0", - "name": null, - "email": null, - "notifications_enabled": "0", - "timezone": null, - "language": null, - "disable_login_form": "0", - "notifications_filter": "4", - "nb_failed_login": "0", - "lock_expiration_date": "0", - "is_project_admin": "0", - "gitlab_id": null, - "role": "app-admin" - } - ] -} -``` - -## addGroupMember - -- Purpose: **Add a user to a group** -- Parameters: - - **group_id** (integer, required) - - **user_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "addGroupMember", - "id": 1589058273, - "params": [ - 1, - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1589058273, - "result": true -} -``` - -## removeGroupMember - -- Purpose: **Remove a user from a group** -- Parameters: - - **group_id** (integer, required) - - **user_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeGroupMember", - "id": 1730416406, - "params": [ - 1, - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1730416406, - "result": true -} -``` - -## isGroupMember - -- Purpose: **Check if a user is member of a group** -- Parameters: - - **group_id** (integer, required) - - **user_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "isGroupMember", - "id": 1052800865, - "params": [ - 1, - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1052800865, - "result": false -} -``` diff --git a/doc/en_US/api-group-procedures.markdown b/doc/en_US/api-group-procedures.markdown deleted file mode 100644 index cb11fb96..00000000 --- a/doc/en_US/api-group-procedures.markdown +++ /dev/null @@ -1,174 +0,0 @@ -Group API Procedures -==================== - -## createGroup - -- Purpose: **Create a new group** -- Parameters: - - **name** (string, required) - - **external_id** (string, optional) -- Result on success: **link_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createGroup", - "id": 1416806551, - "params": [ - "My Group B", - "1234" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1416806551, - "result": 2 -} -``` - -## updateGroup - -- Purpose: **Update a group** -- Parameters: - - **group_id** (integer, required) - - **name** (string, optional) - - **external_id** (string, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateGroup", - "id": 866078030, - "params": { - "group_id": "1", - "name": "ABC", - "external_id": "something" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 866078030, - "result": true -} -``` - -## removeGroup - -- Purpose: **Remove a group** -- Parameters: - - **group_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeGroup", - "id": 566000661, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 566000661, - "result": true -} -``` - -## getGroup - -- Purpose: **Get one group** -- Parameters: - - **group_id** (integer, required) -- Result on success: **Group dictionary** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getGroup", - "id": 1968647622, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1968647622, - "result": { - "id": "1", - "external_id": "", - "name": "My Group A" - } -} -``` - -## getAllGroups - -- Purpose: **Get all groups** -- Parameters: none -- Result on success: **list of groups** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllGroups", - "id": 546070742 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 546070742, - "result": [ - { - "id": "1", - "external_id": "", - "name": "My Group A" - }, - { - "id": "2", - "external_id": "1234", - "name": "My Group B" - } - ] -} -``` diff --git a/doc/en_US/api-internal-task-link-procedures.markdown b/doc/en_US/api-internal-task-link-procedures.markdown deleted file mode 100644 index eca0d886..00000000 --- a/doc/en_US/api-internal-task-link-procedures.markdown +++ /dev/null @@ -1,187 +0,0 @@ -Internal Task Link API Procedures -================================= - -## createTaskLink - -- Purpose: **Create a link between two tasks** -- Parameters: - - **task_id** (integer, required) - - **opposite_task_id** (integer, required) - - **link_id** (integer, required) -- Result on success: **task_link_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createTaskLink", - "id": 509742912, - "params": [ - 2, - 3, - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 509742912, - "result": 1 -} -``` - -## updateTaskLink - -- Purpose: **Update task link** -- Parameters: - - **task_link_id** (integer, required) - - **task_id** (integer, required) - - **opposite_task_id** (integer, required) - - **link_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateTaskLink", - "id": 669037109, - "params": [ - 1, - 2, - 4, - 2 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 669037109, - "result": true -} -``` - -## getTaskLinkById - -- Purpose: **Get a task link** -- Parameters: - - **task_link_id** (integer, required) -- Result on success: **task link properties** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getTaskLinkById", - "id": 809885202, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 809885202, - "result": { - "id": "1", - "link_id": "1", - "task_id": "2", - "opposite_task_id": "3" - } -} -``` - -## getAllTaskLinks - -- Purpose: **Get all links related to a task** -- Parameters: - - **task_id** (integer, required) -- Result on success: **list of task link** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllTaskLinks", - "id": 810848359, - "params": [ - 2 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 810848359, - "result": [ - { - "id": "1", - "task_id": "3", - "label": "relates to", - "title": "B", - "is_active": "1", - "project_id": "1", - "task_time_spent": "0", - "task_time_estimated": "0", - "task_assignee_id": "0", - "task_assignee_username": null, - "task_assignee_name": null, - "column_title": "Backlog" - } - ] -} -``` - -## removeTaskLink - -- Purpose: **Remove a link between two tasks** -- Parameters: - - **task_link_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeTaskLink", - "id": 473028226, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 473028226, - "result": true -} -``` diff --git a/doc/en_US/api-json-rpc.markdown b/doc/en_US/api-json-rpc.markdown deleted file mode 100644 index fad19466..00000000 --- a/doc/en_US/api-json-rpc.markdown +++ /dev/null @@ -1,73 +0,0 @@ -Json-RPC API -============ - -User and application API ------------------------- - -There are two types of API access: - -### Application API - -- Access to the API with the user "jsonrpc" and the token available on the settings page -- Access to all procedures -- No permission checked -- There is no user session on the server -- No access to procedures that starts with "My..." (example: "getMe" or "getMyProjects") -- Example of possible clients: tools to migrate/import data, create tasks from another system, etc... - -### User API - -- Access to the API with the user credentials (username and password) -- You can also generate a personal access token instead of your password -- Application role and project permissions are checked for each procedure -- A user session is created on the server -- Example of possible clients: native mobile/desktop application, command line utility, etc... - -Security --------- - -- Always use HTTPS with a valid certificate (avoid clear text communication) -- If you make a mobile application, it's your responsability to store securely the user credentials on the device -- After 3 authentication failure on the user api, the end-user have to unlock his account by using the login form -- Two factor authentication is not yet available through the API - -Protocol --------- - -Kanboard use the protocol Json-RPC to interact with external programs. - -JSON-RPC is a remote procedure call protocol encoded in JSON. -Almost the same thing as XML-RPC but with the JSON format. - -We use the [version 2 of the protocol](http://www.jsonrpc.org/specification). -You must call the API with a `POST` HTTP request. - -Kanboard support batch requests, so you can make multiple API calls in a single HTTP request. It's particularly useful for mobile clients with higher network latency. - -Usage ------ - -- [Authentication](api-authentication.markdown) -- [Examples](api-examples.markdown) -- [Application](api-application-procedures.markdown) -- [Projects](api-project-procedures.markdown) -- [Project Permissions](api-project-permission-procedures.markdown) -- [Boards](api-board-procedures.markdown) -- [Columns](api-column-procedures.markdown) -- [Swimlanes](api-swimlane-procedures.markdown) -- [Categories](api-category-procedures.markdown) -- [Automatic Actions](api-action-procedures.markdown) -- [Tasks](api-task-procedures.markdown) -- [Subtasks](api-subtask-procedures.markdown) -- [Subtask Time Tracking](api-subtask-time-tracking-procedures.markdown) -- [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) -- [Users](api-user-procedures.markdown) -- [Groups](api-group-procedures.markdown) -- [Group Members](api-group-member-procedures.markdown) -- [Me](api-me-procedures.markdown) diff --git a/doc/en_US/api-link-procedures.markdown b/doc/en_US/api-link-procedures.markdown deleted file mode 100644 index 44e78a2a..00000000 --- a/doc/en_US/api-link-procedures.markdown +++ /dev/null @@ -1,285 +0,0 @@ -API Link Procedures -=================== - -## getAllLinks - -- Purpose: **Get the list of possible relations between tasks** -- Parameters: none -- Result on success: **List of links** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllLinks", - "id": 113057196 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 113057196, - "result": [ - { - "id": "1", - "label": "relates to", - "opposite_id": "0" - }, - { - "id": "2", - "label": "blocks", - "opposite_id": "3" - }, - { - "id": "3", - "label": "is blocked by", - "opposite_id": "2" - }, - { - "id": "4", - "label": "duplicates", - "opposite_id": "5" - }, - { - "id": "5", - "label": "is duplicated by", - "opposite_id": "4" - }, - { - "id": "6", - "label": "is a child of", - "opposite_id": "7" - }, - { - "id": "7", - "label": "is a parent of", - "opposite_id": "6" - }, - { - "id": "8", - "label": "targets milestone", - "opposite_id": "9" - }, - { - "id": "9", - "label": "is a milestone of", - "opposite_id": "8" - }, - { - "id": "10", - "label": "fixes", - "opposite_id": "11" - }, - { - "id": "11", - "label": "is fixed by", - "opposite_id": "10" - } - ] -} -``` - -## getOppositeLinkId - -- Purpose: **Get the opposite link id of a task link** -- Parameters: - - **link_id** (integer, required) -- Result on success: **link_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getOppositeLinkId", - "id": 407062448, - "params": [ - 2 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 407062448, - "result": "3" -} -``` - -## getLinkByLabel - -- Purpose: **Get a link by label** -- Parameters: - - **label** (integer, required) -- Result on success: **link properties** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getLinkByLabel", - "id": 1796123316, - "params": [ - "blocks" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1796123316, - "result": { - "id": "2", - "label": "blocks", - "opposite_id": "3" - } -} -``` - -## getLinkById - -- Purpose: **Get a link by id** -- Parameters: - - **link_id** (integer, required) -- Result on success: **link properties** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getLinkById", - "id": 1190238402, - "params": [ - 4 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1190238402, - "result": { - "id": "4", - "label": "duplicates", - "opposite_id": "5" - } -} -``` - -## createLink - -- Purpose: **Create a new task relation** -- Parameters: - - **label** (integer, required) - - **opposite_label** (integer, optional) -- Result on success: **link_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createLink", - "id": 1040237496, - "params": [ - "foo", - "bar" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1040237496, - "result": 13 -} -``` - -## updateLink - -- Purpose: **Update a link** -- Parameters: - - **link_id** (integer, required) - - **opposite_link_id** (integer, required) - - **label** (string, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateLink", - "id": 2110446926, - "params": [ - "14", - "12", - "boo" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2110446926, - "result": true -} -``` - -## removeLink - -- Purpose: **Remove a link** -- Parameters: - - **link_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeLink", - "id": 2136522739, - "params": [ - "14" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2136522739, - "result": true -} -``` diff --git a/doc/en_US/api-me-procedures.markdown b/doc/en_US/api-me-procedures.markdown deleted file mode 100644 index c2476904..00000000 --- a/doc/en_US/api-me-procedures.markdown +++ /dev/null @@ -1,383 +0,0 @@ -User API Specific Procedures -============================ - -## getMe - -- Purpose: **Get logged user session** -- Parameters: None -- Result on success: **user session data** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getMe", - "id": 1718627783 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1718627783, - "result": { - "id": 2, - "username": "user", - "role": "app-user", - "is_ldap_user": false, - "name": "", - "email": "", - "google_id": null, - "github_id": null, - "notifications_enabled": "0", - "timezone": null, - "language": null, - "disable_login_form": "0", - "twofactor_activated": false, - "twofactor_secret": null, - "token": "", - "notifications_filter": "4" - } -} -``` - -## getMyDashboard - -- Purpose: **Get the dashboard of the logged user without pagination** -- Parameters: None -- Result on success: **Dashboard information** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getMyDashboard", - "id": 447898718 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1563664593, - "result": { - "projects": [ - { - "id": "2", - "name": "my project", - "is_active": "1", - "token": "", - "last_modified": "1438205337", - "is_public": "0", - "is_private": "1", - "default_swimlane": "Default swimlane", - "show_default_swimlane": "1", - "description": null, - "identifier": "", - "columns": [ - { - "id": "5", - "title": "Backlog", - "position": "1", - "project_id": "2", - "task_limit": "0", - "description": "", - "nb_tasks": 0 - }, - { - "id": "6", - "title": "Ready", - "position": "2", - "project_id": "2", - "task_limit": "0", - "description": "", - "nb_tasks": 0 - }, - { - "id": "7", - "title": "Work in progress", - "position": "3", - "project_id": "2", - "task_limit": "0", - "description": "", - "nb_tasks": 0 - }, - { - "id": "8", - "title": "Done", - "position": "4", - "project_id": "2", - "task_limit": "0", - "description": "", - "nb_tasks": 0 - } - ], - "url": { - "board": "http:\/\/127.0.0.1:8000\/?controller=board&action=show&project_id=2", - "calendar": "http:\/\/127.0.0.1:8000\/?controller=calendar&action=show&project_id=2", - "list": "http:\/\/127.0.0.1:8000\/?controller=listing&action=show&project_id=2" - } - } - ], - "tasks": [ - { - "id": "1", - "title": "new title", - "date_due": "0", - "date_creation": "1438205336", - "project_id": "2", - "color_id": "yellow", - "time_spent": "0", - "time_estimated": "0", - "project_name": "my project", - "url": "http:\/\/127.0.0.1:8000\/?controller=task&action=show&task_id=1&project_id=2" - } - ], - "subtasks": [] - } -} -``` - -## getMyActivityStream - -- Purpose: **Get the last 100 events for the logged user** -- Parameters: None -- Result on success: **List of events** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getMyActivityStream", - "id": 1132562181 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1132562181, - "result": [ - { - "id": "1", - "date_creation": "1438205054", - "event_name": "task.create", - "creator_id": "2", - "project_id": "2", - "task_id": "1", - "author_username": "user", - "author_name": "", - "email": "", - "task": { - "id": "1", - "reference": "", - "title": "my user title", - "description": "", - "date_creation": "1438205054", - "date_completed": null, - "date_modification": "1438205054", - "date_due": "0", - "date_started": null, - "time_estimated": "0", - "time_spent": "0", - "color_id": "yellow", - "project_id": "2", - "column_id": "5", - "owner_id": "0", - "creator_id": "2", - "position": "1", - "is_active": "1", - "score": "0", - "category_id": "0", - "swimlane_id": "0", - "date_moved": "1438205054", - "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": "my project", - "default_swimlane": "Default swimlane", - "column_title": "Backlog", - "assignee_username": null, - "assignee_name": null, - "creator_username": "user", - "creator_name": "" - }, - "changes": [], - "author": "user", - "event_title": "user created the task #1", - "event_content": "\n<p class=\"activity-title\">\n user created the task <a href=\"\/?controller=task&action=show&task_id=1&project_id=2\" class=\"\" title=\"\" >#1<\/a><\/p>\n<p class=\"activity-description\">\n <em>my user title<\/em>\n<\/p>" - } - ] -} -``` - -## createMyPrivateProject - -- Purpose: **Create a private project for the logged user** -- Parameters: - - **name** (string, required) - - **description** (string, optional) -- Result on success: **project_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createMyPrivateProject", - "id": 1271580569, - "params": [ - "my project" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1271580569, - "result": 2 -} -``` - -## getMyProjectsList - -- Purpose: **Get projects of the connected user** -- Parameters: None -- Result on success: **dictionary of project_id => project_name** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getMyProjectsList", - "id": 987834805 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 987834805, - "result": { - "2": "my project" - } -} -``` -## getMyOverdueTasks - -- Purpose: **Get my overdue tasks** -- Result on success: **List of tasks** -- Result on failure: **false** - -Request example to fetch all tasks on the board: - -```json -{ - "jsonrpc": "2.0", - "method": "getMyOverdueTasks", - "id": 133280317 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 133280317, - "result": [ - { - "id": "1", - "title": "Task #1", - "date_due": "1409961789", - "project_id": "1", - "project_name": "Test", - "assignee_username":"admin", - "assignee_name": null - }, - { - "id": "2", - "title": "Test", - "date_due": "1409962115", - "project_id": "1", - "project_name": "Test", - "assignee_username":"admin", - "assignee_name": null - }, - ... - ] -} -``` - -## getMyProjects - -- Purpose: **Get projects of connected user with full details** -- Parameters: - - **none** -- Result on success: **List of projects with details** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getmyProjects", - "id": 2134420212 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2134420212, - "result": [ - { - "id": "1", - "name": "API test", - "is_active": "1", - "token": "", - "last_modified": "1436119570", - "is_public": "0", - "is_private": "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" - } - } - ] -} -``` diff --git a/doc/en_US/api-project-file-procedures.markdown b/doc/en_US/api-project-file-procedures.markdown deleted file mode 100644 index fdc5da1a..00000000 --- a/doc/en_US/api-project-file-procedures.markdown +++ /dev/null @@ -1,221 +0,0 @@ -Project File API Procedures -=========================== - -## createProjectFile - -- Purpose: **Create and upload a new project attachment** -- Parameters: - - **project_id** (integer, required) - - **filename** (integer, required) - - **blob** File content encoded in base64 (string, required) -- Result on success: **file_id** -- Result on failure: **false** -- Note: **The maximum file size depends of your PHP configuration, this method should not be used to upload large files** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createProjectFile", - "id": 94500810, - "params": [ - 1, - "My file", - "cGxhaW4gdGV4dCBmaWxl" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 94500810, - "result": 1 -} -``` - -## getAllProjectFiles - -- Purpose: **Get all files attached to a project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **list of files** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllProjectFiles", - "id": 1880662820, - "params": { - "project_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1880662820, - "result": [ - { - "id": "1", - "name": "My file", - "path": "1\/1\/0db4d0a897a4c852f6e12f0239d4805f7b4ab596", - "is_image": "0", - "project_id": "1", - "date": "1432509941", - "user_id": "0", - "size": "15", - "username": null, - "user_name": null - } - ] -} -``` - -## getProjectFile - -- Purpose: **Get file information** -- Parameters: - - **project_id** (integer, required) - - **file_id** (integer, required) -- Result on success: **file properties** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectFile", - "id": 318676852, - "params": [ - "42", - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 318676852, - "result": { - "id": "1", - "name": "My file", - "path": "1\/1\/0db4d0a897a4c852f6e12f0239d4805f7b4ab596", - "is_image": "0", - "project_id": "1", - "date": "1432509941", - "user_id": "0", - "size": "15" - } -} -``` - -## downloadProjectFile - -- Purpose: **Download project file contents (encoded in base64)** -- Parameters: - - **project_id** (integer, required) - - **file_id** (integer, required) -- Result on success: **base64 encoded string** -- Result on failure: **empty string** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "downloadProjectFile", - "id": 235943344, - "params": [ - "1", - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 235943344, - "result": "cGxhaW4gdGV4dCBmaWxl" -} -``` - -## removeProjectFile - -- Purpose: **Remove a file associated to a project** -- Parameters: - - **project_id** (integer, required) - - **file_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeProjectFile", - "id": 447036524, - "params": [ - "1", - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 447036524, - "result": true -} -``` - -## removeAllProjectFiles - -- Purpose: **Remove all files associated to a project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeAllProjectFiles", - "id": 593312993, - "params": { - "project_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 593312993, - "result": true -} -``` diff --git a/doc/en_US/api-project-permission-procedures.markdown b/doc/en_US/api-project-permission-procedures.markdown deleted file mode 100644 index d5e9b066..00000000 --- a/doc/en_US/api-project-permission-procedures.markdown +++ /dev/null @@ -1,307 +0,0 @@ -Project Permission API Procedures -================================= - -## getProjectUsers - -- Purpose: **Get all members of a project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **Dictionary of user_id => user name** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectUsers", - "id": 1601016721, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1601016721, - "result": { - "1": "admin" - } -} -``` - -## getAssignableUsers - -- Purpose: **Get users that can be assigned to a task for a project** (all members except viewers) -- Parameters: - - **project_id** (integer, required) - - **prepend_unassigned** (boolean, optional, default is false) -- Result on success: **Dictionary of user_id => user name** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAssignableUsers", - "id": 658294870, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 658294870, - "result": { - "1": "admin" - } -} -``` - -## addProjectUser - -- Purpose: **Grant access to a project for a user** -- Parameters: - - **project_id** (integer, required) - - **user_id** (integer, required) - - **role** (string, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "addProjectUser", - "id": 1294688355, - "params": [ - "1", - "1", - "project-viewer" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1294688355, - "result": true -} -``` - -## addProjectGroup - -- Purpose: **Grant access to a project for a group** -- Parameters: - - **project_id** (integer, required) - - **group_id** (integer, required) - - **role** (string, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "addProjectGroup", - "id": 1694959089, - "params": [ - "1", - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1694959089, - "result": true -} -``` - -## removeProjectUser - -- Purpose: **Revoke user access to a project** -- Parameters: - - **project_id** (integer, required) - - **user_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeProjectUser", - "id": 645233805, - "params": [ - 1, - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 645233805, - "result": true -} -``` - -## removeProjectGroup - -- Purpose: **Revoke group access to a project** -- Parameters: - - **project_id** (integer, required) - - **group_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeProjectGroup", - "id": 557146966, - "params": [ - 1, - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 557146966, - "result": true -} -``` - -## changeProjectUserRole - -- Purpose: **Change role of a user for a project** -- Parameters: - - **project_id** (integer, required) - - **user_id** (integer, required) - - **role** (string, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "changeProjectUserRole", - "id": 193473170, - "params": [ - "1", - "1", - "project-viewer" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 193473170, - "result": true -} -``` - -## changeProjectGroupRole - -- Purpose: **Change role of a group for a project** -- Parameters: - - **project_id** (integer, required) - - **group_id** (integer, required) - - **role** (string, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "changeProjectGroupRole", - "id": 2114673298, - "params": [ - "1", - "1", - "project-viewer" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2114673298, - "result": true -} -``` - -## getProjectUserRole - -- Purpose: **Get the role of a user for a given project** -- Parameters: - - **project_id** (integer, required) - - **user_id** (integer, required) -- Result on success: **role name** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectUserRole", - "id": 2114673298, - "params": [ - "2", - "3" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2114673298, - "result": "project-viewer" -} -``` diff --git a/doc/en_US/api-project-procedures.markdown b/doc/en_US/api-project-procedures.markdown deleted file mode 100644 index 91793803..00000000 --- a/doc/en_US/api-project-procedures.markdown +++ /dev/null @@ -1,509 +0,0 @@ -API Project Procedures -====================== - -## createProject - -- Purpose: **Create a new project** -- Parameters: - - **name** (string, required) - - **description** (string, optional) - - **owner_id** (integer, optional) - - **identifier** (string, optional) -- Result on success: **project_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createProject", - "id": 1797076613, - "params": { - "name": "PHP client" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1797076613, - "result": 2 -} -``` - -## getProjectById - -- Purpose: **Get project information** -- Parameters: - - **project_id** (integer, required) -- Result on success: **project properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectById", - "id": 226760253, - "params": { - "project_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 226760253, - "result": { - "id": "1", - "name": "API test", - "is_active": "1", - "token": "", - "last_modified": "1436119135", - "is_public": "0", - "is_private": "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" - } - } -} -``` - -## getProjectByName - -- Purpose: **Get project information** -- Parameters: - - **name** (string, required) -- Result on success: **project properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectByName", - "id": 1620253806, - "params": { - "name": "Test" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1620253806, - "result": { - "id": "1", - "name": "Test", - "is_active": "1", - "token": "", - "last_modified": "1436119135", - "is_public": "0", - "is_private": "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" - } - } -} -``` - -## getProjectByIdentifier - -- Purpose: **Get project information** -- Parameters: - - **identifier** (string, required) -- Result on success: **project properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectByIdentifier", - "id": 1620253806, - "params": { - "identifier": "TEST" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1620253806, - "result": { - "id": "1", - "name": "Test", - "is_active": "1", - "token": "", - "last_modified": "1436119135", - "is_public": "0", - "is_private": "0", - "default_swimlane": "Default swimlane", - "show_default_swimlane": "1", - "description": "test", - "identifier": "TEST", - "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" - } - } -} -``` - -## getProjectByEmail - -- Purpose: **Get project information** -- Parameters: - - **email** (string, required) -- Result on success: **project properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectByEmail", - "id": 1620253806, - "params": { - "email": "my_project@my_domain.tld" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1620253806, - "result": { - "id": "1", - "name": "Test", - "is_active": "1", - "token": "", - "last_modified": "1436119135", - "is_public": "0", - "is_private": "0", - "default_swimlane": "Default swimlane", - "show_default_swimlane": "1", - "description": "test", - "identifier": "", - "email": "my_project@my_domain.tld", - "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" - } - } -} -``` - -## getAllProjects - -- Purpose: **Get all available projects** -- Parameters: - - **none** -- Result on success: **List of projects** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllProjects", - "id": 2134420212 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2134420212, - "result": [ - { - "id": "1", - "name": "API test", - "is_active": "1", - "token": "", - "last_modified": "1436119570", - "is_public": "0", - "is_private": "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" - } - } - ] -} -``` - -## updateProject - -- Purpose: **Update a project** -- Parameters: - - **project_id** (integer, required) - - **name** (string, optional) - - **description** (string, optional) - - **owner_id** (integer, optional) - - **identifier** (string, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateProject", - "id": 1853996288, - "params": { - "project_id": 1, - "name": "PHP client update" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1853996288, - "result": true -} -``` - -## removeProject - -- Purpose: **Remove a project** -- Parameters: - **project_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeProject", - "id": 46285125, - "params": { - "project_id": "2" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 46285125, - "result": true -} -``` - -## enableProject - -- Purpose: **Enable a project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "enableProject", - "id": 1775494839, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1775494839, - "result": true -} -``` - -## disableProject - -- Purpose: **Disable a project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "disableProject", - "id": 1734202312, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1734202312, - "result": true -} -``` - -## enableProjectPublicAccess - -- Purpose: **Enable public access for a given project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "enableProjectPublicAccess", - "id": 103792571, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 103792571, - "result": true -} -``` - -## disableProjectPublicAccess - -- Purpose: **Disable public access for a given project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "disableProjectPublicAccess", - "id": 942472945, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 942472945, - "result": true -} -``` - -## getProjectActivity - -- Purpose: **Get activity stream for a project** -- Parameters: - - **project_id** (integer, required) -- Result on success: **List of events** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectActivity", - "id": 942472945, - "params": [ - "project_id": 1 - ] -} -``` - -## getProjectActivities - -- Purpose: **Get Activityfeed for Project(s)** -- Parameters: - - **project_ids** (integer array, required) -- Result on success: **List of events** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getProjectActivities", - "id": 942472945, - "params": [ - "project_ids": [1,2] - ] -} -``` diff --git a/doc/en_US/api-subtask-procedures.markdown b/doc/en_US/api-subtask-procedures.markdown deleted file mode 100644 index c1dbae37..00000000 --- a/doc/en_US/api-subtask-procedures.markdown +++ /dev/null @@ -1,194 +0,0 @@ -API Subtask procedures -====================== - -## createSubtask - -- Purpose: **Create a new subtask** -- Parameters: - - **task_id** (integer, required) - - **title** (integer, required) - - **user_id** (int, optional) - - **time_estimated** (int, optional) - - **time_spent** (int, optional) - - **status** (int, optional) -- Result on success: **subtask_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createSubtask", - "id": 2041554661, - "params": { - "task_id": 1, - "title": "Subtask #1" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2041554661, - "result": 45 -} -``` - -## getSubtask - -- Purpose: **Get subtask information** -- Parameters: - - **subtask_id** (integer) -- Result on success: **subtask properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getSubtask", - "id": 133184525, - "params": { - "subtask_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 133184525, - "result": { - "id": "1", - "title": "Subtask #1", - "status": "0", - "time_estimated": "0", - "time_spent": "0", - "task_id": "1", - "user_id": "0" - } -} -``` - -## getAllSubtasks - -- Purpose: **Get all available subtasks** -- Parameters: - - **task_id** (integer, required) -- Result on success: **List of subtasks** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllSubtasks", - "id": 2087700490, - "params": { - "task_id": 1 - } -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2087700490, - "result": [ - { - "id": "1", - "title": "Subtask #1", - "status": "0", - "time_estimated": "0", - "time_spent": "0", - "task_id": "1", - "user_id": "0", - "username": null, - "name": null, - "status_name": "Todo" - }, - ... - ] -} -``` - -## updateSubtask - -- Purpose: **Update a subtask** -- Parameters: - - **id** (integer, required) - - **task_id** (integer, required) - - **title** (integer, optional) - - **user_id** (integer, optional) - - **time_estimated** (integer, optional) - - **time_spent** (integer, optional) - - **status** (integer, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateSubtask", - "id": 191749979, - "params": { - "id": 1, - "task_id": 1, - "status": 1, - "time_spent": 5, - "user_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 191749979, - "result": true -} -``` - -## removeSubtask - -- Purpose: **Remove a subtask** -- Parameters: - - **subtask_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeSubtask", - "id": 1382487306, - "params": { - "subtask_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1382487306, - "result": true -} -``` diff --git a/doc/en_US/api-subtask-time-tracking-procedures.markdown b/doc/en_US/api-subtask-time-tracking-procedures.markdown deleted file mode 100644 index 67447623..00000000 --- a/doc/en_US/api-subtask-time-tracking-procedures.markdown +++ /dev/null @@ -1,102 +0,0 @@ -Subtask Time Tracking API procedures -==================================== - -## hasSubtaskTimer - -- Purpose: **Check if a timer is started for the given subtask and user** -- Parameters: - - **subtask_id** (integer, required) - - **user_id** (integer, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"hasSubtaskTimer","id":1786995697,"params":[2,4]} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": true, - "id": 1786995697 -} -``` - -## setSubtaskStartTime - -- Purpose: **Start subtask timer for a user** -- Parameters: - - **subtask_id** (integer, required) - - **user_id** (integer, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"setSubtaskStartTime","id":1168991769,"params":[2,4]} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": true, - "id": 1168991769 -} -``` - -## setSubtaskEndTime - -- Purpose: **Stop subtask timer for a user** -- Parameters: - - **subtask_id** (integer, required) - - **user_id** (integer, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"setSubtaskEndTime","id":1026607603,"params":[2,4]} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": true, - "id": 1026607603 -} -``` - -## getSubtaskTimeSpent - -- Purpose: **Get time spent on a subtask for a user** -- Parameters: - - **subtask_id** (integer, required) - - **user_id** (integer, optional) -- Result on success: **number of hours** -- Result on failure: **false** - -Request example: - -```json -{"jsonrpc":"2.0","method":"getSubtaskTimeSpent","id":738527378,"params":[2,4]} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "result": 1.5, - "id": 738527378 -} -``` diff --git a/doc/en_US/api-swimlane-procedures.markdown b/doc/en_US/api-swimlane-procedures.markdown deleted file mode 100644 index cad1ddf7..00000000 --- a/doc/en_US/api-swimlane-procedures.markdown +++ /dev/null @@ -1,405 +0,0 @@ -API Swimlane Procedures -======================= - -## getActiveSwimlanes - -- Purpose: **Get the list of enabled swimlanes of a project (include default swimlane if enabled)** -- Parameters: - - **project_id** (integer, required) -- Result on success: **List of swimlanes** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getActiveSwimlanes", - "id": 934789422, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 934789422, - "result": [ - { - "id": 0, - "name": "Default swimlane" - }, - { - "id": "2", - "name": "Swimlane A" - } - ] -} -``` - -## getAllSwimlanes - -- Purpose: **Get the list of all swimlanes of a project (enabled or disabled) and sorted by position** -- Parameters: - - **project_id** (integer, required) -- Result on success: **List of swimlanes** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllSwimlanes", - "id": 509791576, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 509791576, - "result": [ - { - "id": "1", - "name": "Another swimlane", - "position": "1", - "is_active": "1", - "project_id": "1" - }, - { - "id": "2", - "name": "Swimlane A", - "position": "2", - "is_active": "1", - "project_id": "1" - } - ] -} -``` - -## getSwimlane - -- Purpose: **Get the a swimlane by id** -- Parameters: - - **swimlane_id** (integer, required) -- Result on success: **swimlane properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getSwimlane", - "id": 131071870, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 131071870, - "result": { - "id": "1", - "name": "Swimlane 1", - "position": "1", - "is_active": "1", - "project_id": "1" - } -} -``` - -## getSwimlaneById - -- Purpose: **Get the a swimlane by id** -- Parameters: - - **swimlane_id** (integer, required) -- Result on success: **swimlane properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getSwimlaneById", - "id": 131071870, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 131071870, - "result": { - "id": "1", - "name": "Swimlane 1", - "position": "1", - "is_active": "1", - "project_id": "1" - } -} -``` - -## getSwimlaneByName - -- Purpose: **Get the a swimlane by name** -- Parameters: - - **project_id** (integer, required) - - **name** (string, required) -- Result on success: **swimlane properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getSwimlaneByName", - "id": 824623567, - "params": [ - 1, - "Swimlane 1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 824623567, - "result": { - "id": "1", - "name": "Swimlane 1", - "position": "1", - "is_active": "1", - "project_id": "1" - } -} -``` - -## changeSwimlanePosition - -- Purpose: **Move up the swimlane position** (only for active swimlanes) -- Parameters: - - **project_id** (integer, required) - - **swimlane_id** (integer, required) - - **position** (integer, required, must be >= 1) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "changeSwimlanePosition", - "id": 99275573, - "params": [ - 1, - 2, - 3 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 99275573, - "result": true -} -``` - -## updateSwimlane - -- Purpose: **Update swimlane properties** -- Parameters: - - **project_id** (integer, required) - - **swimlane_id** (integer, required) - - **name** (string, required) - - **description** (string, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateSwimlane", - "id": 87102426, - "params": [ - "1", - "1", - "Another swimlane" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 87102426, - "result": true -} -``` - -## addSwimlane - -- Purpose: **Add a new swimlane** -- Parameters: - - **project_id** (integer, required) - - **name** (string, required) - - **description** (string, optional) -- Result on success: **swimlane_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "addSwimlane", - "id": 849940086, - "params": [ - 1, - "Swimlane 1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 849940086, - "result": 1 -} -``` - -## removeSwimlane - -- Purpose: **Remove a swimlane** -- Parameters: - - **project_id** (integer, required) - - **swimlane_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeSwimlane", - "id": 1433237746, - "params": [ - 2, - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1433237746, - "result": true -} -``` - -## disableSwimlane - -- Purpose: **Disable a swimlane** -- Parameters: - - **project_id** (integer, required) - - **swimlane_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "disableSwimlane", - "id": 1433237746, - "params": [ - 2, - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1433237746, - "result": true -} -``` - -## enableSwimlane - -- Purpose: **Enable a swimlane** -- Parameters: - - **project_id** (integer, required) - - **swimlane_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "enableSwimlane", - "id": 1433237746, - "params": [ - 2, - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1433237746, - "result": true -} -``` diff --git a/doc/en_US/api-tags-procedures.markdown b/doc/en_US/api-tags-procedures.markdown deleted file mode 100644 index 8d69430c..00000000 --- a/doc/en_US/api-tags-procedures.markdown +++ /dev/null @@ -1,195 +0,0 @@ -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/en_US/api-task-file-procedures.markdown b/doc/en_US/api-task-file-procedures.markdown deleted file mode 100644 index 51840bea..00000000 --- a/doc/en_US/api-task-file-procedures.markdown +++ /dev/null @@ -1,217 +0,0 @@ -Task File API Procedures -======================== - -## createTaskFile - -- Purpose: **Create and upload a new task attachment** -- Parameters: - - **project_id** (integer, required) - - **task_id** (integer, required) - - **filename** (integer, required) - - **blob** File content encoded in base64 (string, required) -- Result on success: **file_id** -- Result on failure: **false** -- Note: **The maximum file size depends of your PHP configuration, this method should not be used to upload large files** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createTaskFile", - "id": 94500810, - "params": [ - 1, - 1, - "My file", - "cGxhaW4gdGV4dCBmaWxl" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 94500810, - "result": 1 -} -``` - -## getAllTaskFiles - -- Purpose: **Get all files attached to task** -- Parameters: - - **task_id** (integer, required) -- Result on success: **list of files** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllTaskFiles", - "id": 1880662820, - "params": { - "task_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1880662820, - "result": [ - { - "id": "1", - "name": "My file", - "path": "1\/1\/0db4d0a897a4c852f6e12f0239d4805f7b4ab596", - "is_image": "0", - "task_id": "1", - "date": "1432509941", - "user_id": "0", - "size": "15", - "username": null, - "user_name": null - } - ] -} -``` - -## getTaskFile - -- Purpose: **Get file information** -- Parameters: - - **file_id** (integer, required) -- Result on success: **file properties** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getTaskFile", - "id": 318676852, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 318676852, - "result": { - "id": "1", - "name": "My file", - "path": "1\/1\/0db4d0a897a4c852f6e12f0239d4805f7b4ab596", - "is_image": "0", - "task_id": "1", - "date": "1432509941", - "user_id": "0", - "size": "15" - } -} -``` - -## downloadTaskFile - -- Purpose: **Download file contents (encoded in base64)** -- Parameters: - - **file_id** (integer, required) -- Result on success: **base64 encoded string** -- Result on failure: **empty string** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "downloadTaskFile", - "id": 235943344, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 235943344, - "result": "cGxhaW4gdGV4dCBmaWxl" -} -``` - -## removeTaskFile - -- Purpose: **Remove file** -- Parameters: - - **file_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeTaskFile", - "id": 447036524, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 447036524, - "result": true -} -``` - -## removeAllTaskFiles - -- Purpose: **Remove all files associated to a task** -- Parameters: - - **task_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeAllTaskFiles", - "id": 593312993, - "params": { - "task_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 593312993, - "result": true -} -``` diff --git a/doc/en_US/api-task-procedures.markdown b/doc/en_US/api-task-procedures.markdown deleted file mode 100644 index cec6e0e0..00000000 --- a/doc/en_US/api-task-procedures.markdown +++ /dev/null @@ -1,855 +0,0 @@ -API Task Procedures -=================== - -## createTask - -- Purpose: **Create a new task** -- Parameters: - - **title** (string, required) - - **project_id** (integer, required) - - **color_id** (string, optional) - - **column_id** (integer, optional) - - **owner_id** (integer, optional) - - **creator_id** (integer, optional) - - **date_due**: ISO8601 format (string, optional) - - **description** Markdown content (string, optional) - - **category_id** (integer, optional) - - **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) - - **tags** ([]string, optional) - - **date_started**: ISO8601 format (string, optional) -- Result on success: **task_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createTask", - "id": 1176509098, - "params": { - "owner_id": 1, - "creator_id": 0, - "date_due": "", - "description": "", - "category_id": 0, - "score": 0, - "title": "Test", - "project_id": 1, - "color_id": "green", - "column_id": 2, - "recurrence_status": 0, - "recurrence_trigger": 0, - "recurrence_factor": 0, - "recurrence_timeframe": 0, - "recurrence_basedate": 0 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1176509098, - "result": 3 -} -``` - -## getTask - -- Purpose: **Get task by the unique id** -- Parameters: - - **task_id** (integer, required) -- Result on success: **task properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getTask", - "id": 700738119, - "params": { - "task_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 700738119, - "result": { - "id": "1", - "title": "Task #1", - "description": "", - "date_creation": "1409963206", - "color_id": "blue", - "project_id": "1", - "column_id": "2", - "owner_id": "1", - "position": "1", - "is_active": "1", - "date_completed": null, - "score": "0", - "date_due": "0", - "category_id": "0", - "creator_id": "0", - "date_modification": "1409963206", - "reference": "", - "date_started": null, - "time_spent": "0", - "time_estimated": "0", - "swimlane_id": "0", - "date_moved": "1430875287", - "recurrence_status": "0", - "recurrence_trigger": "0", - "recurrence_factor": "0", - "recurrence_timeframe": "0", - "recurrence_basedate": "0", - "recurrence_parent": null, - "recurrence_child": null, - "url": "http:\/\/127.0.0.1:8000\/?controller=task&action=show&task_id=1&project_id=1", - "color": { - "name": "Yellow", - "background": "rgb(245, 247, 196)", - "border": "rgb(223, 227, 45)" - } - } -} -``` - -## getTaskByReference - -- Purpose: **Get task by the external reference** -- Parameters: - - **project_id** (integer, required) - - **reference** (string, required) -- Result on success: **task properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getTaskByReference", - "id": 1992081213, - "params": { - "project_id": 1, - "reference": "TICKET-1234" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1992081213, - "result": { - "id": "5", - "title": "Task with external ticket number", - "description": "[Link to my ticket](http:\/\/my-ticketing-system\/1234)", - "date_creation": "1434227446", - "color_id": "yellow", - "project_id": "1", - "column_id": "1", - "owner_id": "0", - "position": "4", - "is_active": "1", - "date_completed": null, - "score": "0", - "date_due": "0", - "category_id": "0", - "creator_id": "0", - "date_modification": "1434227446", - "reference": "TICKET-1234", - "date_started": null, - "time_spent": "0", - "time_estimated": "0", - "swimlane_id": "0", - "date_moved": "1434227446", - "recurrence_status": "0", - "recurrence_trigger": "0", - "recurrence_factor": "0", - "recurrence_timeframe": "0", - "recurrence_basedate": "0", - "recurrence_parent": null, - "recurrence_child": null, - "url": "http:\/\/127.0.0.1:8000\/?controller=task&action=show&task_id=5&project_id=1" - } -} -``` - -## getAllTasks - -- Purpose: **Get all available tasks** -- Parameters: - - **project_id** (integer, required) - - **status_id**: The value 1 for active tasks and 0 for inactive (integer, required) -- Result on success: **List of tasks** -- Result on failure: **false** - -Request example to fetch all tasks on the board: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllTasks", - "id": 133280317, - "params": { - "project_id": 1, - "status_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 133280317, - "result": [ - { - "id": "1", - "title": "Task #1", - "description": "", - "date_creation": "1409961789", - "color_id": "blue", - "project_id": "1", - "column_id": "2", - "owner_id": "1", - "position": "1", - "is_active": "1", - "date_completed": null, - "score": "0", - "date_due": "0", - "category_id": "0", - "creator_id": "0", - "date_modification": "1409961789", - "reference": "", - "date_started": null, - "time_spent": "0", - "time_estimated": "0", - "swimlane_id": "0", - "date_moved": "1430783191", - "recurrence_status": "0", - "recurrence_trigger": "0", - "recurrence_factor": "0", - "recurrence_timeframe": "0", - "recurrence_basedate": "0", - "recurrence_parent": null, - "recurrence_child": null, - "priority": "0", - "external_provider": null, - "external_uri": null, - "url": "http:\/\/127.0.0.1:8000\/?controller=task&action=show&task_id=1&project_id=1", - "color": { - "name": "Blue", - "background": "rgb(219, 235, 255)", - "border": "rgb(168, 207, 255)" - } - }, - { - "id": "2", - "title": "Test", - "description": "", - "date_creation": "1409962115", - "color_id": "green", - "project_id": "1", - "column_id": "2", - "owner_id": "1", - "position": "2", - "is_active": "1", - "date_completed": null, - "score": "0", - "date_due": "0", - "category_id": "0", - "creator_id": "0", - "date_modification": "1409962115", - "reference": "", - "date_started": null, - "time_spent": "0", - "time_estimated": "0", - "swimlane_id": "0", - "date_moved": "1430783191", - "recurrence_status": "0", - "recurrence_trigger": "0", - "recurrence_factor": "0", - "recurrence_timeframe": "0", - "recurrence_basedate": "0", - "recurrence_parent": null, - "recurrence_child": null, - "priority": "0", - "external_provider": null, - "external_uri": null, - "url": "http:\/\/127.0.0.1:8000\/?controller=task&action=show&task_id=2&project_id=1", - "color": { - "name": "Green", - "background": "rgb(189, 244, 203)", - "border": "rgb(74, 227, 113)" - } - }, - ... - ] -} -``` - -## getOverdueTasks - -- Purpose: **Get all overdue tasks** -- Result on success: **List of tasks** -- Result on failure: **false** - -Request example to fetch all tasks on the board: - -```json -{ - "jsonrpc": "2.0", - "method": "getOverdueTasks", - "id": 133280317 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 133280317, - "result": [ - { - "id": "1", - "title": "Task #1", - "date_due": "1409961789", - "project_id": "1", - "project_name": "Test", - "assignee_username":"admin", - "assignee_name": null - }, - { - "id": "2", - "title": "Test", - "date_due": "1409962115", - "project_id": "1", - "project_name": "Test", - "assignee_username":"admin", - "assignee_name": null - }, - ... - ] -} -``` - -## getOverdueTasksByProject - -- Purpose: **Get all overdue tasks for a special project** -- Result on success: **List of tasks** -- Result on failure: **false** - -Request example to fetch all tasks on the board: - -```json -{ - "jsonrpc": "2.0", - "method": "getOverdueTasksByProject", - "id": 133280317, - "params": { - "project_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 133280317, - "result": [ - { - "id": "1", - "title": "Task #1", - "date_due": "1409961789", - "project_id": "1", - "project_name": "Test", - "assignee_username":"admin", - "assignee_name": null - }, - { - "id": "2", - "title": "Test", - "date_due": "1409962115", - "project_id": "1", - "project_name": "Test", - "assignee_username":"admin", - "assignee_name": null - }, - ... - ] -} -``` - -## updateTask - -- Purpose: **Update a task** -- Parameters: - - **id** (integer, required) - - **title** (string, optional) - - **color_id** (string, optional) - - **owner_id** (integer, optional) - - **date_due**: ISO8601 format (string, optional) - - **description** Markdown content (string, optional) - - **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) - - **tags** ([]string, optional) - - **date_started**: ISO8601 format (string, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example to change the task color: - -```json -{ - "jsonrpc": "2.0", - "method": "updateTask", - "id": 1406803059, - "params": { - "id": 1, - "color_id": "blue" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1406803059, - "result": true -} -``` - -## openTask - -- Purpose: **Set a task to the status open** -- Parameters: - - **task_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "openTask", - "id": 1888531925, - "params": { - "task_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1888531925, - "result": true -} -``` - -## closeTask - -- Purpose: **Set a task to the status close** -- Parameters: - - **task_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "closeTask", - "id": 1654396960, - "params": { - "task_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1654396960, - "result": true -} -``` - -## removeTask - -- Purpose: **Remove a task** -- Parameters: - - **task_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeTask", - "id": 1423501287, - "params": { - "task_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1423501287, - "result": true -} -``` - -## moveTaskPosition - -- Purpose: **Move a task to another column, position or swimlane inside the same board** -- Parameters: - - **project_id** (integer, required) - - **task_id** (integer, required) - - **column_id** (integer, required) - - **position** (integer, required) - - **swimlane_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "moveTaskPosition", - "id": 117211800, - "params": { - "project_id": 1, - "task_id": 1, - "column_id": 2, - "position": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 117211800, - "result": true -} -``` - -## moveTaskToProject - -- Purpose: **Move a task to another project** -- Parameters: - - **task_id** (integer, required) - - **project_id** (integer, required) - - **swimlane_id** (integer, optional) - - **column_id** (integer, optional) - - **category_id** (integer, optional) - - **owner_id** (integer, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "moveTaskToProject", - "id": 15775829, - "params": [ - 4, - 5 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 15775829, - "result": true -} -``` - -## duplicateTaskToProject - -- Purpose: **Move a task to another column or another position** -- Parameters: - - **task_id** (integer, required) - - **project_id** (integer, required) - - **swimlane_id** (integer, optional) - - **column_id** (integer, optional) - - **category_id** (integer, optional) - - **owner_id** (integer, optional) -- Result on success: **task_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "duplicateTaskToProject", - "id": 1662458687, - "params": [ - 5, - 7 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1662458687, - "result": 6 -} -``` - -## searchTasks - -- Purpose: **Find tasks by using the search engine** -- Parameters: - - **project_id** (integer, required) - - **query** (string, required) -- Result on success: **list of tasks** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "searchTasks", - "id": 1468511716, - "params": { - "project_id": 2, - "query": "assignee:nobody" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1468511716, - "result": [ - { - "nb_comments": "0", - "nb_files": "0", - "nb_subtasks": "0", - "nb_completed_subtasks": "0", - "nb_links": "0", - "nb_external_links": "0", - "is_milestone": null, - "id": "3", - "reference": "", - "title": "T3", - "description": "", - "date_creation": "1461365164", - "date_modification": "1461365164", - "date_completed": null, - "date_started": null, - "date_due": "0", - "color_id": "yellow", - "project_id": "2", - "column_id": "5", - "swimlane_id": "0", - "owner_id": "0", - "creator_id": "0" - // ... - } - ] -} -``` - -## getTaskMetadata - -- Purpose: **Get all metadata related to a task by task unique id** -- Parameters: - - **task_id** (integer, required) -- Result on success: **list of metadata** -- Result on failure: **empty array** - -Request example to fetch all the metada of a task: - -```json -{ - "jsonrpc": "2.0", - "method": "getTaskMetadata", - "id": 133280317, - "params": [ - 1 - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 133280317, - "result": [ - { - "metaKey1": "metaValue1", - "metaKey2": "metaValue2", - ... - } - ] -} -``` - -## getTaskMetadataByName - -- Purpose: **Get metadata related to a task by task unique id and metakey (name)** -- Parameters: - - **task_id** (integer, required) - - **name** (string, required) -- Result on success: **metadata value** -- Result on failure: **empty string** - -Request example to fetch metada of a task by name: - -```json -{ - "jsonrpc": "2.0", - "method": "getTaskMetadataByName", - "id": 133280317, - "params": [ - 1, - "metaKey1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 133280317, - "result": "metaValue1" -} -``` - -## saveTaskMetadata - -- Purpose: **Save/update task metadata** -- Parameters: - - **task_id** (integer, required) - - **array("name" => "value")** (array, required) -- Result on success: **true** -- Result on failure: **false** - -Request example to add/update metada of a task: - -```json -{ - "jsonrpc": "2.0", - "method": "saveTaskMetadata", - "id": 133280317, - "params": [ - 1, - { - "metaName" : "metaValue" - } - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 133280317, - "result": true -} -``` - -## removeTaskMetadata - -- Purpose: **Remove task metadata by name** -- Parameters: - - **task_id** (integer, required) - - **name** (string, required) -- Result on success: **true** -- Result on failure: **false** - -Request example to remove metada of a task by name: - -```json -{ - "jsonrpc": "2.0", - "method": "removeTaskMetadata", - "id": 133280317, - "params": [ - 1, - "metaKey1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 133280317, - "result": true -} -``` diff --git a/doc/en_US/api-user-procedures.markdown b/doc/en_US/api-user-procedures.markdown deleted file mode 100644 index 6c09355d..00000000 --- a/doc/en_US/api-user-procedures.markdown +++ /dev/null @@ -1,357 +0,0 @@ -API User Procedures -=================== - -## createUser - -- Purpose: **Create a new user** -- Parameters: - - **username** Must be unique (string, required) - - **password** Must have at least 6 characters (string, required) - - **name** (string, optional) - - **email** (string, optional) - - **role** (string, optional, example: app-admin, app-manager, app-user) -- Result on success: **user_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createUser", - "id": 1518863034, - "params": { - "username": "biloute", - "password": "123456" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1518863034, - "result": 22 -} -``` - -## createLdapUser - -- Purpose: **Create a new user authentified by LDAP** -- Parameters: - - **username** (string, required) -- Result on success: **user_id** -- Result on failure: **false** - -The user will only be created if he is found on the LDAP server. -This method works only with LDAP authentication configured in proxy or anonymous mode. - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createLdapUser", - "id": 1518863034, - "params": { - "username": "my_ldap_user", - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1518863034, - "result": 22 -} -``` - -## getUser - -- Purpose: **Get user information** -- Parameters: - - **user_id** (integer, required) -- Result on success: **user properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getUser", - "id": 1769674781, - "params": { - "user_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1769674781, - "result": { - "id": "1", - "username": "biloute", - "password": "$2y$10$dRs6pPoBu935RpmsrhmbjevJH5MgZ7Kr9QrnVINwwyZ3.MOwqg.0m", - "role": "app-user", - "is_ldap_user": "0", - "name": "", - "email": "", - "google_id": null, - "github_id": null, - "notifications_enabled": "0" - } -} -``` - -## getUserByName - -- Purpose: **Get user information** -- Parameters: - - **username** (string, required) -- Result on success: **user properties** -- Result on failure: **null** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getUserByName", - "id": 1769674782, - "params": { - "username": "biloute" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1769674782, - "result": { - "id": "1", - "username": "biloute", - "password": "$2y$10$dRs6pPoBu935RpmsrhmbjevJH5MgZ7Kr9QrnVINwwyZ3.MOwqg.0m", - "role": "app-user", - "is_ldap_user": "0", - "name": "", - "email": "", - "google_id": null, - "github_id": null, - "notifications_enabled": "0" - } -} -``` - -## getAllUsers - -- Purpose: **Get all available users** -- Parameters: - - **none** -- Result on success: **List of users** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllUsers", - "id": 1438712131 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1438712131, - "result": [ - { - "id": "1", - "username": "biloute", - "name": "", - "email": "", - "role": "app-user", - "is_ldap_user": "0", - "notifications_enabled": "0", - "google_id": null, - "github_id": null - }, - ... - ] -} -``` - -## updateUser - -- Purpose: **Update a user** -- Parameters: - - **id** (integer) - - **username** (string, optional) - - **name** (string, optional) - - **email** (string, optional) - - **role** (string, optional, example: app-admin, app-manager, app-user) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateUser", - "id": 322123657, - "params": { - "id": 1, - "role": "app-manager" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 322123657, - "result": true -} -``` - -## removeUser - -- Purpose: **Remove a user** -- Parameters: - - **user_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeUser", - "id": 2094191872, - "params": { - "user_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2094191872, - "result": true -} -``` - -## disableUser - -- Purpose: **Disable a user** -- Parameters: - - **user_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "disableUser", - "id": 2094191872, - "params": { - "user_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2094191872, - "result": true -} -``` - -## enableUser - -- Purpose: **Enable a user** -- Parameters: - - **user_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "enableUser", - "id": 2094191872, - "params": { - "user_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2094191872, - "result": true -} -``` - -## isActiveUser - -- Purpose: **Check if a user is active** -- Parameters: - - **user_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "isActiveUser", - "id": 2094191872, - "params": { - "user_id": 1 - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 2094191872, - "result": true -} -``` diff --git a/doc/en_US/application-configuration.markdown b/doc/en_US/application-configuration.markdown deleted file mode 100644 index 827f9c8a..00000000 --- a/doc/en_US/application-configuration.markdown +++ /dev/null @@ -1,41 +0,0 @@ -Application settings -==================== - -Some parameters for the application can be changed on the settings page. -Only administrators can change those settings. - -Go to the menu **Settings**, then choose **Application settings** on the left. - -![Application settings](../screenshots/application-settings.png) - -### Application URL - -This parameter is used for email notifications. -The email footer will contain a link to the Kanboard task. - -### Language - -The application language can be changed at anytime. -The language will be set for all users. - -### Time zone - -By default, Kanboard use UTC as time zone, but you can define your own time zone. -The list contains all supported time zones by your web server. - -### Date format - -Input format used for date fields, for examples the due date for tasks. - -Kanboard offers 4 different formats: - -- DD/MM/YYYY -- MM/DD/YYYY (default) -- YYYY/MM/DD -- MM.DD.YYYY - -The [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format is always accepted (YYYY-MM-DD or YYYY_MM_DD). - -### Custom Stylesheet - -Write your own CSS to override or improve Kanboard default style. diff --git a/doc/en_US/assets.markdown b/doc/en_US/assets.markdown deleted file mode 100644 index 04082c9e..00000000 --- a/doc/en_US/assets.markdown +++ /dev/null @@ -1,49 +0,0 @@ -How to build assets (Javascript and CSS files) -============================================== - -Stylesheet and Javascript files are merged together and minified. - -- Original CSS files are stored in the folder `assets/css/src/*.css` -- Original Javascript code is stored in the folder `assets/js/src/*.js` -- `assets/*/vendor.min.*` are external dependencies merged and minified -- `assets/*/app.min.*` are application source code merged and minified - -Requirements ------------- - -- [NodeJS](https://nodejs.org/) with `npm` - -Building Javascript and CSS files ---------------------------------- - -Kanboard use [Gulp](http://gulpjs.com/) to build the assets and [Bower](http://bower.io/) to manage dependencies. -These tools are installed as NodeJS dependencies into the project. - -### Run everything - -```bash -make static -``` - -### Build `vendor.min.js` and `vendor.min.css` - -```bash -gulp vendor -``` - -### Build `app.min.js` - -```bash -gulp js -``` - -### Build `app.min.css` - -```bash -gulp css -``` - -Notes ------ - -Building assets is not possible from the Kanboard's archive, you have to clone the repository. diff --git a/doc/en_US/automatic-actions.markdown b/doc/en_US/automatic-actions.markdown deleted file mode 100644 index 011c772c..00000000 --- a/doc/en_US/automatic-actions.markdown +++ /dev/null @@ -1,108 +0,0 @@ -Automatic Actions -================= - -To minimize user interaction, Kanboard support automated actions. - -Each automatic action is defined with these properties: - -- An event to listen -- 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**. - -Add a new action ----------------- - -Click on the link **Add a new automatic action**. - -![Automatique action](../screenshots/automatic-action-creation.png) - -1. Choose an action -2. Select an event -3. Define the parameters - -Available actions -------------------------- - -- Create a comment from an external provider -- Add a comment log when moving the task between columns -- Automatically assign a category based on a color -- Change the category based on an external label -- 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 -- Assign the task to the person who does the action -- Assign the task to the person who does the action when the column is changed -- Assign the task to a specific user -- Change the assignee based on an external username -- Close the task -- Close a task in a specific column -- Create a task from an external provider -- Duplicate the task to another project -- Send a task by email to someone -- Move the task to another project -- Move the task to another column when assigned to a user -- Move the task to another column when the category is changed -- Move the task to another column when assignee is cleared -- Open a task -- Automatically update the start date - -Examples --------- - -Here are some examples used in real life: - -### When I move a task to the column "Done", automatically close this task - -- Choose action: **Close a task in a specific column** -- Choose the event: **Move a task to another column** -- Define action parameter: **Column = Done** (this is the destination column) - -### When I move a task to the column "To be validated", assign this task to a specific user - -- Choose the action: **Assign the task to a specific user** -- Choose the event: **Move a task to another column** -- Define the action parameters: **Column = To be validated** and **User = Bob** (Bob is our tester) - -### When I move a task to the column "Work in progress", assign this task to the current user - -- Choose action: **Assign the task to the person who does the action when the column is changed** -- Choose the event: **Move a task to another column** -- Define action parameter: **Column = Work in progress** - -### 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. - -- Choose action: **Duplicate the task to another project** -- Choose the event: **Closing a task** -- Define action parameters: **Column = Validated** and **Project = Production** - -### 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. - -- Choose action: **Move the task to another project** -- Choose the event: **Move a task to another column** -- Define action parameters: **Column = Validated** and **Project = Development** - -### I want to assign automatically a color to the user Bob - -- Choose action: **Assign a color to a specific user** -- Choose the event: **Task assignee change** -- Define action parameters: **Color = Green** and **Assignee = Bob** - -### I want to assign a color automatically to the defined category "Feature Request" - -- Choose action: **Assign automatically a color based on a category** -- Choose the event: **Task creation or modification** -- Define action parameters: **Color = Blue** and **Category = Feature Request** - -### I want to set the start date automatically when the task is moved to the column "Work in progress" - -- Choose action: **Automatically update the start date** -- Choose the event: **Move a task to another column** -- Define action parameters: **Column = Work in progress** diff --git a/doc/en_US/board-collapsed-expanded.markdown b/doc/en_US/board-collapsed-expanded.markdown deleted file mode 100644 index 3eb2c204..00000000 --- a/doc/en_US/board-collapsed-expanded.markdown +++ /dev/null @@ -1,18 +0,0 @@ -Collapsed and Expanded mode -=========================== - -Tasks on the board can be displayed in collapsed or in expanded mode. -Switching from one view to another can be done with the keyboard shortcut **"s"** or by using the drop-down menu on the left. - -Collapsed mode --------------- - -![Tasks collapsed](../screenshots/board-collapsed-mode.png) - -- 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 -------------- - -![Tasks expanded](../screenshots/board-expanded-mode.png) diff --git a/doc/en_US/board-configuration.markdown b/doc/en_US/board-configuration.markdown deleted file mode 100644 index 3972e424..00000000 --- a/doc/en_US/board-configuration.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Board settings -============== - -Go to the menu **Settings**, then choose **Board settings** on the left. - -![Board settings](../screenshots/board-settings.png) - -### Task highlighting - -This feature displays a shadow around the task when a task is moved recently. - -Set the value 0 to disable this feature, 2 days by default (172800 seconds). - -Everything moved since 2 days will have shadow around the task. - -### Refresh interval for public board - -When you share a board, the page will refresh every 60 seconds automatically by default. - -### Refresh interval for private board - -When your web browser is open on a board, Kanboard checks every 10 seconds if something has been changed by someone else. - -Technically this process is done by Ajax polling. diff --git a/doc/en_US/board-horizontal-scrolling-and-compact-view.markdown b/doc/en_US/board-horizontal-scrolling-and-compact-view.markdown deleted file mode 100644 index 89365a4f..00000000 --- a/doc/en_US/board-horizontal-scrolling-and-compact-view.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Horizontal scrolling and compact mode -===================================== - -When the board cannot fit on your screen, a horizontal scroll bar will appear at the bottom. - -However, it's possible to switch to the compact the view to display all columns in your screen. - -![Switch to compact mode](../screenshots/board-compact-mode.png) - -Switching between horizontal scrolling and compact view can be done with the keyboard shortcut **"c"** or by using the drop-down menu on the top left. diff --git a/doc/en_US/board-show-hide-columns.markdown b/doc/en_US/board-show-hide-columns.markdown deleted file mode 100644 index 62526cfc..00000000 --- a/doc/en_US/board-show-hide-columns.markdown +++ /dev/null @@ -1,12 +0,0 @@ -Show and hide columns on the board -================================== - -You can hide or display columns very easily on the board: - -![Hide a column](../screenshots/hide-column.png) - -To hide a column, click on the column dropdown menu and choose "Hide this column": - -![Show a column](../screenshots/show-column.png) - -To show the column again, click on the "plus icon". diff --git a/doc/en_US/bruteforce-protection.markdown b/doc/en_US/bruteforce-protection.markdown deleted file mode 100644 index 2f75b919..00000000 --- a/doc/en_US/bruteforce-protection.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Brute Force Protection -====================== - -The brute force protection of Kanboard works at the user account level: - -- After 3 authentication failure for the same username, the login form shows a captcha image to prevent automated bot tentatives. -- After 6 authentication failure, the user account is locked down for a period of 15 minutes. - -This feature works only for authentication methods that use the login form. - -However, **after three authentication failure through the user API**, the account has to be unlocked by using the login form. - -Kanboard doesn't block any IP addresses since bots can use several anonymous proxies. However, you can use external tools like [fail2ban](http://www.fail2ban.org) to avoid massive scans. - -Configuration -------------- - -Default settings can be changed with these configuration variables: - -```php -// 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); -``` - -Unlocking users ---------------- - -If you don't want to wait 15 minutes, you can unlock a user from the user interface. -As administrator, go to the user profile and click on "Unlock this user". diff --git a/doc/en_US/calendar-configuration.markdown b/doc/en_US/calendar-configuration.markdown deleted file mode 100644 index 443f2394..00000000 --- a/doc/en_US/calendar-configuration.markdown +++ /dev/null @@ -1,42 +0,0 @@ -Calendar settings -================= - -Go to the menu **Settings**, then choose **Calendar settings** on the left. - -![Calendar settings](../screenshots/calendar-settings.png) - -There are two different calendars in Kanboard: - -- Project calendar -- User calendar (available from the dashboard) - -Project calendar ----------------- - -This calendar shows tasks with defined due date and tasks based on the creation date or the start date. - -### Show tasks based on the creation date - -- The start date of the calendar event is the creation date of the task. -- The end date of the event is the date of completion. - -### Show tasks based on the start date - -- The start date of the calendar event is the start date of the task. -- This date can be defined manually. -- The end date of the event is the date of completion. -- If there is no start date the task will not appear on the calendar. - -User calendar -------------- - -This calendar shows only tasks assigned to the user and optionally sub-tasks information. - -### Show sub-tasks based on the time tracking - -- Display sub-tasks in the calendar from the information recorded in the time tracking table. -- The intersection with the user timetable is also calculated. - -### Show sub-task estimates (forecast of future work) - -- Display the estimate of future work for sub-tasks in status "todo" and with a defined "estimate" value. diff --git a/doc/en_US/calendar.markdown b/doc/en_US/calendar.markdown deleted file mode 100644 index a984ddc9..00000000 --- a/doc/en_US/calendar.markdown +++ /dev/null @@ -1,20 +0,0 @@ -Calendar -======== - -There are two different views for the calendar: - -- The project view with filters (available from the board) -- The user view (available from the dashboard and from the user section) - -At this time the calendar is able to display this information: - -- Tasks with a due date, displayed at the top. **The due date can be changed by moving the task to another day**. -- Tasks based on the creation date or the start date. **These events cannot be modified with the calendar**. -- Sub-task time tracking, all recorded time slot will be shown in the calendar. -- Sub-task estimates, forecasts of work left - -![Calendar](../screenshots/calendar.png) - -The calendar configuration can be changed in the settings page. - -Note: The due date doesn't contain time information. diff --git a/doc/en_US/centos-installation.markdown b/doc/en_US/centos-installation.markdown deleted file mode 100644 index 6346cad7..00000000 --- a/doc/en_US/centos-installation.markdown +++ /dev/null @@ -1,89 +0,0 @@ -Kanboard Installation on CentOS -=============================== - -Centos 7 --------- - -Install PHP and Apache: - -```bash -yum install -y php php-xml php-mbstring php-pdo php-gd unzip wget -``` - -By default, Centos 7 use PHP 5.4.16 and Apache 2.4.6. - -Restart Apache: - -```bash -systemctl restart httpd.service -``` - -Install Kanboard: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R apache:apache kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Centos 6.x ----------- - -Install PHP and Apache: - -```bash -yum install -y php php-xml php-mbstring php-pdo php-gd unzip wget -``` - -By default, Centos 6.5 use PHP 5.3.3 and Apache 2.2.15. - -Enable short tags: - -- Edit the file `/etc/php.ini` -- Change the line `short_open_tag = On` - -Restart Apache: - -```bash -service httpd restart -``` - -Install Kanboard: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R apache:apache kanboard-<version>/data -rm kanboard-<version>.zip -``` - -SELinux restrictions --------------------- - -If SELinux is enabled, be sure that the Apache user can write to the directory data: - -```bash -chcon -R -t httpd_sys_content_rw_t /var/www/html/kanboard/data -``` - -Be sure to configure your server to allow Kanboard to send emails and make external network requests, by example with SELinux: - -```bash -setsebool -P httpd_can_network_connect=1 -``` - -Allowing external connections is necessary if you use LDAP, SMTP, Web hooks or any third-party integration. - -Notes ------ - -Some features of Kanboard require that you run [a daily background job](cronjob.markdown). diff --git a/doc/en_US/cli.markdown b/doc/en_US/cli.markdown deleted file mode 100644 index b8d999c6..00000000 --- a/doc/en_US/cli.markdown +++ /dev/null @@ -1,247 +0,0 @@ -Command Line Interface -====================== - -Kanboard provides a simple command line interface that can be used from any Unix terminal. -This tool can be used only on the local machine. - -This feature is useful to run commands outside of the web server processes. - -Usage ------ - -- Open a terminal and go to your Kanboard directory (example: `cd /var/www/kanboard`) -- Run the command `./cli` or `php cli` - -```bash -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 - job Execute individual job (read payload from stdin) - list Lists commands - version Display Kanboard version - worker Execute queue worker - db - db:migrate Execute SQL migrations - db:version Show database schema version - 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:archive Disable projects not touched during one year - projects:archive-activities Remove project activities after one year - 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 ------------------- - -### Tasks CSV export - -Usage: - -```bash -./cli export:tasks <project_id> <start_date> <end_date> -``` - -Example: - -```bash -./cli export:tasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -CSV data are sent to `stdout`. - -### Subtasks CSV export - -Usage: - -```bash -./cli export:subtasks <project_id> <start_date> <end_date> -``` - -Example: - -```bash -./cli export:subtasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -### Task transitions CSV export - -Usage: - -```bash -./cli export:transitions <project_id> <start_date> <end_date> -``` - -Example: - -```bash -./cli export:transitions 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -### Export daily summaries data in CSV - -The exported data will be printed on the standard output: - -```bash -./cli export:daily-project-column-stats <project_id> <start_date> <end_date> -``` - -Example: - -```bash -./cli export:daily-project-column-stats 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -### Send notifications for overdue tasks - -Emails will be sent to all users with notifications enabled. - -```bash -./cli notification:overdue-tasks -``` - -Optional parameters: - -- `--show`: Display notifications sent -- `--group`: Group all overdue tasks for one user (from all projects) in one email -- `--manager`: Send all overdue tasks to project manager(s) in one email -- `-p|--project project_id|identifier`: Send notifications only for the given project - -You can also display the overdue tasks with the flag `--show`: - -```bash -./cli 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 | | -+-----+---------+------------+------------+--------------+----------+ -``` - -Example to filter by project: - -```bash -./cli notification:overdue-tasks --project 123 -``` - -Or if you have defined a project identifier: - -```bash -./cli notification:overdue-tasks --project MY_PROJECT -``` - -### Run daily project stats calculation - -This command calculate the statistics of each project: - -```bash -./cli projects:daily-stats -Run calculation for Project #0 -Run calculation for Project #1 -Run calculation for Project #10 -``` - -### Trigger for tasks - -This command send a "daily cronjob event" to all open tasks of each project. - -```bash -./cli trigger:tasks -Trigger task event: project_id=2, nb_tasks=1 -``` - -### Reset user password - -```bash -./cli user:reset-password my_user -``` - -You will be prompted for a password and confirmation. Characters are not printed to the screen. - -### Remove two-factor authentication for a user - -```bash -./cli user:reset-2fa my_user -``` - -### Install a plugin - -```bash -./cli plugin:install https://github.com/kanboard/plugin-github-auth/releases/download/v1.0.1/GithubAuth-1.0.1.zip -``` - -Note: Installed files will have the same permissions as the current user - -### Remove a plugin - -```bash -./cli plugin:uninstall Budget -``` - -### Upgrade all plugins - -```bash -./cli plugin:upgrade -* Updating plugin: Budget Planning -* Plugin up to date: Github Authentication -``` - -### Run Background worker - -```bash -./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: - -```bash -./cli db:migrate -``` - -### Check database schema version - -```bash -./cli db:version -Current version: 95 -Last version: 96 -``` diff --git a/doc/en_US/closing-tasks.markdown b/doc/en_US/closing-tasks.markdown deleted file mode 100644 index c3bf6138..00000000 --- a/doc/en_US/closing-tasks.markdown +++ /dev/null @@ -1,16 +0,0 @@ -Closing tasks -============= - -When a task is closed, it is hidden from the board. - -However, you can always access to the list of closed tasks by using the query **status:closed** in any search form or simply choose **Closed tasks** from the filter drop-down. - -There are two different ways to close a task, from the task drop-down menu on the board: - -![Close a task from drop-down menu](../screenshots/menu-close-task.png) - -Or from the task sidebar menu in the task detail view: - -![Close task](../screenshots/closing-tasks.png) - -Note: When you close a task, all sub-tasks not completed will be changed to the status "Done". diff --git a/doc/en_US/cloudron.markdown b/doc/en_US/cloudron.markdown deleted file mode 100644 index c79d0441..00000000 --- a/doc/en_US/cloudron.markdown +++ /dev/null @@ -1,28 +0,0 @@ -How to run Kanboard on Cloudron -================================ - -[Cloudron](https://cloudron.io) is a private smartserver on which you can install web -apps like Kanboard. You can install Kanboard into a custom domain and each -installation is backed up and kept up-to-date with Kanboard releases automatically. - -[![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=net.kanboard.cloudronapp) - -Accounts --------- - -The app integrates tightly with the Cloudron User Management (via LDAP). Only -Cloudron users can access the Kanboard. In addition, any Cloudron administrator -becomes a Kanboard administrator automatically. - -Installing Plugins ------------------- - -Plugins can be installed and configured using the [Cloudron CLI](https://git.cloudron.io/cloudron/cloudron-cli) -tool. See the [app description](https://cloudron.io/appstore.html?app=net.kanboard.cloudronapp) for -more information. - -Application Source code ----------------------- - -The source code for the Cloudron app is [here](https://git.cloudron.io/cloudron/kanboard-app). - diff --git a/doc/en_US/coding-standards.markdown b/doc/en_US/coding-standards.markdown deleted file mode 100644 index 0ee3ecd6..00000000 --- a/doc/en_US/coding-standards.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Coding standards -================ - -PHP code --------- - -- Indentation: 4 spaces -- Line return: Unix => `\n` -- Encoding: UTF-8 -- Use only the opening tags `<?php` or `<?=` for templates, but **never** use `<?` -- Always write PHPdoc comments for methods and class properties -- Coding style: [PSR-1](http://www.php-fig.org/psr/psr-1/) and [PSR-2](http://www.php-fig.org/psr/psr-2/) - -JavaScript code ---------------- - -- Indentation: 4 spaces -- Line return: Unix => `\n` - -CSS code --------- - -- Indentation: 4 spaces -- Line return: Unix => `\n` diff --git a/doc/en_US/config.markdown b/doc/en_US/config.markdown deleted file mode 100644 index a5497d64..00000000 --- a/doc/en_US/config.markdown +++ /dev/null @@ -1,342 +0,0 @@ -Config File -=========== - -You can customize the default settings of Kanboard by adding a file `config.php` at the project root or in the `data` folder. -You can also rename the file `config.default.php` to `config.php` and change the desired values. - -Enable/Disable debug mode -------------------------- - -```php -define('DEBUG', true); -define('LOG_DRIVER', 'file'); // Other drivers are: syslog, stdout, stderr, system or file - -// By default, the log file is in data/debug.log but you can change the path: -define('LOG_FILE', '/path/to/debug.log'); -``` - -- The log driver must be defined if you enable the debug mode. -- The debug mode logs all SQL queries and the time taken to generate pages. -- The `system` driver use the built-in PHP logger which could be configured in the [php.ini](http://php.net/manual/en/errorfunc.configuration.php#ini.error-log). By default, log messages are sent to the web server logs. - -Plugins -------- - -Plugin folder: - -```php -define('PLUGINS_DIR', 'data/plugins'); -``` - -Enable/disable plugin installation from the user interface: - -```php -define('PLUGIN_INSTALLER', true); // Default is true -``` - -Change default plugin directory URL: - -```php -define('PLUGIN_API_URL', 'https://kanboard.org/plugins.json'); -``` - -Folder for uploaded files -------------------------- - -```php -define('FILES_DIR', 'data/files'); -``` - -Cache parameters ----------------- - -```php -// Available cache drivers are "file" and "memory" -define('CACHE_DRIVER', 'memory'); - -// Cache folder to use if cache driver is "file" (must be writeable by the web server user) -define('CACHE_DIR', DATA_DIR.DIRECTORY_SEPARATOR.'cache'); -``` - -Enable/disable url rewrite --------------------------- - -```php -define('ENABLE_URL_REWRITE', false); -``` - -Email configuration -------------------- - -```php -// Enable/disable email configuration from the user interface -define('MAIL_CONFIGURATION', true); - -// E-mail address used 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 ------------------ - -```php -// Run automatically database migrations -// If set to false, you will have to run manually the SQL migrations from the CLI during the next Kanboard upgrade -// Do not run the migrations from multiple processes at the same time (example: web page + background worker) -define('DB_RUN_MIGRATIONS', true); - -// 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 settings -------------- - -```php -// 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 Authentication settings -------------------------------------- - -```php -// 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 Authentication settings ----------------------------------- - -```php -// Enable/disable remember me authentication -define('REMEMBER_ME_AUTH', true); -``` - -Secure HTTP headers settings ----------------------------- - -```php -// 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 -------- - -By default, Kanboard do not log anything. -If you want to enable the logging, you have to set a log driver. - -```php -// 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 protection ----------------------- - -```php -// 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 -------- - -```php -// 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 Client ------------ - -If external HTTP requests need to be sent through a proxy: - -```php -define('HTTP_PROXY_HOSTNAME', ''); -define('HTTP_PROXY_PORT', '3128'); -define('HTTP_PROXY_USERNAME', ''); -define('HTTP_PROXY_PASSWORD', ''); -``` - -To allow self-signed certificates: - -```php -// Set to false to allow self-signed certificates -define('HTTP_VERIFY_SSL_CERTIFICATE', true); -``` - -Various settings ----------------- - -```php -// 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'); - -// TOTP (2FA) issuer name -define('TOTP_ISSUER', 'Kanboard'); - -// Comma separated list of fields to not synchronize when using external authentication providers -define('EXTERNAL_AUTH_EXCLUDE_FIELDS', 'username'); -``` diff --git a/doc/en_US/contributing.markdown b/doc/en_US/contributing.markdown deleted file mode 100644 index 89306c52..00000000 --- a/doc/en_US/contributing.markdown +++ /dev/null @@ -1,70 +0,0 @@ -Contributor Guidelines -====================== - -How can I help? ---------------- - -Kanboard is not perfect but there are many ways to help: - -- Give feedback -- Report bugs -- Add or update translations -- Improve the documentation -- Writing code -- Tell your friends that Kanboard is awesome :) - -Before doing any large undertaking, open a new issue and explain your proposal. - -I want to give feedback ------------------------ - -- You think something should be improved (user interface, feature requests) -- Check if your idea is not already proposed -- Open a new issue -- Describe your idea -- You can also up-vote with +1 on existing proposals - -I want to report a bug ----------------------- - -- Check if the issue is not already reported -- Open a new ticket -- Explain what is broken -- Describe how to reproduce the bug -- Describe your environment (Kanboard version, OS, web server, PHP version, database version, hosting provider) - -I want to translate Kanboard ----------------------------- - -Kanboard is translated in many languages. -However, translations are not complete, take look at the [translation guide to contribute](translations.markdown). - -I want to improve the documentation ------------------------------------ - -- You think something is not clear, there is grammatical errors, typo errors, anything. -- The documentation is written in Markdown and stored in the folder `docs`. -- Edit the files and send a pull-request. -- The documentation on the official website is synchronized with the repository. - -I want to contribute to the code --------------------------------- - -Pull-requests are always welcome however, to be accepted you have to follow those directives: - -- **Before doing any large change or design proposal, open a new ticket to start a discussion.** -- If you want to add a new feature, respect the philosophy behind Kanboard. **We focus on simplicity**, we don't want to have a bloated software. -- The same apply for the user interface, **simplicity and efficiency**. -- Send only one pull-request per feature or bug fix. -- A smaller pull-request is easier to review and faster it will be merged. -- Make sure the [unit tests pass](tests.markdown). -- Respect the [coding standards](coding-standards.markdown). -- Write maintainable code, avoid code duplication, use PHP good practices. - -In any case, if you are not sure about something open a new ticket. - -Tell your friends that Kanboard is awesome :) ---------------------------------------------- - -If you use Kanboard, spread the word around you. -Tell them that free and open source software are cool :) diff --git a/doc/en_US/create-tasks-by-email.markdown b/doc/en_US/create-tasks-by-email.markdown deleted file mode 100644 index f0ac4753..00000000 --- a/doc/en_US/create-tasks-by-email.markdown +++ /dev/null @@ -1,34 +0,0 @@ -Create tasks by email -===================== - -You can create tasks directly by sending an email. -This feature is available by using plugins. - -At the moment, Kanboard is integrated with 3 external services: - -- [Mailgun](https://github.com/kanboard/plugin-mailgun) -- [Sendgrid](https://github.com/kanboard/plugin-sendgrid) -- [Postmark](https://github.com/kanboard/plugin-postmark) - -These services handle incoming emails without having to configure any SMTP server. - -When an email is received, Kanboard receive the message on a specific end-point. -All complicated works are already handled by those services. - -Incoming emails workflow ------------------------- - -1. You send an email to a specific address, for example **myproject@inbound.mydomain.tld** -2. Your email is forwarded to the third-party SMTP servers -3. The SMTP provider call the Kanboard web hook with the email in JSON or multipart/form-data formats -4. Kanboard parses the received email and create the task to the right project - -Notes ------ - -- The Kanboard web hook is protected by a random token -- The sender email address must match a Kanboard user -- The Kanboard user must be a member of the project -- Kanboard is able to convert only simple HTML emails to Markdown -- New tasks are automatically created in the first column -- Refer to the documentation of each plugin for the configuration diff --git a/doc/en_US/creating-projects.markdown b/doc/en_US/creating-projects.markdown deleted file mode 100644 index ad644d88..00000000 --- a/doc/en_US/creating-projects.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Creating Projects -================= - -Kanboard can handle multiple projects. There are two kinds of projects: - -- Team projects -- Private project for a single user - -Creating projects for multiple users -------------------------------------- - -- Only administrators and project administrators can create those projects -- User management is available - -From the dashboard, click on the link **New project**: - -![Project creation form](../screenshots/new-project.png) - -It's very easy: you just have to find a name for your project! - -Creating a private project --------------------------- - -- Anybody can create a private project -- There is **NO** user management -- 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, you can choose to duplicate the properties of another project: - -- Permissions -- Actions -- Swimlanes -- Categories -- Tasks diff --git a/doc/en_US/creating-tasks.markdown b/doc/en_US/creating-tasks.markdown deleted file mode 100644 index f45664fc..00000000 --- a/doc/en_US/creating-tasks.markdown +++ /dev/null @@ -1,30 +0,0 @@ -Creating Tasks -============== - -From the board, click on the plus sign next to the column name: - -![Task creation from the board](../screenshots/task-creation-board.png) - -Then the task creation form appears: - -![Task creation form](../screenshots/task-creation-form.png) - -Field description: - -- **Title**: The title of your task, which will be displayed on the board. -- **Description**: Description that use the [Markdown](syntax-guide.markdown) format. -- **Tags**: The list of tags associated to tasks. -- **Create another task**: Check this box if you want to create a similar task (some fields will be pre-filled). -- **Color**: Choose the color of the card. -- **Assignee**: The person that will work on the task. -- **Category**: Only one category can be assigned to a task (visible only if the projects have categories). -- **Column**: The column where the task will be created, your task will be positioned at the bottom. -- **Priority**: Task priority, the range can be defined in the project settings, default values are P0 to P3. -- **Complexity**: Used in agile project management (Scrum), the complexity or story points is a number that tells the team how hard the story is. Often, people use the Fibonacci series. -- **Reference**: External ID for the task, for example it can be ticket number that come from another system -- **Original Estimate**: Estimation in hours to complete the task. -- **Time Spent**: Time spent working on the task. -- **Start Date**: This is a date time field. -- **Due Date**: Overdue tasks will have a red due date and upcoming due dates will be black on the board. Several date format are accepted in addition to the date picker. - -With the preview link, you can see the task description converted from the Markdown syntax. diff --git a/doc/en_US/cronjob.markdown b/doc/en_US/cronjob.markdown deleted file mode 100644 index fd7c2b1e..00000000 --- a/doc/en_US/cronjob.markdown +++ /dev/null @@ -1,55 +0,0 @@ -Background Job Scheduling -========================= - -To work properly, Kanboard requires that a background job run on a daily basis. -Usually on Unix platforms, this process is done by `cron`. - -This background job is necessary for these features: - -- Reports and analytics (calculate daily stats of each projects) -- Send overdue task notifications -- Execute automatic actions connected to the event "Daily background job for tasks" - -Configuration on Unix and Linux platforms ------------------------------------------ - -There are multiple ways to define a cronjob on Unix/Linux operating systems, this example is for Ubuntu 14.04. -The procedure is similar for other systems. - -Edit the crontab of your web server user: - -```bash -sudo crontab -u www-data -e -``` - -Example to execute the daily cronjob at 8am: - -```bash -0 8 * * * cd /path/to/kanboard && ./cli cronjob >/dev/null 2>&1 -``` - -Note: the cronjob process must have write access to the database in case you are using Sqlite. -Usually, running the cronjob under the web server user is enough. - -Configuration on Microsoft Windows Server ------------------------------------------ - -Before to configure the recurring task, create a batch file (*.bat or *.cmd) that run the Kanboard CLI script. - -Here an example (`C:\kanboard.bat`): - -``` -"C:\php\php.exe" -f "C:\inetpub\wwwroot\kanboard\cli" cronjob -``` - -**You must change the path of the PHP executable and the path of the Kanboard's script according to your installation.** - -Configure the Windows Task Scheduler: - -1. Go to "Administrative Tools" -2. Open the "Task Scheduler" -3. On the right, choose "Create Task" -4. Choose a name, for example you can use "Kanboard" -5. Under "Security Options", choose a user that can write to the database in case you are using Sqlite (might be IIS_IUSRS depending of your configuration) -6. Create a new "Trigger", choose daily and a time, midnight for example -7. Add a new action, choose "Start a program" and select the batch file created above diff --git a/doc/en_US/currency-rate.markdown b/doc/en_US/currency-rate.markdown deleted file mode 100644 index b492d8f5..00000000 --- a/doc/en_US/currency-rate.markdown +++ /dev/null @@ -1,11 +0,0 @@ -Currency Rate -============== - -Since each user can have a pre-defined hourly rate in different currencies. -If you have to handle multiple currencies, you define here the rate according to the reference currency. - -This feature is used for project budget calculation. - -![Currency Rate](../screenshots/currency-rate.png) - -Currency rate settings are located in **Settings > Currency rates**. diff --git a/doc/en_US/custom-css.markdown b/doc/en_US/custom-css.markdown deleted file mode 100644 index 32f64105..00000000 --- a/doc/en_US/custom-css.markdown +++ /dev/null @@ -1,29 +0,0 @@ -Custom CSS -========== - -Go to Settings > Application settings > Custom Stylesheet - -Example to change color of category labels ------------------------------------------- - -For the category container: - -```css -.task-board-category-container-color span { - border: solid 0.5px grey; - color: black; -} -``` -Custom css values for one category - this is an example for displaying the text: - -```css -[class*="category-Patchkanditat"] { - background-color: rgba(255, 0, 0, 0.50); - border: none!important; - font-weight: bold; - font-style: italic; - box-shadow: 0 1px 1px rgba(186, 186, 186, 0.55); - color: white!important; - font-size:11px; -} -``` diff --git a/doc/en_US/custom-filters.markdown b/doc/en_US/custom-filters.markdown deleted file mode 100644 index 2b6fd76e..00000000 --- a/doc/en_US/custom-filters.markdown +++ /dev/null @@ -1,19 +0,0 @@ -Custom Filters -============== - -Custom filters allow you to save any search query. -In this way, you can extend the default filters easily and save most used search queries. - -- Custom filters are stored by project and associated to the creator. -- If the creator is project manager, he can choose to share the filter with other project members. - -Filter creation ---------------- - -Go to the action drop-down or in the project settings and choose **custom filters**: - -![Custom Filter Creation](../screenshots/custom-filter-creation.png) - -After creating your filter, it will appear on the board next to the default filters: - -![Custom Filter Dropdown](../screenshots/custom-filter-dropdown.png) diff --git a/doc/en_US/custom-project-roles.markdown b/doc/en_US/custom-project-roles.markdown deleted file mode 100644 index 6d26b9a3..00000000 --- a/doc/en_US/custom-project-roles.markdown +++ /dev/null @@ -1,88 +0,0 @@ -Custom Project Roles -==================== - -You can create custom project roles to apply a set of specific restrictions on the people that belong to this role. -These custom roles are defined for each project. - -A custom role inherits from the project member role. -For example, you may want to create a custom role to force someone to follow a process. -You can have a group of people that are allowed to move tasks only from the column "Work in progress" to the column "Done". - -Available restrictions ----------------------- - -- Project Restrictions: - - Task creation is not permitted - - Closing or opening a task is not permitted - - Moving a task is not permitted -- Columns Restrictions: - - Task creation is **allowed** only for a specific column - - Task creation is **blocked** only for a specific column - - Closing or opening a task is **allowed** only for a specific column - - Closing or opening a task is **blocked** only for a specific column -- Moving tasks only between specified columns - -Configuration -------------- - -### 1) Create a new custom role - -From the project settings, click on the left on the menu **Custom Roles** and at the top of the page click on **Add a new custom role**. - -![New custom role](../screenshots/new_custom_role.png) - -Give a name to the role and submit the form. - -### 2) Add a restriction to the role - -There are different kinds of restrictions: - -- Project restrictions -- Drag and drop restrictions -- Column restrictions - -You can click on the drop-down menu on the table to add a new restriction: - -![Add a new restriction](../screenshots/add_new_restriction.png) - -### 3) List of restrictions - -![List of restrictions](../screenshots/example-restrictions.png) - -For example, this role is able to create tasks only in the column "Backlog" and to move tasks between the column "Ready" and "Work in progress". - -### 4) Assign the role to someone - -Go to the "permissions" section on the left menu and assign the desired role to the user. - -![Custom project role](../screenshots/custom_roles.png) - -Examples --------- - -### Allow people to create tasks only in specific columns - -![Example restriction task creation](../screenshots/example-restriction-task-creation.png) - -- Users that belong to this role will be able to create new tasks only in the column "Backlog". -- The combination of the 2 rules is important, otherwise that will not work. - -### Allow people to change the task status only in specific columns - -![Example restriction task status](../screenshots/example-restriction-task-status.png) - -- Users that belong to this role will be able to change the task status in the column "Backlog". -- Tasks with the status open are visible on the board and tasks with the status closed is hidden by default on the board. - -### Do not allow people to change task status in a specific column - -![Example column restriction](../screenshots/example-restriction-task-status-blocked.png) - -Users that belong to this role won't be able to change the task status in the column "Done". -However, it will be possible in other columns. - -### Allow people to move tasks only between specific columns - -![Example restriction task drag and drop](../screenshots/example-restriction-task-drag-and-drop.png) - -Users that belong to this role will be able to move tasks only between the column "Ready" and "Work in progress". diff --git a/doc/en_US/debian-installation.markdown b/doc/en_US/debian-installation.markdown deleted file mode 100644 index 52710328..00000000 --- a/doc/en_US/debian-installation.markdown +++ /dev/null @@ -1,77 +0,0 @@ -Kanboard Installation on Debian -=============================== - -Debian 8 (Jessie) ------------------ - -Install Apache and PHP: - -```bash -apt-get update -apt-get install -y php5 php5-sqlite php5-gd unzip -service apache2 restart -``` - -Install Kanboard: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Debian 7 (Wheezy) ------------------ - -Install Apache and PHP: - -```bash -apt-get update -apt-get install -y php5 php5-sqlite php5-gd unzip -``` - -Install Kanboard: - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Debian 6 (Squeeze) ------------------- - -Install Apache and PHP: - -```bash -apt-get update -apt-get install -y libapache2-mod-php5 php5-sqlite php5-gd unzip -``` - -Install Kanboard: - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Notes ------ - -Some features of Kanboard require that you run [a daily background job](cronjob.markdown). diff --git a/doc/en_US/docker.markdown b/doc/en_US/docker.markdown deleted file mode 100644 index 2c444930..00000000 --- a/doc/en_US/docker.markdown +++ /dev/null @@ -1,88 +0,0 @@ -How to run Kanboard with Docker? -================================ - -Kanboard can run easily with [Docker](https://www.docker.com). - -The image size is approximately **50MB** and contains: - -- [Alpine Linux](http://alpinelinux.org/) -- The [process manager S6](http://skarnet.org/software/s6/) -- Nginx -- PHP 7 - -The Kanboard cronjob is also running everyday at midnight. -URL rewriting is enabled in the included config file. - -When the container is running, the memory utilization is around **30MB**. - -Use the latest release version ------------------------------- - -From the list of tags on the [Docker Hub](https://hub.docker.com/r/kanboard/kanboard/), choose the version that you would like to install. - -For example, to install the version 1.1.1: - -```bash -docker pull kanboard/kanboard:v1.1.1 -docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:v1.1.1 -``` - -Use the development version (automated build) ---------------------------------------------- - -Every new commit on the repository trigger a new build on the [Docker Hub](https://hub.docker.com/r/kanboard/kanboard/). - -```bash -docker pull kanboard/kanboard:latest -docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:latest -``` - -The tag **latest** is the **development version** of Kanboard and represents the master branch, use at your own risk. - -Build your own Docker image ---------------------------- - -Clone the Kanboard repository and run the following command: - -```bash -make docker-image -``` - -Volumes -------- - -You can attach 2 volumes to your container: - -- Data folder: `/var/www/app/data` -- Plugins folder: `/var/www/app/plugins` - -Use the flag `-v` to mount a volume on the host machine like described in [official Docker documentation](https://docs.docker.com/storage/volumes/). - -There is also a `docker-compose.yml` file in the repository. - -Upgrade your container ----------------------- - -- Pull the new image -- Remove the old container -- Restart a new container with the same volumes - -Environment variables ---------------------- - -The list of environment variables is available on [this page](env.markdown). - -Config files ------------- - -- The container already include a custom config file located at `/var/www/app/config.php`. -- You can store your own config file on the data volume: `/var/www/app/data/config.php`. -- You must restart the container to take into account the new parameters of your custom config file. - -Notes ------ - -- [Official Kanboard images](https://hub.docker.com/r/kanboard/kanboard/) -- [Docker documentation](https://docs.docker.com/) -- Since Kanboard > v1.1.0, the tag "stable" is not used anymore -- To send emails, you must use the SMTP method or a plugin like Mailgun/Sendgrid/Postmark diff --git a/doc/en_US/duplicate-move-tasks.markdown b/doc/en_US/duplicate-move-tasks.markdown deleted file mode 100644 index cf952f46..00000000 --- a/doc/en_US/duplicate-move-tasks.markdown +++ /dev/null @@ -1,58 +0,0 @@ -Duplicate and move tasks -======================== - -Duplicate a task into the same project --------------------------------------- - -Go to the task view and choose **Duplicate** on the left. - -![Task Duplication](../screenshots/task-duplication.png) - -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**. - -![Task Duplication Another Project](../screenshots/task-duplication-another-project.png) - -Only projects where you are members will be shown in the drop-down. - -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 swim lane -- 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/doc/en_US/editing-projects.markdown b/doc/en_US/editing-projects.markdown deleted file mode 100644 index 34c5d4c0..00000000 --- a/doc/en_US/editing-projects.markdown +++ /dev/null @@ -1,15 +0,0 @@ -Editing Projects -================ - -Projects can be renamed or disabled at any time. - -To rename a project, just click on the link entitled "Edit project" on the left. - -![Project edition](../screenshots/project-edition.png) - -- 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. You can adjust the list of users according to your needs. diff --git a/doc/en_US/email-configuration.markdown b/doc/en_US/email-configuration.markdown deleted file mode 100644 index 33772292..00000000 --- a/doc/en_US/email-configuration.markdown +++ /dev/null @@ -1,113 +0,0 @@ -Email configuration -=================== - -User settings -------------- - -To receive email notifications, users of Kanboard must have: - -- Activated notifications in their profile -- Have a valid email address in their profile -- Be a member of the project that will trigger notifications - -Note: The logged user who performs the action doesn't receive any notifications, only other project members. - -Email transports ----------------- - -There are several email transports available: - -- SMTP -- Sendmail -- PHP native mail function -- Other methods can be provided by external plugins: Postmark, Sendgrid and Mailgun - -Server settings ---------------- - -By default, Kanboard will use the bundled PHP mail function to send emails. -Usually that requires no configuration if your server can already send emails. - -However, it's possible to use other methods, the SMTP protocol and Sendmail. - -### SMTP configuration - -Rename the file `config.default.php` to `config.php` and change these values: - -```php -// 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'); -``` - -It's also possible to use a secure connection, TLS or SSL: - -```php -define('MAIL_SMTP_ENCRYPTION', 'ssl'); // Valid values are "null", "ssl" or "tls" -``` - -### Sendmail configuration - -By default the sendmail command will be `/usr/sbin/sendmail -bs` but you can customize that in your config file. - -Example: - -```php -// 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'); -``` - -### PHP native mail function - -This is the default configuration: - -```php -define('MAIL_TRANSPORT', 'mail'); -``` - -### The sender email address - -By default, emails will use the sender address `notifications@kanboard.local`. -It's not possible to reply to this address. - -You can customize this address by changing the value of the constant `MAIL_FROM` in your config file. - -```php -define('MAIL_FROM', 'kanboard@mydomain.tld'); -``` - -That can be useful if your SMTP server configuration doesn't accept the default address. - -### How to display a link to the task in notifications? - -To do that, you have to specify the URL of your Kanboard installation in your [Application Settings](application-configuration.markdown). -By default, nothing is defined, so no links will be displayed. - -Examples: - -- http://myserver/kanboard/ -- http://kanboard.mydomain.com/ - -Don't forget the ending slash `/`. - -You need to define that manually because Kanboard cannot guess the URL from a command line script and some people have a very specific configuration. - -Troubleshooting ---------------- - -If no emails are sent and you are sure that everything is configured correctly: - -- Check your spam folder -- Enable the debug mode and check the debug file `data/debug.log`, you should see the exact error -- Be sure that your server or your hosting provider allows you to send emails -- If you use SeLinux, allow PHP to send emails diff --git a/doc/en_US/env.markdown b/doc/en_US/env.markdown deleted file mode 100644 index 6e241f8b..00000000 --- a/doc/en_US/env.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Environment Variables -===================== - -Environment variables maybe useful when Kanboard is deployed as container (Docker). - -| Variable | Description | -|--------------------------|---------------------------------------------------------------------------------------------------------------------------------| -| DATABASE_URL | `[database type]://[username]:[password]@[host]:[port]/[database name]`, example: `postgres://foo:foo@myserver:5432/kanboard` | -| DEBUG | Enable/Disable debug mode: "true" or "false" | -| API_AUTHENTICATION_TOKEN | Custom API token | diff --git a/doc/en_US/faq.markdown b/doc/en_US/faq.markdown deleted file mode 100644 index 412bbe9b..00000000 --- a/doc/en_US/faq.markdown +++ /dev/null @@ -1,128 +0,0 @@ -Frequently Asked Questions -========================== - -Can you recommend a web hosting provider for Kanboard? ------------------------------------------------------- - -Kanboard works well with any great VPS hosting provider such as [Digital Ocean](https://www.digitalocean.com/?refcode=4b541f47aae4), -[Linode](https://www.linode.com/?r=4e381ac8a61116f40c60dc7438acc719610d8b11) or [Gandi](https://www.gandi.net/). - -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. - - -I have the error "There is no suitable CSPRNG installed on your system" ------------------------------------------------------------------------ - -If you use PHP < 7.0, you need to have the openssl extension enabled or `/dev/urandom` accessible from the application if restricted by an `open_basedir` restriction. - - -Page not found and the URL seems wrong (&amp;) --------------------------------------------------- - -- The URL looks like `/?controller=auth&action=login&redirect_query=` instead of `?controller=auth&action=login&redirect_query=` -- Kanboard returns a "Page not found" error - -This issue comes from your PHP configuration, the value of `arg_separator.output` is not the PHP's default, there is different ways to fix that: - -Change the value directly in your `php.ini` if you can: - -``` -arg_separator.output = "&" -``` - -Override the value with a `.htaccess`: - -``` -php_value arg_separator.output "&" -``` - -Otherwise Kanboard will try to override the value directly in PHP. - - -Authentication failure with the API and Apache + PHP-FPM --------------------------------------------------------- - -php-cgi under Apache does not pass HTTP Basic user/pass to PHP by default. -For this workaround to work, add these lines to your `.htaccess` file: - -``` -RewriteCond %{HTTP:Authorization} ^(.+)$ -RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] -``` - - -Known issues with eAccelerator ------------------------------- - -Kanboard doesn't work very well with [eAccelerator](http://eaccelerator.net). -The issue caused can be a blank page or an Apache crash: - -``` -[Wed Mar 05 21:36:56 2014] [notice] child pid 22630 exit signal Segmentation fault (11) -``` - -The best way to avoid this issue is to disable eAccelerator or define manually which files you want to cache with the config parameter `eaccelerator.filter`. - -The project [eAccelerator seems dead and not updated since 2012](https://github.com/eaccelerator/eaccelerator/commits/master). -We recommend to switch to the last version of PHP because it's bundled with [OPcache](http://php.net/manual/en/intro.opcache.php). - - -Why the minimum requirement is PHP 5.3.3? ------------------------------------------ - -Kanboard uses the function `password_hash()` to crypt passwords but it's available only for PHP >= 5.5. - -However, there is a back-port for [older versions of PHP](https://github.com/ircmaxell/password_compat#requirements). -This library requires at least PHP 5.3.7 to work correctly. - -Apparently, Centos and Debian back-ports security patches so PHP 5.3.3 should be ok. - -Kanboard v1.0.10 and v1.0.11 requires at least PHP 5.3.7 but this change has been reverted to be compatible with PHP 5.3.3 with Kanboard >= v1.0.12 - - -How to test Kanboard with the PHP built-in web server? ------------------------------------------------------- - -If you don't want to install a web server like Apache on localhost. You can test with the [embedded web server of PHP](http://www.php.net/manual/en/features.commandline.webserver.php): - -```bash -unzip kanboard-VERSION.zip -cd kanboard -php -S localhost:8000 -open http://localhost:8000/ -``` - - -How to install Kanboard on Yunohost? ------------------------------------- - -[YunoHost](https://yunohost.org/) is a server operating system aiming to make self-hosting accessible to everyone. - -There is a [package to install Kanboard on Yunohost easily](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) -- [Kanboard Presenter by David Eberlein](https://github.com/davideberlein/kanboard-presenter) -- [CSV2Kanboard by @ashbike](https://github.com/ashbike/csv2kanboard) -- [Kanboard for Yunohost by @mbugeia](https://github.com/mbugeia/kanboard_ynh) -- [Trello import script by @matueranet](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) -- [Shell script for SQLite to MySQL/MariaDB migration by @oliviermaridat](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? ------------------------------------------------------------ - -- [German article series about Kanboard](http://demaya.de/wp/2014/07/kanboard-eine-jira-alternative-im-detail-installation/) - - -Tips ----- - -- [Easy way to remove name constraint in SQLite database](https://github.com/kanboard/kanboard/issues/1508) diff --git a/doc/en_US/freebsd-installation.markdown b/doc/en_US/freebsd-installation.markdown deleted file mode 100644 index 7b36dff1..00000000 --- a/doc/en_US/freebsd-installation.markdown +++ /dev/null @@ -1,128 +0,0 @@ -FreeBSD 10 Installation -======================= - -Install from packages ---------------------- - -```bash -$ pkg update -$ pkg upgrade -$ pkg install apache24 mod_php56 kanboard -``` - -Enable Apache in your `/etc/rc.conf`: - -```bash -$ echo apache24_enable="YES" >> /etc/rc.conf -``` - -Set up PHP for Apache: - -```bash -$ 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 -``` - -Then start Apache: - -```bash -$ service apache24 start -``` - -Add symlink to Kanboard folder into your Apache docroot: - -```bash -cd /usr/local/www/apache24/data -ln -s /usr/local/www/kanboard -``` - -Go to http://your.server.domain.tld/kanboard and enjoy! - -*Notes*: -- If you want to use additional features like LDAP integration etc. -please install proper PHP module using pkg. -- You may have to adjust the permissions of the folder data - -Installing from ports ---------------------- - -Generally 3 elements have to be installed: - -- Apache -- mod_php for Apache -- Kanboard - -Fetch and extract ports... - -```bash -$ portsnap fetch -$ portsnap extract -``` - -or update already existing: - -```bash -$ portsnap fetch -$ portsnap update -``` - -More details regarding portsnap can be found in the [FreeBSD Handbook](https://www.freebsd.org/doc/handbook/ports-using.html). - -Install Apache: - -```bash -$ cd /usr/ports/www/apache24 -$ make install clean -``` -Enable Apache in your `/etc/rc.conf`: - -```bash -$ echo apache24_enable="YES" >> /etc/rc.conf -``` - -Install mod_php for Apache: - -```bash -$ cd /usr/ports/www/mod_php5 -$ make install clean -``` - -Install Kanboard form ports: - -```bash -$ cd /usr/ports/www/kanboard -$ make install clean -``` - -Set up PHP for Apache: - -```bash -$ 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 -``` - -Then start Apache: - -```bash -$ service apache24 start -``` - -Go to http://your.server.domain.tld/kanboard and enjoy! - -*Note*: -If you want to use additional features like LDAP integration etc. -please install proper PHP module from `lang/php5-extensions`. - -Manual installation -------------------- - -As of version 1.0.16 Kanboard can be found in FreeBSD ports -there is no need to install it manually. - -Please note ------------ - -- Port is being hosted on [bitbucket](https://bitbucket.org/if0/freebsd-kanboard/). Feel free to comment, -fork and suggest updates! -- Some features of Kanboard require that you run [a daily background job](cronjob.markdown). - diff --git a/doc/en_US/gantt-chart-projects.markdown b/doc/en_US/gantt-chart-projects.markdown deleted file mode 100644 index d54c118a..00000000 --- a/doc/en_US/gantt-chart-projects.markdown +++ /dev/null @@ -1,17 +0,0 @@ -Gantt Chart for all projects -============================ - -The goal of this Gantt chart is to display an overview of all projects based on the start and end dates. - -- This Gantt chart is available in the project management section -- Only project administrators and administrators can access this section -- Project administrators will see only projects where they are members -- Private projects are not shown on this chart - -![Gantt Chart for all projects](../screenshots/gantt-chart-all-projects.png) - -- The **start date** and the **end date** of projects are used to draw the chart -- Horizontal bars can be resized and moved horizontally with your mouse -- There is no vertical drag and drop -- Project bars are displayed in black when there is no start or end date defined -- The information tooltip shows the list of project managers and standard members diff --git a/doc/en_US/gantt-chart-tasks.markdown b/doc/en_US/gantt-chart-tasks.markdown deleted file mode 100644 index 930314dd..00000000 --- a/doc/en_US/gantt-chart-tasks.markdown +++ /dev/null @@ -1,20 +0,0 @@ -Gantt chart for tasks -====================== - -The goal of this Gantt chart is to display a time based overview of the tasks for a given project. - -- The Gantt chart is available from the "view switcher" -- Only project managers can access this section - -![Gantt Chart](../screenshots/gantt-chart-project.png) - -- The **start date** and the **due date** of tasks are used to draw the chart -- Tasks can be resized and moved horizontally with your mouse -- There is no vertical drag and drop -- The bar is the same color as the task -- Each bar display a progression status in percentage, this percentage is calculated by using the column position on the board -- To fit with the Kanban model, tasks can be ordered by the board positions or by the start date -- New tasks created from this view will be displayed on the board at the position 1 in the first column -- Tasks are displayed in black when there is no start or due date defined - -![Task not defined](../screenshots/gantt-chart-not-defined.png) diff --git a/doc/en_US/groups.markdown b/doc/en_US/groups.markdown deleted file mode 100644 index a8281263..00000000 --- a/doc/en_US/groups.markdown +++ /dev/null @@ -1,17 +0,0 @@ -Groups Management -================= - -In Kanboard, each user can be a member of one or many groups. -A group is like a team or an organization. - -Only administrators can create new groups and assign users. - -Groups can be managed from **User management > View All Groups**. -From there, you can create groups and assign users. - -![Group Management](../screenshots/groups-management.png) - -Each project manager can authorize the access to a set of groups from the [project permissions page](project-permissions.markdown). - -The external id is mainly used for external group providers. -Kanboard provides a LDAP group provider to [sync automatically groups from LDAP servers](ldap-group-sync.markdown). diff --git a/doc/en_US/heroku.markdown b/doc/en_US/heroku.markdown deleted file mode 100644 index fa8d29b9..00000000 --- a/doc/en_US/heroku.markdown +++ /dev/null @@ -1,43 +0,0 @@ -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/kanboard/kanboard) - -Requirements ------------- - -- Heroku account, you can use a free account -- Heroku command line tools installed - -Manual instructions -------------------- - -```bash -# Get the last development version -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) -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 ------------ - -Local disk storage on Heroku is ephemeral: - -- Uploaded files are not persistent after a restart. You may want to install a plugin to store your files in a cloud storage provider like [Amazon S3](https://github.com/kanboard/plugin-s3). -- Plugins installed via the web interface are stored on the local filesystem. You should include and deploy plugins with your own copy of Kanboard. - -Some features of Kanboard require that you run [a daily background job](cronjob.markdown). diff --git a/doc/en_US/ical.markdown b/doc/en_US/ical.markdown deleted file mode 100644 index 4e804b70..00000000 --- a/doc/en_US/ical.markdown +++ /dev/null @@ -1,78 +0,0 @@ -Syncing your calendars -====================== - -Kanboard supports iCal feeds for projects and users. -This feature allows you to import Kanboard tasks in almost any calendar program (by example Microsoft Outlook, Apple Calendar, Mozilla Thunderbird and Google Calendar). - -Calendar subscriptions are **read-only** access, you cannot create tasks from external calendar software. -The Calendar feed export follows the iCal standard. - -Note: Only tasks within the date range of -2 months to +6 months are exported to the iCalendar feed. - -Project calendars ------------------ - -- Each project has its own calendar. -- The subscription link is unique per project, the link is activated when you enable the public access of your project: **Project settings > Public access**. -- This calendar shows only tasks for the selected project. - -User calendars --------------- - -- Each user has its own calendar. -- The subscription link is unique per user, the link is activated when you enable the public access of your user: **User profile > Public access**. -- This calendar show tasks assigned to the user for all projects. - -Adding your Kanboard calendar to Apple Calendar ------------------------------------------------ - -- Open Calendar -- Select **File > New Calendar Subscription** -- Copy and paste the iCal feed URL from Kanboard - -![Add iCal subscription](../screenshots/apple-calendar-add-subscription.png) - -- You can choose to synchronize the calendar with iCloud to be available across all your devices -- Don't forget to select the refresh frequency - -![Edit iCal subscription](../screenshots/apple-calendar-edit-subscription.png) - -Adding your Kanboard calendar to Microsoft Outlook --------------------------------------------------- - -![Outlook Add Internet Calendar](../screenshots/outlook-add-subscription.png) - -- Open Outlook -- Select **Open Calendar > From Internet** -- Copy and paste the iCal feed URL from Kanboard - -![Outlook Edit Internet Calendar](../screenshots/outlook-edit-subscription.png) - -Adding your Kanboard calendar to Mozilla Thunderbird ----------------------------------------------------- - -- Install the Add-on **Lightning** to add calendar support to Thunderbird -- Click on **File > New Calendar** -- In the dialog box, choose **On the Network** - -![Thunderbird Step 1](../screenshots/thunderbird-new-calendar-step1.png) - -- Choose the format iCalendar -- Copy and paste the iCal feed URL from Kanboard - -![Thunderbird Step 2](../screenshots/thunderbird-new-calendar-step2.png) - -- Choose the colors and other settings and finally save - -Adding your Kanboard calendar to Google Calendar ------------------------------------------------- - -- Click the down-arrow next to **Other calendars**. -- Select **Add by URL** from the menu. -- Copy and paste the iCal feed URL from Kanboard - -![Google Calendar](../screenshots/google-calendar-add-subscription.png) - -Your Kanboard calendar can also be available from your Android device if you enable the synchronization. - -Note: According to the Google Support, external calendars are not refreshed very often, [read the documentation](https://support.google.com/calendar/answer/37100?hl=en&ref_topic=1672445). diff --git a/doc/en_US/index.markdown b/doc/en_US/index.markdown deleted file mode 100644 index e4375e85..00000000 --- a/doc/en_US/index.markdown +++ /dev/null @@ -1,150 +0,0 @@ -Documentation -============= - -Using Kanboard --------------- - -### Introduction - -- [What is Kanban?](what-is-kanban.markdown) -- [Kanban vs Todo Lists and Scrum](kanban-vs-todo-and-scrum.markdown) -- [Usage examples](usage-examples.markdown) - -### Using the board - -- [Board, Calendar, List and Gantt views](project-views.markdown) -- [Collapsed and expanded mode](board-collapsed-expanded.markdown) -- [Horizontal scrolling and compact mode](board-horizontal-scrolling-and-compact-view.markdown) -- [Show and hide columns](board-show-hide-columns.markdown) - -### Working with projects - -- [Project Types](project-types.markdown) -- [Creating projects](creating-projects.markdown) -- [Editing projects](editing-projects.markdown) -- [Removing projects](removing-projects.markdown) -- [Sharing boards and tasks](sharing-projects.markdown) -- [Automatic actions](automatic-actions.markdown) -- [Project permissions](project-permissions.markdown) -- [Swimlanes](swimlanes.markdown) -- [Calendar](calendar.markdown) -- [Analytics](analytics.markdown) -- [Gantt chart for tasks](gantt-chart-tasks.markdown) -- [Gantt chart for projects](gantt-chart-projects.markdown) -- [Custom filters](custom-filters.markdown) -- [Custom project roles](custom-project-roles.markdown) - -### Working with tasks - -- [Creating tasks](creating-tasks.markdown) -- [Closing tasks](closing-tasks.markdown) -- [Duplicate and move tasks](duplicate-move-tasks.markdown) -- [Adding screenshots](screenshots.markdown) -- [Internal Task links](task-links.markdown) -- [Transitions](transitions.markdown) -- [Time tracking](time-tracking.markdown) -- [Recurring tasks](recurring-tasks.markdown) -- [Create tasks by email](create-tasks-by-email.markdown) -- [Subtasks](subtasks.markdown) -- [Analytics for tasks](analytics-tasks.markdown) -- [User mentions](user-mentions.markdown) -- [Tags](tags.markdown) - -### Working with users and groups - -- [Roles](roles.markdown) -- [User Types](user-types.markdown) -- [Group management](groups.markdown) -- [User management](user-management.markdown) -- [Notifications](notifications.markdown) -- [Two factor authentication](2fa.markdown) - -### Settings - -- [Keyboard shortcuts](keyboard-shortcuts.markdown) -- [Application settings](application-configuration.markdown) -- [Project settings](project-configuration.markdown) -- [Board settings](board-configuration.markdown) -- [Calendar settings](calendar-configuration.markdown) -- [Link settings](link-labels.markdown) -- [Currency rate](currency-rate.markdown) - -### Integrations - -- [iCalendar subscriptions](ical.markdown) -- [RSS/Atom subscriptions](rss.markdown) -- [Json-RPC API](api-json-rpc.markdown) -- [Webhooks](webhooks.markdown) -- [Plugins](plugins.markdown) - -### More information - -- [Advanced Search Syntax](search.markdown) -- [Command line interface](cli.markdown) -- [Syntax guide](syntax-guide.markdown) -- [Brute force protection](bruteforce-protection.markdown) -- [Custom CSS](custom-css.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) -- [Unable to open a session on Windows IIS and Internet Explorer](solving-session-issue-windows-iis-ie.markdown) -- [Performances](performances.markdown) - -Technical details ------------------ - -### Installation - -- [Requirements](requirements.markdown) -- [Installation instructions](installation.markdown) -- [Upgrade Kanboard to a new version](update.markdown) -- [Installation on Ubuntu](ubuntu-installation.markdown) -- [Installation on Debian](debian-installation.markdown) -- [Installation on Centos](centos-installation.markdown) -- [Installation on OpenSuse](suse-installation.markdown) -- [Installation on FreeBSD](freebsd-installation.markdown) -- [Installation on Windows Server with IIS](windows-iis-installation.markdown) -- [Installation on Windows Server with Apache](windows-apache-installation.markdown) -- [Installation on Heroku](heroku.markdown) -- [Run Kanboard with Docker](docker.markdown) -- [Run Kanboard with Vagrant](vagrant.markdown) -- [Run Kanboard on Cloudron](cloudron.markdown) - -### Configuration - -- [Daily background job](cronjob.markdown) -- [Background Worker](worker.markdown) -- [Config file](config.markdown) -- [Environment variables](env.markdown) -- [Email configuration](email-configuration.markdown) -- [URL rewriting](nice-urls.markdown) -- [Plugin Directory](plugin-directory.markdown) - -### Database - -- [Sqlite database management](sqlite-database.markdown) -- [How to use Mysql](mysql-configuration.markdown) -- [How to use Postgresql](postgresql-configuration.markdown) - -### Authentication - -- [LDAP authentication](ldap-authentication.markdown) -- [LDAP group synchronization](ldap-group-sync.markdown) -- [LDAP profile picture](ldap-profile-picture.markdown) -- [LDAP parameters](ldap-parameters.markdown) -- [LDAP configuration examples](ldap-configuration-examples.markdown) -- [Reverse proxy authentication](reverse-proxy-authentication.markdown) - -### Contributors - -- [Contributor guide](contributing.markdown) -- [Translations](translations.markdown) -- [Coding standards](coding-standards.markdown) -- [Running tests](tests.markdown) -- [Build assets](assets.markdown) - -The documentation is written in [Markdown](http://en.wikipedia.org/wiki/Markdown). -If you want to improve the documentation, just send a pull-request. diff --git a/doc/en_US/installation.markdown b/doc/en_US/installation.markdown deleted file mode 100644 index aaa93f7d..00000000 --- a/doc/en_US/installation.markdown +++ /dev/null @@ -1,73 +0,0 @@ -Installation -============ - -First, check the [requirements](requirements.markdown) before going further. - -From the archive (stable version) ---------------------------------- - -1. You must have a web server with PHP installed -2. Download the source code and copy the directory `kanboard` where you want -3. Check if the directory `data` is writeable by the web server user -4. With your browser go to <http://yourpersonalserver/kanboard> -5. The default login and password is **admin/admin** -6. Start using the software -7. Don't forget to change your password! - -The `data` folder is used to store: - -- Sqlite database: `db.sqlite` -- Debug file: `debug.log` (if debug mode is enabled with the `file` driver) -- Uploaded files: `files/*` -- Image thumbnails: `files/thumbnails/*` - -People who are using a remote database (Mysql/Postgresql) and a remote object storage (Aws S3 or similar) don't necessarily need to have a persistent local data folder or to change the permissions for the folder. - -From the git repository (development version) ---------------------------------------------- - -1. `git clone https://github.com/kanboard/kanboard.git` -2. Go to the third step just above - -Note: This method will install the **current development version**, use at your own risk. - -Installation outside of the document root ------------------------------------------ - -If you would like to install Kanboard outside of the web server document root, you need to create at least these symlinks: - -```bash -. -├── assets -> ../kanboard/assets -├── cli -> ../kanboard/cli -├── doc -> ../kanboard/doc -├── favicon.ico -> ../kanboard/favicon.ico -├── index.php -> ../kanboard/index.php -├── jsonrpc.php -> ../kanboard/jsonrpc.php -└── robots.txt -> ../kanboard/robots.txt -``` - -The `.htaccess` is optional because its content can be included directly in the Apache configuration. - -You can also define a custom location for the plugins and files folders by changing the [config file](config.markdown). - - -Other Database Types --------------------- - -Kanboard supports Mysql and Postgres as alternative to Sqlite. - -- [Mysql configuration](mysql-configuration.markdown) -- [Postgres configuration](postgresql-configuration.markdown) - -Optional Installation ---------------------- - -- Some features of Kanboard require that you run [a daily background job](cronjob.markdown) (Reports and analytics) -- [Install the background worker](worker.markdown) to improve performance - -Security --------- - -- Don't forget to change the default user/password -- Don't allow everybody to access to the directory `data` from the URL. A `.htaccess` file for Apache and a `web.config` file for IIS is included but other web servers will have to be configured manually. diff --git a/doc/en_US/kanban-vs-todo-and-scrum.markdown b/doc/en_US/kanban-vs-todo-and-scrum.markdown deleted file mode 100644 index ea97811c..00000000 --- a/doc/en_US/kanban-vs-todo-and-scrum.markdown +++ /dev/null @@ -1,37 +0,0 @@ -Kanban vs Todo lists and Scrum -============================== - -Kanban vs Todo lists --------------------- - -### Todo lists: - -- Single phase (just a list of items) -- Multitasking possible (not efficient) - -### Kanban: - -- Multiple phases, each column represents a step -- Bring focus and avoid multitasking by setting a work-in-progress limit per column - -Kanban vs Scrum ---------------- - -### Scrum: - -- Sprints are time-boxed, usually 2 or 4 weeks -- Do not allow changes during the iteration -- Estimation is required -- Uses velocity as default metric -- 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 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 diff --git a/doc/en_US/keyboard-shortcuts.markdown b/doc/en_US/keyboard-shortcuts.markdown deleted file mode 100644 index 71612415..00000000 --- a/doc/en_US/keyboard-shortcuts.markdown +++ /dev/null @@ -1,38 +0,0 @@ -Keyboard shortcuts -================== - -Keyboard shortcuts availability depends of the page you are presently. - -Project views (Board, Calendar, List, Gantt) --------------------------------------------- - -- Switch to the project overview = **v o** -- Switch to the board view = **v b** (press on **v** then **b**) -- Switch to the calendar view = **v c** -- Switch to the list view = **v l** -- Switch to the Gantt view = **v g** - -Board view ----------- - -- New task = **n** -- Expand/collapse tasks = **s** -- Compact/wide view = **c** - -Task view ---------- - -- Edit task = **e** -- New subtask = **s** -- New comment = **c** -- New internal link = **l** - -Application ------------ - -- Display list of keyboard shortcuts = **?** -- Open board switcher = **b** -- Go to the search box = **f** -- Reset the search box = **r** -- Close dialog box = **ESC** -- Submit form = **CTRL+ENTER** or **⌘+ENTER** diff --git a/doc/en_US/ldap-authentication.markdown b/doc/en_US/ldap-authentication.markdown deleted file mode 100644 index c3445e5d..00000000 --- a/doc/en_US/ldap-authentication.markdown +++ /dev/null @@ -1,223 +0,0 @@ -LDAP Authentication -=================== - -Requirements ------------- - -- PHP LDAP extension enabled -- LDAP server: - - OpenLDAP - - Microsoft Active Directory - - Novell eDirectory - -Workflow --------- - -When the LDAP authentication is activated, the login process works 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, by default a local user is created automatically with no password and marked as LDAP users. - -The full name and the email address are automatically fetched from the LDAP server. - -Authentication Types --------------------- - -| Type | Description | -|------------|-----------------------------------------------------------------| -| Proxy User | A specific user is used to browse LDAP directory | -| User | The end-user credentials are used for browsing LDAP directory | -| Anonymous | No authentication is performed for LDAP browsing | - -**The recommended authentication method is "Proxy"**. - -#### Anonymous mode - -```php -define('LDAP_BIND_TYPE', 'anonymous'); -define('LDAP_USERNAME', null); -define('LDAP_PASSWORD', null); -``` - -This is the default value but some LDAP servers don't allow anonymous browsing for security reasons. - -#### Proxy mode - -A specific user is used to browse the LDAP directory: - -```php -define('LDAP_BIND_TYPE', 'proxy'); -define('LDAP_USERNAME', 'my proxy user'); -define('LDAP_PASSWORD', 'my proxy password'); -``` - -#### User mode - -This method uses the credentials provided by the end-user. - -For example, Microsoft Active Directory doesn't allow anonymous browsing by default and if you don't want to use a proxy user you can use this method. - -```php -define('LDAP_BIND_TYPE', 'user'); -define('LDAP_USERNAME', '%s@kanboard.local'); -define('LDAP_PASSWORD', null); -``` - -In this case, the constant `LDAP_USERNAME` is used as a pattern to the ldap username, examples: - -- `%s@kanboard.local` will be replaced by `my_user@kanboard.local` -- `KANBOARD\\%s` will be replaced by `KANBOARD\my_user` - -User LDAP filter ----------------- - -The configuration parameter `LDAP_USER_FILTER` is used to find users in LDAP directory. - -Examples: - -- `(&(objectClass=user)(sAMAccountName=%s))` is replaced by `(&(objectClass=user)(sAMAccountName=my_username))` -- `uid=%s` is replaced by `uid=my_username` - -Other examples of [filters for Active Directory](http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx) - -Example to filter access to Kanboard: - -`(&(objectClass=user)(sAMAccountName=%s)(memberOf=CN=Kanboard Users,CN=Users,DC=kanboard,DC=local))` - -This example allows only people members of the group "Kanboard Users" to connect to Kanboard. - -Example for Microsoft Active Directory --------------------------------------- - -Let's say we have a domain `KANBOARD` (kanboard.local) and the primary controller is `myserver.kanboard.local`. - -First example with proxy mode: - -```php -<?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))'); -``` - -Second example with user mode: - -```php -<?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))'); -``` - -Example for OpenLDAP --------------------- - -Our LDAP server is `myserver.example.com` and all users are stored under `ou=People,dc=example,dc=com`. - -For this example we use the anonymous binding. - -```php -<?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'); -``` - -Example for LDAPS (SSL-encryption) ----------------------------------- - -Some LDAP servers are configured for "LDAPS" connectivity only (on port 636). This is different to TLS, which starts off in cleartext (port 389 by default) and then sets up encryption over the same channel. - -To tell PHP to use LDAPS, you need to prefix the name of your LDAP server with "ldaps://", as in the example below: - -Our LDAP server is `myserver.example.com` and is only accessible via LDAPS. Most likely we won't want to validate the server cert, and we DON'T want TLS. - -For this example we use the anonymous binding. - -```php -<?php - -// Enable LDAP authentication (false by default) -define('LDAP_AUTH', true); - -// LDAP server hostname -define('LDAP_SERVER', 'ldaps://myserver.example.com'); - -// By default, require certificate to be verified for ldaps:// style URL. Set to false to skip the verification -define('LDAP_SSL_VERIFY', false); - -// Enable LDAP START_TLS -define('LDAP_START_TLS', false);; -``` - -Disable automatic account creation ------------------------------------ - -By default, Kanboard will create a user account automatically 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); -``` - -Synchronization ---------------- - -By default, Kanboard will synchronize all fields (role, name, email...) except the username. - -If you would like to change this behavior, use this config parameter: - -```bash -// This example will not synchronize the fields "username" and "role" from LDAP to Kanboard. -define('EXTERNAL_AUTH_EXCLUDE_FIELDS', 'username,role'); -``` - -Troubleshooting ---------------- - -### SELinux restrictions - -If SELinux is enabled, you have to allow Apache to reach out your LDAP server. - -- You can switch SELinux to the permissive mode or disable it (not recommended) -- You can allow all network connections, by example `setsebool -P httpd_can_network_connect=1` or have a more restrictive rule - -In any case, refer to the official Redhat/Centos documentation. - -### Enable debug mode - -If you are not able to setup correctly the LDAP authentication, you can [enable the debug mode](config.markdown) and watch log files. diff --git a/doc/en_US/ldap-configuration-examples.markdown b/doc/en_US/ldap-configuration-examples.markdown deleted file mode 100644 index a8ad2b61..00000000 --- a/doc/en_US/ldap-configuration-examples.markdown +++ /dev/null @@ -1,221 +0,0 @@ -LDAP Configuration Examples -=========================== - -Microsoft Active Directory --------------------------- - -- User authentication -- Download the user profile picture from Active Directory -- Set user language from LDAP attribute -- Kanboard roles are mapped to Active Directory groups -- LDAP group providers is enabled - -```php -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 with memberOf overlay ------------------------------- - -User LDIF example: - -``` -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 -``` - -Group LDIF example: - -``` -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 -``` - -Kanboard Configuration: - -- User authentication -- Kanboard roles are mapped to LDAP groups -- LDAP group providers is enabled - -```php -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 with Posix groups (memberUid) --------------------------------------- - -User LDIF example: - -``` -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 -``` - -Group LDIF example: - -``` -dn: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local -objectClass: posixGroup -cn: Kanboard Managers -gidNumber: 5001 -memberUid: manager -``` - -Kanboard Configuration: - -- User authentication -- Kanboard roles are mapped to LDAP groups -- LDAP group providers is enabled - -```php -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 with groupOfNames --------------------------- - -User LDIF example: - -``` -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 -``` - -Group LDIF example: - -``` -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 -``` - -Kanboard Configuration: - -- User authentication -- Kanboard roles are mapped to LDAP groups -- LDAP group providers is enabled - -```php -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'); -``` diff --git a/doc/en_US/ldap-group-sync.markdown b/doc/en_US/ldap-group-sync.markdown deleted file mode 100644 index b519146b..00000000 --- a/doc/en_US/ldap-group-sync.markdown +++ /dev/null @@ -1,78 +0,0 @@ -LDAP Group Synchronization -========================== - -Requirements ------------- - -- Have LDAP authentication properly configured -- Use a LDAP server that supports `memberOf` or `memberUid` (PosixGroups) - -Define automatically user roles based on LDAP groups ----------------------------------------------------- - -Use these constants in your config file: - -- `LDAP_GROUP_ADMIN_DN`: Distinguished names for application administrators -- `LDAP_GROUP_MANAGER_DN`: Distinguished names for application managers - -### Example for Active Directory: - -```php -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'); -``` - -- People member of "Kanboard Admins" will have the role "Administrator" -- People member of "Kanboard Managers" will have the role "Managers" -- Everybody else will have the role "User" - -### Example for OpenLDAP with Posix Groups: - -```php -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'); -``` - -You **must define the parameter** `LDAP_GROUP_USER_FILTER` if your LDAP server use `memberUid` instead of `memberOf`. -All parameters of this example are mandatory. - -Automatically load LDAP groups for project permissions ------------------------------------------------------- - -This feature allows you to sync automatically LDAP groups with Kanboard groups. -Each group can have a different project role assigned. - -On the project permissions page, people can enter groups in the auto-complete field and Kanboard can search for groups with any provider enabled. - -If the group doesn't exist in the local database, it will be automatically synced. - -- `LDAP_GROUP_PROVIDER`: Enable the LDAP group provider -- `LDAP_GROUP_BASE_DN`: Distinguished names to find groups in LDAP directory -- `LDAP_GROUP_FILTER`: LDAP filter used to perform the query -- `LDAP_GROUP_ATTRIBUTE_NAME`: LDAP attribute used to fetch the group name - -### Example for Active Directory: - -```php -define('LDAP_GROUP_PROVIDER', true); -define('LDAP_GROUP_BASE_DN', 'CN=Groups,DC=kanboard,DC=local'); -define('LDAP_GROUP_FILTER', '(&(objectClass=group)(sAMAccountName=%s*))'); -``` - -With the filter given as example above, Kanboard will search for groups that match the query. -If the end-user enter the text "My group" in the auto-complete box, Kanboard will return all groups that match the pattern: `(&(objectClass=group)(sAMAccountName=My group*))`. - -- Note 1: The special characters `*` is important here, **otherwise an exact match will be done**. -- Note 2: This feature is only compatible with LDAP authentication configured in "proxy" or "anonymous" mode - -[More examples of LDAP filters for Active Directory](http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx) - -### Example for OpenLDAP with Posix Groups: - -```php -define('LDAP_GROUP_PROVIDER', true); -define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local'); -define('LDAP_GROUP_FILTER', '(&(objectClass=posixGroup)(cn=%s*))'); -``` diff --git a/doc/en_US/ldap-parameters.markdown b/doc/en_US/ldap-parameters.markdown deleted file mode 100644 index 80decc67..00000000 --- a/doc/en_US/ldap-parameters.markdown +++ /dev/null @@ -1,36 +0,0 @@ -LDAP Configuration Parameters -============================= - -Here is the list of available LDAP parameters: - -| Parameter | Default value | Description | -|---------------------------------|----------------|------------------------------------------------| -| `LDAP_AUTH` | false | Enable LDAP authentication | -| `LDAP_SERVER` | Empty | LDAP server hostname | -| `LDAP_PORT` | 389 | LDAP server port | -| `LDAP_SSL_VERIFY` | true | Validate certificate for `ldaps://` style URL | -| `LDAP_START_TLS` | false | Enable LDAP start TLS | -| `LDAP_USERNAME_CASE_SENSITIVE` | false | Kanboard lowercase the ldap username to avoid duplicate users (the database is case sensitive) | -| `LDAP_BIND_TYPE` | anonymous | Bind type: "anonymous", "user" or "proxy" | -| `LDAP_USERNAME` | null | LDAP username to use with proxy mode or username pattern to use with user mode | -| `LDAP_PASSWORD` | null | LDAP password to use for proxy mode | -| `LDAP_USER_BASE_DN` | Empty | LDAP DN for users (Example: "CN=Users,DC=kanboard,DC=local") | -| `LDAP_USER_FILTER` | Empty | LDAP pattern to use when searching for a user account (Example: "(&(objectClass=user)(sAMAccountName=%s))") | -| `LDAP_USER_ATTRIBUTE_USERNAME` | uid | LDAP attribute for username (Example: "samaccountname") | -| `LDAP_USER_ATTRIBUTE_FULLNAME` | cn | LDAP attribute for user full name (Example: "displayname") | -| `LDAP_USER_ATTRIBUTE_EMAIL` | mail | LDAP attribute for user email | -| `LDAP_USER_ATTRIBUTE_GROUPS` | memberof | LDAP attribute to find groups in user profile | -| `LDAP_USER_ATTRIBUTE_PHOTO` | Empty | LDAP attribute to find user photo (jpegPhoto or thumbnailPhoto | -| `LDAP_USER_ATTRIBUTE_LANGUAGE` | Empty | LDAP attribute for user language (preferredlanguage), the accepted language format is "fr-FR" | -| `LDAP_USER_CREATION` | true | Enable automatic LDAP user creation | -| `LDAP_GROUP_ADMIN_DN` | Empty | LDAP DN for administrators (Example: "CN=Kanboard-Admins,CN=Users,DC=kanboard,DC=local") | -| `LDAP_GROUP_MANAGER_DN` | Empty | LDAP DN for managers (Example: "CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local") | -| `LDAP_GROUP_PROVIDER` | false | Enable LDAP group provider for project permissions | -| `LDAP_GROUP_BASE_DN` | Empty | LDAP Base DN for groups | -| `LDAP_GROUP_FILTER` | Empty | LDAP group filter (Example: "(&(objectClass=group)(sAMAccountName=%s*))") | -| `LDAP_GROUP_USER_FILTER` | Empty | If defined, Kanboard will search user groups in LDAP_GROUP_BASE_DN with this filter, it's useful only for posixGroups (Example: `(&(objectClass=posixGroup)(memberUid=%s))`) | -| `LDAP_GROUP_ATTRIBUTE_NAME` | cn | LDAP attribute for the group name | - -Notes: - -- LDAP attributes must be in lowercase diff --git a/doc/en_US/ldap-profile-picture.markdown b/doc/en_US/ldap-profile-picture.markdown deleted file mode 100644 index 4798f645..00000000 --- a/doc/en_US/ldap-profile-picture.markdown +++ /dev/null @@ -1,27 +0,0 @@ -LDAP User Profile Photo -======================= - -Kanboard can download automatically user pictures from the LDAP server. - -This feature is enabled only if LDAP authentication is activated and the parameter `LDAP_USER_ATTRIBUTE_PHOTO` is defined. - -Configuration -------------- - -In your `config.php`, you have to set the LDAP attribute used to store the image. - -```php -define('LDAP_USER_ATTRIBUTE_PHOTO', 'jpegPhoto'); -``` - -Usually, the attributes `jpegPhoto` or `thumbnailPhoto` are used. -The image can be stored in JPEG or PNG format. - -To upload the image in the user profile, Active Directory administrators may use software like [AD Photo Edit](http://www.cjwdev.co.uk/Software/ADPhotoEdit/Info.html). - -Notes ------ - -The profile image is **downloaded at login time only if the user do not already have uploaded an image previously**. - -To change the user photo, the previous one have to be removed manually in the user profile. diff --git a/doc/en_US/link-labels.markdown b/doc/en_US/link-labels.markdown deleted file mode 100644 index e509b0bf..00000000 --- a/doc/en_US/link-labels.markdown +++ /dev/null @@ -1,11 +0,0 @@ -Link settings -============= - -Task relations can be changed from the application settings (**Settings > Link settings**) - -![Link Labels](../screenshots/link-labels.png) - -Each label may have an opposite label defined. -If there is no opposite, the label is considered bidirectionnal. - -![Link Label Creation](../screenshots/link-label-creation.png) diff --git a/doc/en_US/mysql-configuration.markdown b/doc/en_US/mysql-configuration.markdown deleted file mode 100644 index e2516e8c..00000000 --- a/doc/en_US/mysql-configuration.markdown +++ /dev/null @@ -1,84 +0,0 @@ -MySQL/MariaDB Configuration -=========================== - -By default Kanboard use Sqlite to stores its data. -However it's possible to use MySQL or MariaDB instead of Sqlite. - -Requirements ------------- - -- MySQL server -- The PHP extension `pdo_mysql` installed - -Note: Kanboard is tested with **MySQL >= 5.5 and MariaDB >= 10.0** - -MySQL configuration -------------------- - -### Create a database - -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 -CREATE DATABASE kanboard; -``` - -You can then assign the required permissions on the database: - -```sql -GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, REFERENCES, SELECT, UPDATE ON kanboard.* TO 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'; -``` - -### Create a config file - -The file `config.php` should contains those values: - -```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'); -``` - -Note: You can also rename the template file `config.default.php` to `config.php`. - -### Importing SQL dump (alternative method) - -For the first time, Kanboard will run one by one each database migration and this process can take some time according to your configuration. - -To avoid any potential timeout you can initialize the database directly by importing the SQL schema: - -```bash -mysql -u root -p my_database < app/Schema/Sql/mysql.sql -``` - -The file `app/Schema/Sql/mysql.sql` is a SQL dump that represents the last version of the database. - -If you would like to use Unix socket connection, try this: - -```php -define('DB_HOSTNAME', '127.0.0.1;unix_socket=/var/run/mysqld/mysqld.sock'); -``` - -SSL configuration ------------------ - -These parameters have to be defined to enable the MySQL SSL connection: - -```php -// 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'); -``` diff --git a/doc/en_US/nice-urls.markdown b/doc/en_US/nice-urls.markdown deleted file mode 100644 index a054e85d..00000000 --- a/doc/en_US/nice-urls.markdown +++ /dev/null @@ -1,173 +0,0 @@ -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. -In case you get a "404 Not Found", you might need to set at least the following overrides for your DocumentRoot to get the .htaccess files working: - -```sh -<Directory /var/www/kanboard/> - AllowOverride FileInfo Options=All,MultiViews AuthConfig -</Directory> -``` - -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: - -```php -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. - -Nginx configuration example ---------------------------- - -In the section `server` of your Nginx config file you can use this example: - -```bash -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; -} -``` - -In your Kanboard `config.php`: - -```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 -------------------------- - -1. Download and install the Rewrite module for IIS: [Download link](http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module) -2. Create a web.config in you installation folder: - -```xml -<?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> -``` - -In your Kanboard `config.php`: - -```php -define('ENABLE_URL_REWRITE', true); -``` - -Adapt the example above according to your own configuration. - diff --git a/doc/en_US/notifications.markdown b/doc/en_US/notifications.markdown deleted file mode 100644 index c7a2f66e..00000000 --- a/doc/en_US/notifications.markdown +++ /dev/null @@ -1,46 +0,0 @@ -Notifications -============= - -Kanboard is able to send notifications through several channels: - -- Email -- Web (List of unread messages) - -External plugins allow you to send notifications to Slack, Hipchat, Jabber or any chat system. - -Configuration -------------- - -Each user must enable the notifications in their profile: **User Profile > Notifications**. It's disabled by default. - -To receive email notifications you need a valid email address in your profile and the application must be configured to send emails. - -![Notifications](../screenshots/notifications.png) - -You can choose your favorite notification method: - -- Emails -- Web (see below) - -For each project you are a member, you can choose to receive notifications for: - -- All tasks -- Only for tasks assigned to you -- Only for tasks created by you -- Only for tasks created by you and assigned to you - -You can also select only some projects, by default it's all projects where you are a member. - -Web notifications ------------------ - -Web notifications are available from the dashboard or from the icon at the top: - -![Web Notifications Icon](../screenshots/web-notifications-icon.png) - -Notifications are shown in a list, so you can mark individual notification as read or everything. - -![Web Notifications](../screenshots/web-notifications.png) - -In this way you can still get notified without having to receive emails. - diff --git a/doc/en_US/performances.markdown b/doc/en_US/performances.markdown deleted file mode 100644 index 7b006bf8..00000000 --- a/doc/en_US/performances.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Kanboard Performances -===================== - -According to your configuration, some features can slow down the usage of Kanboard. -By default, all operations are synchronous and performed in the same thread as the HTTP request. -This is a PHP limitation. -However, it's possible to improve that. - -Depending on the plugins you install, communicating to external services can take hundred of milliseconds or even seconds. -To avoid blocking the main thread, it's possible to delegate these operations to a pool of [background workers](worker.markdown). -This setup require that you install additional software in your infrastructure. - -How to detect the bottleneck? ------------------------------ - -- Enable the debug mode -- Monitor the log file -- Do something in Kanboard (drag and drop a task for example) -- All operations are logged with the execution time (HTTP requests, Email notifications, SQL requests) - -Improve Email notifications speed ---------------------------------- - -Using the SMTP method with an external server can be very slow. - -Possible solutions: - -- Use the background workers if you still want to use SMTP -- Use a local email relay with Postfix and use the "mail" transport -- Use an email provider that use an HTTP API to send emails (Sendgrid, Mailgun or Postmark) - -Improve Sqlite performances ---------------------------- - -Possible solutions: - -- Do not use Sqlite when you have a lot of concurrency (several users), choose Postgres or Mysql instead -- Do not use Sqlite on a shared NFS mount -- Do not use Sqlite on a disk with poor IOPS, it's always preferable to use local SSD drives diff --git a/doc/en_US/plugin-authentication-architecture.markdown b/doc/en_US/plugin-authentication-architecture.markdown deleted file mode 100644 index d357c933..00000000 --- a/doc/en_US/plugin-authentication-architecture.markdown +++ /dev/null @@ -1,99 +0,0 @@ -Authentication Architecture -=========================== - -Kanboard provides a flexible and pluggable authentication architecture. - -By default, user authentication can be done with multiple methods: - -- Username and password authentication (Local database and LDAP) -- OAuth2 authentication -- Reverse-Proxy authentication -- Cookie based authentication (Remember Me) - -More over, after a successful authentication, a Two-Factor post authentication can be done. -Kanboard supports natively the TOTP standard. - -Authentication Interfaces -------------------------- - -To have a pluggable system, authentication drivers must implement a set of interfaces: - -| Interface | Role | -|------------------------------------------|------------------------------------------------------------------| -| AuthenticationProviderInterface | Base interface for other authentication interfaces | -| PreAuthenticationProviderInterface | The user is already authenticated when reaching the application, web servers usually define some environment variables | -| PasswordAuthenticationProviderInterface | Authentication methods that uses the username and password provided in the login form | -| OAuthAuthenticationProviderInterface | OAuth2 providers | -| PostAuthenticationProviderInterface | Two-Factor auhentication drivers, ask for confirmation code | -| SessionCheckProviderInterface | Providers that are able to check if the user session is valid | - -### Examples of authentication providers: - -- The default Database method implements `PasswordAuthenticationProviderInterface` and `SessionCheckProviderInterface` -- The Reverse-Proxy method implements `PreAuthenticationProviderInterface` and `SessionCheckProviderInterface` -- The Google method implements `OAuthAuthenticationProviderInterface` -- The LDAP method implements `PasswordAuthenticationProviderInterface` -- The RememberMe cookie method implements `PreAuthenticationProviderInterface` -- The Two-Factor TOTP method implements `PostAuthenticationProviderInterface` - -Authentication Workflow ------------------------ - -For each HTTP request: - -1. If the user session is already open, execute registered providers that implements `SessionCheckProviderInterface` -2. Execute all providers that implements `PreAuthenticationProviderInterface` -3. If the end-user submit the login form, providers that implements `PasswordAuthenticationProviderInterface` are executed -4. If the end-user wants to use OAuth2, the selected provider will be executed -5. After a successful authentication, the last registered `PostAuthenticationProviderInterface` will be used -6. Synchronize user information if necessary - -This workflow is managed by the class `Kanboard\Core\Security\AuthenticationManager`. - -Events triggered: - -- `AuthenticationManager::EVENT_SUCCESS`: Successful authentication -- `AuthenticationManager::EVENT_FAILURE`: Failed authentication - -Each time a failure event occurs, the counter of failed logins is incremented. - -The user account can be locked down for the configured period of time and a captcha can be shown to avoid brute force attacks. - -User Provider Interface ------------------------ - -When the authentication is successful, the `AuthenticationManager` will ask the user information to your driver by calling the method `getUser()`. -This method must return an object that implements the interface `Kanboard\Core\User\UserProviderInterface`. - -This class abstract the information gathered from another system. - -Examples: - -- `DatabaseUserProvider` provides information for an internal user -- `LdapUserProvider` for a LDAP user -- `ReverseProxyUserProvider` for a Reverse-Proxy user -- `GoogleUserProvider` represents a Google user - -Methods for User Provider Interface: - -- `isUserCreationAllowed()`: Return true to allow automatic user creation -- `getExternalIdColumn()`: Get external id column name (google_id, github_id, gitlab_id...) -- `getInternalId()`: Get internal database id -- `getExternalId()`: Get external id (Unique id) -- `getRole()`: Get user role -- `getUsername()`: Get username -- `getName()`: Get user full name -- `getEmail()`: Get user email address -- `getExternalGroupIds()`: Get external group ids, automatically sync group membership if present -- `getExtraAttributes()`: Get extra attributes to set for the user during the local sync - -It's not mandatory to return a value for each method. - -User Local Synchronization --------------------------- - -User information can be automatically synced with the local database. - -- If the method `getInternalId()` return a value no synchronization is performed -- The methods `getExternalIdColumn()` and `getExternalId()` must return a value to sync the user -- Properties that returns an empty string won't be synced diff --git a/doc/en_US/plugin-authentication.markdown b/doc/en_US/plugin-authentication.markdown deleted file mode 100644 index e1ca6f01..00000000 --- a/doc/en_US/plugin-authentication.markdown +++ /dev/null @@ -1,40 +0,0 @@ -Authentication Plugin -===================== - -New authentication backends can be written with very few lines of code. - -Provider Registration ---------------------- - -In the method `initialize()` of your plugin, call the method `register()` of the class `AuthenticationManager`: - -```php -public function initialize() -{ - $this->authenticationManager->register(new ReverseProxyLdapAuth($this->container)); -} -``` - -The object provided to the method `register()` must implement one of the pre-defined authentication interfaces. - -Those interfaces are defined in the namepsace `Kanboard\Core\Security`: - -- `Kanboard\Core\Security\PreAuthenticationProviderInterface` -- `Kanboard\Core\Security\PostAuthenticationProviderInterface` -- `Kanboard\Core\Security\PasswordAuthenticationProviderInterface` -- `Kanboard\Core\Security\OAuthAuthenticationProviderInterface` - -The only requirement is to implement the interfaces, you class can be written the way you want and located anywhere on the disk. - -User Provider -------------- - -When the authentication is successful, your driver must return an object that represents the user. -This object must implement the interface `Kanboard\Core\User\UserProviderInterface`. - -Example of authentication plugins ---------------------------------- - -- [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/en_US/plugin-authorization-architecture.markdown b/doc/en_US/plugin-authorization-architecture.markdown deleted file mode 100644 index 24acee17..00000000 --- a/doc/en_US/plugin-authorization-architecture.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Authorization Architecture -========================== - -Kanboard [supports multiple roles](roles.markdown) at the application level and at the project level. - -Authorization Workflow ----------------------- - -For each HTTP request: - -1. Authorize or not access to the resource based on the application access list -2. If the resource is for a project (board, task...): - 1. Fetch user role for this project - 2. Grant/Denied access based on the project access map - -Extending Access Map --------------------- - -The Access List (ACL) is based on the controller class name and the method name. -The list of access is handled by the class `Kanboard\Core\Security\AccessMap`. - -There are two access map: one for the application and another one for projects. - -- Application access map: `$this->applicationAccessMap` -- Project access map: `$this->projectAccessMap` - -Examples to define a new policy from your plugin: - -```php -// All methods of the class MyController: -$this->projectAccessMap->add('MyController', '*', Role::PROJECT_MANAGER); - -// All some methods: -$this->projectAccessMap->add('MyOtherController', array('create', 'save'), Role::PROJECT_MEMBER); -``` - -Roles are defined in the class `Kanboard\Core\Security\Role`. - -The Authorization class (`Kanboard\Core\Security\Authorization`) will check the access for each page. diff --git a/doc/en_US/plugin-automatic-actions.markdown b/doc/en_US/plugin-automatic-actions.markdown deleted file mode 100644 index b309fac9..00000000 --- a/doc/en_US/plugin-automatic-actions.markdown +++ /dev/null @@ -1,60 +0,0 @@ -Adding Automatic Actions -======================== - -Adding a new automatic action is pretty simple. - -Creating a new action ---------------------- - -Your automatic action must inherit of the class `Kanboard\Action\Base`. -Several abstract methods must be implemented by yourself: - -| Method | Description | -|-------------------------------------|------------------------------------------------------------------| -| `getDescription()` | Description visible in the user interface | -| `getCompatibleEvents()` | Get the list of compatible events | -| `getActionRequiredParameters()` | Get the required parameter for the action (defined by the user) | -| `getEventRequiredParameters()` | Get the required parameter for the event | -| `doAction(array $data)` | Execute the action, must return true on success | -| `hasRequiredCondition(array $data)` | Check if the event data meet the action condition | - -Your automatic action is identified in Kanboard by using the absolute class name with the name space included. - -Adding new events ------------------ - -The list of application events is available in the class `Kanboard\Core\Event\EventManager::getAll()`. -However, if your plugin fires new events, you can register these events like that: - -```php -$this->actionManager->getAction('\Kanboard\Plugin\MyPlugin\MyActionName')->addEvent('my.event', 'My event description'); -``` - -You can extend the list of compatible events of existing actions by using the same method. - -Registering the action ----------------------- - -You have to call the method `register()` from the class `Kanboard\Core\Action\ActionManager`: - -```php -<?php - -namespace Kanboard\Plugin\AutomaticAction; - -use Kanboard\Core\Plugin\Base; -use Kanboard\Plugin\AutomaticAction\Action\TaskRename; - -class Plugin extends Base -{ - public function initialize() - { - $this->actionManager->register(new TaskRename($this->container)); - } -} -``` - -Example -------- - -- [Automatic Action example](https://github.com/kanboard/plugin-example-automatic-action) diff --git a/doc/en_US/plugin-avatar-provider.markdown b/doc/en_US/plugin-avatar-provider.markdown deleted file mode 100644 index 62941e5c..00000000 --- a/doc/en_US/plugin-avatar-provider.markdown +++ /dev/null @@ -1,32 +0,0 @@ -Adding a new Avatar Provider -============================= - -Registration ------------- - -```php -$this->avatarManager->register(new CustomAvatarProvider()); -``` - -Interface ---------- - -The provider must implements the interface `Kanboard\Core\User\Avatar\AvatarProviderInterface`: - - -| Method | Description | -|-------------------------------|---------------------------------------------------------------| -| `render(array $user, $size)` | Render HTML | -| `isActive(array $user)` | Returns a boolean if the provider is able to render something | - - -The `$user` argument is a dictionary that contains these keys: - -```php -[ - 'id' => 123, - 'username' => 'admin', - 'name' => 'Administrator', - 'email' => 'me@localhost', -] -``` diff --git a/doc/en_US/plugin-directory.markdown b/doc/en_US/plugin-directory.markdown deleted file mode 100644 index 385e3360..00000000 --- a/doc/en_US/plugin-directory.markdown +++ /dev/null @@ -1,15 +0,0 @@ -Plugin Directory Configuration -============================== - -To install, update and remove plugins from the user interface, you must have those requirements: - -- The plugin directory must be writeable by the web server user -- The Zip extension must be available on your server -- The config parameter `PLUGIN_INSTALLER` must be set at `true` - -To disable this feature, change the value of `PLUGIN_INSTALLER` to `false` in your config file. -You can also change the permissions of the plugin folder on the filesystem. - -Only administrators are allowed to install plugins from the user interface. - -By default, only plugin listed on Kanboard's website are available. diff --git a/doc/en_US/plugin-events.markdown b/doc/en_US/plugin-events.markdown deleted file mode 100644 index f4db8ff3..00000000 --- a/doc/en_US/plugin-events.markdown +++ /dev/null @@ -1,27 +0,0 @@ -Using Events -============ - -Kanboard use internally the [Symfony EventDispatcher component](https://symfony.com/doc/2.3/components/event_dispatcher/index.html) to manage internal events. - -Event Listening ---------------- - -```php -$this->on('app.bootstrap', function($container) { - // Do something -}); -``` - -- The first argument is the event name (string) -- The second argument is a PHP callable function (closure or class method) - -Adding a new event ------------------- - -To add a new event, you have to call the method `register()` of the class `Kanboard\Core\Event\EventManager`: - -```php -$this->eventManager->register('my.event.name', 'My new event description'); -``` - -These events can be used by other components of Kanboard like automatic actions. diff --git a/doc/en_US/plugin-external-link.markdown b/doc/en_US/plugin-external-link.markdown deleted file mode 100644 index 36252aff..00000000 --- a/doc/en_US/plugin-external-link.markdown +++ /dev/null @@ -1,78 +0,0 @@ -External Link Providers -======================= - -This functionality allows you to link a task to additional items stored on another system. - -For example, you can link a task to: - -- Traditional web page -- Attachment (PDF documents stored on the web, archive...) -- Any ticketing system (bug tracker, customer support ticket...) - -Each item has a type, a URL, a dependency type and a title. - -By default, Kanboard includes two kinds of providers: - -- Web Link: You copy and paste a link and Kanboard will fetch the page title automatically -- Attachment: Link to anything that is not a web page - -Workflow --------- - -1. The end-user copy and paste the URL to the form and submit -2. If the link type is "auto", Kanboard will loop through all providers registered until there is a match -3. Then, the link provider returns a object that implements the interface `ExternalLinkInterface` -4. A form is shown to the user with all pre-filled data before to save the link - -Interfaces ----------- - -To implement a new link provider from a plugin, you need to create 2 classes that implement those interfaces: - -- `Kanboard\Core\ExternalLink\ExternalLinkProviderInterface` -- `Kanboard\Core\ExternalLink\ExternalLinkInterface` - -### ExternalLinkProviderInterface - -| Method | Usage | -|----------------------------|-----------------------------------------------------------------| -| `getName()` | Get provider name (label) | -| `getType()` | Get link type (will be saved in the database) | -| `getDependencies()` | Get a dictionary of supported dependency types by the provider | -| `setUserTextInput($input)` | Set text entered by the user | -| `match()` | Return true if the provider can parse correctly the user input | -| `getLink()` | Get the link found with the properties | - -### ExternalLinkInterface - -| Method | Usage | -|-------------------|------------------| -| `getTitle()` | Get link title | -| `getUrl()` | Get link URL | -| `setUrl($url)` | Set link URL | - -Register a new link provider ----------------------------- - -In your `Plugin.php`, just call the method `register()` from the object `ExternalLinkManager`: - -```php -<?php - -namespace Kanboard\Plugin\MyExternalLink; - -use Kanboard\Core\Plugin\Base; - -class Plugin extends Base -{ - public function initialize() - { - $this->externalLinkManager->register(new MyLinkProvider()); - } -} -``` - -Examples --------- - -- Kanboard includes the default providers "WebLink" and "Attachment" diff --git a/doc/en_US/plugin-external-tasks.markdown b/doc/en_US/plugin-external-tasks.markdown deleted file mode 100644 index 0701ea38..00000000 --- a/doc/en_US/plugin-external-tasks.markdown +++ /dev/null @@ -1,76 +0,0 @@ -External Task Providers -======================= - -Kanboard can be used to manage tasks stored in another system. -For example, an external system can be a bug tracker or any kind of ticketing software. -In this way, you can use Kanboard to manage external tasks in the same way as native tasks. - -Workflow --------- - -Creation: - -1. The end-user select an alternative task provider during the task creation -2. The external task provider expose a form to the user to be able to fetch the external task -3. The external task is retrieved from the other system -4. A customized form is shown to the user - -Visualization: - -When the task detail page is opened, Kanboard will load asynchronously the remote task. -This information might be cached by the plugin to improve the loading time. - -Modification: - -Optionally, the plugin can offer a custom form to save extra information to the external system. - -Interfaces ----------- - -External task providers must implements at least two interfaces: - -- `Kanboard\Core\ExternalTask\ExternalTaskProviderInterface` -- `Kanboard\Core\ExternalTask\ExternalTaskInterface` - -### ExternalTaskProviderInterface - -| Method | Usage | -|----------------------------------------------------|-----------------------------------------------------------------| -| `getName()` | Get provider name (label) | -| `fetch()` | Retrieve task from external system or cache | -| `save($uri, array $formValues, array &$formErrors)`| Save external task to another system | -| `getImportFormTemplate()` | Get task import template name | -| `getCreationFormTemplate()` | Get creation form template | -| `getModificationFormTemplate()` | Get modification form template | -| `getViewTemplate()` | Get task view template name | -| `buildTaskUri(array $formValues)` | Build external task URI based on import form values | - -### ExternalTaskInterface - -| Method | Usage | -|---------------------------------------------------|-----------------------------------------------------------------| -| `getUri()` | Return Uniform Resource Identifier for the task | -| `getFormValues()` | Return a dict to populate the task form | - - -Exceptions ----------- - -The plugin may raise an exception if something goes wrong: - -- `Kanboard\Core\ExternalTask\ExternalTaskException`: Generic error related to the external system -- `Kanboard\Core\ExternalTask\AccessForbiddenException`: Access not allowed by the external system -- `Kanboard\Core\ExternalTask\NotFoundException`: External task not found - -Provider Registration ---------------------- - -```php -class Plugin extends Base -{ - public function initialize() - { - $this->externalTaskManager->register(new MyExternalTaskProvider()); - } -} -``` diff --git a/doc/en_US/plugin-group-provider.markdown b/doc/en_US/plugin-group-provider.markdown deleted file mode 100644 index 31c61aaf..00000000 --- a/doc/en_US/plugin-group-provider.markdown +++ /dev/null @@ -1,55 +0,0 @@ -Custom Group Providers -====================== - -Kanboard is able to load groups from an external system. -This feature is mainly used for project permissions. - -Project managers can allow access to a project for a group. -The end-user will use an auto-complete box and search for a group. - -Each time a group query is executed, all registered group providers are executed. - -Group Provider Workflow ------------------------ - -1. The end-user start to type the group name in the auto-complete field -2. The `GroupManager` class will execute the query across all registered group providers -3. Results are merged and returned to the user interface -4. After selecting a group, the information of the group are synced to the local database if necessary - -Group Provider Interface ------------------------- - -Interface to implement: `Kanboard\Core\Group\GroupProviderInterface`. - -Classes that implements this interface abstract the group information, there are only 3 methods: - -- `getInternalId()`: Get internal database id, return 0 otherwise -- `getExternalId()`: Get external unique id -- `getName()`: Get group name - -Kanboard will use the external id to sync with the local database. - -Group Backend Provider Interface --------------------------------- - -Interface to implement: `Kanboard\Core\Group\GroupBackendProviderInterface`. - -This interface requires only one method: `find($input)`. -The argument `$input` is the text entered from the user interface. - -This method must return a list of `GroupProviderInterface`, this is the result of the search. - -Backend Registration from Plugins ---------------------------------- - -In the method `initialize()` of your plugin register your custom backend like that: - -```php -$groupManager->register(new MyCustomLdapBackendGroupProvider($this->container)); -``` - -Examples --------- - -- [Group providers included in Kanboard (LDAP and Database)](https://github.com/kanboard/kanboard/tree/master/app/Group) diff --git a/doc/en_US/plugin-helpers.markdown b/doc/en_US/plugin-helpers.markdown deleted file mode 100644 index d65467f8..00000000 --- a/doc/en_US/plugin-helpers.markdown +++ /dev/null @@ -1,40 +0,0 @@ -Registering new helpers -======================= - -Helper skeleton: - -```php -<?php - -namespace Kanboard\Plugin\MyPlugin\Helper; - -use Kanboard\Core\Base; - -class MyHelper extends Base -{ - public function doSomething() - { - return 'foobar'; - } -} -``` - -Register your helper class: - -```php -$this->helper->register('myHelper', '\Kanboard\Plugin\MyPlugin\Helper\MyHelper'); -``` - -Using your helper from a template: - -```php -<p> - <?= $this->myHelper->doSomething() ?> -</p> -``` - -Using your helper from another class: - -```php -$this->helper->myHelper->doSomething(); -``` diff --git a/doc/en_US/plugin-hooks.markdown b/doc/en_US/plugin-hooks.markdown deleted file mode 100644 index c9a82094..00000000 --- a/doc/en_US/plugin-hooks.markdown +++ /dev/null @@ -1,268 +0,0 @@ -Plugin Hooks -============ - -Application Hooks ------------------ - -Hooks can extend, replace, filter data or change the default behavior. Each hook is identified with a unique name, example: `controller:calendar:user:events` - -### Listen on hook events - -In your `initialize()` method you need to call the method `on()` of the class `Kanboard\Core\Plugin\Hook`: - -```php -$this->hook->on('hook_name', $callable); -``` - -The first argument is the name of the hook and the second is a PHP callable. - -### Hooks executed only once - -Some hooks can have only one listener: - -#### model:subtask-time-tracking:calculate:time-spent - -- Override time spent calculation when sub-task timer is stopped -- Arguments: - - `$user_id` (integer) - - `$start` (DateTime) - - `$end` (DateTime) - -### Merge hooks - -"Merge hooks" act in the same way as the function `array_merge`. The hook callback must return an array. This array will be merged with the default one. - -Example to add events in the user calendar: - -```php -class Plugin extends Base -{ - public function initialize() - { - $container = $this->container; - - $this->hook->on('controller:calendar:user:events', function($user_id, $start, $end) use ($container) { - $model = new SubtaskForecast($container); - return $model->getCalendarEvents($user_id, $end); // Return new events - }); - } -} -``` - -Example to override default values for task forms: - -```php -class Plugin extends Base -{ - public function initialize() - { - $this->hook->on('controller:task:form:default', function (array $default_values) { - return empty($default_values['score']) ? array('score' => 4) : array(); - }); - } -} -``` - -List of merging hooks: - -`controller:task:form:default` - -- Override default values for task forms -- Arguments: - - `$default_values`: actual default values (array) - -`controller:calendar:project:events` - -- Add more events to the project calendar -- Arguments: - - `$project_id` (integer) - - `$start` Calendar start date (string, ISO-8601 format) - - `$end` Calendar` end date (string, ISO-8601 format) - -`controller:calendar:user:events` - -- Add more events to the user calendar -- Arguments: - - `$user_id` (integer) - - `$start` Calendar start date (string, ISO-8601 format) - - `$end` Calendar end date (string, ISO-8601 format) - -Asset Hooks ------------ - -Asset hooks can be used to add a new stylesheet easily or a new JavaScript file in the layout. You can use this feature to create a theme and override all Kanboard default styles. - -Example to add a new stylesheet: - -```php -<?php - -namespace Kanboard\Plugin\Css; - -use Kanboard\Core\Plugin\Base; - -class Plugin extends Base -{ - public function initialize() - { - $this->hook->on('template:layout:css', array('template' => 'plugins/Css/skin.css')); - } -} -``` - -List of asset Hooks: - -- `template:layout:css` -- `template:layout:js` - - -Reference hooks ---------------- - -Reference hooks are passing a variable by reference. - -Example: - -```php -$this->hook->on('formatter:board:query', function (\PicoDb\Table &query) { - $query->eq('color_id', 'red'); -}); -``` - -The code above will show only tasks in red on the board. - -List of reference hooks: - -| Hook | Description | -|--------------------------------------------|---------------------------------------------------------------| -| `formatter:board:query` | Alter database query before rendering board | -| `pagination:dashboard:project:query` | Alter database query for projects pagination on the dashboard | -| `pagination:dashboard:task:query` | Alter database query for tasks pagination on the dashboard | -| `pagination:dashboard:subtask:query` | Alter database query for subtasks pagination on the dashboard | -| `model:task:creation:prepare` | Alter form values before to save a task | -| `model:task:creation:aftersave` | Retrieve Task ID after creating a task | -| `model:task:modification:prepare` | Alter form values before to edit a task | -| `model:color:get-list` | Alter default_colors values | -| `model:subtask:modification:prepare` | Alter form values before to save a subtask | -| `model:subtask:creation:prepare` | Alter form values before to edit a subtask | -| `model:subtask:count:query` | Alter database query for subtask count | - - -Template Hooks --------------- - -Template hooks allow to add new content in existing templates. - -Example to add new content in the dashboard sidebar: - -```php -$this->template->hook->attach('template:dashboard:sidebar', 'myplugin:dashboard/sidebar'); -``` - -Example to attach a template with local variables: - -```php -$this->template->hook->attach('template:dashboard:sidebar', 'myplugin:dashboard/sidebar', array( - 'variable' => 'foobar', -)); -``` - -Example to attach a template with a callable: - -```php -$this->template->hook->attach('template:dashboard:sidebar', 'myplugin:dashboard/sidebar', function($hook_param1, $hook_param2) { - return array('new_template_variable' => 'foobar'); // Inject a new variable into the plugin template -}); -``` - -This call is usually defined in the `initialize()` method. -The first argument is name of the hook and the second argument is the template name. - -Template names prefixed with the plugin name and colon indicate the location of the template. - -Example with `myplugin:dashboard/sidebar`: - -- `myplugin` is the name of your plugin (lowercase) -- `dashboard/sidebar` is the template name -- On the filesystem, the plugin will be located here: `plugins\Myplugin\Template\dashboard\sidebar.php` -- Templates are written in pure PHP (don't forget to escape data) - -Template names without prefix are core templates. - -List of template hooks: - -| Hook | Description | -|-----------------------------------------------------------|----------------------------------------------------| -| `template:analytic:sidebar` | Sidebar on analytic pages | -| `template:app:filters-helper:before` | Filter helper dropdown (top) | -| `template:app:filters-helper:after` | Filter helper dropdown (bottom) | -| `template:auth:login-form:before` | Login page (top) | -| `template:auth:login-form:after` | Login page (bottom) | -| `template:board:private:task:before-title` | Task in private board: before title | -| `template:board:private:task:after-title` | Task in private board: after title | -| `template:board:public:task:before-title` | Task in public board: before title | -| `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:table:column:before-header-row` | Row before board column header | -| `template:board:table:column:after-header-row` | Row after board column header | -| `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 | -| `template:config:application ` | Application settings form | -| `template:config:email` | Email settings page | -| `template:config:integrations` | Integration page in global settings | -| `template:dashboard:show` | Main page of the dashboard | -| `template:dashboard:page-header:menu` | Dashboard submenu | -| `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 | -| `template:project:dropdown` | "Actions" menu on left in different project views | -| `template:project:header:before` | Project filters (before) | -| `template:project:header:after` | Project filters (after) | -| `template:project:integrations` | Integration page in projects settings | -| `template:project:sidebar` | Sidebar in project settings | -| `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:project-header:view-switcher` | Project view switcher | -| `template:task:layout:top` | Task layout top (after page header) | -| `template:task:details:top` | Task summary top | -| `template:task:details:bottom` | Task summary bottom | -| `template:task:details:first-column` | Task summary first column | -| `template:task:details:second-column` | Task summary second column | -| `template:task:details:third-column` | Task summary third column | -| `template:task:details:fourth-column` | Task summary fourth column | -| `template:task:dropdown` | Task dropdown menu in listing pages | -| `template:task:sidebar:actions` | Sidebar on task page (section actions) | -| `template:task:sidebar:information` | Sidebar on task page (section information) | -| `template:task:form:first-column` | 1st column in task form | -| `template:task:form:second-column` | 2nd column in task form | -| `template:task:form:third-column` | 3nd column in task form | -| `template:task:show:top ` | Show task page: top | -| `template:task:show:bottom` | Show task page: bottom | -| `template:task:show:before-description` | Show task page: before description | -| `template:task:show:before-tasklinks` | Show task page: before tasklinks | -| `template:task:show:before-subtasks` | Show task page: before subtasks | -| `template:task:show:before-timetracking` | Show task page: before timetracking | -| `template:task:show:before-attachments` | Show task page: before attachments | -| `template:task:show:before-comments` | Show task page: before comments | -| `template:subtask:form:create` | "Create Subtask" form | -| `template:subtask:form:edit` | "Edit Subtask" form | -| `template:subtask:table:header:before-timetracking` | Subtask table header before Time Tracking | -| `template:subtask:table:rows` | Column on row of subtasks table | -| `template:user:authentication:form` | "Edit authentication" form in user profile | -| `template:user:create-remote:form` | "Create remote user" form | -| `template:user:external` | "External authentication" page in user profile | -| `template:user:integrations` | Integration page in user profile | -| `template:user:sidebar:actions` | Sidebar in user profile (section actions) | -| `template:user:sidebar:information` | Sidebar in user profile (section information) | -| `template:user:show:profile:info` | User profile information | - - -Another template hooks can be added if necessary, just ask on the issue tracker. diff --git a/doc/en_US/plugin-ldap-client.markdown b/doc/en_US/plugin-ldap-client.markdown deleted file mode 100644 index 312eea71..00000000 --- a/doc/en_US/plugin-ldap-client.markdown +++ /dev/null @@ -1,99 +0,0 @@ -LDAP Library -============ - -To facilitate LDAP integration, Kanboard has its own LDAP library. -This library can perform common operations. - -Client ------- - -Class: `Kanboard\Core\Ldap\Client` - -To connect to your LDAP server easily, use this method: - -```php -use Kanboard\Core\Ldap\Client as LdapClient; -use Kanboard\Core\Ldap\ClientException as LdapException; - -try { - $client = LdapClient::connect(); - - // Get native LDAP resource - $resource = $client->getConnection(); - - // ... - -} catch (LdapException $e) { - // ... -} -``` - -LDAP Queries ------------- - -Classes: - -- `Kanboard\Core\Ldap\Query` -- `Kanboard\Core\Ldap\Entries` -- `Kanboard\Core\Ldap\Entry` - -Example to query the LDAP directory: - -```php - -$query = new Query($client) -$query->execute('ou=People,dc=kanboard,dc=local', 'uid=my_user', array('cn', 'mail')); - -if ($query->hasResult()) { - $entries = $query->getEntries(); // Return an instance of Entries -} -``` - -Read one entry: - -```php -$firstEntry = $query->getEntries()->getFirstEntry(); -$email = $firstEntry->getFirstValue('mail'); -$name = $firstEntry->getFirstValue('cn', 'Default Name'); -``` - -Read multiple entries: - -```php -foreach ($query->getEntries()->getAll() as $entry) { - $emails = $entry->getAll('mail'); // Fetch all emails - $dn = $entry->getDn(); // Get LDAP DN of this user - - // Check if a value is present for an attribute - if ($entry->hasValue('mail', 'user2@localhost')) { - // ... - } -} -``` - -User Helper ------------ - -Class: `Kanboard\Core\Ldap\User` - -Fetch a single user in one line: - -```php -// Return an instance of LdapUserProvider -$user = User::getUser($client, 'my_username'); -``` - -Group Helper ------------- - -Class: `Kanboard\Core\Ldap\Group` - -Fetch groups in one line: - -```php -// Define LDAP filter -$filter = '(&(objectClass=group)(sAMAccountName=My group*))'; - -// Return a list of LdapGroupProvider -$groups = Group::getGroups($client, $filter); -``` diff --git a/doc/en_US/plugin-mail-transports.markdown b/doc/en_US/plugin-mail-transports.markdown deleted file mode 100644 index f3f9efc6..00000000 --- a/doc/en_US/plugin-mail-transports.markdown +++ /dev/null @@ -1,51 +0,0 @@ -Plugin: Add Mail Transport -========================== - -By default Kanboard supports 3 standards mail transports: - -- Mail (PHP mail function) -- Smtp -- Sendmail command - -With the plugin API you can add a driver for any email provider. -For example, your plugin can add a mail transport for a provider that uses an HTTP API. - -Implementation --------------- - -Your plugin must implement the interface `Kanboard\Core\Mail\ClientInterface` and extends from `Kanboard\Core\Base`. - -The only method you need to implement is `sendEmail()`: - -```php -interface ClientInterface -{ - /** - * Send a HTML email - * - * @access public - * @param string $recipientEmail - * @param string $recipientName - * @param string $subject - * @param string $html - * @param string $authorName - * @param string $authorEmail - */ - public function sendEmail($recipientEmail, $recipientName, $subject, $html, $authorName, $authorEmail = ''); -} -``` - -To register your new mail transport, use the method `setTransport($transport, $class)` from the class `Kanboard\Core\Mail\Client`: - -```php -$this->emailClient->setTransport('myprovider', '\Kanboard\Plugin\MyProvider\MyEmailHandler'); -``` - -The second argument contains the absolute name space of your concrete class. - -Examples of mail transport plugins ----------------------------------- - -- [Sendgrid](https://github.com/kanboard/plugin-sendgrid) -- [Mailgun](https://github.com/kanboard/plugin-mailgun) -- [Postmark](https://github.com/kanboard/plugin-postmark) diff --git a/doc/en_US/plugin-metadata.markdown b/doc/en_US/plugin-metadata.markdown deleted file mode 100644 index 49da0ac1..00000000 --- a/doc/en_US/plugin-metadata.markdown +++ /dev/null @@ -1,42 +0,0 @@ -Metadata -======== - -You can attach metadata for each project, task, user or for the whole application. -Metadata are custom fields, it's a key/value table. - -For example your plugin can store external information for a task or new settings for a project. -Basically that allow you to extend the default fields without having to create new tables. - -Attach metadata to tasks and remove them ------------------------- - -```php - -// Return a dictionary of metadata (keys/values) for the $task_id -$this->taskMetadataModel->getAll($task_id); - -// Get a value only for a task -$this->taskMetadataModel->get($task_id, 'my_plugin_variable', 'default_value'); - -// Return true if the metadata my_plugin_variable exists -$this->taskMetadataModel->exists($task_id, 'my_plugin_variable'); - -// Create or update metadata for the task -$this->taskMetadataModel->save($task_id, ['my_plugin_variable' => 'something']); - -// Remove a metadata from a project -$this->projectMetadataModel->remove($project_id, my_plugin_variable); -``` - -Metadata types --------------- - -- TaskMetadata: `$this->taskMetadataModel` -- ProjectMetadata: `$this->projectMetadataModel` -- UserMetadata: `$this->userMetadataModel` -- Settings/Config: `$this->configModel` - -Notes ------ - -- Always prefix the metadata name with your plugin name diff --git a/doc/en_US/plugin-notifications.markdown b/doc/en_US/plugin-notifications.markdown deleted file mode 100644 index 868f6aef..00000000 --- a/doc/en_US/plugin-notifications.markdown +++ /dev/null @@ -1,60 +0,0 @@ -Add Notification Types with Plugins -=================================== - -You can send notifications to almost any system by adding a new type. -There are two kinds of notifications: project and user. - -- Project: Notifications configured at the project level -- User: Notifications sent individually and configured at the user profile - -Register a new notification type --------------------------------- - -In your plugin registration file call the method `setType()`: - -```php -$this->userNotificationTypeModel->setType('irc', t('IRC'), '\Kanboard\Plugin\IRC\Notification\IrcHandler'); -$this->projectNotificationTypeModel->setType('irc', t('IRC'), '\Kanboard\Plugin\IRC\Notification\IrcHandler'); -``` - -Your handler can be registered for user or project notification. You don't necessarily need to support both. - -When your handler is registered, the end-user can choose to receive the new notification type or not. - -Notification Handler --------------------- - -Your notification handler must implement the interface `Kanboard\Core\Notification\NotificationInterface`: - -```php -interface NotificationInterface -{ - /** - * Send notification to a user - * - * @access public - * @param array $user - * @param string $event_name - * @param array $event_data - */ - public function notifyUser(array $user, $event_name, array $event_data); - - /** - * Send notification to a project - * - * @access public - * @param array $project - * @param string $event_name - * @param array $event_data - */ - public function notifyProject(array $project, $event_name, array $event_data); -} -``` - -Example of notification plugins -------------------------------- - -- [Slack](https://github.com/kanboard/plugin-slack) -- [Hipchat](https://github.com/kanboard/plugin-hipchat) -- [Jabber](https://github.com/kanboard/plugin-jabber) - diff --git a/doc/en_US/plugin-overrides.markdown b/doc/en_US/plugin-overrides.markdown deleted file mode 100644 index 3b94bd60..00000000 --- a/doc/en_US/plugin-overrides.markdown +++ /dev/null @@ -1,73 +0,0 @@ -Plugin Overrides -================ - -Override HTTP Content Security Policy -------------------------------------- - -If you would like to replace the default HTTP Content Security Policy header, you can use the method `setContentSecurityPolicy()`: - -```php -<?php - -namespace Kanboard\Plugin\Csp; - -use Kanboard\Core\Plugin\Base; - -class Plugin extends Base -{ - public function initialize() - { - $this->setContentSecurityPolicy(array('script-src' => 'something')); - } -} -``` - -Template Overrides ------------------- - -Any templates defined in the core can be overridden. For example, you can redefine the default layout or change email notifications. - -Example of template override: - -```php -$this->template->setTemplateOverride('header', 'theme:layout/header'); -``` - -The first argument is the original template name and the second argument the template to use as replacement. - -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/en_US/plugin-registration.markdown b/doc/en_US/plugin-registration.markdown deleted file mode 100644 index 5a4a6234..00000000 --- a/doc/en_US/plugin-registration.markdown +++ /dev/null @@ -1,213 +0,0 @@ -Plugin Registration -=================== - -Project skeleton generator --------------------------- - -You can use `cookiecutter` to create the project structure of your plugin automatically. - -Install Cookiecutter: - -```bash -pip install -U cookiecutter -``` - -Run Kanboard cookiecutter: - -```bash -cookiecutter gh:kanboard/cookiecutter-plugin -plugin_name [My Plugin]: Some Plugin -plugin_namespace [MyPlugin]: SomePlugin -plugin_author [Plugin Author]: Me -plugin_description [My plugin is awesome]: -plugin_homepage [https://github.com/kanboard/plugin-myplugin]: -``` - -Directory structure -------------------- - -Plugins are stored in the `plugins` subdirectory. An example of a plugin directory structure: - -```bash -plugins -└── Budget <= Plugin name - ├── Asset <= Javascript/CSS files - ├── Controller - ├── LICENSE <= Plugin license - ├── Locale - │ ├── fr_FR - │ ├── it_IT - │ ├── ja_JP - │ └── zh_CN - ├── Model - ├── Plugin.php <= Plugin registration file - ├── README.md - ├── Schema <= Database migrations - ├── Template - └── Test <= Unit tests -``` - -Only the registration file `Plugin.php` is required. Other folders are optional. - -The first letter of the plugin name must be capitalized. - -Plugin Registration File ------------------------- - -Kanboard will scan the directory `plugins` and load automatically everything under this directory. The file `Plugin.php` is used to load and register the plugin. - -Example of `Plugin.php` file (`plugins/Foobar/Plugin.php`): - -```php -<?php - -namespace Kanboard\Plugin\Foobar; - -use Kanboard\Core\Plugin\Base; - -class Plugin extends Base -{ - public function initialize() - { - $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'; - } -} -``` - -This file should contain a class `Plugin` defined under the namespace `Kanboard\Plugin\Yourplugin` and extends `Kanboard\Core\Plugin\Base`. - -The only required method is `initialize()`. This method is called for each request when the plugin is loaded. - -Plugin Methods --------------- - -Available methods from `Kanboard\Core\Plugin\Base`: - -- `initialize()`: Executed when the plugin is loaded -- `getClasses()`: Return all classes that should be stored in the dependency injection container -- `on($event, $callback)`: Listen on internal events -- `getPluginName()`: Should return plugin name -- `getPluginAuthor()`: Should return plugin author -- `getPluginVersion()`: Should return plugin version -- `getPluginDescription()`: Should return plugin description -- `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. - -This example will fetch the user #123: - -```php -$this->user->getById(123); -``` - -Plugin Translations -------------------- - -Plugin can be translated in the same way as the rest of the application. You must load the translations yourself when the session is created: - -```php -public function onStartup() -{ - Translator::load($this->languageModel->getCurrentLanguage(), __DIR__.'/Locale'); -} -``` - -The translations must be stored in the file `plugins/Myplugin/Locale/xx_XX/translations.php` (replace xx_XX by the language code fr_FR, en_US...). - -Translations are stored in a dictionary, if you would like to override an existing string, you just need to use the same key in your translation file. - -Dependency Injection Container ------------------------------- - -Kanboard uses Pimple, a simple PHP Dependency Injection Container. However, Kanboard can register any class in the container easily. - -Those classes are available everywhere in the application and only one instance is created. - -Here an example to register your own models in the container: - -```php -public function getClasses() -{ - return array( - 'Plugin\Budget\Model' => array( - 'HourlyRateModel', - 'BudgetModel', - ) - ); -} -``` - -Now, if you use a class that extends from `Core\Base`, you can access directly to those class instance: - -```php -$this->hourlyRateModel->remove(123); -$this->budgetModel->getDailyBudgetBreakdown(456); - -// It's the same thing as using the container: -$this->container['hourlyRateModel']->getAll(); -``` - -Keys of the containers are unique across the application. If you override an existing class, you will change the default behavior. - -Add new API methods -------------------- - -Kanboard use this library [JSON-RPC](https://github.com/fguillot/JsonRPC) to handle API calls. - -To add a new method you can do something like that from your plugin: - -```php -$this->api->getProcedureHandler()->withCallback('my_method', function() { - return 'foobar'; -}); -``` - -`$this->container['api']` or `$this->api` expose an instance of the object `JsonRPC\Server`. - -Read the library documentation for more information. - -Add new console commands ------------------------- - -Kanboard use the library [Symfony Console](http://symfony.com/doc/current/components/console/introduction.html) to handle local command lines. - -Kanboard expose an instance of the object `Symfony\Component\Console\Application` via `$this->cli`. -You can add new commands from your plugin: - -```php -$this->cli->add(new MyCommand()); -``` - -Read the library documentation for more information. - -Add new task filters --------------------- - -Since the task lexer is a factory that returns a new instance each time, -you have to extend the `taskLexer` container with the method `extend()` of Pimple. - -Here is a example: - -```php -public function initialize() -{ - $this->container->extend('taskLexer', function($taskLexer, $c) { - $taskLexer->withFilter(TaskBoardDateFilter::getInstance($c)->setDateParser($c['dateParser'])); - return $taskLexer; - }); -} -``` - -For the filter class implementation, there are several examples in the source code under the namespace `Kanboard\Filter`. diff --git a/doc/en_US/plugin-routes.markdown b/doc/en_US/plugin-routes.markdown deleted file mode 100644 index b943bb19..00000000 --- a/doc/en_US/plugin-routes.markdown +++ /dev/null @@ -1,85 +0,0 @@ -Custom Routes -============= - -When URL rewriting is enabled, you can define custom routes from your plugins. - -Define new routes ------------------ - -Routes are handled by the class `Kanboard\Core\Http\Route`. - -New routes can be added by using the method `addRoute($path, $controller, $action, $plugin)`, here an example: - -```php -$this->route->addRoute('/my/custom/route', 'myController', 'myAction', 'myplugin'); -``` - -When the end-user go to the URL `/my/custom/route`, the method `Kanboard\Plugin\Myplugin\Controller\MyController::myAction()` will be executed. - -The first character of the controller and the plugin name will converted in uppercase with the function `ucfirst()`. - -You can also define routes with variables: - -```php -$this->route->addRoute('/my/route/:my_variable', 'myController', 'myAction', 'myplugin'); -``` - -The colon prefix `:`, define a variable. -For example `:my_variable` declare a new variable named `my_variable`. - -To fetch the value of the variable you can use the method `getStringParam()` or `getIntegerParam()` from the class `Kanboard\Core\Http\Request`: - -If we have the URL `/my/route/foobar`, the value of `my_variable` is `foobar`: - -```php -$this->request->getStringParam('my_variable'); // Return foobar -``` - -Generate links based on the routing table ------------------------------------------ - -From templates, you have to use the helper `Kanboard\Helper\Url`. - -### Generate a HTML link - -```php -<?= $this->url->link('My link', 'mycontroller', 'myaction', array('plugin' => 'myplugin')) ?> -``` - -Will generate this HTML: - -```html -<a href="/my/custom/route">My link</a> -``` - -### Generate only the attribute `href`: - -```php -<?= $this->url->href('My link', 'mycontroller', 'myaction', array('plugin' => 'myplugin')) ?> -``` - -HTML output: - -```html -/my/custom/route -``` - -HTML output when URL rewriting is not enabled: - -```html -?controller=mycontroller&action=myaction&plugin=myplugin -``` - -### Generate redirect link: - -From a controller, if you need to perform a redirection: - -```php -$this->url->to('mycontroller', 'myaction', array('plugin' => 'myplugin')); -``` - -Generate: - -``` -?controller=mycontroller&action=myaction&plugin=myplugin -``` diff --git a/doc/en_US/plugin-schema-migrations.markdown b/doc/en_US/plugin-schema-migrations.markdown deleted file mode 100644 index 36a57f37..00000000 --- a/doc/en_US/plugin-schema-migrations.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Plugin Schema Migrations -======================== - -Kanboard executes database migrations automatically for you. -Migrations must be stored in a folder **Schema** and the filename must be the same as the database driver: - -```bash -Schema -├── Mysql.php -├── Postgres.php -└── Sqlite.php -``` - -Each file contains all migrations, here an example for Sqlite: - -```php -<?php - -namespace Kanboard\Plugin\Something\Schema; - -const VERSION = 1; - -function version_1($pdo) -{ - $pdo->exec('CREATE TABLE IF NOT EXISTS something ( - "id" INTEGER PRIMARY KEY, - "project_id" INTEGER NOT NULL, - "something" TEXT, - FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE - )'); -} -``` - -- The constant `VERSION` is the last version of your schema -- Each function is a migration `version_1()`, `version_2()`, etc. -- A `PDO` instance is passed as first argument -- Everything is executed inside a transaction, if something doesn't work a rollback is performed and the error is displayed to the user - -Kanboard will compare the version defined in your schema and the version stored in the database. If the versions are different, Kanboard will execute one by one each migration until to reach the last version. diff --git a/doc/en_US/plugins.markdown b/doc/en_US/plugins.markdown deleted file mode 100644 index ff9f7b8c..00000000 --- a/doc/en_US/plugins.markdown +++ /dev/null @@ -1,47 +0,0 @@ -Plugin Development -================== - -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/kanboard/kanboard/blob/master/ChangeLog) for breaking changes. - -- [Creating your plugin](plugin-registration.markdown) -- [Using plugin hooks](plugin-hooks.markdown) -- [Events](plugin-events.markdown) -- [Override default application behaviors](plugin-overrides.markdown) -- [Add schema migrations for plugins](plugin-schema-migrations.markdown) -- [Custom routes](plugin-routes.markdown) -- [Add helpers](plugin-helpers.markdown) -- [Add mail transports](plugin-mail-transports.markdown) -- [Add notification types](plugin-notifications.markdown) -- [Add automatic actions](plugin-automatic-actions.markdown) -- [Attach metadata to users, tasks and projects](plugin-metadata.markdown) -- [Authentication architecture](plugin-authentication-architecture.markdown) -- [Authentication plugin registration](plugin-authentication.markdown) -- [Authorization architecture](plugin-authorization-architecture.markdown) -- [Custom group providers](plugin-group-provider.markdown) -- [External link providers](plugin-external-link.markdown) -- [External tasks](plugin-external-tasks.markdown) -- [Add avatar providers](plugin-avatar-provider.markdown) -- [LDAP client](plugin-ldap-client.markdown) - -Examples of plugins -------------------- - -- [SMS Two-Factor Authentication](https://github.com/kanboard/plugin-sms-2fa) -- [Reverse-Proxy Authentication with LDAP support](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) -- [Budget planning](https://github.com/kanboard/plugin-budget) -- [User timetables](https://github.com/kanboard/plugin-timetable) -- [Subtask Forecast](https://github.com/kanboard/plugin-subtask-forecast) -- [Automatic Action example](https://github.com/kanboard/plugin-example-automatic-action) -- [Theme plugin example](https://github.com/kanboard/plugin-example-theme) -- [CSS plugin example](https://github.com/kanboard/plugin-example-css) diff --git a/doc/en_US/postgresql-configuration.markdown b/doc/en_US/postgresql-configuration.markdown deleted file mode 100644 index bab15313..00000000 --- a/doc/en_US/postgresql-configuration.markdown +++ /dev/null @@ -1,50 +0,0 @@ -Postgresql configuration -======================== - -By default, Kanboard use Sqlite to store its data but it's also possible to use Postgresql. - -Requirements ------------- - -- Postgresql >= 9.3 -- The PHP extension `pdo_pgsql` installed (Debian/Ubuntu: `apt-get install php5-pgsql`) - -Configuration -------------- - -### Create an empty database with the command `pgsql`: - -```sql -CREATE DATABASE kanboard; -``` - -### Create a config file - -The file `config.php` should contain those values: - -```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'); -``` - -Note: You can also rename the template file `config.default.php` to `config.php`. - -### Importing SQL dump (alternative method) - -For the first time, Kanboard will run one by one each database migration and this process can take some time according to your configuration. - -To avoid any issues or potential timeouts, you can initialize the database directly by importing the SQL schema: - -```bash -psql -U postgres my_database < app/Schema/Sql/postgres.sql -``` - -The file `app/Schema/Sql/postgres.sql` is a SQL dump that represents the last version of the database. diff --git a/doc/en_US/project-configuration.markdown b/doc/en_US/project-configuration.markdown deleted file mode 100644 index 60c1be3c..00000000 --- a/doc/en_US/project-configuration.markdown +++ /dev/null @@ -1,42 +0,0 @@ -Project Settings -================ - -Go to the menu **Settings**, then choose **Project settings** on the left. - -![Project settings](../screenshots/project-settings.png) - -### Default columns for new projects - -You can change the default column names here. -It's useful if you always create projects with the same columns. - -Each column name must be separated by a comma. - -By default, Kanboard use those column names: Backlog, Ready, Work in progress and Done. - -### Default categories for new projects - -Categories are not global to the application but attached to a project. -Each project can have different categories. - -However, if you always create the same categories for all your projects, you can define here the list of categories to create automatically. - -### Allow only one subtask in progress at the same time for a user - -When this option is enabled, a user can work with only one subtask at the time. - -If another subtask have the status "in progress", the user will see this dialog box: - -![Subtask user restriction](../screenshots/subtask-user-restriction.png) - -### Trigger automatically subtask time tracking - -- If enabled, when a subtask status is changed to "in progress", the timer will start automatically. -- Disable this option if you don't use time tracking. - -### Include closed tasks in the cumulative flow diagram - -- If enabled, closed tasks will be included in the cumulative flow diagram. -- If disabled, only open tasks will be included. -- This option affects the column "total" of the table "project_daily_column_stats" - diff --git a/doc/en_US/project-permissions.markdown b/doc/en_US/project-permissions.markdown deleted file mode 100644 index db74d0ee..00000000 --- a/doc/en_US/project-permissions.markdown +++ /dev/null @@ -1,20 +0,0 @@ -Project Permissions -=================== - -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): - -- Project Manager -- Project Member -- Project Viewer - -Only administrators have access to everything. - -Role assignments are visible in **Project Settings > Permissions**: - -![Project Permissions](../screenshots/project-permissions.png) - -Private projects cannot define permissions. diff --git a/doc/en_US/project-types.markdown b/doc/en_US/project-types.markdown deleted file mode 100644 index ae18b9ef..00000000 --- a/doc/en_US/project-types.markdown +++ /dev/null @@ -1,14 +0,0 @@ -Project Types -============= - -There are two kinds of projects: - -| Type | Description | -|-------------------|-----------------------------------------------------------------------| -| Team Project | Project with user and group management | -| Private Project | Project that belongs to only one person, there is no user management | - -- Only Administrators and Application Managers can create team projects. -- Private projects can be created by anyone. - -[Read the documentation about roles in Kanboard](roles.markdown) diff --git a/doc/en_US/project-views.markdown b/doc/en_US/project-views.markdown deleted file mode 100644 index 1d8334a2..00000000 --- a/doc/en_US/project-views.markdown +++ /dev/null @@ -1,58 +0,0 @@ -Board, Calendar and List Views -============================== - -For each project, tasks can be visualized with several views: **Board, Calendar, List and Gantt**. -Each view shows the result of the filter box at the top. -The search engine uses the [advanced syntax](search.markdown). - -Board View ----------- - -![Board view](../screenshots/board-view.png) - -- 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. - -![Board Task Limit](../screenshots/board-task-limit.png) - -When the task limit is reached for a column, the background becomes red. That means there are too many tasks in progress at the same time. - -[Learn more about board configuration](board-configuration.markdown) - -Calendar View --------------- - -![Calendar view](../screenshots/calendar-view.png) - -- 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) - -List View ---------- - -![List view](../screenshots/list-view.png) - -- 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 ----------- - -![Gantt view](../screenshots/gantt-view.png) - -- 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 ----------------- - -![Project overview](../screenshots/project-view.png) - -- 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/en_US/recurring-tasks.markdown b/doc/en_US/recurring-tasks.markdown deleted file mode 100644 index 404eefb2..00000000 --- a/doc/en_US/recurring-tasks.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Recurring tasks -=============== - -To fit with the Kanban methodology, the recurring tasks are not based on a date but on board events. - -- Recurring tasks are duplicated to the first column of the board when the selected events occur -- The due date can be recalculated automatically -- Each task records the task id of the parent task that created it and the child task created - -Configuration -------------- - -Go to the task view page or use the drop-down menu on the board, then select **Edit recurrence**. - -![Recurring task](../screenshots/recurring-tasks.png) - -There are 3 triggers that currently create a new recurring task: - -- Moving a task from the first column -- Moving a task to the last column -- Closing the task - -Due dates, if set on the current task, can be recalculated by a given factor of days, months or years. -The base date for the calculation of the new due date can be either the existing due date, or the action date. diff --git a/doc/en_US/removing-projects.markdown b/doc/en_US/removing-projects.markdown deleted file mode 100644 index f390b865..00000000 --- a/doc/en_US/removing-projects.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Removing Projects -================= - -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 Projects](../screenshots/project-remove.png) - -Removing a project removes all tasks that belong to this project. diff --git a/doc/en_US/requirements.markdown b/doc/en_US/requirements.markdown deleted file mode 100644 index 6a931912..00000000 --- a/doc/en_US/requirements.markdown +++ /dev/null @@ -1,110 +0,0 @@ -Requirements -============ - -Server side ------------ - -### Compatible Operating Systems - -| Operating System | -|--------------------------------------| -| Linux Ubuntu Xenial Xerus 16.04 LTS | -| Linux Centos 7.x | -| Linux Redhat 7.x | -| Linux Debian 9 | -| FreeBSD 10.x | -| Microsoft Windows 2016 | -| Microsoft Windows 2012 R2 | - -### Compatible Databases - -| Database | -|--------------------| -| Sqlite >= 3.7 | -| Mysql >= 5.5 | -| MariaDB >= 10 | -| Postgresql >= 9.3 | - -Which database to choose? - -| Type | Usage | -|-----------------|-----------------------------------------------------| -| Sqlite | Single user or small team (almost no concurrency) | -| Mysql/Postgres | Larger team, high-availability configuration | - -Do not use Sqlite on NFS mounts, only when you have a disk with fast I/O. - -### Compatible Web Servers - -| Web Server | -|--------------------| -| Apache HTTP Server | -| Nginx | -| Microsoft IIS | -| Caddy Server | - -Kanboard is pre-configured to work with Apache (URL rewriting). - -- Kanboard is NOT compatible with Apache `mod_security`. -- If you use Apache, you must have the module `mod_version`. - -### PHP Versions - -| PHP Version | -|----------------| -| PHP >= 5.6.0 | - -Since the version 1.2, Kanboard requires at least PHP 5.6. - -### PHP Extensions Required - -| PHP Extension | Note | -|----------------------------|-------------------------------| -| pdo_sqlite | Only if you use Sqlite | -| pdo_mysql | Only if you use Mysql/MariaDB | -| pdo_pgsql | Only if you use Postgres | -| gd | | -| mbstring | | -| openssl | | -| json | | -| hash | | -| ctype | | -| session | | -| filter | | -| xml | | -| SimpleXML | | -| dom | | - -### Optional PHP extensions - -| PHP Extension | Note | -|----------------------------|--------------------------------------------| -| zip | Used to install plugins from Kanboard | -| ldap | Only for LDAP authentication | - -### Recommendations - -- Modern Linux or Unix operating system with the latest version of PHP. -- Best performances are obtained with the latest version of PHP with OpCode caching activated. - -Client side ------------ - -### Browsers - -Always use a modern browser with the latest version if possible: - -| Browser | -|---------------------------------------| -| Safari | -| Google Chrome | -| Mozilla Firefox | -| Microsoft Internet Explorer >= 11 | -| Microsoft Edge | - -### Devices - -| Device | Screen resolution | -|-------------------|--------------------| -| Laptop or desktop | >= 1366 x 768 | -| Tablet | >= 1024 x 768 | diff --git a/doc/en_US/reverse-proxy-authentication.markdown b/doc/en_US/reverse-proxy-authentication.markdown deleted file mode 100644 index 609bad7a..00000000 --- a/doc/en_US/reverse-proxy-authentication.markdown +++ /dev/null @@ -1,64 +0,0 @@ -Reverse Proxy Authentication -============================ - -This authentication method is often used for [SSO](http://en.wikipedia.org/wiki/Single_sign-on) (Single Sign-On) especially for large organizations. - -The authentication is done by another system, Kanboard doesn't know your password and suppose you are already authenticated. - -Requirements ------------- - -- A well-configured reverse proxy - -or - -- Apache Auth on the same server - - -How does this work? -------------------- - -1. Your reverse proxy authenticates the user and send the username through a HTTP header. -2. Kanboard retrieve the username from the request - - The user is created automatically if necessary - - Open a new Kanboard session without any prompt assuming it's valid - -Installation instructions -------------------------- - -### Setting up your reverse proxy - -This is not in the scope of this documentation. -You should check the user login is sent by the reverse proxy using a HTTP header, and find out which one. - -### Setting up Kanboard - -Create a custom `config.php` file or copy the `config.default.php` file: - -```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'); -``` - -Notes: - -- If the proxy is the same web server that runs Kanboard, according the [CGI protocol](http://www.ietf.org/rfc/rfc3875) the header name will be `REMOTE_USER`. By example, Apache add `REMOTE_USER` by default if `Require valid-user` is set. - -- If Apache is a reverse proxy to another Apache running Kanboard, the header `REMOTE_USER` is not set (same behavior with IIS and Nginx). - -- If you have a real reverse proxy, the [HTTP ICAP draft](http://tools.ietf.org/html/draft-stecher-icap-subid-00#section-3.4) proposes the header to be `X-Authenticated-User`. This de facto standard has been adopted by a number of tools. diff --git a/doc/en_US/roles.markdown b/doc/en_US/roles.markdown deleted file mode 100644 index caa4380d..00000000 --- a/doc/en_US/roles.markdown +++ /dev/null @@ -1,26 +0,0 @@ -User Roles -========== - -Application Roles ------------------ - -Each Kanboard user has one of these roles: - -| Role | Description | -|---------------|-----------------------------------------------------------------| -| Administrator | Access to everything | -| Manager | Can create team projects but cannot change application settings | -| User | Can create private projects only | - -Project Roles -------------- - -Each individual team project can assign a different role to each user and group: - -| Role | Description | -|-----------------|----------------------------------------------------------------------| -| 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/en_US/rss.markdown b/doc/en_US/rss.markdown deleted file mode 100644 index 2687efdf..00000000 --- a/doc/en_US/rss.markdown +++ /dev/null @@ -1,23 +0,0 @@ -RSS/Atom subscriptions -====================== - -Kanboard supports RSS feeds for projects and users. - -- Project feeds contains only the activity the project -- User feeds contains the activity stream of all projects the user is a member - -Those subscriptions are only activated when the public access is enabled in the user profile or in the project settings. - -Enable/disable project RSS feeds --------------------------------- - -Go to **Project settings > Public access**. - -![Disable public access](../screenshots/project-disable-sharing.png) - -Enable/disable user RSS feeds --------------------------------- - -Go to **User profile > Public access**. - -The RSS link is protected by a random token, only people who know the URL can access to the feed. diff --git a/doc/en_US/screenshots.markdown b/doc/en_US/screenshots.markdown deleted file mode 100644 index ffebeb8f..00000000 --- a/doc/en_US/screenshots.markdown +++ /dev/null @@ -1,25 +0,0 @@ -Adding screenshots -================== - -You can copy and paste images directly in Kanboard to save time. -These images are uploaded as attachments to the task. - -This is especially useful for taking screenshots to describe an issue for example. - -You can add screenshots directly from the board by clicking on the dropdown menu or in the task view page. - -![Drop-down screenshot menu](../screenshots/dropdown-screenshot.png) - -To add a new image, take your screenshot and paste with CTRL+V or Command+V: - -![Screenshot page](../screenshots/task-screenshot.png) - -On Mac OS X, you can use those shortcuts to take screenshots: - -- Command-Control-Shift-3: Take a screenshot of the screen, and save it to the clipboard -- Command-Control-Shift-4, then select an area: Take a screenshot of the area and save it to the clipboard -- Command-Control-Shift-4, then space, then click a window: Take a screenshot of a window and save it to the clipboard - -There are also several third-party applications that can be used to take screenshots with annotations and shapes. - -**Note: This feature doesn't work with all browsers.** It doesn't work with Safari due to this bug: https://bugs.webkit.org/show_bug.cgi?id=49141 diff --git a/doc/en_US/search.markdown b/doc/en_US/search.markdown deleted file mode 100644 index 146d62bd..00000000 --- a/doc/en_US/search.markdown +++ /dev/null @@ -1,201 +0,0 @@ -Advanced Search Syntax -====================== - -Kanboard uses a simple query language for advanced search. -You can search in tasks, comments, subtasks, links but also in the activity stream. - -Example of query ----------------- - -This example will return all tasks assigned to me with a due date for tomorrow and a title that contains "my title": - -``` -assigne:me due:tomorrow my title -``` - -Global search -------------- - -### Search by task id or title - -- Search by task id: `#123` -- Search by task id and task title: `123` -- Search by task title: anything that doesn't match any search attributes - -### Search by status - -Attribute: **status** - -- Query to find open tasks: `status:open` -- Query to find closed tasks: `status:closed` - -### 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"` -- Query for unassigned tasks: `assignee:nobody` -- Query for my assigned tasks: `assignee:me` - -### Search by task creator - -Attribute: **creator** - -- Tasks created by myself: `creator:me` -- Tasks created by John Doe: `creator:"John Doe"` -- Tasks created by the user id #1: `creator:1` - -### Search by subtask assignee - -Attribute: **subtask:assignee** - -- Example: `subtask:assignee:"John Doe"` - -### Search by color - -Attribute: **color** - -- Query to search by color id: `color:blue` -- Query to search by color name: `color:"Deep Orange"` - -### Search by the due date - -Attribute: **due** - -- 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` -- Search tasks without a due date: `due:none` - -The date must use the ISO 8601 format: **YYYY-MM-DD**. - -All string formats supported by the `strtotime()` function are supported, for example `next Thursday`, `-2 days`, `+2 months`, `tomorrow`, etc. - -Operators supported with a date: - -- 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 modification date - -Attribute: **modified** or **updated** - -The date formats are the same as the due date. - -There is also a filter by recently modified tasks: `modified:recently`. - -This query will use the same value as the board highlight period configured in settings. - -### Search by creation date - -Attribute: **created** - -Works in the same way as the modification date queries. - -### Search by start date - -Attribute: **started** - -### Search by description - -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. - -- Find tasks with a reference: `ref:1234` or `reference:TICKET-1234` -- Wildcard search: `ref:TICKET-*` - -### Search by category - -Attribute: **category** - -- Find tasks with a specific category: `category:"Feature Request"` -- Find all tasks that have those categories: `category:"Bug" category:"Improvements"` -- Find tasks with no category assigned: `category:none` - -### Search by project - -Attribute: **project** - -- Find tasks by project name: `project:"My project name"` -- Find tasks by project id: `project:23` -- Find tasks for several projects: `project:"My project A" project:"My project B"` - -### Search by columns - -Attribute: **column** - -- Find tasks by column name: `column:"Work in progress"` -- Find tasks for several columns: `column:"Backlog" column:ready` - -### Search by swim-lane - -Attribute: **swimlane** - -- Find tasks by swim-lane: `swimlane:"Version 42"` -- Find tasks into several swim-lanes: `swimlane:"Version 1.2" swimlane:"Version 1.3"` - -### Search by task link - -Attribute: **link** - -- Find tasks by link name: `link:"is a milestone of"` -- Find tasks into several links: `link:"is a milestone of" link:"relates to"` - -### Search by comment - -Attribute: **comment** - -- Find comments that contains this title: `comment:"My comment message"` - -### Search by tags - -Attribute: **tag** - -- Example: `tag:"My tag"` - -### Search by score/complexity - -Attribute: **score** or **complexity** - -- `score:>=21` -- `complexity:8` - -Activity stream search ----------------------- - -### Search events by task title - -Attribute: **title** or none (default) - -- Example: `title:"My task"` -- Search by task id: `#123` - -### Search events by task status - -Attribute: **status** - -### Search by event creator - -Attribute: **creator** - -### Search by event creation date - -Attribute: **created** - -### Search events by project - -Attribute: **project** diff --git a/doc/en_US/sharing-projects.markdown b/doc/en_US/sharing-projects.markdown deleted file mode 100644 index 062e1161..00000000 --- a/doc/en_US/sharing-projects.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Sharing boards and tasks -======================== - -By default, boards are private, but it's possible to make a board public. - -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 mode. - -Usage examples: - -- Share your board with someone outside of your organization -- Display the board on a large screen in your office - -Enable public access --------------------- - -Select your project, then click on "Public access" and finally click on the button "Enable public access". - -![Enable public access](../screenshots/project-enable-sharing.png) - -When public access is enabled, a couple of links are generated: - -- Public board view -- RSS feed subscription link -- iCalendar subscription link - -![Disable public access](../screenshots/project-disable-sharing.png) - -You can also disable public access whenever you want. - -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/en_US/solving-blank-page-issue.markdown b/doc/en_US/solving-blank-page-issue.markdown deleted file mode 100644 index c24e1f6c..00000000 --- a/doc/en_US/solving-blank-page-issue.markdown +++ /dev/null @@ -1,7 +0,0 @@ -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/en_US/solving-database-migration-issues.markdown b/doc/en_US/solving-database-migration-issues.markdown deleted file mode 100644 index ddd39db6..00000000 --- a/doc/en_US/solving-database-migration-issues.markdown +++ /dev/null @@ -1,23 +0,0 @@ -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/<DatabaseType>.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/en_US/solving-session-issue-windows-iis-ie.markdown b/doc/en_US/solving-session-issue-windows-iis-ie.markdown deleted file mode 100644 index 1ad3124b..00000000 --- a/doc/en_US/solving-session-issue-windows-iis-ie.markdown +++ /dev/null @@ -1,19 +0,0 @@ -I'm not able to login with Internet Explorer and Microsoft IIS -============================================================== - -If you are not able to login and always get the error **"Username or password required"** even if you have entered the right credentials, -that means there is a problem with the session. - -For example, this is a known issue if you meet these criteria: - -- You are using a domain name with an underscore: `kanboard_something.mycompany.tld` -- You are using Microsoft Windows Server and IIS -- Your browser is Internet Explorer - -Solution: **Do not use underscore in the domain name because this is not a valid domain name**. - -Explanation: Internet Explorer doesn't accept cookies with a domain name with underscores because it's not valid. - -Reference: - -- https://support.microsoft.com/en-us/kb/316112 diff --git a/doc/en_US/sqlite-database.markdown b/doc/en_US/sqlite-database.markdown deleted file mode 100644 index 0a6a0ab6..00000000 --- a/doc/en_US/sqlite-database.markdown +++ /dev/null @@ -1,50 +0,0 @@ -Sqlite database management -========================== - -Kanboard uses Sqlite by default to store its data. -All tasks, projects and users are stored inside this database. - -Technically, the database is just a single file located inside the directory `data` and named `db.sqlite`. - -Export/Backup -------------- - -### Command line - -Doing a backup is very easy, just copy the file `data/db.sqlite` somewhere else when nobody use the software. - -### User interface - -You can also download at any time the database directly from the **settings** menu. - -The downloaded database is compressed with Gzip, the filename becomes `db.sqlite.gz`. - -Import/Restoration ------------------- - -There is actually no way to restore the database from the user interface. -The restoration must be done manually when no body use the software. - -- To restore an old backup, just replace and overwrite the actual file `data/db.sqlite`. -- To uncompress a gzipped database, execute this command from a terminal `gunzip db.sqlite.gz`. - -Optimization ------------- - -Occasionally, it's possible to optimize the database file by running the command `VACUUM`. -This command rebuild the entire database and can be used for several reasons: - -- Reduce the file size, deleting data produce empty space but doesn't change the file size. -- The database is fragmented due to frequent inserts or updates. - -### From the command line - -``` -sqlite3 data/db.sqlite 'VACUUM' -``` - -### From the user interface - -Go to the menu **settings** and click on the link **Optimize the database**. - -For more information, read the [Sqlite documentation](https://sqlite.org/lang_vacuum.html). diff --git a/doc/en_US/subtasks.markdown b/doc/en_US/subtasks.markdown deleted file mode 100644 index 24bc3963..00000000 --- a/doc/en_US/subtasks.markdown +++ /dev/null @@ -1,44 +0,0 @@ -Subtasks -======== - -Subtasks are useful to split the work of a task. - -Each subtask: - -- Can be assigned to a project member -- Have 3 different statuses: **Todo**, **In progress**, **Done** -- Have time tracking information: **time spent** and **time estimated** -- Be ordered by position - -Creating subtasks ------------------ - -From the task view, on left sidebar click on **Add a subtask**: - -![Add a subtask](../screenshots/add-subtask.png) - -You can also add a subtask quickly by entering only the title: - -![Add a subtask from the task view](../screenshots/add-subtask-shortcut.png) - -Change subtask status ---------------------- - -When you click on the subtask title the status change: - -![Subtask in progress](../screenshots/subtask-status-inprogress.png) - -The icon before the title is updated according to the status. - -![Subtask done](../screenshots/subtask-status-done.png) - -Note: When the task is closed, all subtasks are changed to the status **Done**. - -Subtask timer -------------- - -- Each time a subtask is in progress, the timer is also started. The timer can be started and stopped at any time. -- The timer records the time spent on the subtask automatically. You can also change manually the value of the time spent field when you edit a subtask. -- The time calculated is rounded to the nearest quarter. This information is recorded in a separate table. -- The task time spent and time estimated is updated automatically according to the sum of all subtasks. - diff --git a/doc/en_US/suse-installation.markdown b/doc/en_US/suse-installation.markdown deleted file mode 100644 index 5ee6688b..00000000 --- a/doc/en_US/suse-installation.markdown +++ /dev/null @@ -1,30 +0,0 @@ -Installation on OpenSuse -======================== - -OpenSuse Leap 42.3 ------------------- - -```bash -# install required packages -sudo zypper install apache2-mod_php7 php7-openssl php7-gd php7-mbstring php7-mcrypt php7-mysql php7-xmlrpc php7-ctype php7-json - -# enable php7 -sudo a2enmod php7 - -cd /srv/www/htdocs - -# Download the latest release from https://github.com/kanboard/kanboard/releases - -sudo wget https://github.com/kanboard/kanboard/archive/v<version>.zip -sudo unzip kanboard-<version>.zip - -# Add permissions -sudo chown -R wwwrun /srv/www/htdocs/kanboard-<version>/data - -# restart apache -sudo rcapache2 restart - -# cleanup -sudo rm kanboard-<version>.zip -``` - diff --git a/doc/en_US/swimlanes.markdown b/doc/en_US/swimlanes.markdown deleted file mode 100644 index 8003ac41..00000000 --- a/doc/en_US/swimlanes.markdown +++ /dev/null @@ -1,31 +0,0 @@ -Swimlanes -========= - -Swimlanes are horizontal separations in your board. -For example, it's useful to separate software releases, divide your tasks in different products, teams or whatever you want. - -Board with swimlanes --------------------- - -![Swimlanes](../screenshots/swimlanes.png) - -- You can collapse swimlanes by clicking on the icon on the left -- The default swimlane is always shown at the top - -Managing swimlanes ------------------- - -- All projects have a default swimlane. -- If there is more than one swimlane, the board will show all swimlanes. -- You can drag and drop tasks between swimlanes. - -To configure swimlanes go to the **project configuration page** and choose the section **Swimlanes**. - -![Swimlanes Configuration](../screenshots/swimlane-configuration.png) - -From there, you can add a new swimlane or rename the default one. -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/en_US/syntax-guide.markdown b/doc/en_US/syntax-guide.markdown deleted file mode 100644 index 951523ad..00000000 --- a/doc/en_US/syntax-guide.markdown +++ /dev/null @@ -1,139 +0,0 @@ -Syntax Guide -============ - -Kanboard use the [Markdown syntax](http://en.wikipedia.org/wiki/Markdown) for comments or task descriptions. -Here are some examples: - -Bold and italic ----------------- - -- Bold text: Use 2 asterisks or 2 underscores -- Italic text: Use 1 asterisk or 1 underscore - -### 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 ---------------- - -Unordered list can use asterisks, minuses or pluses. - -### Source - -``` -- Item 1 -- Item 2 -- Item 3 - -or - -* Item 1 -* Item 2 -* Item 3 -``` - -### Result - -- Item 1 -- Item 2 -- Item 3 - -Ordered lists -------------- - -Ordered lists are prefixed by a number like that: - -### Source - -``` -1. Do that first -2. Do this -3. And that -``` - -### Result - -1. Do that first -2. Do this -3. And that - -Links ------ - -### Source - -``` -[My link title](https://kanboard.org/) - -<https://kanboard.org> - -``` - -### Result - -[My link title](https://kanboard.org/) - -<https://kanboard.org> - -Source code ------------ - -### Inline code - -Use a backtick. - -``` -Execute this command: `tail -f /var/log/messages`. -``` - -### Result - -Execute this command: `tail -f /var/log/messages`. - -### Code blocks - -Use 3 backticks with eventually the language name. - -<pre> -<code class="language-markdown">```php -<?php - -phpinfo(); - -?> -``` -</code> -</pre> - -### Result - -``` -<?php - -phpinfo(); - -?> -``` - -Titles ------- - -### Source - -``` -# Title level 1 - -## Title level 2 - -### Title level 3 -``` diff --git a/doc/en_US/tags.markdown b/doc/en_US/tags.markdown deleted file mode 100644 index dfe793da..00000000 --- a/doc/en_US/tags.markdown +++ /dev/null @@ -1,28 +0,0 @@ -Tags -==== - -With Kanboard, you can associate one or many tags to a task. -You can define tags globally for all projects or only for a specific project. - -![Tags on the board](../screenshots/tags-board.png) - -From the task form, you can enter the desired tags: - -![Tags form](../screenshots/tags-task.png) - -The auto-completion form will show up to suggest available tags. - -You can also create tags directly from the task form. -By default, when you create tags from a task form they are associated to the current project: - -![Project Tags](../screenshots/tags-projects.png) - -All tags can be managed in the project settings. - -To define tags globally for all projects, go to the application settings: - -![Global Tags](../screenshots/tags-global.png) - -To search tasks based on tags, just use the attribute "tag": - -![Search Tags](../screenshots/tags-search.png) diff --git a/doc/en_US/task-links.markdown b/doc/en_US/task-links.markdown deleted file mode 100644 index 15ce03f2..00000000 --- a/doc/en_US/task-links.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Internal Task Links -=================== - -Tasks can be linked together with pre-defined relationships: - -![Task Links](../screenshots/internal-task-links.png) - -This is also possible to link tasks across projects. - -The default relationships are: - -- **relates to** -- **blocks** | is blocked by -- **is blocked by** | blocks -- **duplicates** | is duplicated by -- **is duplicated by** | duplicates -- **is a child of** | is a parent of -- **is a parent of** | is a child of -- **targets milestone** | is a milestone of -- **is a milestone of** | targets milestone -- **fixes** | is fixed by -- **is fixed by** | fixes - -Those labels can be changed in the application settings. diff --git a/doc/en_US/tests.markdown b/doc/en_US/tests.markdown deleted file mode 100644 index 59177f87..00000000 --- a/doc/en_US/tests.markdown +++ /dev/null @@ -1,154 +0,0 @@ -Automated tests -=============== - -[PHPUnit](https://phpunit.de/) is used to run automated tests on Kanboard. - -You can run tests across different databases (Sqlite, Mysql and Postgresql) to be sure that the result is the same everywhere. - -Requirements ------------- - -- Linux/Unix machine -- PHP -- PHPUnit installed -- Mysql and Postgresql (optional) -- Selenium (optional) -- Firefox (optional) - -Unit Tests ----------- - -### Test with Sqlite - -Sqlite tests use a in-memory database, nothing is written on the file system. - -The PHPUnit config file is `tests/units.sqlite.xml`. -From your Kanboard directory, run the command `phpunit -c tests/units.sqlite.xml`. - -Example: - -```bash -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) -``` - -### Test with Mysql - -You must have Mysql or MariaDb installed on localhost. - -By default, those credentials are used: - -- Hostname: **localhost** -- Username: **root** -- Password: none -- Database: **kanboard_unit_test** - -For each execution the database is dropped and created again. - -The PHPUnit config file is `tests/units.mysql.xml`. -From your Kanboard directory, run the command `phpunit -c tests/units.mysql.xml`. - -### Test with Postgresql - -You must have Postgresql installed on localhost. - -By default, those credentials are used: - -- Hostname: **localhost** -- Username: **postgres** -- Password: none -- Database: **kanboard_unit_test** - -Be sure to allow the user `postgres` to create and drop databases. -The database is recreated for each execution. - -The PHPUnit config file is `tests/units.postgres.xml`. -From your Kanboard directory, run the command `phpunit -c tests/units.postgres.xml`. - -Integration Tests ------------------ - -Integration tests are mainly used to test the API. -The test suites are making real HTTP calls to the application that run inside a container. - -### Requirements - -- PHP -- Composer -- Unix operating system (Mac OS or Linux) -- Docker -- Docker Compose - -### Running integration tests - -Integration tests are using Docker containers. -There are 3 different environment available to run tests against each supported database. - -You can use these commands to run each test suite: - -```bash -# Run tests with Sqlite -make integration-test-sqlite - -# Run tests with Mysql -make integration-test-mysql - -# Run tests with Postgres -make integration-test-postgres -``` - -Acceptance Tests ----------------- - -Acceptance tests (also sometimes known as end-to-end tests, and functional tests) test the actual functionality of the UI in a browser using Selenium. - -In order to run these tests you must have [Selenium Standalone Server](http://www.seleniumhq.org/download/) installed, and a compatible version of Firefox. - -The PHPUnit config file is `tests/acceptance.xml`. -With Selenium and the Kanboard app running, from your Kanboard directory, run the command `make test-browser`. This will initiate the testing suite and you will see Firefox open automatically and perform the actions specified in the acceptance tests. - -Example: - -```bash -$ make test-browser -PHPUnit 4.8.26 by Sebastian Bergmann and contributors. - -.. - -Time: 5.59 seconds, Memory: 5.25MB - -OK (2 tests, 5 assertions) -``` - - -Continuous Integration with Travis-CI -------------------------------------- - -After each commit pushed on the main repository, unit tests are executed across 5 different versions of PHP: - -- PHP 7.0 -- PHP 5.6 -- PHP 5.5 -- PHP 5.4 -- PHP 5.3 - -Each version of PHP is tested against the 3 supported database: Sqlite, Mysql and Postgresql. - -The Travis config file `.travis.yml` is located on the root directory of Kanboard. diff --git a/doc/en_US/time-tracking.markdown b/doc/en_US/time-tracking.markdown deleted file mode 100644 index d8f5dbf2..00000000 --- a/doc/en_US/time-tracking.markdown +++ /dev/null @@ -1,43 +0,0 @@ -Time Tracking -============= - -Time tracking information can be defined at the task level or at the subtask level. - -Task time tracking ------------------- - -![Task time tracking](../screenshots/task-time-tracking.png) - -Tasks have two fields: - -- Time estimated -- Time spent - -These values represent hours of work and have to be set manually. - -Subtask time tracking ---------------------- - -![Subtask time tracking](../screenshots/subtask-time-tracking.png) - -Subtasks also have the fields "time spent" and "time estimated". - -When you change the value of these fields, **the task time tracking values are updated automatically and becomes the sum of all subtask values**. - -Kanboard records the time between each subtask status change in a separate table. - -- Changing subtask status from **todo** to **in pogress** logs the start time -- Changing subtask status from **in progress** to **done** logs the end time but also update the time spent of the subtask and the task - -The breakdown of all records is visible in the task view page: - -![Task timesheet](../screenshots/task-timesheet.png) - -For each subtask, the timer can be stopped/started at any time: - -![Subtask timer](../screenshots/subtask-timer.png) - -- The timer doesn't depend of the subtask status -- Each time you start the timer a new record is created in the time tracking table -- Each time you stop the clock the end date is recorded in the time tracking table -- The calculated time spent is rounded to the nearest quarter (only for Kanboard < 1.0.32) diff --git a/doc/en_US/transitions.markdown b/doc/en_US/transitions.markdown deleted file mode 100644 index d5fe9d63..00000000 --- a/doc/en_US/transitions.markdown +++ /dev/null @@ -1,14 +0,0 @@ -Task Transitions -================ - -Each movement of a task between columns is recorded in the database. - -![Task Transitions](../screenshots/task-transitions.png) - -Available from the task view, you can see that information: - -- Date of the action -- Source column -- Destination column -- Executor (users that moves the task) -- Time spent in the origin column diff --git a/doc/en_US/translations.markdown b/doc/en_US/translations.markdown deleted file mode 100644 index 66fd2a4c..00000000 --- a/doc/en_US/translations.markdown +++ /dev/null @@ -1,68 +0,0 @@ -Translations -============ - -How to translate Kanboard to a new language? --------------------------------------------- - -- Translations are stored inside the directory `app/Locale` -- There is a subdirectory for each language, for example in French we have `fr_FR`, Italian `it_IT` etc. -- A translation is a PHP file that returns an Array with a key-value pairs -- The key is the original text in English and the value is the translation of the corresponding language -- **French translations are always up to date** -- Always use the last version (branch master) - -### Create a new translation: - -1. Make a new directory: `app/Locale/xx_XX` for example `app/Locale/fr_CA` for French Canadian -2. Create a new file for the translation: `app/Locale/xx_XX/translations.php` -3. Use the content of the French locales and replace the values -4. Update the file `app/Model/Language.php` -5. Check with your local installation of Kanboard if everything is OK -6. Send a [pull-request with Github](https://help.github.com/articles/using-pull-requests/) - -How to update an existing translation? --------------------------------------- - -1. Open the translation file `app/Locale/xx_XX/translations.php` -2. Missing translations are commented with `//` and the values are empty, just fill blank and remove the comment -3. Check with your local installation of Kanboard and send a [pull-request](https://help.github.com/articles/using-pull-requests/) - -How to add new translated text in the application? --------------------------------------------------- - -Translations are displayed with the following functions in the source code: - -- `t()`: display text with HTML escaping -- `e()`: display text without HTML escaping - -Always use the english version in the source code. - -Text strings use the function `sprintf()` to replace elements: - -- `%s` is used to replace a string -- `%d` is used to replace an integer - -All formats are available in the [PHP documentation](http://php.net/sprintf). - -How to find missing translations in the applications? ------------------------------------------------------ - -From a terminal, run the following command: - -```bash -./cli locale:compare -``` - -All missing and unused translations are displayed on the screen. -Put that in the French locale and sync other locales (see below). - -How to synchronize translation files? -------------------------------------- - -From a Unix shell run this command: - -```bash -./cli locale:sync -``` - -The French translation is used a reference to other locales. diff --git a/doc/en_US/ubuntu-installation.markdown b/doc/en_US/ubuntu-installation.markdown deleted file mode 100644 index f29219a2..00000000 --- a/doc/en_US/ubuntu-installation.markdown +++ /dev/null @@ -1,29 +0,0 @@ -Kanboard Installation on Ubuntu -=============================== - -Ubuntu Xenial 16.04 LTS ------------------------ - -Install Apache and PHP: - -```bash -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 php7.0-xml -``` - -Install Kanboard: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -- You might need to enable PHP extensions with the command `phpenmod`. -- Some features of Kanboard require that you run [a daily background job](cronjob.markdown). diff --git a/doc/en_US/update.markdown b/doc/en_US/update.markdown deleted file mode 100644 index dc2fb48e..00000000 --- a/doc/en_US/update.markdown +++ /dev/null @@ -1,53 +0,0 @@ -Upgrade Kanboard to a new version -================================= - -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!** -- Always read the [ChangeLog](https://github.com/kanboard/kanboard/blob/master/ChangeLog) for breaking changes -- Stop the worker if you use it -- Put the web server in maintenance mode to avoid people to use the software while upgrading - -From the archive (stable version) ---------------------------------- - -1. Decompress the new archive -2. Copy the `data` folder into the newly uncompressed directory -3. Copy your custom `config.php` if you have one -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 - -From the repository (development version) ------------------------------------------ - -1. `git pull` -2. Login and check if everything is ok - -- This method will install the **current development version**, use at your own risk. -- Do not update the software blindly without checking the [ChangeLog](https://github.com/kanboard/kanboard/blob/master/ChangeLog). - -Running SQL migrations manually -------------------------------- - -By default, SQL migrations are executed automatically. The schema version is checked at each request. -In this way, when you upgrade Kanboard to another version, the database schema is updated for you. -This method **is not perfect**. - -- **When you run the migrations, make sure only one process is accessing to the database** -- Put your Kanboard instance in "maintenance mode" to avoid people using the software while you are altering the database schema - -To disable this feature, set the parameter `DB_RUN_MIGRATIONS` at `false` in your [config file](config.markdown). - -When you will have to upgrade Kanboard, run this command: - -```bash -./cli db:migrate -``` diff --git a/doc/en_US/usage-examples.markdown b/doc/en_US/usage-examples.markdown deleted file mode 100644 index c200e082..00000000 --- a/doc/en_US/usage-examples.markdown +++ /dev/null @@ -1,67 +0,0 @@ -Usage Examples -============== - -You can customize your boards according to your business activities: - -Software development --------------------- - -- Backlog -- Ready -- Work-in-progress -- To be validated -- Validated -- Deployed in production - -Bug tracking ------------- - -- Reported -- Confirmed -- Work-in-progress -- Tested -- Fixed - -Sales ------ - -- Leads -- Meeting -- Proposal -- Purchase - -Lean business management ------------------------- - -- Ideas -- Development -- Measure -- Analysis -- Done - -Recruiting process ------------------- - -- Job offers -- Candidates -- Phone screens -- Interviews -- Hires - -Online shops ------------- - -- Orders -- Packaging -- Ready to send -- Shipped - -Manufactory ------------ - -- Customer Orders -- Assembly -- Tests -- Packaging -- Ready to ship -- Shipped diff --git a/doc/en_US/user-management.markdown b/doc/en_US/user-management.markdown deleted file mode 100644 index eaa80d56..00000000 --- a/doc/en_US/user-management.markdown +++ /dev/null @@ -1,35 +0,0 @@ -User Management -=============== - -Add a new user --------------- - -To add a new user, you must be an administrator. - -1. From the dropdown menu in the top right corner, go to the menu **Users Management** -2. On the top, you have a link **New local user** or **New remote user** -3. Fill the form and save - -![New user](../screenshots/new-user.png) - -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. - -Edit users ----------- - -When you go to the **users** menu, you have the list of users, to modify a user click on the **edit link**. - -- If you are a regular user, you can change only your own profile -- You have to be an administrator to be able to edit any users - -Remove users ------------- - -From the **users** menu, click on the link **remove**. This link is visible only if you are administrators. - -If you remove a specific user, **tasks assigned to this person will be unassigned** after the operation. diff --git a/doc/en_US/user-mentions.markdown b/doc/en_US/user-mentions.markdown deleted file mode 100644 index b49394ce..00000000 --- a/doc/en_US/user-mentions.markdown +++ /dev/null @@ -1,17 +0,0 @@ -User Mentions -============= - -Kanboard offers the possibility to send notifications when someone is mentioned. - -If you need to get the attention of someone in a comment or in a task, use the @ symbol followed by their username. -Kanboard will automatically suggest a list of users: - -![User Mention](../screenshots/user-mentions.png) - -- At the moment, only the task description and the comment text area have this feature enabled. -- The user mentions works only during tasks and comments creation. -- To be notified, mentioned users need to be a member of the project. -- When someone is mentioned, this user will receive a notification. -- The @username mention is linked to the public user profile. - -The notification is sent according to the user settings, it can be an email, a web notification or even a message on Slack/Hipchat/Jabber if you have installed the right plugins. diff --git a/doc/en_US/user-types.markdown b/doc/en_US/user-types.markdown deleted file mode 100644 index 8c88a7dd..00000000 --- a/doc/en_US/user-types.markdown +++ /dev/null @@ -1,14 +0,0 @@ -User Types -========== - -In Kanboard there are two types of users: - -| Type | Description | -|---------------|-----------------------------------------------------------------------| -| Local User | User that stores his password in Kanboard's database | -| Remote User | User credentials are managed by another system (Example: LDAP server) | - -Examples of remote users: - -- LDAP user -- Users authenticated by a reverse-proxy diff --git a/doc/en_US/vagrant.markdown b/doc/en_US/vagrant.markdown deleted file mode 100644 index 132ce5ed..00000000 --- a/doc/en_US/vagrant.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Run Kanboard with Vagrant -========================= - -You can try Kanboard with Vagrant very easily: - -- Clone the project from the git repository -- Execute `vagrant up` -- You can access to the application by using the URL `http://localhost:8001/` - -The virtual machine is based on Ubuntu 16.04 with PHP 7. diff --git a/doc/en_US/webhooks.markdown b/doc/en_US/webhooks.markdown deleted file mode 100644 index e43ab9ce..00000000 --- a/doc/en_US/webhooks.markdown +++ /dev/null @@ -1,487 +0,0 @@ -Webhooks -======== - -Webhooks are useful to perform actions with external applications. - -- Webhooks can be used to create a task by calling a simple URL (You can also do that with the API) -- An external URL can be called automatically when an event occurs in Kanboard (task creation, comment updated, etc) - -How to write a web hook receiver? ---------------------------------- - -All internal events of Kanboard can be sent to an external URL. - -- The web hook URL has to be defined in **Settings > Webhooks > Webhook URL**. -- When an event is triggered Kanboard calls the pre-defined URL automatically -- The data are encoded in JSON format and sent with a POST HTTP request -- The web hook token is also sent as a query string parameter, so you can check if the request really comes from Kanboard. -- **Your custom URL must answer in less than 1 second**, those requests are synchronous (PHP limitation) and that can slow down the user interface if your script is too slow! - -### 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 - -### 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": "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" - } -} -``` - -All event payloads are in the following format: - -```json -{ - "event_name": "model.event_name", - "event_data": { - "key1": "value1", - "key2": "value2", - ... - } -} -``` - -The `event_data` values are not necessary normalized across events. - -### Examples of event payloads - -Task creation: - -```json -{ - "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 - } - } -} -``` - -Task modification: - -```json -{ - "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. - -Comment creation: - -```json -{ - "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 - } - } -} -``` - -Subtask creation: - -```json -{ - "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 - } - } -} -``` - -File upload: - -```json -{ - "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 - } - } -} -``` - -Task link creation: - -```json -{ - "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 - } - } -} -``` diff --git a/doc/en_US/what-is-kanban.markdown b/doc/en_US/what-is-kanban.markdown deleted file mode 100644 index de8377b2..00000000 --- a/doc/en_US/what-is-kanban.markdown +++ /dev/null @@ -1,32 +0,0 @@ -What is Kanban? -=============== - -Kanban is a methodology originally developed by Toyota to be more efficient. - -There are only two constraints imposed by Kanban: - -- Visualize your workflow -- Limit your work in progress - -Visualize your workflow ------------------------ - -- 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 - -Limit your work in progress ----------------------------------- -- 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 - -Performance Measurement -======================= - -Kanban uses lead and cycle times to measure performance: - -- **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 but only have to work 1 hour to complete the task. diff --git a/doc/en_US/windows-apache-installation.markdown b/doc/en_US/windows-apache-installation.markdown deleted file mode 100644 index 27b6812e..00000000 --- a/doc/en_US/windows-apache-installation.markdown +++ /dev/null @@ -1,130 +0,0 @@ -Installation on Windows Server and Apache -========================================= - -This guide will help you to setup step by step Kanboard on a Windows Server with Apache and PHP. - -Note: If you have a 64 bits platform choose "x64" otherwise choose "x86" for 32-bit systems. - -Visual C++ Redistributable Installation ---------------------------------------- - -PHP and Apache are compiled with Visual Studio so you need to install this library if it's not already done. - -1. Download the library from the [official Microsoft website](http://www.microsoft.com/en-us/download/details.aspx?id=30679) -2. Run the installer `vcredist_x64.exe` or `vcredist_x86.exe` according to your platform - -Apache installation -------------------- - -1. Download Apache binary from [Apache Lounge](http://www.apachelounge.com/download/) -2. Unzip the Apache24 folder to `C:\Apache24` - -### Define the server name - -Open the file `C:\Apache24\conf\httpd.conf` and add the directive: - -``` -ServerName localhost -``` - -### Install the Apache service - -Open a command prompt (`cmd.exe`) and go to the directory `C:\Apache24\bin`: - -```bash -cd C:\Apache24\bin - -# Install the windows service -httpd.exe -k install -``` - -### Install ApacheMonitor - -- Double click on `C:\Apache24\bin\ApacheMonitor.exe`, or put it in your startup folder. -- Right click on the icon and start Apache - -### Check the Apache installation - -Go to http://localhost/ you should see a blank page with the text "It works!". - -PHP installation ----------------- - -1. Download the last stable version of PHP from the [official PHP website](http://windows.php.net/download/), choose the **Thread Safe** version and use the exact same build type as Apache: x86 or x64 -2. Unzip the files to `C:\php` -3. Navigate to the PHP folder and rename the file `php.ini-production` to `php.ini` - -Edit the `php.ini`: - -Uncomment extension directory: - -```ini -extension_dir = "C:/php/ext" -``` - -Uncomment these PHP modules: - -```ini -extension=php_gd2.dll -extension=php_ldap.dll -extension=php_mbstring.dll -extension=php_openssl.dll -extension=php_pdo_sqlite.dll -``` - -Set the time zone: - -```ini -date.timezone = America/Montreal -``` - -The list of supported time zones can be found in the [PHP documentation](http://php.net/manual/en/timezones.america.php). - -Load the PHP module for Apache: - -Add this configuration in the file `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 -``` - -Restart Apache. - -Test your PHP installation: - -Create a file named `phpinfo.php` in the folder `C:\Apache24\htdocs`: - -```php -<?php - -phpinfo(); - -?> -``` - -Go to http://localhost/phpinfo.php and should see all information about your PHP installation. - -Kanboard installation ---------------------- - -- Download the zip file -- Decompress the archive in `C:\Apache24\htdocs\kanboard` by example -- Open your web browser to use Kanboard http://localhost/kanboard/ -- The default credentials are **admin/admin** - -Tested configuration --------------------- - -- Windows 2008 R2 / Apache 2.4.12 / PHP 5.6.8 - -Notes ------ - -- Some features of Kanboard require that you run [a daily background job](cronjob.markdown). diff --git a/doc/en_US/windows-iis-installation.markdown b/doc/en_US/windows-iis-installation.markdown deleted file mode 100644 index 26ce178f..00000000 --- a/doc/en_US/windows-iis-installation.markdown +++ /dev/null @@ -1,67 +0,0 @@ -Installation on Windows 2008/2012 with IIS -========================================== - -This guide will help you to setup step by step Kanboard on a Windows Server with IIS and PHP. - -PHP installation ----------------- - -- Install IIS on your server (Add a new role and don't forget to enable CGI/FastCGI) -- Install PHP by following the official documentation: - - [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 - -You need at least, these extensions in your `php.ini`: - -```ini -extension=php_gd2.dll -extension=php_ldap.dll -extension=php_mbstring.dll -extension=php_openssl.dll -extension=php_pdo_sqlite.dll -``` - -The complete list of required PHP extensions is available on the [requirements page](requirements.markdown) - -Do not forget to set the time zone: - -```ini -date.timezone = America/Montreal -``` - -The list of supported time zones can be found in the [PHP documentation](http://php.net/manual/en/timezones.america.php). - -Notes: - -- If you use PHP < 5.4, you have to enable the short tags in your php.ini -- Don't forget to enable the required php extensions mentioned above -- If you got an error about "the library MSVCP110.dll is missing", you probably need to download the Visual C++ Redistributable for Visual Studio from the Microsoft website. - -IIS Modules ------------ - -The Kanboard archive contains a `web.config` file to enable [URL rewriting](nice-urls.markdown). -This configuration require the [Rewrite module for IIS](http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module). - -If you don't have the rewrite module, you will get an internal server error (500) from IIS. -If you don't want to have Kanboard with nice URLs, you can remove the file `web.config`. - -Kanboard installation ---------------------- - -- Download the zip file -- Decompress the archive in `C:\inetpub\wwwroot\kanboard` by example -- Make sure the directory `data` is writable by the IIS user -- Open your web browser to use Kanboard http://localhost/kanboard/ -- The default credentials are **admin/admin** -- [URL rewrite configuration](nice-urls.markdown) - -Notes ------ - -- Some features of Kanboard require that you run [a daily background job](cronjob.markdown). - diff --git a/doc/en_US/worker.markdown b/doc/en_US/worker.markdown deleted file mode 100644 index b4ba4271..00000000 --- a/doc/en_US/worker.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Background Workers -================== - -**This feature is experimental**. - -Depending on your configuration, some features can slow down the application if they are executed in the same process as the HTTP request. -Kanboard can delegate these tasks to a background worker that listen for incoming events. - -Example of feature that may slow down Kanboard: - -- Sending emails via an external SMTP server can take several seconds -- Sending notifications to external services - -This feature is optional and require the installation of a queue daemon on your server. - -### Beanstalk - -[Beanstalk](http://kr.github.io/beanstalkd/) is a simple, fast work queue. - -- To install Beanstalk, you can simply use the package manager of your Linux distribution -- Install the [Kanboard plugin for Beanstalk](https://github.com/kanboard/plugin-beanstalk) -- Start the worker with the Kanboard command line tool: `./cli worker` - -### RabbitMQ - -[RabbitMQ](https://www.rabbitmq.com/) is a robust messaging system that is more suitable for high-availability infrastructure. - -- Follow the official documentation of RabbitMQ for the installation and the configuration -- Install the [Kanboard plugin for RabbitMQ](https://github.com/kanboard/plugin-rabbitmq) -- Start the worker with the Kanboard command line tool: `./cli worker` - -### Notes - -- You should start the Kanboard worker with a process supervisor (systemd, upstart or supervisord) -- The process must have access to the data folder if you store files on the local filesystem or use Sqlite diff --git a/doc/es_ES/2fa.markdown b/doc/es_ES/2fa.markdown deleted file mode 100644 index caf8f0c8..00000000 --- a/doc/es_ES/2fa.markdown +++ /dev/null @@ -1,33 +0,0 @@ -Autentificación Two-Factor
-==========================
-
-Cada usuario puede habilitar el [two-factor authentication](http://en.wikipedia.org/wiki/Two_factor_authentication).
-Antes de un logeo exitoso, un codigo one-time de (6 caracteres) se le pide a el usuaio para permitir el acceso a kanboard.
-
-Este codigo tiene que ser proporcionado por un software compatible generalmente instalado en tu smartphone
-
-Kanboard usa el [Time-based One-time Password Algorithm](http://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm) definido en el [RFC 6238](http://tools.ietf.org/html/rfc6238).
-
-Existen muchos softwares compatibles con el standard del sistema TOTP.
-Por ejemplo, tu puedes usar estas aplicaciones libres y de open source:
-
-- [Google Authenticator](https://github.com/google/google-authenticator/) (Android, iOS, Blackberry)
-- [FreeOTP](https://freeotp.github.io/) (Android, iOS)
-- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/) (Utilidad en linea de comandos Unix/Linux
-
-Este sistema puede trabajar offline y no es necesario tener un telefono movil
-
-Instalacion
------------
-
-1. Ir a tu perfil de usuario
-2. Click a la izquierda en **Two factor authentication** y selecionar la caja
-3. Una key secret es geradada para ti
-
-![2FA](../screenshots/2fa.png)
-
-- Tienes que salvar la key secret en tu software TOTP. Si usas un smartphone, la solución sera mas fácil ya que puedes escanear el Qr code con FreeOTP o Google Authenticator.
-- Cada vez que abras una nueva session , un nuevo código se pedirá.
-- No se olvide de verficar el dispositivo antes de cerrar la sesión
-
-Una nueva key secret es generada cada vez que actives o desactives esta función
\ No newline at end of file diff --git a/doc/es_ES/analytics-tasks.markdown b/doc/es_ES/analytics-tasks.markdown deleted file mode 100644 index 49299fbb..00000000 --- a/doc/es_ES/analytics-tasks.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Análisis para tareas -=================== - -Cada tarea tiene una sección de análisis disponible en el menu izquierdo en la vista de tarea. - -Espera y tiempo de ciclo -------------------- - -![Lead and cycle time](../screenshots/task-lead-cycle-time.png) - -- El tiempo de espera es el tiempo entre la creacion de la tarea y la fecha de finalización (Tarea cerrada). -- El tiempo de ciclo es el tiempo entre la fecha de inicio y la fecha de finalización. -- Si la tarea no esta cerrada el tiempo actual es usado en lugar de la fecha de finalización. -- Si la fecha de inicio no es especificada, el tiempo de ciclo no es calculado. - -Nota: Puede configurar una accion automatica para definir la fecha de inicio automaticamente cuando se mueve una tarea a la columna de su eleccion. - -El tiempo invertido en cada columna ---------------------------- - -![Time spent into each column](../screenshots/time-into-each-column.png) - -- Esta gráfico muestra el total de tiempo invertido en cada columna para la tarea. -- El tiempo invertido es calculado hasta que la tarea es cerrada. diff --git a/doc/es_ES/analytics.markdown b/doc/es_ES/analytics.markdown deleted file mode 100644 index 473d1e2c..00000000 --- a/doc/es_ES/analytics.markdown +++ /dev/null @@ -1,59 +0,0 @@ -Analisis
-=========
-
-Cada proyecto tiene una sección de análisis . Dependiendo de cómo se está utilizando Kanboard, se puede ver estos informes :
-
-Repartición de usuarios
------------------------
-
-![User repartition](../screenshots/user-repartition.png)
-
-Esta gráfico de sectores muestra el numero de tareas abiertas asignadas por usuario.
-
-Distribución de tareas
-----------------------
-
-![Task distribution](../screenshots/task-distribution.png)
-
-Este gráfico de sectores da una visión general del numero de tareas abiertas por columnas.
-
-Diagrama de flujo acumulado
----------------------------
-
-![Cumulative flow diagram](../screenshots/cfd.png)
-
-- Este gráfico muesta el numerto de tareas acumuladas por cada columna a través del tiempo.
-- Cada día , el número total de tareas se registra para cada columna.
-- Si tu quiseras excluir las tareas cerradas, deberá cambiar las configuraciones globales del proyecto
-
-Nota: Necesitas tener al menos dos dias de datos para mirar la gráfica
-
-
-Gráfico Burn down
-
-El gráfico burn down esta dispobible para cada proyecto.
-
- Esta gráfico es un represtación grafica del trabajo This chart is a graphical representation del trabajo laborado contra el tiempo.
- Kanboard usa la complejidad o historia de puntos para generar este diagrama.
- Todos los días, se calcula la suma de los puntos de la historia de cada columna .
-
-Average time spent into each column
- This chart shows the average time spent into each column for the last 1000 tasks.
-
- Kanboard uses the task transitions to calculate the data.
- The time spent is calculated until the task is closed.
-
-
-Promedio de avances y ciclos de tiempos
-
-
-Este gráfico muestra el promedio de avances y ciclo de tiempos para las ultimas 1000 tareas fuera de tiempo.
-
- El tiempo promedio es el tiempo entre la creación de la tarea y la fecha de finalización
- El tiempo de ciclo se encuentra entre la fecha de inicio de la tarea especificada y fecha de la tarea finalizada
- Si la tarea no es cerrada,
- If the task is not closed, el momento actual se utiliza en lugar de la fecha de finalización.
-
-Esos indicadores se calculan y registran todos los días durante todo el proyecto.
-
-Nota: No olvidar ejecutar todos los dias el cronjob para tener estadísticas precisas.
diff --git a/doc/es_ES/api-action-procedures.markdown b/doc/es_ES/api-action-procedures.markdown deleted file mode 100644 index dc39fb93..00000000 --- a/doc/es_ES/api-action-procedures.markdown +++ /dev/null @@ -1,245 +0,0 @@ -API Procedimiento de acciones automaticas -================================ - -## getAvailableActions [Obtener acciones disponibles] - -- Propósito: **Obtener una lista de acciones automaticas disponibles** -- Parametros: ninguno -- Resultado satisfactorio: **list of actions** -- Resultado fallido: **falso** - -Ejemplo de solicitud: - -```json -{ - "jsonrpc": "2.0", - "method": "getAvailableActions", - "id": 1217735483 -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1217735483, - "result": { - "\Kanboard\Action\TaskLogMoveAnotherColumn": "Agregar un comentario moviendo las tareas entre columnas", - "\Kanboard\Action\TaskAssignColorUser": "Asignar un color especifico aun usuario", - "\Kanboard\Action\TaskAssignColorColumn": "Asignar un color cuando la tarea es movida a una columna especifica", - "\Kanboard\Action\TaskAssignCategoryColor": "Asignar automaticamente una categoria basado en un color", - "\Kanboard\Action\TaskAssignColorCategory": "Asignar automaticamente un color basado en una categoria", - "\Kanboard\Action\TaskAssignSpecificUser": "Asigar tareas a un usuario especifico", - "\Kanboard\Action\TaskAssignCurrentUser": "Asignar tareas a la persona que hace la acción", - "\Kanboard\Action\TaskUpdateStartDate": "Automaticamente actualizar la fecha de inicio", - "\Kanboard\Action\TaskAssignUser": "Cambiar asigando basado en un nombre de usuario [username] externo", - "\Kanboard\Action\TaskAssignCategoryLabel": "Cambiar la categoria basado en un etiqueta externa", - "\Kanboard\Action\TaskClose": "Cerrar una tarea", - "\Kanboard\Action\CommentCreation": "Crear un comentario desde un proveedor externo", - "\Kanboard\Action\TaskCreation": "Crear una tarea desde un proveedor externo", - "\Kanboard\Action\TaskDuplicateAnotherProject": "Duplicar la tarea a otro proyecto", - "\Kanboard\Action\TaskMoveColumnAssigned": "Mover la tarea a otra columna cuando es asiganada a un usuario", - "\Kanboard\Action\TaskMoveColumnUnAssigned": "Mover la tarea a otra columna cuando la asignación es limpiada", - "\Kanboard\Action\TaskMoveAnotherProject": "Mover la tarea a otro proyecto", - "\Kanboard\Action\TaskOpen": "Abrir una Tarea" - } -} -``` - -## getAvailableActionEvents [obtener acciones de eventos disponibles] - -- Propósito: **Obtener una lista de acciones disponibles para los eventos** -- Parametros: ninguno -- Resultado satisfactorio: **lista de eventos** -- Resultado fallído : **falso** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getAvailableActionEvents", - "id": 2116665643 -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 2116665643, - "result": { - "bitbucket.webhook.commit": "Bitbucket commit recibido", - "task.close": "Cerrando tarea", - "github.webhook.commit": "Github commit recibido", - "github.webhook.issue.assignee": "Github issue asignación cambiada", - "github.webhook.issue.closed": "Github issue cerrada", - "github.webhook.issue.commented": "Github issue comentario creado", - "github.webhook.issue.label": "Github issue etiqueta cambiada", - "github.webhook.issue.opened": "Github issue abierta", - "github.webhook.issue.reopened": "Github issue reabierto", - "gitlab.webhook.commit": "Gitlab commit recibido", - "gitlab.webhook.issue.closed": "Gitlab issue cerrado", - "gitlab.webhook.issue.opened": "Gitlab issue abierto", - "task.move.column": "Mover una tarea a otra columna", - "task.open": "Abrir una tarea abierta", - "task.assignee_change": "Tarea cambio de asignación", - "task.create": "Creación de tarea", - "task.create_update": "Creación de tarea o modificación", - "task.update": "Modificación de tarea" - } -} -``` - -## getCompatibleActionEvents [Obtener acciones compatibles con eventos] - -- Propósito: **Obtener una lista de eventos compatibles con una acción** -- Parametros: - - **action_name** (string, required) -- Resultado satisfactorio: **lista de eventos** -- Resultado fallido: **falso** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getCompatibleActionEvents", - "id": 899370297, - "params": [ - "\Kanboard\Action\TaskClose" - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 899370297, - "result": { - "bitbucket.webhook.commit": "Bitbucket commit recibido", - "github.webhook.commit": "Github commit recibido", - "github.webhook.issue.closed": "Github issue cerrada", - "gitlab.webhook.commit": "Gitlab commit recibido", - "gitlab.webhook.issue.closed": "Gitlab issue cerrado", - "task.move.column": "Mover una tarea a otra columna" - } -} -``` - -## getActions [Obtener acciones] - -- Propósito: **Obtener una lista de acciones para un proyecto** -- Parametros: - - **project_id** (integer, required) -- Resultado satisfactorio: **lista de propiedades de las acciones** -- Resultado fallido: **falso** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getActions", - "id": 1433237746, - "params": [ - "1" - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1433237746, - "result": [ - { - "id" : "13", - "project_id" : "2", - "event_name" : "task.move.column", - "action_name" : "\Kanboard\Action\TaskAssignSpecificUser", - "params" : { - "column_id" : "5", - "user_id" : "1" - } - } - ] -} -``` - -## createAction [Creación de acciones] - -- Proposito: **Crear una acción** -- Parametros: - - **project_id** (integer, required) - - **event_name** (string, required) - - **action_name** (string, required) - - **params** (key/value parameters, required) -- Resultados satisfactorios: **action_id** -- Resultados fallidos: **falso** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "createAction", - "id": 1433237746, - "params": { - "project_id" : "2", - "event_name" : "task.move.column", - "action_name" : "\Kanboard\Action\TaskAssignSpecificUser", - "params" : { - "column_id" : "3", - "user_id" : "2" - } - } -} -``` - -Ejemplo de respuestas: - -```json -{ - "jsonrpc": "2.0", - "id": 1433237746, - "result": 14 -} -``` - -## removeAction [Eliminar una acción] - -- Proposito: **Eliminar una acción** -- Parametros: - - **action_id** (integer, required) -- Resultados satisfactorios: **true** -- Resultados fallidos: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "removeAction", - "id": 1510741671, - "params": [ - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1510741671, - "result": true -} -``` diff --git a/doc/es_ES/api-authentication.markdown b/doc/es_ES/api-authentication.markdown deleted file mode 100644 index 0612ffee..00000000 --- a/doc/es_ES/api-authentication.markdown +++ /dev/null @@ -1,60 +0,0 @@ -API de autentificación -================== - -API endpoint ------------- - -URL: `https://YOUR_SERVER/jsonrpc.php` - - -Metedo por default (HTTP Basico) ---------------------------- - -### Aplicación de credenciales - -- Username: `jsonrpc` -- Password: API token para la configuración de pagina - -### Credencial de usuario - -- Usar el usuario real y su password - -La API usa la [Autentificación Basica del esquema HTTP descrita en el RFC2617](http://www.ietf.org/rfc/rfc2617.txt). - - -Modificar el header HTTP ------------------------- - -Se puede usar un header HTTP alternativo para la autentificación si tu servidor es muy especifico - -configuration. - -- El nombre del header puede ser cualquier cosa que desee, por ejemplo `X-API-Auth`. -- El valor del header `username:password` esta codificado en Base64. - -Configuración: - -1. Definir tu header personalizado en tu `config.php`: `define('API_AUTHENTICATION_HEADER', 'X-API-Auth');` -2. Codificar las credenciales en Base64, ejemplo con PHP `base64_encode('jsonrpc:19ffd9709d03ce50675c3a43d1c49c1ac207f4bc45f06c5b2701fbdf8929');` -3. Verificar con curl - -```bash -curl \ --H 'X-API-Auth: anNvbnJwYzoxOWZmZDk3MDlkMDNjZTUwNjc1YzNhNDNkMWM0OWMxYWMyMDdmNGJjNDVmMDZjNWIyNzAxZmJkZjg5Mjk=' \ --d '{"jsonrpc": "2.0", "method": "getAllProjects", "id": 1}' \ -http://localhost/kanboard/jsonrpc.php -``` - -Error de autentificación -------------------------- -Authentication error --------------------- - -Si las credenciales son , recibiras un `401 Not Authorized` y el correspondiente respuesta del JSON. -If the credentials are wrong, you will receive a `401 Not Authorized` and the corresponding JSON response. - - -Error de Autorización ----------------------- - -Si el usuario conectado no tiene permiso para acceder al recurso , recibirá un `403 Forbidden`. diff --git a/doc/es_ES/api-board-procedures.markdown b/doc/es_ES/api-board-procedures.markdown deleted file mode 100644 index 583e6449..00000000 --- a/doc/es_ES/api-board-procedures.markdown +++ /dev/null @@ -1,158 +0,0 @@ -API Procedimientos Del Tablero -=============================== - -## getBoard [obtener tablero] - -- Propósito: **Obtener todo la información necesaria para visualizar el tablero** -- Parametros: - - **project_id** (integer, required) -- Resultado satisfactorio : **Propiedades del tablero** -- Resultado fallido: **Lista vacía** - -Ejemplo de solicitud: - -```json -{ - "jsonrpc": "2.0", - "method": "getBoard", - "id": 827046470, - "params": [ - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 827046470, - "result": [ - { - "id": 0, - "name": "Default swimlane", - "columns": [ - { - "id": "1", - "title": "Backlog", - "position": "1", - "project_id": "1", - "task_limit": "0", - "description": "", - "tasks": [], - "nb_tasks": 0, - "score": 0 - }, - { - "id": "2", - "title": "Ready", - "position": "2", - "project_id": "1", - "task_limit": "0", - "description": "", - "tasks": [ - { - "nb_comments":"0", - "nb_files":"0", - "nb_subtasks":"0", - "nb_completed_subtasks":"0", - "nb_links":"0", - "id":"2", - "reference":"", - "title":"Test", - "description":"", - "date_creation":"1430870507", - "date_modification":"1430870507", - "date_completed":null, - "date_due":"0", - "color_id":"yellow", - "project_id":"1", - "column_id":"2", - "swimlane_id":"0", - "owner_id":"0", - "creator_id":"1", - "position":"1", - "is_active":"1", - "score":"0", - "category_id":"0", - "date_moved":"1430870507", - "recurrence_status":"0", - "recurrence_trigger":"0", - "recurrence_factor":"0", - "recurrence_timeframe":"0", - "recurrence_basedate":"0", - "recurrence_parent":null, - "recurrence_child":null, - "assignee_username":null, - "assignee_name":null - } - ], - "nb_tasks": 1, - "score": 0 - }, - { - "id": "3", - "title": "Trabajo en progreso", - "position": "3", - "project_id": "1", - "task_limit": "0", - "description": "", - "tasks": [ - { - "nb_comments":"0", - "nb_files":"0", - "nb_subtasks":"1", - "nb_completed_subtasks":"0", - "nb_links":"0", - "id":"1", - "reference":"", - "title":"Task with comment", - "description":"", - "date_creation":"1430783188", - "date_modification":"1430783188", - "date_completed":null, - "date_due":"0", - "color_id":"red", - "project_id":"1", - "column_id":"3", - "swimlane_id":"0", - "owner_id":"1", - "creator_id":"0", - "position":"1", - "is_active":"1", - "score":"0", - "category_id":"0", - "date_moved":"1430783191", - "recurrence_status":"0", - "recurrence_trigger":"0", - "recurrence_factor":"0", - "recurrence_timeframe":"0", - "recurrence_basedate":"0", - "recurrence_parent":null, - "recurrence_child":null, - "assignee_username":"admin", - "assignee_name":null - } - ], - "nb_tasks": 1, - "score": 0 - }, - { - "id": "4", - "title": "Done", - "position": "4", - "project_id": "1", - "task_limit": "0", - "description": "", - "tasks": [], - "nb_tasks": 0, - "score": 0 - } - ], - "nb_columns": 4, - "nb_tasks": 2 - } - ] -} -``` diff --git a/doc/es_ES/api-category-procedures.markdown b/doc/es_ES/api-category-procedures.markdown deleted file mode 100644 index eb5dc223..00000000 --- a/doc/es_ES/api-category-procedures.markdown +++ /dev/null @@ -1,172 +0,0 @@ -API Procedimientos de Categoría -======================= - -## createCategory - -- Propósito: **Crea una nueva categoría** -- Parámetros: -- **project_id** (integer, required) - - **name** (string, required, must be unique for the given project) -- Resultado en caso exitoso: **category_id** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "createCategory", - "id": 541909890, - "params": { - "name": "Super category", - "project_id": 1 - } -} -``` - -Ejemplo de respuesta:: - -```json -{ - "jsonrpc": "2.0", - "id": 541909890, - "result": 4 -} -``` - -## getCategory - -- Propósito: **Obtiene información de la categoría** -- Parámetros: - - **category_id** (integer, required) -- Resultado en caso exitoso: **category properties** -- Resultado en caso fallido: **null** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getCategory", - "id": 203539163, - "params": { - "category_id": 1 - } -} -``` - -Ejemplo de respuesta:: - -```json -{ - - "jsonrpc": "2.0", - "id": 203539163, - "result": { - "id": "1", - "name": "Super category", - "project_id": "1" - } -} -``` - -## getAllCategories - -- Propósito: **Obtiene todas las categorías disponibles** -- Parámetros: - - **project_id** (integer, required) -- Resultado en caso exitoso: **List of categories** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllCategories", - "id": 1261777968, - "params": { - "project_id": 1 - } -} -``` - -Ejemplo de respuesta:: - -```json -{ - "jsonrpc": "2.0", - "id": 1261777968, - "result": [ - { - "id": "1", - "name": "Super category", - "project_id": "1" - } - ] -} -``` - -## updateCategory - -- Propósito: **Actualiza una categoría** -- Parámetros: - - **id** (integer, required) - - **name** (string, required) -- Resultado en caso exitoso: **true** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "updateCategory", - "id": 570195391, - "params": { - "id": 1, - "name": "Renamed category" - } -} -``` - -Ejemplo de respuesta:: - -```json -{ - "jsonrpc": "2.0", - "id": 570195391, - "result": true -} -``` - -## removeCategory - -- Propósito: **Elimina una categoría** -- Parámetros: - - **category_id** (integer) -- Resultado en caso exitoso: **true** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "removeCategory", - "id": 88225706, - "params": { - "category_id": 1 - } -} -``` - -Ejemplo de respuesta:: - -```json -{ - "jsonrpc": "2.0", - "id": 88225706, - "result": true -} -``` diff --git a/doc/es_ES/api-column-procedures.markdown b/doc/es_ES/api-column-procedures.markdown deleted file mode 100644 index ff9b853d..00000000 --- a/doc/es_ES/api-column-procedures.markdown +++ /dev/null @@ -1,229 +0,0 @@ -API Procedimientos de columna -===================== - -## getColumns - -- Propósito: **Obtiene toda la información de columnas para un proyecto dado** -- Parametros: - - **project_id** (integer, required) -- Resultados en caso exitoso: **columns properties** -- Resultados en caso fallido: **empty list** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getColumns", - "id": 887036325, - "params": [ - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 887036325, - "result": [ - { - "id": "1", - "title": "Backlog", - "position": "1", - "project_id": "1", - "task_limit": "0" - }, - { - "id": "2", - "title": "Ready", - "position": "2", - "project_id": "1", - "task_limit": "0" - }, - { - "id": "3", - "title": "Work in progress", - "position": "3", - "project_id": "1", - "task_limit": "0" - } - ] -} -``` - -## getColumn - -- Propósito: **Obtiene una columna individual** -- Parametros: - - **column_id** (integer, required) -- Resultados en caso exitoso: **column properties** -- Resultados en caso fallido: **null** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getColumn", - "id": 1242049935, - "params": [ - 2 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1242049935, - "result": { - "id": "2", - "title": "Youpi", - "position": "2", - "project_id": "1", - "task_limit": "5" - } -} -``` - -## changeColumnPosition - -- Propósito: **Cambia la posición de columna** -- Parametros: - - **project_id** (integer, required) - - **column_id** (integer, required) - - **position** (integer, required, must be >= 1) -- Resultados en caso exitoso: **true** -- Resultados en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "changeColumnPosition", - "id": 99275573, - "params": [ - 1, - 2, - 3 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 99275573, - "result": true -} -``` - -## updateColumn - -- Propósito: **Actualiza las propiedades de la columna** -- Parametros: - - **column_id** (integer, required) - - **title** (string, required) - - **task_limit** (integer, optional) - - **description** (string, optional) -- Resultados en caso exitoso: **true** -- Resultados en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "updateColumn", - "id": 480740641, - "params": [ - 2, - "Boo", - 5 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 480740641, - "result": true -} -``` - -## addColumn - -- Propósito: **Agrega una nueva columna** -- Parametros: - - **project_id** (integer, required) - - **title** (string, required) - - **task_limit** (integer, optional) - - **description** (string, optional) -- Resultados en caso exitoso: **column_id** -- Resultados en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "addColumn", - "id": 638544704, - "params": [ - 1, - "Boo" - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 638544704, - "result": 5 -} -``` - -## removeColumn - -- Propósito: **Elimina una columna** -- Parametros: - - **column_id** (integer, required) -- Resultados en caso exitoso: **true** -- Resultados en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "removeColumn", - "id": 1433237746, - "params": [ - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1433237746, - "result": true -} -``` diff --git a/doc/es_ES/api-comment-procedures.markdown b/doc/es_ES/api-comment-procedures.markdown deleted file mode 100644 index 81389892..00000000 --- a/doc/es_ES/api-comment-procedures.markdown +++ /dev/null @@ -1,181 +0,0 @@ -API Procedimientos de comentarios -====================== - -## createComment [Crear un comentario] - -- Propósito: **Crear un nuevo comentario** -- Parametros: - - **task_id** (integer, required) - - **user_id** (integer, required) - - **content** Reducción de contenido (string, required) -- Resultado satisfactorio: **comment_id** -- Resultado fallido : **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "createComment", - "id": 1580417921, - "params": { - "task_id": 1, - "user_id": 1, - "content": "Comment #1" - } -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1580417921, - "result": 11 -} -``` - -## getComment [Obtener un comentario] - -- Propósito: **Obtener la información del comentario** -- Parametros: - - **comment_id** (integer, required) -- Resultado satisfactorio: **propiedades del comentario** -- Resultado fallido: **null** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getComment", - "id": 867839500, - "params": { - "comment_id": 1 - } -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 867839500, - "result": { - "id": "1", - "task_id": "1", - "user_id": "1", - "date_creation": "1410881970", - "comment": "Comment #1", - "username": "admin", - "name": null - } -} -``` - -## getAllComments [Obtener todos los comentarios] - -- Proposito: **Obtener todos los comentarios disponibles** -- Parametros: - - **task_id** (integer, required) -- Resultado satisfactorio: **Lista de comentarios** -- Resultado fallido : **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllComments", - "id": 148484683, - "params": { - "task_id": 1 - } -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 148484683, - "result": [ - { - "id": "1", - "date_creation": "1410882272", - "task_id": "1", - "user_id": "1", - "comment": "Comment #1", - "username": "admin", - "name": null - }, - ... - ] -} -``` - -## updateComment [Actualizar un comentario] - -- Proposito: **Actualizar un comentario** -- Parametros: - - **id** (integer, required) - - **content** Reducción de contenido (string, required) -- Resultado satisfactorio: **true** -- Resultado fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "updateComment", - "id": 496470023, - "params": { - "id": 1, - "content": "Comment #1 updated" - } -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1493368950, - "result": true -} -``` - -## removeComment [Eliminar un comentario] - -- Proposito : **Eliminar un comentario** -- Parametros: - - **comment_id** (integer, required) -- Resultado satisfactorio: **true** -- Resultado fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "removeComment", - "id": 328836871, - "params": { - "comment_id": 1 - } -} -``` -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 328836871, - "result": true -} -``` diff --git a/doc/es_ES/api-examples.markdown b/doc/es_ES/api-examples.markdown deleted file mode 100644 index cba7ffe5..00000000 --- a/doc/es_ES/api-examples.markdown +++ /dev/null @@ -1,152 +0,0 @@ -Ejemplos de API -============ - -Ejemplo con cURL ------------------ - -Desde la línea de comandos: - -```bash -curl \ --u "jsonrpc:19ffd9709d03ce50675c3a43d1c49c1ac207f4bc45f06c5b2701fbdf8929" \ --d '{"jsonrpc": "2.0", "method": "getAllProjects", "id": 1}' \ -http://localhost/kanboard/jsonrpc.php -``` - -Respuesta desde el servidor: - -```json -{ - "jsonrpc":"2.0", - "id":1, - "result":[ - { - "id":"1", - "name":"API test", - "is_active":"1", - "token":"6bd0932fe7f4b5e6e4bc3c72800bfdef36a2c5de2f38f756dfb5bd632ebf", - "last_modified":"1403392631" - } - ] -} -``` - -Ejemplo con Python -------------------- - -Puede utilizar el [cliente oficial Python para Kanboard](https://github.com/kanboard/kanboard-api-python): - -```bash -pip install kanboard -``` - -Aquí un ejemplo para crear un proyecto y una tarea: - -```python -from kanboard import Kanboard - -kb = Kanboard("http://localhost/jsonrpc.php", "jsonrpc", "your_api_token") - -project_id = kb.create_project(name="My project") - -task_id = kb.create_task(project_id=project_id, title="My task title") -``` - -Hay mas ejemplos en el [sitio web oficial(https://github.com/kanboard/kanboard-api-python). - -Ejemplo con un cliente PHP -------------------------- - -Puede utilizar esta [librearia Json-RPC de Cliente/servidor para PHP](https://github.com/fguillot/JsonRPC), Aqui un ejemplo: - -```php -<?php - -$client = new JsonRPC\Client('http://localhost:8000/jsonrpc.php'); -$client->authentication('jsonrpc', '19ffd9709d03ce50675c3a43d1c49c1ac207f4bc45f06c5b2701fbdf8929'); - -print_r($client->getAllProjects()); - -``` - -La respuesta: - -``` -Array -( - [0] => Array - ( - [id] => 1 - [name] => API test - [is_active] => 1 - [token] => 6bd0932fe7f4b5e6e4bc3c72800bfdef36a2c5de2f38f756dfb5bd632ebf - [last_modified] => 1403392631 - ) - -) -``` - -Ejemplo con Ruby ------------------ - -Este ejmeplo puede ser usado con Kanboard configurado con autenticación de Proxy Inverso y la API configurada con una cabecerza de autenticación personalizada: - -```ruby -require 'faraday' - -conn = Faraday.new(:url => 'https://kanboard.example.com') do |faraday| - faraday.response :logger - faraday.headers['X-API-Auth'] = 'XXX' # base64_encode('jsonrpc:API_KEY') - faraday.basic_auth(ENV['user'], ENV['pw']) # user/pass to get through basic auth - faraday.adapter Faraday.default_adapter # make requests with Net::HTTP -end - -response = conn.post do |req| - req.url '/jsonrpc.php' - req.headers['Content-Type'] = 'application/json' - req.body = '{ "jsonrpc": "2.0", "id": 1, "method": "getAllProjects" }' -end - -puts response.body -``` - - -Ejemplo con Java ------------------ - -Este es un ejemplo basico usando Spring. Para su uso correcto vea [Este enlace](http://spring.io/guides/gs/consuming-rest). - -```java -import java.io.UnsupportedEncodingException; -import java.util.Base64; - -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; -import org.springframework.web.client.RestTemplate; - -public class ProjectService { - - public void getAllProjects() throws UnsupportedEncodingException { - - RestTemplate restTemplate = new RestTemplate(); - - String url = "http://localhost/kanboard/jsonrpc.php"; - String requestJson = "{\"jsonrpc\": \"2.0\", \"method\": \"getAllProjects\", \"id\": 1}"; - String user = "jsonrpc"; - String apiToken = "19ffd9709d03ce50675c3a43d1c49c1ac207f4bc45f06c5b2701fbdf8929"; - - // encode api token - byte[] xApiAuthTokenBytes = String.join(":", user, apiToken).getBytes("utf-8"); - String xApiAuthToken = Base64.getEncoder().encodeToString(xApiAuthTokenBytes); - - // consume request - HttpHeaders headers = new HttpHeaders(); - headers.add("X-API-Auth", xApiAuthToken); - headers.setContentType(MediaType.APPLICATION_JSON); - HttpEntity<String> entity = new HttpEntity<String>(requestJson, headers); - String answer = restTemplate.postForObject(url, entity, String.class); - System.out.println(answer); - } -} -``` diff --git a/doc/es_ES/api-external-task-link-procedures.markdown b/doc/es_ES/api-external-task-link-procedures.markdown deleted file mode 100644 index e6d506b4..00000000 --- a/doc/es_ES/api-external-task-link-procedures.markdown +++ /dev/null @@ -1,221 +0,0 @@ -API de Procedimientos de tarea de enlace externo -================================= - -## getExternalTaskLinkTypes - -- Propósito: **Obtener todos los proveedores registrados de enlaces externos** -- Parámetros: **ninguno** -- Resultado en caso de éxito: **dict** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{"jsonrpc":"2.0","method":"getExternalTaskLinkTypes","id":477370568} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "result": { - "auto": "Auto", - "attachment": "Attachment", - "file": "Local File", - "weblink": "Web Link" - }, - "id": 477370568 -} -``` - -## getExternalTaskLinkProviderDependencies - -- Propósito: **Obtener las dependencias disponibles para un determinado proveedor** -- Parametros: - - **providerName** (string, required) -- Resultado en caso de éxito: **dict** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{"jsonrpc":"2.0","method":"getExternalTaskLinkProviderDependencies","id":124790226,"params":["weblink"]} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "result": { - "related": "Related" - }, - "id": 124790226 -} -``` - -## createExternalTaskLink - -- Propósito: **Crear una nueva tarea de enlace externo** -- Parametros: - - **task_id** (integer, required) - - **url** (string, required) - - **dependency** (string, required) - - **type** (string, optional) - - **title** (string, optional) -- Resultado en caso de éxito: **link_id** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{"jsonrpc":"2.0","method":"createExternalTaskLink","id":924217495,"params":[9,"http:\/\/localhost\/document.pdf","related","attachment"]} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "result": 1, - "id": 924217495 -} -``` - -## updateExternalTaskLink - -- Propósito: **Actualizar tarea de enlace externo** -- Parametros: - - **task_id** (integer, required) - - **link_id** (integer, required) - - **title** (string, required) - - **url** (string, required) - - **dependency** (string, required) -- Resultado en caso de éxito: **true** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{ - "jsonrpc":"2.0", - "method":"updateExternalTaskLink", - "id":1123562620, - "params": { - "task_id":9, - "link_id":1, - "title":"New title" - } -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "result": true, - "id": 1123562620 -} -``` - -## getExternalTaskLinkById - -- Propósito: **Obtener un enlace de tarea externo** -- Parametros: - - **task_id** (integer, required) - - **link_id** (integer, required) -- Resultado en caso de éxito: **dict** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{"jsonrpc":"2.0","method":"getExternalTaskLinkById","id":2107066744,"params":[9,1]} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "result": { - "id": "1", - "link_type": "attachment", - "dependency": "related", - "title": "document.pdf", - "url": "http:\/\/localhost\/document.pdf", - "date_creation": "1466965256", - "date_modification": "1466965256", - "task_id": "9", - "creator_id": "0" - }, - "id": 2107066744 -} -``` - -## getAllExternalTaskLinks - -- Propósito: **Obtener todos los enlaces externos conectados a una tarea** -- Parametros: - - **task_id** (integer, required) -- Resultado en caso de éxito: **list of external links** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{"jsonrpc":"2.0","method":"getAllExternalTaskLinks","id":2069307223,"params":[9]} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "result": [ - { - "id": "1", - "link_type": "attachment", - "dependency": "related", - "title": "New title", - "url": "http:\/\/localhost\/document.pdf", - "date_creation": "1466965256", - "date_modification": "1466965256", - "task_id": "9", - "creator_id": "0", - "creator_name": null, - "creator_username": null, - "dependency_label": "Related", - "type": "Attachment" - } - ], - "id": 2069307223 -} -``` - -## removeExternalTaskLink - -- Propósito: **Remover una tarea de enlace externo** -- Parametros: - - **task_id** (integer, required) - - **link_id** (integer, required) -- Resultado en caso de éxito: **true** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{"jsonrpc":"2.0","method":"removeExternalTaskLink","id":552055660,"params":[9,1]} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "result": true, - "id": 552055660 -} -``` diff --git a/doc/es_ES/api-group-member-procedures.markdown b/doc/es_ES/api-group-member-procedures.markdown deleted file mode 100644 index 9a6bbe22..00000000 --- a/doc/es_ES/api-group-member-procedures.markdown +++ /dev/null @@ -1,188 +0,0 @@ -Group Member API Procedures -=========================== - -## getMemberGroups - -- Propósito: **Obtener todos los grupos de un usuario determinado** -- Parámetros: - - **user_id** (integer, required) -- Resultado en caso de éxito: **List of groups** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{ - "jsonrpc": "2.0", - "method": "getMemberGroups", - "id": 1987176726, - "params": [ - "1" - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1987176726, - "result": [ - { - "id": "1", - "name": "My Group A" - } - ] -} -``` - -## getGroupMembers - -- Propósito: **Obtener todos los miembros de un grupo** -- Parámetros: - - **group_id** (integer, required) -- Resultado en caso de éxito: **List of users** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{ - "jsonrpc": "2.0", - "method": "getGroupMembers", - "id": 1987176726, - "params": [ - "1" - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1987176726, - "result": [ - { - "group_id": "1", - "user_id": "1", - "id": "1", - "username": "admin", - "is_ldap_user": "0", - "name": null, - "email": null, - "notifications_enabled": "0", - "timezone": null, - "language": null, - "disable_login_form": "0", - "notifications_filter": "4", - "nb_failed_login": "0", - "lock_expiration_date": "0", - "is_project_admin": "0", - "gitlab_id": null, - "role": "app-admin" - } - ] -} -``` - -## addGroupMember - -- Propósito: **Agregar un usuario a un grupo** -- Parámetros: - - **group_id** (integer, required) - - **user_id** (integer, required) -- Resultado en caso de éxito: **true** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{ - "jsonrpc": "2.0", - "method": "addGroupMember", - "id": 1589058273, - "params": [ - 1, - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1589058273, - "result": true -} -``` - -## removeGroupMember - -- Propósito: **Quitar un usuario de un grupo** -- Parámetros: - - **group_id** (integer, required) - - **user_id** (integer, required) -- Resultado en caso de éxito: **true** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{ - "jsonrpc": "2.0", - "method": "removeGroupMember", - "id": 1730416406, - "params": [ - 1, - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1730416406, - "result": true -} -``` - -## isGroupMember - -- Propósito: **Comprobar si un usuario es miembro de un grupo** -- Parámetros: - - **group_id** (integer, required) - - **user_id** (integer, required) -- Resultado en caso de éxito: **true** -- Resultado en caso de falla: **false** - -Ejemplo de solicitud: - -```json -{ - "jsonrpc": "2.0", - "method": "isGroupMember", - "id": 1052800865, - "params": [ - 1, - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1052800865, - "result": false -} -``` diff --git a/doc/es_ES/api-group-procedures.markdown b/doc/es_ES/api-group-procedures.markdown deleted file mode 100755 index cb11fb96..00000000 --- a/doc/es_ES/api-group-procedures.markdown +++ /dev/null @@ -1,174 +0,0 @@ -Group API Procedures -==================== - -## createGroup - -- Purpose: **Create a new group** -- Parameters: - - **name** (string, required) - - **external_id** (string, optional) -- Result on success: **link_id** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "createGroup", - "id": 1416806551, - "params": [ - "My Group B", - "1234" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1416806551, - "result": 2 -} -``` - -## updateGroup - -- Purpose: **Update a group** -- Parameters: - - **group_id** (integer, required) - - **name** (string, optional) - - **external_id** (string, optional) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "updateGroup", - "id": 866078030, - "params": { - "group_id": "1", - "name": "ABC", - "external_id": "something" - } -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 866078030, - "result": true -} -``` - -## removeGroup - -- Purpose: **Remove a group** -- Parameters: - - **group_id** (integer, required) -- Result on success: **true** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "removeGroup", - "id": 566000661, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 566000661, - "result": true -} -``` - -## getGroup - -- Purpose: **Get one group** -- Parameters: - - **group_id** (integer, required) -- Result on success: **Group dictionary** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getGroup", - "id": 1968647622, - "params": [ - "1" - ] -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 1968647622, - "result": { - "id": "1", - "external_id": "", - "name": "My Group A" - } -} -``` - -## getAllGroups - -- Purpose: **Get all groups** -- Parameters: none -- Result on success: **list of groups** -- Result on failure: **false** - -Request example: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllGroups", - "id": 546070742 -} -``` - -Response example: - -```json -{ - "jsonrpc": "2.0", - "id": 546070742, - "result": [ - { - "id": "1", - "external_id": "", - "name": "My Group A" - }, - { - "id": "2", - "external_id": "1234", - "name": "My Group B" - } - ] -} -``` diff --git a/doc/es_ES/api-internal-task-link-procedures.markdown b/doc/es_ES/api-internal-task-link-procedures.markdown deleted file mode 100644 index 43d410d7..00000000 --- a/doc/es_ES/api-internal-task-link-procedures.markdown +++ /dev/null @@ -1,187 +0,0 @@ -API Procedimientos de Tareas Internas de Enlace -================================= - -## createTaskLink - -- Propósito: **Crea un enlace entre dos tareas** -- Parametros: - - **task_id** (integer, required) - - **opposite_task_id** (integer, required) - - **link_id** (integer, required) -- Resultado en caso exitoso: **task_link_id** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "createTaskLink", - "id": 509742912, - "params": [ - 2, - 3, - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 509742912, - "result": 1 -} -``` - -## updateTaskLink - -- Propósito: **Actualiza enlace de tarea** -- Parametros: - - **task_link_id** (integer, required) - - **task_id** (integer, required) - - **opposite_task_id** (integer, required) - - **link_id** (integer, required) -- Resultado en caso exitoso: **true** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "updateTaskLink", - "id": 669037109, - "params": [ - 1, - 2, - 4, - 2 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 669037109, - "result": true -} -``` - -## getTaskLinkById - -- Propósito: **Obtiene un enlace de tarea** -- Parametros: - - **task_link_id** (integer, required) -- Resultado en caso exitoso: **task link properties** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getTaskLinkById", - "id": 809885202, - "params": [ - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 809885202, - "result": { - "id": "1", - "link_id": "1", - "task_id": "2", - "opposite_task_id": "3" - } -} -``` - -## getAllTaskLinks - -- Propósito: **Obtiene todos los enlaces relacionados a una tarea** -- Parametros: - - **task_id** (integer, required) -- Resultado en caso exitoso: **list of task link** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllTaskLinks", - "id": 810848359, - "params": [ - 2 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 810848359, - "result": [ - { - "id": "1", - "task_id": "3", - "label": "relates to", - "title": "B", - "is_active": "1", - "project_id": "1", - "task_time_spent": "0", - "task_time_estimated": "0", - "task_assignee_id": "0", - "task_assignee_username": null, - "task_assignee_name": null, - "column_title": "Backlog" - } - ] -} -``` - -## removeTaskLink - -- Propósito: **Elimina un enlace entre dos tareas** -- Parametros: - - **task_link_id** (integer, required) -- Resultado en caso exitoso: **true** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "removeTaskLink", - "id": 473028226, - "params": [ - 1 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 473028226, - "result": true -} -``` diff --git a/doc/es_ES/api-json-rpc.markdown b/doc/es_ES/api-json-rpc.markdown deleted file mode 100644 index 23088890..00000000 --- a/doc/es_ES/api-json-rpc.markdown +++ /dev/null @@ -1,69 +0,0 @@ -Json-RPC API -============ - -Usuario y aplicacion API ------------------------- - -Existen dos tipos de acceso a la API: - -### API de Aplicacion - -- Acceso a la API con el usuario "jsonrpc" y el token disponible en ajustes -- Acceso a todos los procedimientos -- Sin comprobacion de permisos -- No existe sesion de usuario en el servidor -- Ejemplo de posibles clientes: Herramientas para migrar/importar datos, crear tareas desde otros sistemas, etc. - -### API de Usuario - -- Acceso a la API con las credenciales de usuario (Nombre de usuario y contraseña) -- Acceso a un conjunto restringido de procedimientos -- Los permisos del proyecto son comprobados -- Una sesion de usuario es creada en el servidor -- Ejemplo de posibles clientes: Aplicacion de escritotrio / dispositivos moviles, utilidad linea de commandos, etc. - -Seguridad ---------- - -- Siempre usa HTTPS con un certificado valido. -- Si haces una aplicacion movil, es tu trabajo almacenar de forma segura las credenciales de usuario en el dispositivo -- Despues de tres fallas de autenticación en la API de usuario, el usuario final tiene que desbloquear su cuenta utilizando el formulario de inicio de sesión -- La autenticación de dos factores aun no está disponible a través de la API - -Protocolo ---------- - -Kanboard utilizar el protocolo JSON-RPC para interactuar con programas externos. -JSON-RPC es un protocolo de llamada a procedimiento remoto codificado en JSON. Casi lo mismo que XML-RPC, pero con el formato JSON. - -Utilizamos [version 2 of the protocol](http://www.jsonrpc.org/specification). Usted debe llamar a la API con una petición HTTP POST. - -Kanboard soporta requerimientos por lotes, por lo que pueden hacer varias llamadas a la API en una sola petición HTTP. Es particularmente útil para los clientes móviles con una mayor latencia de la red. - -Uso ---- - -- [Authentication](api-authentication.markdown) -- [Examples](api-examples.markdown) -- [Application](api-application-procedures.markdown) -- [Projects](api-project-procedures.markdown) -- [Project Permissions](api-project-permission-procedures.markdown) -- [Boards](api-board-procedures.markdown) -- [Columns](api-column-procedures.markdown) -- [Swimlanes](api-swimlane-procedures.markdown) -- [Categories](api-category-procedures.markdown) -- [Automatic Actions](api-action-procedures.markdown) -- [Tasks](api-task-procedures.markdown) -- [Subtasks](api-subtask-procedures.markdown) -- [Subtask Time Tracking](api-subtask-time-tracking-procedures.markdown) -- [Task Files](api-task-file-procedures.markdown) -- [Project Files](api-project-file-procedures.markdown) -- [Links](api-link-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) -- [Users](api-user-procedures.markdown) -- [Groups](api-group-procedures.markdown) -- [Group Members](api-group-member-procedures.markdown) -- [Me](api-me-procedures.markdown) - diff --git a/doc/es_ES/api-link-procedures.markdown b/doc/es_ES/api-link-procedures.markdown deleted file mode 100644 index 2ed08ecd..00000000 --- a/doc/es_ES/api-link-procedures.markdown +++ /dev/null @@ -1,285 +0,0 @@ -API Procedimientos de enlace -=================== - -## getAllLinks - -- Propósito: **Obtiene la lista de posibles relaciones entre tareas** -- Parametros: ninguno -- Resultado en caso exitoso: **List of links** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getAllLinks", - "id": 113057196 -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 113057196, - "result": [ - { - "id": "1", - "label": "relates to", - "opposite_id": "0" - }, - { - "id": "2", - "label": "blocks", - "opposite_id": "3" - }, - { - "id": "3", - "label": "is blocked by", - "opposite_id": "2" - }, - { - "id": "4", - "label": "duplicates", - "opposite_id": "5" - }, - { - "id": "5", - "label": "is duplicated by", - "opposite_id": "4" - }, - { - "id": "6", - "label": "is a child of", - "opposite_id": "7" - }, - { - "id": "7", - "label": "is a parent of", - "opposite_id": "6" - }, - { - "id": "8", - "label": "targets milestone", - "opposite_id": "9" - }, - { - "id": "9", - "label": "is a milestone of", - "opposite_id": "8" - }, - { - "id": "10", - "label": "fixes", - "opposite_id": "11" - }, - { - "id": "11", - "label": "is fixed by", - "opposite_id": "10" - } - ] -} -``` - -## getOppositeLinkId - -- Propósito: **Obtiene el identificador de enlace opuesto de un enlace de tarea** -- Parametros: - - **link_id** (integer, required) -- Resultado en caso exitoso: **link_id** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getOppositeLinkId", - "id": 407062448, - "params": [ - 2 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 407062448, - "result": "3" -} -``` - -## getLinkByLabel - -- Propósito: **Obtiene un enlace por etiqueta** -- Parametros: - - **label** (integer, required) -- Resultado en caso exitoso: **link properties** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getLinkByLabel", - "id": 1796123316, - "params": [ - "blocks" - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1796123316, - "result": { - "id": "2", - "label": "blocks", - "opposite_id": "3" - } -} -``` - -## getLinkById - -- Propósito: **Obtiene un enlace por identificador** -- Parametros: - - **link_id** (integer, required) -- Resultado en caso exitoso: **link properties** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "getLinkById", - "id": 1190238402, - "params": [ - 4 - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1190238402, - "result": { - "id": "4", - "label": "duplicates", - "opposite_id": "5" - } -} -``` - -## createLink - -- Propósito: **Crea una nueva relación de tarea** -- Parametros: - - **label** (integer, required) - - **opposite_label** (integer, optional) -- Resultado en caso exitoso: **link_id** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "createLink", - "id": 1040237496, - "params": [ - "foo", - "bar" - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 1040237496, - "result": 13 -} -``` - -## updateLink - -- Propósito: **Actualiza un enlace** -- Parametros: - - **link_id** (integer, required) - - **opposite_link_id** (integer, required) - - **label** (string, required) -- Resultado en caso exitoso: **true** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "updateLink", - "id": 2110446926, - "params": [ - "14", - "12", - "boo" - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 2110446926, - "result": true -} -``` - -## removeLink - -- Propósito: **Elimina un enlace** -- Parametros: - - **link_id** (integer, required) -- Resultado en caso exitoso: **true** -- Resultado en caso fallido: **false** - -Ejemplo de petición: - -```json -{ - "jsonrpc": "2.0", - "method": "removeLink", - "id": 2136522739, - "params": [ - "14" - ] -} -``` - -Ejemplo de respuesta: - -```json -{ - "jsonrpc": "2.0", - "id": 2136522739, - "result": true -} -``` diff --git a/doc/es_ES/board-collapsed-expanded.markdown b/doc/es_ES/board-collapsed-expanded.markdown deleted file mode 100644 index fd463f51..00000000 --- a/doc/es_ES/board-collapsed-expanded.markdown +++ /dev/null @@ -1,18 +0,0 @@ -Modo colapsar y expandir -=========================== - -Las tares en el tablero pueden visualizarse en modo colapsado o en modo expandido. -El cambio entre el desplazamiento horizontal y la vista compacta se puede hacer con la combinación de teclas **"s"** o usar el menu drop-down que esta parte superior izquierda. - -Modo de colapsado --------------- - -![Tareas colapsadas](../screenshots/board-collapsed-mode.png) - -- Si la tarea es asignada a alguien, las iniciales de la persona se muestran junto al número de tareas -- Si el titulo de la tarea es demasiado largo, tu puedes poner el puntero del ratón sobre la tarea de mostrar una información sobre herramientas con el título completo - -Modo expansivo --------------- - -![Tasks expanded](../screenshots/board-expanded-mode.png) diff --git a/doc/es_ES/board-configuration.markdown b/doc/es_ES/board-configuration.markdown deleted file mode 100644 index 1ac862ec..00000000 --- a/doc/es_ES/board-configuration.markdown +++ /dev/null @@ -1,25 +0,0 @@ -Configuraci�n del tablero -========================== - -Ir al menu **Configuraciones **, elije **Ajustes de tablero ** a la izquierda. - -![Board settings](../screenshots/board-settings.png) - -### Resaltado de tarea - -Esta caracterista muestra una sombra alrededor de la tarea cuando una tarea se traslad� recientemente - -Establecer el valor 0 para desactivar esta caracterista, 2 dias por default (172800 segundos). - -Todo lo traslad� desde de 2 dias tendra una sombra alrededor de la tarea. - -### Recargar el intervalo para la pizarra publica - -Cuando tu compartes un tablero, la pagina se refresca cada 60 segundos automaticamente por default. - -### Refrescar el intervalo para un tablero privado - -Cuando su navegador est� abierto un tablero, Kanboard comprueba cada 10 segundos si algo ha sido cambiado por otra persona. - -T�cnicamente este proceso se lleva a cabo por el Ajax. - diff --git a/doc/es_ES/board-horizontal-scrolling-and-compact-view.markdown b/doc/es_ES/board-horizontal-scrolling-and-compact-view.markdown deleted file mode 100644 index f5f2379b..00000000 --- a/doc/es_ES/board-horizontal-scrolling-and-compact-view.markdown +++ /dev/null @@ -1,12 +0,0 @@ -Horizontal scrolling y modo compacto -===================================== - -Cuando el tablero no puede caber en su pantalla , una barra de scroll horizontal -When the board cannot fit on your screen, a horizontal scroll bar aparecerá en la parte inferior. - -Sin embargo, es posible cambiar a una vista de modo compacto para visualizar todas las columnas en su pantalla. - -![Cambiar a modo compacto](../screenshots/board-compact-mode.png) - -Cambiar entre scrolling y vista compacta -El cambio entre el desplazamiento horizontal y la vista compacta se puede hacer con la combinación de teclas **"c"** o usar el menu drop-down que esta parte superior izquierda. diff --git a/doc/es_ES/board-show-hide-columns.markdown b/doc/es_ES/board-show-hide-columns.markdown deleted file mode 100644 index 83ba0293..00000000 --- a/doc/es_ES/board-show-hide-columns.markdown +++ /dev/null @@ -1,12 +0,0 @@ -Mostrar y ocultar columnas en el tablero -================================== - -Se puede ocultar o visualizar columnas muy facilmente en el tablero: - -![Ocultar una columna](../screenshots/hide-column.png) - -Para ocultar una columna, click en la columna escoge en el menu dropdown "ocultar esta columna" : - -![Mostrar una columna](../screenshots/show-column.png) - -Para mostar nuevamente la columna, click en el icono con el simbolo de suma "plus icon" diff --git a/doc/es_ES/bruteforce-protection.markdown b/doc/es_ES/bruteforce-protection.markdown deleted file mode 100644 index 2a08fc27..00000000 --- a/doc/es_ES/bruteforce-protection.markdown +++ /dev/null @@ -1,26 +0,0 @@ -Protección por fuerza bruta -=========================== - -La protección por fuerza bruta de kanboard funciona en nivel a la cuenta de usuario. - -- Después de 3 fallas de autentificación para el formulario de login muestra una imagen de captcha para evitar bots automatizado orientativos. -- Después de 6 fallas de autentificación la cuenta de usuario esta bloqueada por un periodo de 15 minutos. - -Esta característica funciona para el método de autentificación del usuario API, la cuenta tiene que ser desbloqueado mediante el formulario de inicio de sesión. - -Sin embargo, después de la tercera falla de autenticidad a través de la API de usuario, la cuenta tiene que ser desbloqueado mediante el formulario de inicio de sesión. - -Kanboard no bloquea cualquier dirección de la IP ya que los bots puede utilizar a varios servidores proxy anónimo sin embargo puede utilizar herramientas externas como f[fail2ban](http://www.fail2ban.org) para evitar la exploración masiva. - -Los ajustes predeterminados se pueden cambiar con estas variables de configuración: - -```php -// Habilitar captcha después del fallo 3 de autentificación -define('BRUTEFORCE_CAPTCHA', 3); - -// Bloquear la cuenta después de 6 fallo de autentificación -define('BRUTEFORCE_LOCKDOWN', 6); - -//Bloqueo de la duración de la cuenta en minutos. -define('BRUTEFORCE_LOCKDOWN_DURATION', 15) -``` diff --git a/doc/es_ES/calendar-configuration.markdown b/doc/es_ES/calendar-configuration.markdown deleted file mode 100644 index cbbba0d9..00000000 --- a/doc/es_ES/calendar-configuration.markdown +++ /dev/null @@ -1,43 +0,0 @@ -Configuración de calendarios -============================ - -Ir al menu de configuraciones, despues elegir cofiguracion de calendarios que se encuentra al lado izquierdo - -![Configuración de calendarios](../screenshots/calendar-settings.png) - -Existe dos diferentes calendarios en kanboard : - -- Calendarios de projectos -- Calendario por usuario (disponible desde el dashboard) - -Calendario por projectos ------------------------- - -Este calendario visualiza las tareas que se le asignan fechas de vencimiento y las tareas estan basadas sobre -la fecha de creación o el inicio de fecha - -### Visualizar tareas basadas en la fecha de creacion - -- El inicio de fecha del evento del calendario es la fecha de creacion de la tarea -- El finalización de fecha del evento es cuendo se completa una tarea - -### Visualizar tareas basadas en las fechas de inicio - -- La fecha de inicio del evento del calendario is la fecha de incio de la tarea -- Esta fecha puede ser definida manualmente. -- La fecha de finalización del evento es la fecha de terminación -- Si no hay una fecha de inicio de la tarea no aparece en el calendario. - -Calendarios por usuarios ------------------------- - -Este calendario visualiza solo las tareas asignadas para el usuario y opcionalmente la información de las subtareas - -### Visualizar subtareas basadas en el tiempo de tracking - -- Despliega la información de las subtareas desde el calendario o en el registro de la tabla de seguimiento de tiempo -- La intersección con los usuarios timetable es calculad - -### Las estimaciones muestran las subtareas ( la previsión de los trabajos futuros ) - -- Mostrar la estimación de los trabajos futuros de las subtareas en estado de "todo" y con un valor definido " estimación " . diff --git a/doc/es_ES/centos-installation.markdown b/doc/es_ES/centos-installation.markdown deleted file mode 100644 index 9662f7f5..00000000 --- a/doc/es_ES/centos-installation.markdown +++ /dev/null @@ -1,86 +0,0 @@ -Instalación en Centos -=================== - -Nota:Algunas funciones de Kanboard requieren que se ejecute un trabajo en segundo -plano todos los días (cronjob.markdown). - -Centos 7 --------- - -Instalar PHP y Apache: - -```bash -yum install -y php php-mbstring php-pdo php-gd unzip wget -``` - -Por default Centos 7 use PHP 5.4.16 and Apache 2.4.6. - -Reiniciar Apache: - -```bash -systemctl restart httpd.service -``` - -InstalarKanboard: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R apache:apache kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Si SELinux esta activado, Asegurese de que el usuario de Apache pueda escribir en el directorio de datos: - -```bash -chcon -R -t httpd_sys_content_rw_t /var/www/html/kanboard/data -``` - -Asegurese de configurar el servidor para permitir enviar correos electrónicos y hacer conexiones externas por ejemplo con SELinux: - -```bash -setsebool -P httpd_can_network_connect=1 -``` - -Las conexiones son necesarias si se usa LDAP,SMTP, ganchos web o cualquier integracion de terceros: - -Centos 6.x ----------- - -Instalar PHP y Apache: - -```bash -yum install -y php php-mbstring php-pdo php-gd unzip wget -``` - -Por defecto para Centos 6.5 use PHP 5.3.3 y Apache 2.2.15 - -Active las etiquetas cortas: - -- Editar el archivo `/etc/php.ini` -- Cambiar la linea `short_open_tag = On` - -Reiniciar Apache: - -```bash -service httpd restart -``` - -Instalar Kanboard: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R apache:apache kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Ir a `http://your_server/kanboard/`. diff --git a/doc/es_ES/cli.markdown b/doc/es_ES/cli.markdown deleted file mode 100755 index 0c76c6aa..00000000 --- a/doc/es_ES/cli.markdown +++ /dev/null @@ -1,206 +0,0 @@ -Interface de linea de comandos -============================= - -Kanboard provides a simple command line interface that can be used from any Unix terminal. -This tool can be used only on the local machine. - -This feature is useful to run commands outside of the web server processes. - -Uso ------ - -- Abre una terminal y ve a tu directorio de kanboard (ejemplo : `cd /var/www/kanboard`) -- Corre el comando `./cli` / `php cli` - -```bash -Kanboard version master - -Uso: - comando [opciones] [argumentos] - -Options: - -h, --help Visualizar mensaje de ayuda - -q, --quiet Sin mensajes de salida - -V, --version Visualiza la verssation version - --ansi Forzar salida ANSI - --no-ansi Deshabilitar salida ANSI - -n, --no-interaction No hacer cualquier pregunta interactiva - -v|vv|vvv, --verbose Incrementar la verbosidad de los mensajes: 1 para salida normal, 2 para mas salida verbosa y 3 para debug - -Available commands: - cronjob Ejecutar diariamente cronjob - help Visualizar ayuda para los comandos - list Lista de comandos - worker Execute queue worker - export - export:daily-project-column-stats Diariamente estad�sticas de exportaci�n de CSV (n�mero de tareas por columna y por d�a ) - export:subtasks Exportar a CSV las subtareas - export:tasks Exportar a CSV las tareas - export:transitions Exportar a CSV tareas de transici�n - locale - locale:compare Comparar aplicacion de traducciones con el locale fr_FR - locale:sync Sincronizar todas las traducciones basadas en el locale fr_FR - notification - notification:overdue-tasks Enviar notifiaciones de las tareas atrasadas - plugin - plugin:install Instalar un plugin desde un archivo ZIP remoto - plugin:uninstall Eliminar plugin - plugin:upgrade Actualizar todos los plugins instalados - projects - projects:archive Disable projects not touched during one year - projects:daily-stats Calcular diariamente las estadisticas para todos los proyectos - trigger - trigger:tasks Disparadores de eventos calendarizados para todas las tareas - user - user:reset-2fa Eliminar la autenticaci�n two-factor para un usuario - user:reset-password Cambiar el passwor del usuario -``` - -Comandos disponibles ------------------- - -### Exportar las tareas en CSV - -Uso: - -```bash -./cli export:tasks <project_id> <start_date> <end_date> -``` - -Ejemplo: - -```bash -./cli export:tasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -CSV los datos son enviados a `stdout`. - -### Subtasks CSV export - -Uso: - -```bash -./cli export:subtasks <project_id> <start_date> <end_date> -``` - -Ejemplo: - -```bash -./cli export:subtasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -### Exportaci�n a CSV de tareas de transici�n - -Uso: - -```bash -./cli export:transitions <project_id> <start_date> <end_date> -``` - -Ejemplo: - -```bash -./cli export:transitions 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -### Exportar diariamente resumenes de datos en CSV - -Los datos exportados se pueden imprimir en la salida est�ndar: - -```bash -./cli export:daily-project-column-stats <project_id> <start_date> <end_date> -``` - -Ejemplo: - -```bash -./cli export:daily-project-column-stats 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -### Envio de notificaciones para tareas atrasadas - -Los Emails se enviaran a todos los usuarios con las notificaciones habilitadas. - -```bash -./cli notification:overdue-tasks -``` - -Parametros opcionales: - -- `--show`: Visualizar las notificaciones enviadas -- `--group`: Grupo tareas atrasadas todo para un usuario (desde todos los proyectos) en un email -- `--manager`: Enviar todas las tareas atrasadas a un project manager(s) en un email - -Tambi�n puede mostrar las tareas atrasadas con la bandera `--show`: - -```bash -./cli 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 | | -+-----+---------+------------+------------+--------------+----------+ -``` - -### Correr diariamente los calculos de estadisticas de los proyectos - -Este comando calcula las estadisticas por cada proyecto: - -```bash -./cli projects:daily-stats -Run calculation for Project #0 -Run calculation for Project #1 -Run calculation for Project #10 -``` - -### Trigger [Disparadores] para tareas - -Este comando envia a "daily cronjob event" a todas las tareas abiertas de cada proyecto. - -```bash -./cli trigger:tasks -Trigger task event: project_id=2, nb_tasks=1 -``` - -### Resetear el password del usuario - -```bash -./cli user:reset-password my_user -``` - -Se le pedir� una contrase�a y la confirmaci�n. Los caracteres no se imprimen en la pantalla. - -### Eliminar la autenticaci�n two-factor para un usuario - -```bash -./cli user:reset-2fa my_user -``` - -### Instalar un plugin - -```bash -./cli plugin:install https://github.com/kanboard/plugin-github-auth/releases/download/v1.0.1/GithubAuth-1.0.1.zip -``` - -Nota: Los archivos instalados tendr�n los mismos permisos que el usuario actual - -### Eliminar un usuario - -```bash -./cli plugin:uninstall Budget -``` - -### Upgrade todos los plugins - -```bash -./cli plugin:upgrade -* Updating plugin: Budget Planning -* Plugin up to date: Github Authentication -``` - -### Run Background worker - -```bash -./cli worker -``` diff --git a/doc/es_ES/cloudron.markdown b/doc/es_ES/cloudron.markdown deleted file mode 100755 index 9de33e5e..00000000 --- a/doc/es_ES/cloudron.markdown +++ /dev/null @@ -1,27 +0,0 @@ -Como correr Kanboard en Cloudron -================================ - -[Cloudron](https://cloudron.io) es un smartserver privado con el cual tu puedes instalar web -apps como Kanboard. Puedes instalar Kanboard en un dominio personalizado y cada -instalación está respaldada y mantenida día a día con la liberación automática de Kanboard - -[![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=net.kanboard.cloudronapp) - -Cuentas --------- - -La app se integra perfectamente con Cloudron en la gestión ( a través de LDAP ) del usuario . Solamente -los usuarios de Cloudron pueden acceder a Kanboard . Además , cualquier administrador Cloudron -se convierte en un administrador Kanboard automáticamente. - -Instalación de plugins ------------------------ - -Los plugins pueden ser instalados y configurados por [Cloudron CLI](https://cloudron.io/references/cli.html) -herramientas. Observar [descripción de la app](https://cloudron.io/appstore.html?app=net.kanboard.cloudronapp) for -mas información. - -Código fuente de la aplicación -------------------------------- -El código fuente de la app Cloudron esta [aqui](https://github.com/cloudron-io/kanboard-app). - diff --git a/doc/es_ES/coding-standards.markdown b/doc/es_ES/coding-standards.markdown deleted file mode 100755 index 966f9c90..00000000 --- a/doc/es_ES/coding-standards.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Estandares de codificación -================ - -Código PHP ----------- - -- Indentacion: 4 espacios -- Linea de retorno: Unix => `\n` -- Encoding: UTF-8 -- Use unicamente las etiquetas de apertura `<?php` or `<?=` para templates , pero ** nunca usar ** `<?` -- Siempre escribe comentarios PHPdoc para metodos y propiedades de la clase -- Codificar con estilo : [PSR-1](http://www.php-fig.org/psr/psr-1/) y [PSR-2](http://www.php-fig.org/psr/psr-2/) - -Código JavaScript ---------------- - -- Indentacion: 4 espacios -- Linea de retorno: Unix => `\n` - -Código CSS --------- - -- Indentacion: 4 espacios -- Linea de retorno: Unix => `\n` diff --git a/doc/es_ES/config.markdown b/doc/es_ES/config.markdown deleted file mode 100755 index bc2f2982..00000000 --- a/doc/es_ES/config.markdown +++ /dev/null @@ -1,307 +0,0 @@ -Archivo de configuración -======================== - -Puede personalizar la configuración predeterminada de Kanboard mediante la adición de un archivo ` config.php` en la raíz del proyecto o en la carpeta ` data` . -También puede cambiar el nombre del archivo `config.default.php` a `config.php` y cambiar los valores deseados . - -Habilitar/Deshabilitar el modo debug --------------------------------------- - -```php -define('DEBUG', true); -define('LOG_DRIVER', 'file'); // Otros drivers son: syslog, stdout, stderr or file -``` - -El controlador de registro se debe definir si se habilita el modo de depuración . -El modo de depuración registra todas las consultas SQL y el tiempo necesario para generar páginas . - -Plugins -------- - -Folder de plugins: - -```php -define('PLUGINS_DIR', 'data/plugins'); -``` - -Enable/disable plugin de instalación para la interface de usuario: - -```php -define('PLUGIN_INSTALLER', true); // Default es true -``` - -Folder para subir archivos -------------------------- - -```php -define('FILES_DIR', 'data/files'); -``` - -Enable/disable url rewrite --------------------------- - -```php -define('ENABLE_URL_REWRITE', false); -``` - -Configuración de Email -------------------- - -```php -// E-mail address para la cabecera "From" (notificaciones) -define('MAIL_FROM', 'notifications@kanboard.local'); - -// Mail transport para uso: "smtp", "sendmail" or "mail" (Funcion PHP mail) -define('MAIL_TRANSPORT', 'mail'); - -// Configuración SMTP para usarse para elegir el trasporte de "smtp" -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" - -// Comando Sendmail para usarse cuando el trasporte sea "sendmail" -define('MAIL_SENDMAIL_COMMAND', '/usr/sbin/sendmail -bs'); -``` - -Configuración de base de datos ------------------------------- - -```php -// Driver base de datos: sqlite, mysql or postgres (sqlite por default) -define('DB_DRIVER', 'sqlite'); - -// Nombre de usuario Mysql/Postgres -define('DB_USERNAME', 'root'); - -// Password Mysql/Postgres -define('DB_PASSWORD', ''); - -// Mysql/Postgres hostname -define('DB_HOSTNAME', 'localhost'); - -// Mysql/Postgres Nombre de la base de datos -define('DB_NAME', 'kanboard'); - -// Mysql/Postgres Puerto personalizado (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); -``` - -Configuraciones LDAP ----------------------- - -```php -// Habilitar la autenticación por LDAP (false por default) -define('LDAP_AUTH', false); - -// LDAP server hostname -define('LDAP_SERVER', ''); - -// LDAP puerto del servidor (389 por defecto) -define('LDAP_PORT', 389); - -// Por default, requiere certificados para verificacion para ldaps:// estilo URL. muesta false para saltarse la verificacion -define('LDAP_SSL_VERIFY', true); - -// Enable LDAP START_TLS -define('LDAP_START_TLS', false); - -// Por defecto Kanboard tiene el nombre de usuario LDAP en minúscula para evitar usuarios duplicados ( la base de datos entre mayúsculas y minúsculas ) -// Establece en true si desea conservar el caso -define('LDAP_USERNAME_CASE_SENSITIVE', false); - -// LDAP tipo de enlace : "anonymous", "user" o "proxy" -define('LDAP_BIND_TYPE', 'anonymous'); - -// Nombre de usuario LDAP para utilizar con el modo de proxy -// Patrón de nombre de usuario LDAP para utilizar con el modo de usuario -define('LDAP_USERNAME', null); - -// password LDAP para usar en modo proxy -define('LDAP_PASSWORD', null); - -// LDAP DN para usuarios -// Ejemplo para ActiveDirectory: CN=Users,DC=kanboard,DC=local -// Ejemplo para 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', ''); - -// Permitir creacion de usuario automatico LDAP -define('LDAP_USER_CREATION', true); - -// LDAP DN para administradores -// Example: CN=Kanboard-Admins,CN=Users,DC=kanboard,DC=local -define('LDAP_GROUP_ADMIN_DN', ''); - -// LDAP DN para managers -// Example: CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local -define('LDAP_GROUP_MANAGER_DN', ''); - -// Habilitiar proveedor LDAP de grupo para permisos de proyecto -// El usuario final será capaz de navegar por los grupos LDAP desde la interfaz de usuario y permitir el acceso a proyectos específicos -define('LDAP_GROUP_PROVIDER', false); - -// LDAP Base DN for groups -define('LDAP_GROUP_BASE_DN', ''); - -// LDAP filtro de grupo -// Ejemplo para ActiveDirectory: (&(objectClass=group)(sAMAccountName=%s*)) -define('LDAP_GROUP_FILTER', ''); - -// LDAP filtro por grupo de usuario -// Si se configura este filtro , Kanboard buscará grupos de usuarios en LDAP_GROUP_BASE_DN -// Example for OpenLDAP: (&(objectClass=posixGroup)(memberUid=%s)) -define('LDAP_GROUP_USER_FILTER', ''); - -// LDAP atributo para los nombres de grupos -define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn'); -``` - -Reverse-Proxy configuración de autenticación -------------------------------------- - -```php -// Enable/disable la autenticación reverse proxy -define('REVERSE_PROXY_AUTH', false); - -// Nombre del header a utilizar para el nombre de usuario -define('REVERSE_PROXY_USER_HEADER', 'REMOTE_USER'); - -// Nombre de usuario del administrador , por defecto en blanco -define('REVERSE_PROXY_DEFAULT_ADMIN', ''); - -// Dominio por defecto a utilizar para configurar la dirección de correo electrónico -define('REVERSE_PROXY_DEFAULT_DOMAIN', ''); -``` - -Configuración para la autenticacion RememberMe ----------------------------------------------- - -```php -// Enable/disable recuerdame autenticación -define('REMEMBER_ME_AUTH', true); -``` - -Secure HTTP configuracion de headers -------------------------------------- - -```php -// Enable o disable "Strict-Transport-Security" HTTP header -define('ENABLE_HSTS', true); - -// Enable o disable "X-Frame-Options: DENY" HTTP header -define('ENABLE_XFRAME', true); -``` - -Logging -------- - -De forma predeterminada , Kanboard no ingrese nada . -Si desea habilitar el registro , usted tiene que fijar un controlador de registro. - -```php -// log de drivers disponibles: syslog, stderr, stdout or file -define('LOG_DRIVER', ''); - -// Ingrese el nombre de archivo de registro si el driver "file" -define('LOG_FILE', __DIR__.DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR.'debug.log'); -``` - -Protección de Brute-force ---------------------- - -```php -// Habilitar captcha despues de 3 autenticaciones fallidas -define('BRUTEFORCE_CAPTCHA', 3); - -// Bloquear la cuenta después de 6 autenticaciones fallidas -define('BRUTEFORCE_LOCKDOWN', 6); - -// Bloquear la cuenta durante un minute -define('BRUTEFORCE_LOCKDOWN_DURATION', 15); -``` - -Session -------- - -```php -// 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); -``` - -Clientes HTTP --------------- - -Si las peticiones HTTP externas debe ser enviada a través de un proxy : - -```php -define('HTTP_PROXY_HOSTNAME', ''); -define('HTTP_PROXY_PORT', '3128'); -define('HTTP_PROXY_USERNAME', ''); -define('HTTP_PROXY_PASSWORD', ''); -``` - -Para permitir que los certificados de firma propia : - -```php -// Establece en false para permitir certficados self-signed -define('HTTP_VERIFY_SSL_CERTIFICATE', true); -``` - -Varias configuraciones ----------------------- - -```php -// Escapar de HTML dentro del texto de markdown -define('MARKDOWN_ESCAPE_HTML', true); - -// Cabecera de autenticación alternativo API , el valor predeterminado es la autenticación básica HTTP definido en RFC2617 -define('API_AUTHENTICATION_HEADER', ''); - -// Oculatar el formulario de login, usarlo si todos tus usuarios usan Google/Github/ReverseProxy authentication -define('HIDE_LOGIN_FORM', false); - -// Desactivación de cierre de sesión ( SSO para la autenticación externa ) -define('DISABLE_LOGOUT', false); - -// Invalidar token de la API almacenada en la base de datos , útil para pruebas automatizadas -define('API_AUTHENTICATION_TOKEN', 'My unique API Token'); -``` diff --git a/doc/es_ES/contributing.markdown b/doc/es_ES/contributing.markdown deleted file mode 100644 index 46d286d5..00000000 --- a/doc/es_ES/contributing.markdown +++ /dev/null @@ -1,67 +0,0 @@ -Directrices del contribuyente -====================== - -¿Cómo puedo ayudar? ------------------ - -Kanboard no es perfecto, pero hay muchas maneras de ayudar: - -- Dar opinión -- Informar de los errores -- Añadir o actualizar traducciones -- Mejorar la documentación -- Código de Escritura -- Dile a tus amigos que Kanboard es impresionante - -Antes de hacer cualquier empresa grande, abrir un nuevo tema y explicar su propuesta. - -Quiero dar retroalimentación ------------------------ -- Usted piensa que algo debe ser mejorado (interface de usuario, peticiones de características) -- Comprobar si aún no se propuso su idea -- Abrir un nuevo tema -- Describir su idea -- Puede también hacer un voto con +1 en las propuestas existentes - -Quiero informar de un error ---------------------------- - -- Compruebe si el problema no se ha comunicado anteriormente -- Abrir un nuevo ticket -- Explicar lo que está roto -- Describir la forma de reproducir el error -- Describir su entorno (versión Kanboard, sistema operativo, servidor web, Versión de PHP , la versión de la base de datos, el proveedor de alojamiento)} - -Deseo traducir Kanboard ----------------------------- -Kanboard se traduce en muchos idiomas. - -Sin embargo, las traducciones no están completas, observe la [guía de traducción para contribuir](translations.markdown). - - -Quiero mejorar la documentación ------------------------------------ -- ¿Crees que algo no está claro, existen errores gramaticales, errores tipográficos, otra cosa ? -- La documentación está escrita en Markdown y se almacena en la carpeta `docs`. -- Editar los archivos y enviar un Pull-Request -- La documentación se sincroniza con el repositorio y el sitio web oficial . - -Quiero contribuir al código --------------------------------- -Los pulls son siempre bienvenidos , al ser aceptado se tiene que seguir estas directrices: - -- ** Antes de hacer cualquier cambio grande o propuesta de diseño, abrir un nuevo ticket en comenzar una discusión **. -- Si desea agregar una nueva función, respetar la filosofía detrás de Kanboard. ** Nos centramos en la simplicidad **, no queremos tener un software sobrecargado . -- Lo mismo se aplica para la interface de usuario, ** ** simplicidad y eficiencia. -- Enviar un solo pull por característica o corrección de errores. -- Un pull más pequeño es más fácil y más rápido para revisar y fusionarlo. -- Asegurarse [ de hacer las pruebas unitarias (tests.markdown). -- Respetar los [estandares de codificación] (coding-standards.markdown). -- Escribir código mantenible, evitar la duplicación de código, usar las buenas practicas de PHP. -En cualquier caso, si no está seguro acerca de algo abierto crear un uevo ticket. - -Dile a tus amigos que Kanboard es impresionante ---------------------------------------------- - -Si utiliza Kanboard, corre la voz que le rodean. -Diles que es software libre y de código abierto esto es cool. diff --git a/doc/es_ES/creating-projects.markdown b/doc/es_ES/creating-projects.markdown deleted file mode 100755 index d6b42faa..00000000 --- a/doc/es_ES/creating-projects.markdown +++ /dev/null @@ -1,40 +0,0 @@ -Creación de proyectos -================= - -Kanboard puede manejar múltiples proyectos. Hay dos tipos de proyectos - -- Proyectos por equipos -- Proyectos privados pra una sola persona - -Creando proyectos para multiples usuarios ------------------------------------------- - -- Solamente los administradores y los administradores de proyecto pueden crear los proyectos. -- La gestión de usuarios está disponible - -Desde el dashboard, click en el link **Nuevo proyecto**: - -![Formulario para la creación de proyecto](../screenshots/new-project.png) - -Es muy facil , solo tienes que buscar un nombre para tu proyecto! - -Crear un proyecto privado --------------------------- - -- Cualquiera puede crear un proyecto privado -- **No hay** gestión de usuarios -- Sólo el propietario y los administradores pueden acceder al proyecto - -Desde el dashboard, haga clic en el enlace **Nuevo proyecto privado**. - - -Crear proyectos desde otro proyecto --------------------------------------- - -Cuando tu creas un nuevo proyecto, tu puedes escoger o duplicar las propiedades de otro proyecto : - -- Permisos -- Acciones -- Swimlanes -- Categorias -- Tareas diff --git a/doc/es_ES/creating-tasks.markdown b/doc/es_ES/creating-tasks.markdown deleted file mode 100755 index 8a4c0331..00000000 --- a/doc/es_ES/creating-tasks.markdown +++ /dev/null @@ -1,31 +0,0 @@ -Creación de tarea -============== - -Desde el tablero, haga clic en el signo más **plus** al lado del nombre de la columna - -![Creación de tarea desde el tablero](../screenshots/task-creation-board.png) - -A continuación, aparece el formulario de creación de tareas: - -![Formulario de creación de tareas](../screenshots/task-creation-form.png) - -Descripción de campos: - -- **Titulo**: El título de su tarea, que se podrá ver en el tablero. -- **Descripción**: Descripción que usa el formato [Markdown](syntax-guide.markdown). -- **Tags**: Lista de etiquetas asociadas a las tareas -- **Crear otra tarea**:Marque esta casilla si desea crear una tarea similar (serán pre-llenados algunos campos).. -- **Color**: Escoger el color de la tarjeta. -- **Asignado**: Persona que trabajara en la tarea. -- **Categoría**: Sólo una categoría puede ser asignado a una tarea (visibles sólo si los proyectos tienen categorías). -- **Columna**: La columna en la que se creó la tarea, su tarea se coloca en la parte inferior. -- **Prioridad**: AL Prioridad de la tarea, el intervalo se puede definir en la configuración del proyecto, los valores por defecto son P0 a P3. -- **Complejidad**: Se utiliza en la gestión de proyectos ágiles (Scrum), los puntos de complejidad o de la historia es un número que le dice al equipo lo difícil es la historia. A menudo, las personas utilizan la serie de Fibonacci. -- **Referencia**: ID externo para la tarea, por ejemplo, puede ser el número de entradas que provienen de otro sistema -- **Estimación original** : Estimación de horas para completar la tarea. -- **Tiempo transcurrido** : El tiempo dedicado a trabajar en la tarea. -- **Fecha de Inicio** : Se trata de un campo de fecha y hora. -- **Fecha de vencimiento** : Las tareas vencidas se tiene una fecha de vencimiento próxima rojo y las fechas de vencimiento será de color negro en el tablero. Varios formato de fecha se aceptan además del selector de fecha. - - -Con el enlace de vista previa, se puede ver la descripción de la tarea convertiendo la sintaxis de Markdown. diff --git a/doc/es_ES/cronjob.markdown b/doc/es_ES/cronjob.markdown deleted file mode 100755 index b7dc5cee..00000000 --- a/doc/es_ES/cronjob.markdown +++ /dev/null @@ -1,32 +0,0 @@ -Programaci�n de Jobs en background -================================== - -Para trabajar correctamente,Kanboard requiere que se corra un job en background diariamente. -Usualmente en plataformas Unix, este proceso se hace con `cron`. - -Este job es necesario para estas caracteristicas: - -- Reportes y analisis (calcular diariamente las estadisticas de cada proyecto) -- Enviar notificaciones de tareas atrasadas. -- Ejecutar automaticamente acciones conectadas a el evento "Daily background job for tasks" - -Configuraci�n de plataformas Unix y Linux ------------------------------------------ - -Hay varias maneras de definir una tarea programada en sistemas operativos Unix/Linux , este ejemplo es para Ubuntu 14.04 . -El procedimiento es similar a otros sistemas. - -Editar el crontab del usuario de tu servidor web - -```bash -sudo crontab -u www-data -e -``` - -Ejemplo para ejecutar diariamente cronjob a las 8am: - -```bash -0 8 * * * cd /path/to/kanboard && ./cli cronjob >/dev/null 2>&1 -``` - -Nota : El proceso del cronjob debe tener acceso a escritura de la base de datos en caso de usar Sqlite. -Usualmente, el cronjob corre bajo el usuario del servidor web. ** www-data , Ejemplo ** diff --git a/doc/es_ES/debian-installation.markdown b/doc/es_ES/debian-installation.markdown deleted file mode 100644 index 2150cf98..00000000 --- a/doc/es_ES/debian-installation.markdown +++ /dev/null @@ -1,74 +0,0 @@ -Como instalar Kanboard en debian -================================ - -Nota: Algunas caracteristicas de Kanboard requieren que tu corras [un job en background diariamente](cronjob.markdown). - -Debian 8 (Jessie) ------------------ - -Instalar Apache y PHP : - -```bash -apt-get update -apt-get install -y php5 php5-sqlite php5-gd unzip -service apache2 restart -``` - -Instalar Kanboard - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Debian 7 (Wheezy) ------------------ - -Instalar Apache y PHP - -```bash -apt-get update -apt-get install -y php5 php5-sqlite php5-gd unzip -``` - -Instalar Kanboard - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Debian 6 (Squeeze) ------------------- - -Instalar Apache y PHP - -```bash -apt-get update -apt-get install -y libapache2-mod-php5 php5-sqlite php5-gd unzip -``` - -Instalar Kanboard: - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` diff --git a/doc/es_ES/docker.markdown b/doc/es_ES/docker.markdown deleted file mode 100644 index bde5ec05..00000000 --- a/doc/es_ES/docker.markdown +++ /dev/null @@ -1,105 +0,0 @@ -Como ejecutar Kanboard con Docker? -================================ - -Kanboard puede funcionar facilmente con [Docker] (https://www.docker.com). - -El tamaño de la imagen es aproximadamente de **70MB** y contiene: - -- [Alpine Linux](http://alpinelinux.org/) -- The [process manager S6](http://skarnet.org/software/s6/) -- Nginx -- PHP 7 - -La tarea programada de Kanboard tambien esta todos los dias a la medianoche. -La reescritura de la URL esta activada e incluida en el archivo de configuracion. - -Cuando el contenedor esta funcionando, la memoria ocupa alrededor de **30MB**. - - -Utilice la versión estable ----------------------- - -Para buscar la ultima versión estable de Kanboard use la etiqueta **estable**: - -```bash---terminal -docker pull kanboard/kanboard -docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:stable -``` - -Utilice la versión de desarollo (build automatico) ---------------------------------------------- - -Cada commit nuevo en el repositorio crea una nueva construccion en la [Docker Hub](https://registry.hub.docker.com/u/kanboard/kanboard/). - - -```bash---terminal -docker pull kanboard/kanboard -docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:latest -``` - -La etiqueta **ultimo** es la **version de desarrollo** de Kanboard, uselo bajo su propio riesgo. - -Construya su propia imagen acoplable ---------------------------- - -Hay un `Dockerfile` en el repositorio de Kanboard para construir su imagen acoplable. -Clone el repositorio de Kanboard y ejecute el siguiente camando. - -```bash---terminal -docker build -t youruser/kanboard:master . -``` - -o - -```bash---terminal -make docker-image -``` - -Para ejecutar su contenedor en el fondo del puerto 80: - -```bash--terminal -docker run -d --name kanboard -p 80:80 -t youruser/kanboard:master -``` - -Volúmenes -------- - -Usted puede adjuntar dos volúmenes de su contenedor: - -- Carpeta de datos: `/var/www/app/data` -- Complementos de carpeta: `/var/www/app/plugins` - - -Use el indicador `-v` par montar un volumen en el ordenador central como se describe en [official Docker documentation](https://docs.docker.com/storage/volumes/). - - -Actualizar contenedor ----------------------- - --Ponga la nueva imagen --Elimine el nuevo contenedor --Reinicie el nuevo contenedor con algunos volúmenes - -Variables de entorno ---------------------- - -La lista de las varibles de entorno esta disponible en [esta pagina](env.markdown). - -Archivos configurados ------------- - -- El contenedor ya incluye un archivo de configuracion personalizado `/var/www/app/config.php`. -- Puede almacenar su propio archivo de configuracion de volumen de datos`/var/www/app/data/config.php`. - - -Referencias ----------- - -- [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/kanboard/kanboard/blob/master/Dockerfile) -- [Imagenes oficiales de Kanboard](https://registry.hub.docker.com/u/kanboard/kanboard/) -- [Documentacionde Docker](https://docs.docker.com/) -- [Dockerfile version estable](https://github.com/kanboard/docker) -- [Dockerfile version dev](https://github.com/kanboard/kanboard/blob/master/Dockerfile) diff --git a/doc/es_ES/email-configuration.markdown b/doc/es_ES/email-configuration.markdown deleted file mode 100644 index ee3824c8..00000000 --- a/doc/es_ES/email-configuration.markdown +++ /dev/null @@ -1,114 +0,0 @@ -Configuración del Email -======================= - -Configuración de usuarios -------------------------- - -Para recibir notificaciones por email los usuarios de Kanboard deben tener - -- Activar las notificaciones de su perfil -- Tener una dirección valida de email en su perfil -- Ser miembro del proyecto y que este tenga activo la opción de notificaciones - -Nota: El usuario que genera una sesión y que realiza alguna acción no recibe ninguna notificación, sólo otros miembros del proyecto. - -Comunicación con correos electronicos -------------------------------------- - -There are several email transports available: - -- SMTP -- Sendmail -- PHP mail funcion nativa -- Otros métodos que pueden ser proporcionados por externos : Postmark, Sendgrid and Mailgun - -Configuración del servidor --------------------------- - -Por default, Kanboard usa el bundled PHP mail function para el envio de emails. -Porque usualmente el servidor no requiere una configuración y así tu servidor puede estar listo para enviar emails. - -Sin embargo, es posible usar otros metodos, como el protocolo SMTP y Sendmail - -### Configuración SMTP - -Renombrar el archivo `config.default.php` a `config.php` y modificar estos valores: - -```php -// 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'); -``` - -También es posible utilizar una conexión segura, TLS or SSL: - -```php -define('MAIL_SMTP_ENCRYPTION', 'ssl'); // Valid values are "null", "ssl" or "tls" -``` - -### Configuración Sendmail - -Por default el comando para el sendmail esta `/usr/sbin/sendmail -bs` Pero usted puede personalizarlo en su archivo de configuración. - -Ejemplo: - -```php -// 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'); -``` - -### PHP funcion nativa de email - -Esta es la configuración por default - -```php -define('MAIL_TRANSPORT', 'mail'); -``` - -### La dirección de correo electrónico del remitente - -Por default, los correos electrónicos utilizarán la dirección del remitente `notifications@kanboard.local`. -con este correo no es posible responderle - -Tu puedes personalizar esta direccion cambiando el valor de la constante `MAIL_FROM` en tu archivo de configuración - -```php -define('MAIL_FROM', 'kanboard@mydomain.tld'); -``` - -Esto puede ser útil si su configuracion del servidor SMTP no acepta una dirección por default. - -### Cómo mostrar un enlace a la tarea en las notificaciones ? - -Para hacer eso, tu tienes que especificar la URL de tu instalación de tu kanboard [Application Settings](application-configuration.markdown). - -De manera predeterminada, no se define nada, por lo que no se mostrará los enlaces. - -Ejemplos : - -- http://myserver/kanboard/ -- http://kanboard.mydomain.com/ - -No se olvide de la barra final `/`. - -Es necesario definir de forma manual debido a que Kanboard no puede adivinar la dirección URL de una secuencia de comandos de línea de comandos y algunas personas tienen una configuración muy específica. - -Solución de problemas ---------------------- - -Si no hay mensajes de correo electrónico se envían y que está seguro de que todo está configurado correctamente entonces: - -- Verificar el correo de spam -- Habilita el modo debug y verifique el archivo `data/debug.log`, Debería ver el error exacto -- Asegúrese de que el servidor o el proveedor de alojamiento le permite enviar mensajes de correo electrónico -- Si usa Selinux Permitir a PHP enviar emails diff --git a/doc/es_ES/faq.markdown b/doc/es_ES/faq.markdown deleted file mode 100755 index e1ecb3da..00000000 --- a/doc/es_ES/faq.markdown +++ /dev/null @@ -1,132 +0,0 @@ -Preguntas frecuentes -========================== - -Tu puedes recomendar un proveedor de web hosting para Kanboard? ---------------------------------------------------------------- - -Kanboard funciona bien con cualquier VPS proveedor de hosting como [Digital Ocean](https://www.digitalocean.com/?refcode=4b541f47aae4), -[Linode](https://www.linode.com/?r=4e381ac8a61116f40c60dc7438acc719610d8b11) o [Gandi](https://www.gandi.net/). - -Para tener el mejor performance , elegir un proveedor con el disco rápido de I/O porque Kanboard utilizar SQLite de forma predeterminada . -Evitar los proveedores de alojamiento que utilizan un punto de montaje NFS compartido. - - -Me sale una página en blanco después de instalar o actualizar Kanboard ----------------------------------------------------------------------- - -- Verificar si tienes instalados todos los requerimientos en tu servidor -- Verificar el log de errores de PHP y Apache -- Verificar si los archivos tienen los permisos correctos -- Si utiliza un agresivo OPcode caching, haz un reload a tu web-server o php-fpm - - -Si Tienes el error "No hay CSPRNG adecuado instalado en su sistema " ------------------------------------------------------------------------ - -Si tu usas PHP < 7.0, Tu necesitas tener la extensión openssl habilitada o `/dev/urandom` accesible desde la aplicación si se -restringe por un `open_basedir` - - -Página no encontrada y la URL parece mal (&amp;) --------------------------------------------------- - -- La URL se mira como `/?controller=auth&action=login&redirect_query=` instanciada de `?controller=auth&action=login&redirect_query=` -- Kanboard regresa el error "Page not found" - -Este problema proviene de la configuración de PHP , el valor de ` arg_separator.output` no es defecto del PHP , hay diferentes maneras de solucionar que: - -Cambiar el valor directamente en su ` php.ini` si es posible : - -`` ` -arg_separator.output = "& " -`` ` - -Sustituir el valor con un ` .htaccess` : - -`` ` -arg_separator.output php_value "& " -`` ` - -De lo contrario Kanboard tratará de anular el valor directamente en PHP . - - -Error de autenticación con la API y Apache + PHP - FPM --------------------------------------------------------- - -Php-cgi bajo Apache HTTP basico no pasa user/pass forma predeterminada . -Para que esta solución funcione , añadir estas líneas a su archivo ` .htaccess` : - -``` -RewriteCond %{HTTP:Authorization} ^(.+)$ -RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] -``` - - -Problemas conocidos con eAccelerator ------------------------------- - -Kanboard no funciona muy bien con [eAccelerator](http://eaccelerator.net). -El problema puede ser causado una página en blanco o un accidente de Apache : - -``` -[Wed Mar 05 21:36:56 2014] [notice] child pid 22630 exit signal Segmentation fault (11) -``` - -La mejor manera de evitar este problema es desactivar eAccelerator o definir manualmente los archivos que desea almacenar en caché con el parámetro de configuración ` eaccelerator.filter` . - -The project [eAccelerator parece muerto y no se actualiza desde 2012](https://github.com/eaccelerator/eaccelerator/commits/master). -Recomendamos para cambiar a la ultima versión de PHP por que el bundled viene con [OPcache](http://php.net/manual/en/intro.opcache.php). - - -Por que el requerimiento minimo es PHP 5.3.3? ------------------------------------------ - -Kanboard utiliza la funcion `password_hash()` para encriptar los passwords pero solo esta disponible ne la version PHP >= 5.5. - -Sin embargo, hay un back-port para [versiones de php anteriores](https://github.com/ircmaxell/password_compat#requirements). -Esta biblioteca requiere al menos PHP 5.3.7 para que funcione correctamente. - -Al parecer , CentOS y Debian tienen parches de seguridad en su back-port para PHP 5.3.3 y al parecer estan bien. - -Kanboard v1.0.10 y v1.0.11 requiere al menos PHP 5.3.7 , pero este cambio se ha vuelto a ser compatible con PHP 5.3.3 con Kanboard > = v1.0.12 - - -Cómo probar Kanboard con el PHP incorporado en el servidor web? ---------------------------------------------------------------- - -Si tu no quieres instalar un servidor web como Apache en tu localhost, tu puedes testearlo con el [servidor web embebido de PHP](http://www.php.net/manual/en/features.commandline.webserver.php): - -```bash -unzip kanboard-VERSION.zip -cd kanboard -php -S localhost:8000 -open http://localhost:8000/ -``` - - -Como instalar Kanboard en Yunohost? ------------------------------------- - -[YunoHost](https://yunohost.org/) es un sistema operativo de servidor con el objetivo de hacer auto-alojamiento accesible para todos. - -Existe un [paquete para instalar Kanboard en Yunohost facilmente](https://github.com/mbugeia/kanboard_ynh). - - -¿Dónde puedo encontrar una lista de proyectos relacionados? --------------------------------------------- - -- [Kanboard API python client by @freekoder](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) -- [Kanboard for Yunohost by @mbugeia](https://github.com/mbugeia/kanboard_ynh) -- [Trello import script by @matueranet](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) -- [Shell script for SQLite to MySQL/MariaDB migration by @oliviermaridat](https://github.com/oliviermaridat/kanboard-sqlite2mysql) -- [Git hooks for integration with Kanboard by Gene Pavlovsky](https://github.com/gene-pavlovsky/kanboard-git-hooks) - - -¿Hay algunos tutoriales sobre Kanboard en otro idioma? ------------------------------------------------------------ - -- [Artículo serie alemana sobre Kanboard](http://demaya.de/wp/2014/07/kanboard-eine-jira-alternative-im-detail-installation/) diff --git a/doc/es_ES/freebsd-installation.markdown b/doc/es_ES/freebsd-installation.markdown deleted file mode 100644 index 9d8d0025..00000000 --- a/doc/es_ES/freebsd-installation.markdown +++ /dev/null @@ -1,132 +0,0 @@ -Instalacion en FreeBSD -======================= - -Instalación de paquetes ---------------------- - -```bash---terminal -$ pkg update -$ pkg upgrade -$ pkg install apache24 mod_php56 kanboard -``` - -Habilitar Apache en `/etc/rc.conf`; - -```bash---terminal -$ echo apache24_enable="YES" >> /etc/rc.conf -``` - -Preparar PHP para Apache: - -```bash---terminal -$ 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 -``` - -Iniciar Apache: - -```bash---terminal -$ service apache24 start -``` - -Añadir enlace a la carpeta Kanboard en su docroot Apache: - - -```bash---terminal -cd /usr/local/www/apache24/data -ln -s /usr/local/www/kanboard -``` - -Ir a http://your.server.domain.tld/kanboard and enjoy! - -*Notas*: -- Si deseas utilizar funciones adicionales como la integracion con LDAP, etc. -por favor instale el modulo PHP utilizando el paquete adecuado. -- Es posible que tenga que ejecutar los permisos de la carpeta de datos. - - -Instalacion de puertos ---------------------- - -Generalmente tres elementos tienen que instalarse: - -- Apache -- mod_php for Apache -- Kanboard - -Fetch y extraer puertos... - -```bash---terminal -$ portsnap fetch -$ portsnap extract -``` - -o actualizacion ya existente: - -```bash---terminal -$ portsnap fetch -$ portsnap update -``` - -Mas detalles con respecto a portsnap se puede encontrar en [FreeBSD Handbook](https://www.freebsd.org/doc/handbook/ports-using.html). - -Instalacion de Apache: - -```bash--terminal -$ cd /usr/ports/www/apache24 -$ make install clean -``` - -Habilitar Apache en `/etc/rc.conf`: - -```bash---terminal -$ echo apache24_enable="YES" >> /etc/rc.conf -``` - -Instalacion de mod_php para Apachec: - -```bash---terminal -$ cd /usr/ports/www/mod_php5 -$ make install clean -``` - -Instalacion de los puertos de formulario para Kanboard - -```bash---terminal -$ cd /usr/ports/www/kanboard -$ make install clean -``` - -Configuracion de PHP para Apache - - -```bash--terminal -$ 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 -``` - -Iniciando Apache: - -```bash---terminal -$ service apache24 start -``` - -Ir a http://your.server.domain.tld/kanboard and enjoy! - -*Nota*: -Si desea utilizar funciones adicionales como la intregacion con LDAP, etc. -Instale el modulo PHP adecuado de `lang/php5-extensions`. - - -Manual de instalacion -------------------- - -Como en la version 1.0.16 Kanboard se puede encontrar en los puertos de FreeBSD no hay necesidad de instalarlo manualmente. - - -Tome nota por favor --------------------- - -- El puerto esta alojado en [bitbucket](https://bitbucket.org/if0/freebsd-kanboard/). Sientase libre de comentar, y sugerir cambios ! -- Algunas funciones de Kanboard requieren ejecutar[un trabajo en segundo plano todos los dias](cronjob.markdown). - diff --git a/doc/es_ES/heroku.markdown b/doc/es_ES/heroku.markdown deleted file mode 100644 index 8de8b4da..00000000 --- a/doc/es_ES/heroku.markdown +++ /dev/null @@ -1,38 +0,0 @@ -Implementar Kanboard en Heroku -========================= - -Usted puede tratar de forma gratuita en Kanboard[Heroku](https://www.heroku.com/). -Puede utilizar este botón de un solo clic instalar o siga las instrucciones del manual abajo: - -[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/kanboard/kanboard) - -Requerimientos ------------- -- Cuenta de Heroku, se puede utilizar una cuenta gratuita -- Herramientas de línea de comandos instalados Heroku - -Manual de Instrucciones -------------------- - -```bash -# Obtener la ultima version de desarrollo -git clone https://github.com/kanboard/kanboard.git -cd kanboard - -# Empuje el código para Heroku (También puede utilizar SSH si Git sobre HTTP no funciona) -heroku create -git push heroku master - -# Iniciar un nuevo banco de pruebas con una base de datos PostgreSQL -heroku ps:scale web=1 -heroku addons:add heroku-postgresql:hobby-dev - -# Abra su navegador -heroku open -``` - -Limitaciones ------------ - -- El almacenamiento de Heroku es efímera, eso significa que los archivos cargados a través de Kanboard no son persistentes después de un reinicio. Es posible que desee instalar un plugin para almacenar sus archivos en un proveedor de almacenamiento en la nube como [Amazon S3](https://github.com/kanboard/plugin-s3). -- Algunas funciones de Kanboard requieren que ejecute [un trabajo en segundo plano todos los días] (cronjob.markdown). diff --git a/doc/es_ES/installation.markdown b/doc/es_ES/installation.markdown deleted file mode 100644 index 308b0e2b..00000000 --- a/doc/es_ES/installation.markdown +++ /dev/null @@ -1,68 +0,0 @@ -Instalación - -En primer lugar, comprobar los [requisitos] ( requirements.markdown)antes de ir más lejos. - -Del archivo (versión estable) ---------------------------------- - - -1. Debe tener un servidor web con PHP instalado -2. Descargar el código fuente y copiar el directorio ` kanboard` en la que desea. -3. Comprobar si el directorio ` data` se puede escribir -4. Con el navegador vaya a < http://yourpersonalserver/kanboard > -5. El nombre de usuario y contraseña por defecto es **admin/admin** -6. Comience a utilizar el software -7. No se olvide de cambiar su contraseña! - - -La carpeta de datos se utiliza para almacenar: - -- Base de datos SQLite: ` db.sqlite` -- Archivo de depuración: ` debug.log` (si está activado el modo de depuración) -- Archivos cargados: ` ficheros / *` -- miniaturas de imagen: ` ficheros / miniaturas / *` - -Las personas que están utilizando una base de datos remota (MySQL / PostgreSQL) y un almacenamiento de archivos a distancia (AWS S3 o similar) no necesariamente tienen que tener una carpeta de datos local persistente o para cambiar el permiso. - -Desde el repositorio (versión de desarrollo) ------------------------------------------ - -1. ` git clone https: // github.com / kanboard / kanboard.git` -2. Ir a la tercera etapa justo por encima - -Nota: Este método se instalará la versión de **desarrollo actual** , utilice a su propio riesgo . - -Instalación exterior de la raíz del documento ---------------------------------------------- - -Si desea instalar Kanboard fuera de la raíz de documentos del servidor web, es necesario crear al menos estos enlaces simbólicos: - -```bash -. -├── assets -> ../kanboard/assets -├── cli -> ../kanboard/cli -├── doc -> ../kanboard/doc -├── favicon.ico -> ../kanboard/favicon.ico -├── index.php -> ../kanboard/index.php -├── jsonrpc.php -> ../kanboard/jsonrpc.php -└── robots.txt -> ../kanboard/robots.txt -``` - -El ` .htaccess` es opcional, ya que su contenido puede ser incluido directamente en la configuración de Apache. - -También puede definir una ubicación personalizada para los plugins y carpetas de archivos cambiando el [archivo de configuración] (config.markdown). - -La instalación opcional - ---------------------- - -- Algunas funciones de Kanboard requieren que ejecuta [un trabajo en segundo plano todos los días] (cronjob.markdown) (Informes y análisis) -- [Instalar el trabajador fondo] (worker.markdown) para mejorar las prestaciones - -Seguridad ---------- - - -- No se olvide de cambiar el usuario por defecto / contraseña -- No permita a todo el mundo para acceder al directorio ` data` de la URL. -Ya existe un ` .htaccess` para Apache , pero nada para los demás servidores web. diff --git a/doc/es_ES/kanban-vs-todo-and-scrum.markdown b/doc/es_ES/kanban-vs-todo-and-scrum.markdown deleted file mode 100644 index 5295a6d1..00000000 --- a/doc/es_ES/kanban-vs-todo-and-scrum.markdown +++ /dev/null @@ -1,38 +0,0 @@ -Kanban vs Todo lists and Scrum -============================== - -Kanban vs Todo lists --------------------- - -### Todo lists (lista de tareas) : - -- Fase unica (es solo una lista de tareas) -- Multitarea posible (no eficiente) - -### Kanban: - -- Multi fases, -- Concentración absoluta para evitar multitareas por que se puede establecer un limite por columna para mejorar el progreso - - -Kanban vs Scrum ---------------- - -### Scrum: - -- Los sprints son time-boxed, usualmente 2 o 4 semanas -- No permitir cambios durante la iteración -- La estimación es requerida -- Utiliza la velocidad como métrica predeterminada -- El tablero de Scrum se borra entre cada sprint -- Scrum tiene funciones predefinidas como scrum master , los dueños del producto y el equipo -- Una gran cantidad de reuniones: planeaciones, backlogs grooming, daily stand-up, retrospectiva - -### Kanban: - -- Fluido continuo -- Los cambios se pueden crear en cualquier momento -- La estimacion es opcional -- Usa la iniciativa del tiempo de ciclo para apresurar el performance -- el tablero Kanban board es persistente -- Kanban no impone estrictas restricciones y reuniones, el proceso es mas flexible diff --git a/doc/es_ES/keyboard-shortcuts.markdown b/doc/es_ES/keyboard-shortcuts.markdown deleted file mode 100755 index 9e75a138..00000000 --- a/doc/es_ES/keyboard-shortcuts.markdown +++ /dev/null @@ -1,38 +0,0 @@ -Atajos de teclado ** keyboard shortcuts ** -========================================== - -La disponibilidad de los Atajos de teclado depende de la página que está actualmente . - -Vistas de proyectos (Board, Calendario, Lista, Gantt) --------------------------------------------- - -- Cambie a la visión general del proyecto = **v o** -- Cambie ala vista del tablero = **v b** (presiona **v** y despues **b**) -- Cambie ala vista del calendario = **v c** -- Cambie a la vista de lista = **v l** -- Cambie a la vista de Gantt = **v g** - -Vista de tablero ---------------- - -- Nueva tarea = **n** -- Expandir/colapsar tarea = **s** -- Vista Compacta/Amplia = **c** - -Vista de tarea ---------- - -- Editar tarea = **e** -- Nueva subtarea = **s** -- Nuevo comentario = **c** -- Nuevo link interno = **l** - -Aplicación ------------ - -- Visualizar la lista de atajos de teclado = **?** -- Abrir tablero y cambiarlo = **b** -- Ir a la caja de busqueda = **f** -- Eliminar la caja de busqueda = **r** -- Cerrar dialog box = **ESC** -- Submit al formulario = **CTRL+ENTER** or **⌘+ENTER** diff --git a/doc/es_ES/mysql-configuration.markdown b/doc/es_ES/mysql-configuration.markdown deleted file mode 100755 index 25c9e671..00000000 --- a/doc/es_ES/mysql-configuration.markdown +++ /dev/null @@ -1,74 +0,0 @@ -Configuración Mysql/MariaDB -=========================== - - -Por defecto Kanboard utilizar SQLite para almacenar tus datos. -Sin embargo, es posible usar MySQL o MariaDB en lugar de SQLite. - -Requirimientos ------------- - -- Mysql server -- Instalar la extensión `pdo_mysql` en PHP - -Nota: Kanboard esta testeada con **Mysql >= 5.5 y MariaDB >= 10.0** - -configuración Mysql -------------------- - -### Crear una base de datos - -El primer paso es crear una base de datos en tu servidor MySQL -Por ejemplo, se puede hacer eso con el cliente de línea de comandos mysql: - -```sql -CREATE DATABASE kanboard; -``` - -### Crear un archivo de configuración - -El archivo `config.php` debería contener estos valores: - -```php -<?php - -// Elegimos el uso de MySQL en lugar de SQLite -define('DB_DRIVER', 'mysql'); - -// Mysql parametros -define('DB_USERNAME', 'REPLACE_ME'); -define('DB_PASSWORD', 'REPLACE_ME'); -define('DB_HOSTNAME', 'REPLACE_ME'); -define('DB_NAME', 'kanboard'); -``` - -Nota: Se puede renombrar el archivo de plantilla `config.default.php` a `config.php`. - -### Importando SQL dump (metodo alternativo) - - -Por primera vez, se ejecutará Kanboard uno por uno cada migración de base de datos y este proceso puede tardar algún tiempo de acuerdo a su configuración. - -Para evitar cualquier tiempo de espera de potencial se puede inicializar la base de datos directamente importando el esquema de SQL: - -```bash -mysql -u root -p my_database < app/Schema/Sql/mysql.sql -``` - -El archivo `app/Schema/Sql/mysql.sql` es un dump SQL que representa la ultima versión de la base de datos - -SSL configuración ------------------ - -Estos parámetros tienen que ser definidas para permitir la conexión SSL Mysql: - -```php -// Mysql SSL key -define('DB_SSL_KEY', '/path/to/client-key.pem'); - -// Mysql SSL certificados -define('DB_SSL_CERT', '/path/to/client-cert.pem'); - -// Mysql SSL CA -define('DB_SSL_CA', '/path/to/ca-cert.pem'); -``` diff --git a/doc/es_ES/plugin-authentication-architecture.markdown b/doc/es_ES/plugin-authentication-architecture.markdown deleted file mode 100644 index fa11f1bc..00000000 --- a/doc/es_ES/plugin-authentication-architecture.markdown +++ /dev/null @@ -1,99 +0,0 @@ -Arquitectura de autenticación -============================= - -Kanboard provee una flexible y conectable arquitectura de autenticación. - -Por default, el usuario puede autenticarse con multiple metodos: - -- Autenticación por usuario y password (Base de datos local y LDAP) -- Autenticación OAuth2 -- Autenticación Reverse-Proxy -- Autenticación basada en Cookie (Recuerdame) - -Además, despues de una autenticación satisfactoria un puede hacerse post de autenticación Two-Factor . -Kanboard sopoarta nativamente el standart TOTP. - -Interfaces de autenticación ----------------------------- - -Para tener un sistema conectable, los drivers de autenticación deben implementar un conjunto de interfaces - -| Interface | Rol | -|------------------------------------------|------------------------------------------------------------------| -| AuthenticationProviderInterface | Interface base para otras interfaces de autenticación | -| PreAuthenticationProviderInterface | The user is already authenticated al alcanzar la aplicación, Usualmente los servidores web definen algunas variables de entorno | -| PasswordAuthenticationProviderInterface | El metodo de autenticación que usa el username y password provienen del formulario de login | -| OAuthAuthenticationProviderInterface | Proveedores OAuth2 | -| PostAuthenticationProviderInterface | Drivers de autenticación Two-Factor ,pide el código a confirmar | -| SessionCheckProviderInterface | Los proveedores que son capaces de comprobar si la sesión de usuario es válida | - -### Ejemplos de autenticación de proveedores: - -- Database por default metodos a implementar `PasswordAuthenticationProviderInterface` y `SessionCheckProviderInterface` -- Reverse-Proxy metodos a implementar `PreAuthenticationProviderInterface` y `SessionCheckProviderInterface` -- Google metodos a implementar `OAuthAuthenticationProviderInterface` -- LDAP metodos a implementar `PasswordAuthenticationProviderInterface` -- RememberMe cookie metodos a implementar `PreAuthenticationProviderInterface` -- Two-Factor TOTP metodos a implementar `PostAuthenticationProviderInterface` - -flujo de trabajo de autenticación ** Workflow ** ------------------------------------------------- - -Para cada peticion HTTP: - -1. Si la sesión de usuario esta abierta, ejecuta el registro de proveedores que implementa`SessionCheckProviderInterface` -2. Ejecuta todos los proveedores que implementa `PreAuthenticationProviderInterface` -3. Si el usuario final hace un submit al formulario del login, Los proveedores que implementa `PasswordAuthenticationProviderInterface` are executed -4. Si el usuario final quiere usar OAuth2, el selecciona el proveedor a ejecutar -5. Despues de una autenticación satisfactoria, el ultimo registro utilizará `PostAuthenticationProviderInterface` -6. Sincronizar la información del usuario si es necesario - -Este workflow es manejado por la clase `Kanboard\Core\Security\AuthenticationManager`. - -Eventos disparados: - -- `AuthenticationManager::EVENT_SUCCESS`: autenticación satisfactoria -- `AuthenticationManager::EVENT_FAILURE`: autenticación fallida - -Cada vez que se produce un evento de fallo , el contador de intentos fallidos se incrementa. - -La cuenta de usuario se puede bloquear para el período de tiempo configurado y un captcha puede ser mostrado para evitar ataques de fuerza bruta . - -Interface de usuario del proveedor ---------------------------------- - -Cuando la autenticación es satisfactoria, la `AuthenticationManager` pedura la información del usuario para que el driver llame al metodo `getUser()`. -Este metodo debe regresar un objeto que implementa la interface `Kanboard\Core\User\UserProviderInterface`. - -Esta clase abstracta reune la información dede otro sistema. - -Ejemplos : - -- `DatabaseUserProvider` proporciona información para un usuario interno -- `LdapUserProvider` para un usuario LDAP -- `ReverseProxyUserProvider` para un usuario Reverse-Proxy -- `GoogleUserProvider` represtan un usuario de Google - -Los métodos para la interface del proveedor de Usuario: - -- `isUserCreationAllowed()`: Regresa true para permitir la creación automática de usuarios -- `getExternalIdColumn()`: Obtener Identificación del nombre de la columna externa (google_id, github_id, gitlab_id...) -- `getInternalId()`: Obtener el id interno de la base de datos -- `getExternalId()`: Obtener el id externo(Unique id) -- `getRole()`: Obtener el rol de usuario -- `getUsername()`: Obtener en nombre de usuario ** username ** -- `getName()`: Obtener nombre completo del usuario -- `getEmail()`: Obtener el correo electronico del usuario -- `getExternalGroupIds()`: Obtiene los ids externos del grupo, automáticamente sincroniza la membresia del grupo y la presenta -- `getExtraAttributes()`: Obtiene los atributos extras para ser mostrados a el usuario durante la sincronización local - -No es obligatorio que el metodo devuelva un valor. - -Sincronización de un usuario local ----------------------------------- - -La información del usuario puede ser sincronizada automáticamente con la base de datos local. - -- Si el metodo`getInternalId()` regresa un valor no realiza la sincronización -- Los metodos `getExternalIdColumn()` y `getExternalId()` debe regresar un valor para sincronizar el usuario -- Las propiedades que regresan un ** String ** vacios no se sincronizan diff --git a/doc/es_ES/plugin-authentication.markdown b/doc/es_ES/plugin-authentication.markdown deleted file mode 100644 index 05742156..00000000 --- a/doc/es_ES/plugin-authentication.markdown +++ /dev/null @@ -1,42 +0,0 @@ -Plugin de autenticación -===================== - -EL nuevo backend de autenticación se puede escribir con muy pocas lineas de codigo. - -Registro de proveedores ------------------------ - -En el metodo `initialize()` nuestro plugin, llama al metodo `register()` de la clase `AuthenticationManager`: - -```php -public function initialize() -{ - $this->authenticationManager->register(new ReverseProxyLdapAuth($this->container)); -} -``` - -El objeto proveniente de el metodo `register()` debe implementar one de las interfaces de autenticación predefidas. - -Esas interfaces estan definidas en los namespace `Kanboard\Core\Security`: - -- `Kanboard\Core\Security\PreAuthenticationProviderInterface` -- `Kanboard\Core\Security\PostAuthenticationProviderInterface` -- `Kanboard\Core\Security\PasswordAuthenticationProviderInterface` -- `Kanboard\Core\Security\OAuthAuthenticationProviderInterface` - - - -El único requisito es implementar las interfaces, la clase se puede escribir de la manera deseada y situado en cualquier lugar en el disco - -Usuario del proveedor ----------------------- - -Cuando la autenticación es satisfactoria, tu driver debe regresar un objato que representa al usuario. -Este objeto debe implementasr la interface `Kanboard\Core\User\UserProviderInterface`. - -Ejemplo de plugin de autenticación ----------------------------------- - -- [Autenticación de proveedores incluido en kanboard](https://github.com/kanboard/kanboard/tree/master/app/Auth) -- [Reverse-Proxy Autenticación con soporte LDAP](https://github.com/kanboard/plugin-reverse-proxy-ldap) -- [Two-Factor Autenticación SMS](https://github.com/kanboard/plugin-sms-2fa) diff --git a/doc/es_ES/plugin-authorization-architecture.markdown b/doc/es_ES/plugin-authorization-architecture.markdown deleted file mode 100644 index 769adcf8..00000000 --- a/doc/es_ES/plugin-authorization-architecture.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Arquitecuta de autorización -=========================== - -Kanboard [soporta multiples roles](roles.markdown) a nivel de aplicación y a nivel de proyecto. - -Workflow de autorización --------------------------- - -Para cada solicitud HTTP: - -1. Autorizar o no el acceso a los recursos en base a la lista de acceso a las aplicaciones -2. Si el recurso es para un projecto (board, tarea...): - 1. Extrae los roles de usuario para este proyecto - 2. Permitir/Denegar accesos basados en el mapa de acceso del proyecto - -Extendiendo mapa de accesos ---------------------------- - -Lista de accesos (ACL) se basa en el nombre de clase del controlador y el nombre del método -La lista de acceso está a cargo de la clase `Kanboard\Core\Security\AccessMap`. - -Hay dos mapa de acceso: una para la aplicación y la otra para un proyecto. - -- Acceso al mapa de aplicación : `$this->applicationAccessMap` -- Acceso al mapa del proyecto: `$this->projectAccessMap` - -Ejemplos para definir una nueva política para tu plugin: - -```php -// Todos los metodos de la clase MyController: -$this->projectAccessMap->add('MyController', '*', Role::PROJECT_MANAGER); - -// Todos los metodos: -$this->projectAccessMap->add('MyOtherController', array('create', 'save'), Role::PROJECT_MEMBER); -``` - -Los roles estan defidos en la clase `Kanboard\Core\Security\Role`. - -Clase de autorización (`Kanboard\Core\Security\Authorization`) comprobará el acceso de cada página. diff --git a/doc/es_ES/plugin-automatic-actions.markdown b/doc/es_ES/plugin-automatic-actions.markdown deleted file mode 100644 index 27effaad..00000000 --- a/doc/es_ES/plugin-automatic-actions.markdown +++ /dev/null @@ -1,61 +0,0 @@ -Agregando acciones automáticas -=============================== - -Agregando una nueva acccion automática es bastante simple. - -Creando una nueva accion ------------------------- - -Tus acciones automáticas deben heradarse de la clase `Kanboard\Action\Base`. - -Varios métodos abstractos deben ser implementadas por sí mismo: - -| Metodos | Descripción | -|-------------------------------------|------------------------------------------------------------------| -| `getDescription()` | Descripcion visible en la interface del usuario | -| `getCompatibleEvents()` | Obtener las listas de eventos compatibles | -| `getActionRequiredParameters()` | Obtener los parametros requeridos para la acción (definidos por el usuario)| -| `getEventRequiredParameters()` | Obtener los parametros requeridos para el evento | -| `doAction(array $data)` | Ejecutar la acción, Debe regresar true si fue satisfactorio | -| `hasRequiredCondition(array $data)` | Comprobar si los datos de eventos cumplen la condición de acción | - -Tu accion automatica es identificada en kanboard utilizando el nombre de la clase absoluta con el espacio de nombre incluido - -Agregando nuevos eventos ------------------------- - -La lista de eventos de la aplicación está disponible en la clase `Kanboard\Core\Event\EventManager::getAll()`. -Sin embargo, si tu plugin dispara nuevos eventos, tu puedes registrar estos eventos : - -```php -$this->actionManager->getAction('\Kanboard\Plugin\MyPlugin\MyActionName')->addEvent('my.event', 'My event description'); -``` - -Tu puedes extender la lista de eventos compatibles de acciones existentes para ser usada en algun metodo. - -Registra la acción ----------------------- - -Tu tienes que llamar el metodo `register()` desde la clase `Kanboard\Core\Action\ActionManager`: - -```php -<?php - -namespace Kanboard\Plugin\AutomaticAction; - -use Kanboard\Core\Plugin\Base; -use Kanboard\Plugin\AutomaticAction\Action\TaskRename; - -class Plugin extends Base -{ - public function initialize() - { - $this->actionManager->register(new TaskRename($this->container)); - } -} -``` - -Ejemplo -------- - -- [Ejemplo de acción automatica](https://github.com/kanboard/plugin-example-automatic-action) diff --git a/doc/es_ES/plugin-avatar-provider.markdown b/doc/es_ES/plugin-avatar-provider.markdown deleted file mode 100644 index 2cce0647..00000000 --- a/doc/es_ES/plugin-avatar-provider.markdown +++ /dev/null @@ -1,32 +0,0 @@ -Agregando un nuevo avatar del proveedor -======================================= - -Registrar ------------- - -```php -$this->avatarManager->register(new CustomAvatarProvider()); -``` - -Interface ---------- - -El proveedor debe implementar la interface `Kanboard\Core\User\Avatar\AvatarProviderInterface`: - - -| Metodo | Descripcion | -|-------------------------------|---------------------------------------------------------------| -| `render(array $user, $size)` | Renderizar HTML | -| `isActive(array $user)` | Regresa un boolean si el proveedor esta activo | - - -El argumento `$user` es un directorio que contiene estas llaves : - -```php -[ - 'id' => 123, - 'username' => 'admin', - 'name' => 'Administrator', - 'email' => 'me@localhost', -] -``` diff --git a/doc/es_ES/plugin-directory.markdown b/doc/es_ES/plugin-directory.markdown deleted file mode 100644 index 0742b992..00000000 --- a/doc/es_ES/plugin-directory.markdown +++ /dev/null @@ -1,15 +0,0 @@ -Plugin de configuración del directorio -====================================== - -Para instalar, actualizar y eliminar plugins dede la interface de usuario, debes tener estos requerimientos: - -- El directorio del plugin debe ser de escritura por el usuario del servidor web -- La extensión Zip debe estar disponible en tu server. -- Los parametros de configuración `PLUGIN_INSTALLER` deben estar en `true` - -Para desactivar esta función , cambie el valor de `PLUGIN_INSTALLER` a `false` en tu archivo de configuración. -También puede cambiar los permisos de la carpeta Plugin en el filesystem. - -Sólo los administradores pueden instalar plugins desde la interfaz de usuario. - -Por defecto, sólo plug-in que aparece en la página web de Kanboard están disponibles . diff --git a/doc/es_ES/plugin-events.markdown b/doc/es_ES/plugin-events.markdown deleted file mode 100644 index ebb9066b..00000000 --- a/doc/es_ES/plugin-events.markdown +++ /dev/null @@ -1,27 +0,0 @@ -Uso de eventos -=============== - -Kanboard usar internamente el [ Componente EventDispatcher de Symfony ](https://symfony.com/doc/2.3/components/event_dispatcher/index.html) para manegar internamente los eventos. - -Eventos escucha ** Listening ** -------------------------------- - -```php -$this->on('app.bootstrap', function($container) { - // tu codigo -}); -``` - -- El primer argumento es el nombre del evento (string) -- El segundo argumento es una funcion PHP callable (finalización o metodos de la clase) - -Agregando un nuevo evento -------------------------- - -Para agregar un nuevo, tienes que llamar al metodo `register()` de la clase `Kanboard\Core\Event\EventManager`: - -```php -$this->eventManager->register('my.event.name', 'Mi descripcion del nuevo evento'); -``` - -Estos eventos pueden ser utilizados por otros componentes de Kanboard como acciones automáticas . diff --git a/doc/es_ES/plugin-external-link.markdown b/doc/es_ES/plugin-external-link.markdown deleted file mode 100644 index 969c430c..00000000 --- a/doc/es_ES/plugin-external-link.markdown +++ /dev/null @@ -1,79 +0,0 @@ -Vinculación externa de proveedores -================================== - -Esta funcionalidad le permite vincular una tarea a los elementos adicionales almacenados en otro sistema. - -Por ejemplo, tu puedes vincular una tarea a: -For example, you can link a task to: - -- Una pagina web tradicional -- Datos adjuntos (Documentos PDF almacenados en la web, archivos ...) -- Cualquier sitema de tickets (bug tracker, soporte personalizado de tickets...) - -Cada item tiene un tipo, u na URL, un tipo dedependencia y un titulo. - -Por default,Kanboard incluye dos tipos de proveedores - -- Vinculación Web : Copiar y pegar un enlace y Kanboard se ha podido ir a la página de título de forma automática. -- Datos adjuntos: Enlace a todo lo que no es una página web - -Flujo de trabajo ** Workflow ** --------------------------------- - -1. El usuario final copia y pega el URL al submit del formulario. -2.- Si el tipo de link es "auto", Kanboard crea un bucle a través de todos los proveedores registrados hasta que hay una coincidencia -3. Entonces , el proveedor de enlace devuelve un objeto que implementa la interfaz de `ExternalLinkInterface` -4. El formulario se muestra al usuario con todos los datos precargados antes de guardar el enlace - -Interfaces ----------- - -Para implementar un nuevo vinculo al proveedor desde un plugin, es necesario crear 2 clases que implementarlas en las interfaces: - -- `Kanboard\Core\ExternalLink\ExternalLinkProviderInterface` -- `Kanboard\Core\ExternalLink\ExternalLinkInterface` - -### ExternalLinkProviderInterface - -| Method | Usage | -|----------------------------|---------------------------------------------------------------------------------| -| `getName()` | Obtener el nombre del proveedor(label) | -| `getType()` | Obtener el tipo de link (se guardarán en la base de datos) | -| `getDependencies()` | Obtener un diccionario de los tipos de dependencia soportados por el proveedor | -| `setUserTextInput($input)` | Texto introducido por el usuario | -| `match()` | Regresa true si el proveedor puede analizar correctamente la entrada del usuario| -| `getLink()` | Obtener el enlace que se encuentra con las propiedades | - -### ExternalLinkInterface - -| Method | Usage | -|-------------------|-----------------------------| -| `getTitle()` | Obtiene un titulo de link | -| `getUrl()` | Obtiene una link de URL | -| `setUrl($url)` | URL del enlace | - -El registro de un nuevo proveedor de enlace ------------------------------------------- - -En tu `Plugin.php`, solo puedes llamar al metodo `register()` desde el objeto `ExternalLinkManager`: - -```php -<?php - -namespace Kanboard\Plugin\MyExternalLink; - -use Kanboard\Core\Plugin\Base; - -class Plugin extends Base -{ - public function initialize() - { - $this->externalLinkManager->register(new MyLinkProvider()); - } -} -``` - -Ejemplos --------- - -- Kanboard incluye proveedores por default "WebLink" y "Attachment" diff --git a/doc/es_ES/plugin-group-provider.markdown b/doc/es_ES/plugin-group-provider.markdown deleted file mode 100644 index ac7d0d71..00000000 --- a/doc/es_ES/plugin-group-provider.markdown +++ /dev/null @@ -1,54 +0,0 @@ -Personalizar grupos de proveedores -================================== - -Kanboard es capaz de cargar grupos de un sistema externo. -Esta caracteristica es principalmente usada para permisos de proyectos. - -Los **Projects Managers** pueden permitir el acceso a un proyecto para un grupo -El usuario final **end-user** utilizara una caja de autocomplementar y busquedas para un grupo - -Cada vez que se ejecuta una consulta de grupo , todos los proveedores de grupo registrados se ejecutan . - -Flujo de trabajo del Grupo de Proveedores **Workflow** ------------------------------------------------------ - -1. El usuario final **end-user** comienza a escribir el nombre del grupo y el campo se autocompleta -2. EL `GroupManager` la clase ejecuta la consulta para todos los proveedores de grupo registrados -3. Los resultados son fusionados y regresados a la interface de usuario -4. Antes de seleccionar un grupo, a información del grupo se sincronizan con la base de datos local si es necesario - -Interface del grupo de proveedores ----------------------------------- - -interface a implementar: `Kanboard\Core\Group\GroupProviderInterface`. - -Las clases que implementa esta interface abstracta del grupo de información, solo hay 3 metodos: - -- `getInternalId()`: Obtiene el id interno de la base de datos, de otra manera regresa 0 -- `getExternalId()`: Obtiene un id unico externo -- `getName()`: Obtiene el nombre de grupo - -Kanboard utilizará el ID externo para sincronizar con la base de datos local. - -Interface Backend del grupo de proveedores ------------------------------------------- -Interface a implementar: `Kanboard\Core\Group\GroupBackendProviderInterface`. - -Esta interface requiere solo un metodo: `find($input)`. -El argumento `$input` es el texto introducido desde la interfaz de usuario. - -Este metodo debe regresar una lista de `GroupProviderInterface`, es es el resultado de la busqueda. - -Backend de registro desde Plugins ---------------------------------- - -En el metodo `initialize()` de su plugins registrado se puede personalizar el backend : - -```php -$groupManager->register(new MyCustomLdapBackendGroupProvider($this->container)); -``` - -Ejemplos --------- - -- [Kanboard incluye el grupo de provedores (LDAP y base de datos)](https://github.com/kanboard/kanboard/tree/master/app/Group) diff --git a/doc/es_ES/plugin-helpers.markdown b/doc/es_ES/plugin-helpers.markdown deleted file mode 100644 index 66591075..00000000 --- a/doc/es_ES/plugin-helpers.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Registrar nuevos helpers -======================= - -Estrucura del helper: - -```php -<?php - -namespace Kanboard\Plugin\MyPlugin\Helper\MyHelper; - -use Kanboard\Core\Base; - -class MyHelper extends Base -{ - public function doSomething() - { - return 'foobar'; - } -} -``` -Registrar tu helper en la clase: - -```php -$this->helper->register('myHelper', '\Kanboard\Plugin\MyPlugin\Helper\MyHelper'); -``` - -Usar tu helper desde una plantilla **Template**: - -```php -<p> - <?= $this->myHelper->doSomething() ?> -</p> -``` - -Usar tu helper dese otra clase: - -```php -$this->helper->myHelper->doSomething(); -``` diff --git a/doc/es_ES/plugin-hooks.markdown b/doc/es_ES/plugin-hooks.markdown deleted file mode 100644 index 9d842645..00000000 --- a/doc/es_ES/plugin-hooks.markdown +++ /dev/null @@ -1,249 +0,0 @@ -Plugin Hooks -============ - -Hooks de aplicación ------------------ - -Los hooks pueden extender , reemplazar, filtar datos o cambiar los comportamientos por default, cad hook es identificado con unico nombre, ejemplo : `controller:calendar:user:events` - -### Escuchar en eventos hook - -En tu metodo `initialize()` tu necesitas llamar al metodo `on()` de la clase `Kanboard\Core\Plugin\Hook`: - -```php -$this->hook->on('hook_name', $callable); -``` - -El primer argumento es el nombre del hook y el segundo es un callable PHP - -### Hooks ejecutado sólo una vez - -Algunos hooks solo tienen un listener: - -#### model:subtask-time-tracking:calculate:time-spent - -- Anular el cálculo del tiempo anterior cuando se detiene el temporizador de la subtarea -- Argumentos : - - `$user_id` (integer) - - `$start` (DateTime) - - `$end` (DateTime) - -### Fusionar hooks - -"Fusionar hooks" actuar de la misma manera que la función de `array_merge`. el hook callback solo regresa un array. Este array se fusionará con la que viene por defecto. - -Ejemplo para agregar eventos en el calendario del usuario: - -```php -class Plugin extends Base -{ - public function initialize() - { - $container = $this->container; - - $this->hook->on('controller:calendar:user:events', function($user_id, $start, $end) use ($container) { - $model = new SubtaskForecast($container); - return $model->getCalendarEvents($user_id, $end); // Return new events - }); - } -} -``` - -Ejemplo para sobrescribir los valores por default de las tareas: - -```php -class Plugin extends Base -{ - public function initialize() - { - $this->hook->on('controller:task:form:default', function (array $default_values) { - return empty($default_values['score']) ? array('score' => 4) : array(); - }); - } -} -``` - -Lista de fusión de hooks: - -`controller:task:form:default` - -- sobrescribir los valores por default de las tareas -- Argumentos: - - `$default_values`: actual default values (array) - -`controller:calendar:project:events` - -- Agregar mas eventos a el calendario del projecto -- Argumentos: - - `$project_id` (integer) - - `$start` Calendar start date (string, ISO-8601 format) - - `$end` Calendar` end date (string, ISO-8601 format) - -`controller:calendar:user:events` - -- Agregar mas eventos a el calendario de usuario -- Argumentos: - - `$user_id` (integer) - - `$start` Calendar start date (string, ISO-8601 format) - - `$end` Calendar end date (string, ISO-8601 format) - -Asset Hooks ------------ - -Asset hooks pueden ser usados para agregar nuevas stylesheet facilmente o un nuevo archivo JavaScript en el layout. tu puedes usar estas caracteristicas para crear un tema y sobreescribir todo los estilos por dafault del kanboard. - -Ejemplo para agregar un stylesheet **hoja de estilo** - -```php -<?php - -namespace Kanboard\Plugin\Css; - -use Kanboard\Core\Plugin\Base; - -class Plugin extends Base -{ - public function initialize() - { - $this->hook->on('template:layout:css', array('template' => 'plugins/Css/skin.css')); - } -} -``` - -Lista de asset Hooks: - -- `template:layout:css` -- `template:layout:js` - - -Referencia de hooks ---------------- - -La reference hooks son pasados a una variable por referencia. - -Ejemplo: - -```php -$this->hook->on('formatter:board:query', function (\PicoDb\Table &query) { - $query->eq('color_id', 'red'); -}); -``` - -El código anterior mostrará sólo las tareas en rojo en el tablero. - -Lista de referencias de hooks: - -| Hook | Description | -|--------------------------------------------|---------------------------------------------------------------| -| `formatter:board:query` | Alterar consulta a la base antes de tablero de renderizado | -| `pagination:dashboard:task:query` | Alterar consulta de base de datos para las tareas de la paginación en el dashboard | -| `pagination:dashboard:subtask:query` | Alterar consulta a la base de la paginación en el subtareas del dashboard | -| `model:task:creation:prepare` | Alterar los valores del formulario antes de guardar una tarea | -| `model:task:modification:prepare` | Alterar los valores del formulario antes de editar una tarea - -Template Hooks --------------- - -Template hooks permitirá añadir nuevos contenidos en las plantillas existentes. - -Ejemplo para agregar nuevos contenidos en el sidebar del dashboard: - -```php -$this->template->hook->attach('template:dashboard:sidebar', 'myplugin:dashboard/sidebar'); -``` - -Ejemplo para adjuntar un template con variables locales: - -```php -$this->template->hook->attach('template:dashboard:sidebar', 'myplugin:dashboard/sidebar', array( - 'variable' => 'foobar', -)); -``` - -Ejemplo para adjuntar un template con un callable: - -```php -$this->template->hook->attach('template:dashboard:sidebar', 'myplugin:dashboard/sidebar', function($hook_param1, $hook_param2) { - return array('new_template_variable' => 'foobar'); // Inyectar una nueva variable en la plantilla Plugin -}); -``` - -Este llamada es usualmente definida en el metodo `initialize()` -El primer argumento es el nombre del hook y el segundo argumento es el nombre del template. - -Los nombres de plantillas con el prefijo del nombre del plugin y los dos puntos indican la ubicación de la plantilla. - -Ejemplo con `myplugin:dashboard/sidebar`: - -- `myplugin` Es el nombre de tu plugin (minusculas) -- `dashboard/sidebar` es el nombre del template -- En el filesystem, El plugin esta localizado aqui: `plugins\Myplugin\Template\dashboard\sidebar.php` -- Templates estan escritos en puro PHP (no se olvide de escapar los datos) - -Los nombres de plantillas sin prefijo son plantillas básicas. - -Lista de templates hooks: - -| Hook | Descripción | -|--------------------------------------------|----------------------------------------------------| -| `template:analytic:sidebar` | Sidebar en paginas analiticas | -| `template:app:filters-helper:before` | Filtro helper dropdown (top) | -| `template:app:filters-helper:after` | Filtro helper dropdown (bottom) | -| `template:auth:login-form:before` | Pagina de login (top) | -| `template:auth:login-form:after` | Pagina de login (bottom) | -| `template:board:private:task:before-title` | Tarea en un tablero privado : despues del titulo | -| `template:board:private:task:after-title` | Tarea en un tablero privado : antes del titulo | -| `template:board:public:task:before-title` | Tarea en un tablero publico : despues del titulo | -| `template:board:public:task:after-title` | Tarea en un tablero publico : antes del titulo | -| `template:board:task:footer` | Tarea en el tablero : footer | -| `template:board:task:icons` | Tarea en el tablero: tooltip icon | -| `template:board:column:dropdown` | Menu Dropdown en las columnas del tablero | -| `template:config:sidebar` | Sidebar pagina de configuración | -| `template:config:application ` | Aplicación de configuración del formulario | -| `template:config:email` | Email settings page | -| `template:config:integrations` | Integration page in global settings | -| `template:dashboard:sidebar` | Sidebar en la pagina del dashboard | -| `template:dashboard:show` | Pagina principal del dashboard | -| `template:export:sidebar` | Sidebar para exportar paginas | -| `template:import:sidebar` | Sidebar para importar paginas | -| `template:header:dropdown` | Dropdown menu Pagina header (icono avatar de usuario) | -| `template:header:creation-dropdown` | Dropdown menu Pagina header (plus icon) | -| `template:layout:head` | Layout de la pagina `<head/>` tag | -| `template:layout:top` | Layout de la pagina top header | -| `template:layout:bottom` | Layout de la pagina footer | -| `template:project:dropdown` | "Actions" menu a la izquierda vista para diferentes proyectos | -| `template:project:header:before` | Filtros de Proyectos (antes) | -| `template:project:header:after` | Filtros de Proyectos (despues) | -| `template:project:integrations` | Pagina de integracion de configuración de proyectos| -| `template:project:sidebar` | Sidebar configuración de proyectos | -| `template:project-user:sidebar` | Sidebar en la página de la información de usuario del proyecto | -| `template:task:layout:top` | Task layout top (antes page header) | -| `template:task:details:top` | Resumen de tarea top | -| `template:task:details:bottom` | Resumen de tarea bottom | -| `template:task:details:first-column` | Resumen de tarea columna | -| `template:task:details:second-column` | Resumen de tarea dos columnas | -| `template:task:details:third-column` | Resumen de tarea tres columnas | -| `template:task:details:fourth-column` | Resumen de tarea cuatro columnas | -| `template:task:dropdown` | Task dropdown menu en listado de paginas | -| `template:task:sidebar:actions` | Sidebar on task page (sección de acciones) | -| `template:task:sidebar:information` | Sidebar on task page (sección de información) | -| `template:task:form:first-column` | 1st columna en forma de tarea | -| `template:task:form:second-column` | 2nd columna en forma de tarea | -| `template:task:form:third-column` | 3nd columna en forma de tarea | -| `template:task:show:top ` | Mostrar página de tareas : top | -| `template:task:show:bottom` | Mostrar página de tareas : bottom | -| `template:task:show:before-description` | Mostrar página de tareas : despues de la descripción | -| `template:task:show:before-tasklinks` | Mostrar página de tareas : despues tasklinks | -| `template:task:show:before-subtasks` | Mostrar página de tareas : despues subtareas | -| `template:task:show:before-timetracking` | Mostrar página de tareas : despues timetracking | -| `template:task:show:before-attachments` | Mostrar página de tareas : despues archivos adjuntos | -| `template:task:show:before-comments` | Mostrar página de tareas : despues comentarios | -| `template:user:authentication:form` | "Editar autenticación" formulario de perfil de usuario | -| `template:user:create-remote:form` | "Crear un usuario remoto" formulario | -| `template:user:external` | "Autenticación externa" la página de perfil de usuario | -| `template:user:integrations` | Integración en el perfil de usuario | -| `template:user:sidebar:actions` | Sidebar en el perfil de usuario (sección de acciones) | -| `template:user:sidebar:information` | Sidebar en el perfil de usuario (sección de información) | - - -Otro de los ganchos plantilla se pueden añadir en caso necesario , sólo hay que preguntar en el seguimiento de incidencias ** issue tracking **. diff --git a/doc/es_ES/plugin-ldap-client.markdown b/doc/es_ES/plugin-ldap-client.markdown deleted file mode 100644 index 1a34a880..00000000 --- a/doc/es_ES/plugin-ldap-client.markdown +++ /dev/null @@ -1,99 +0,0 @@ -Libreria LDAP -============ - -Para facilirar la integracion LDAP. kanboard tiene su propia libreria LDAP -Esta libreria puede ejecutar operaciones comunes. - -Cliente -------- - -Clase: `Kanboard\Core\Ldap\Client` - -Para conectar a tu servidor LDAP facilmente, usa este metodo: - -```php -use Kanboard\Core\Ldap\Client as LdapClient; -use Kanboard\Core\Ldap\ClientException as LdapException; - -try { - $client = LdapClient::connect(); - - // Get native LDAP resource - $resource = $client->getConnection(); - - // ... - -} catch (LdapException $e) { - // ... -} -``` - -Consultas LDAP --------------- - -Classes: - -- `Kanboard\Core\Ldap\Query` -- `Kanboard\Core\Ldap\Entries` -- `Kanboard\Core\Ldap\Entry` - -Ejemplo para una consulta al directorio LDAP: - -```php - -$query = new Query($client) -$query->execute('ou=People,dc=kanboard,dc=local', 'uid=my_user', array('cn', 'mail')); - -if ($query->hasResult()) { - $entries = $query->getEntries(); // Return an instance of Entries -} -``` - -Leer una entrada: - -```php -$firstEntry = $query->getEntries()->getFirstEntry(); -$email = $firstEntry->getFirstValue('mail'); -$name = $firstEntry->getFirstValue('cn', 'Default Name'); -``` - -Leer multiples entradas: - -```php -foreach ($query->getEntries()->getAll() as $entry) { - $emails = $entry->getAll('mail'); // Fetch all emails - $dn = $entry->getDn(); // Get LDAP DN of this user - - // Check if a value is present for an attribute - if ($entry->hasValue('mail', 'user2@localhost')) { - // ... - } -} -``` - -Usuario Helper --------------- - -Clase: `Kanboard\Core\Ldap\User` - -Obtener usuario en una sola linea - -```php -// Return an instance of LdapUserProvider -$user = User::getUser($client, 'my_username'); -``` - -Grupo Helper ------------- - -Clase: `Kanboard\Core\Ldap\Group` - -Obtener grupos en una linea: - -```php -// Define LDAP filter -$filter = '(&(objectClass=group)(sAMAccountName=My group*))'; - -// Return a list of LdapGroupProvider -$groups = Group::getGroups($client, $filter); -``` diff --git a/doc/es_ES/plugin-mail-transports.markdown b/doc/es_ES/plugin-mail-transports.markdown deleted file mode 100644 index 3d3eecd9..00000000 --- a/doc/es_ES/plugin-mail-transports.markdown +++ /dev/null @@ -1,49 +0,0 @@ -Plugin: Agregar trasporte de email -================================== - -Por default Kanboard soporta 3 estadares de trasporte de email: - -- Mail (PHP mail function) -- Smtp -- Sendmail command - -Con la API del plugin tu puedes agregar un driver para cualquier proveedor de email. -Por ejemplo, nuestro plugin puede agregar un trasporte de email para un proveedor que usa un API HTTP. - -Implementación --------------- - -Nuestro plugin dede implementgar la interface `Kanboard\Core\Mail\ClientInterface` y extiende desde `Kanboard\Core\Base`. -El único método que necesita para implementar es `sendEmail()`: - -```php -interface ClientInterface -{ - /** - * Send a HTML email - * - * @access public - * @param string $email - * @param string $name - * @param string $subject - * @param string $html - * @param string $author - */ - public function sendEmail($email, $name, $subject, $html, $author); -} -``` - -Para registrar el nuevo trasporte de email, usa el metodo `setTransport($transport, $class)` desde la clase `Kanboard\Core\Mail\Client`: - -```php -$this->emailClient->setTransport('myprovider', '\Kanboard\Plugin\MyProvider\MyEmailHandler'); -``` - -EL segundo argumento contiene el absoluto namespace de tu clase especifica - -Ejemplos de plugins para trasporte de email ----------------------------------- - -- [Sendgrid](https://github.com/kanboard/plugin-sendgrid) -- [Mailgun](https://github.com/kanboard/plugin-mailgun) -- [Postmark](https://github.com/kanboard/plugin-postmark) diff --git a/doc/es_ES/plugin-metadata.markdown b/doc/es_ES/plugin-metadata.markdown deleted file mode 100644 index f37ec7e3..00000000 --- a/doc/es_ES/plugin-metadata.markdown +++ /dev/null @@ -1,42 +0,0 @@ -Metadatos -========= - -Tu piedes adjutnar metadatos para cada projecto,tarea , usuaio o para toda la aplicación -Los metadatos son campos personalisados, es una key/value de una tabla. - -Por ejemplo nuestro plugin puede almacenar información externa para una tarea o nuevas configuraciones para un proyecto. -Básicamente le permiten ampliar los campos predeterminados sin tener que crear nuevas tablas . - -Adjuntar y eliminar metadatos para tareas --------------------------------------------- - -```php - -// Return a dictionary of metadata (keys/values) for the $task_id -$this->taskMetadataModel->getAll($task_id); - -// Get a value only for a task -$this->taskMetadataModel->get($task_id, 'my_plugin_variable', 'default_value'); - -// Return true if the metadata my_plugin_variable exists -$this->taskMetadataModel->exists($task_id, 'my_plugin_variable'); - -// Create or update metadata for the task -$this->taskMetadataModel->save($task_id, ['my_plugin_variable' => 'something']); - -// Remove a metadata from a project -$this->projectMetadataModel->remove($project_id, my_plugin_variable); -``` - -Tipos de metadatos ------------------- - -- TaskMetadata: `$this->taskMetadataModel` -- ProjectMetadata: `$this->projectMetadataModel` -- UserMetadata: `$this->userMetadataModel` -- Settings/Config: `$this->configModel` - -Notas ------ - -- Siempre prefijo del nombre de metadatos con el nombre del plugin diff --git a/doc/es_ES/plugin-notifications.markdown b/doc/es_ES/plugin-notifications.markdown deleted file mode 100644 index e014cf63..00000000 --- a/doc/es_ES/plugin-notifications.markdown +++ /dev/null @@ -1,59 +0,0 @@ -Agregar notificaciones con los tipos de plugin -============================================== - -Puede enviar notificaciones a casi cualquier sistema mediante la adición de un nuevo tipo . -There are two kinds of notifications: project and user. - -- Project: Notificaciones configuradas a nivel de proyecto -- Usuario: Notificaciones enviadas individualmente y configurada a cada perfil de usuario. - -Registra un nuevo tipo de notificación --------------------------------------- - -En tu archivo de registro del plugin llama el metodo `setType()`: - -```php -$this->userNotificationTypeModel->setType('irc', t('IRC'), '\Kanboard\Plugin\IRC\Notification\IrcHandler'); -$this->projectNotificationTypeModel->setType('irc', t('IRC'), '\Kanboard\Plugin\IRC\Notification\IrcHandler'); -``` - -Su controlador puede ser registrado por el usuario o la notificación del proyecto. No necesariamente tienen que soportarlo . -Cuando tu handler es registrdo, el usuario final **end-user** puede elegir recibir el nuevo tipo de notificación o no - -Notificación de Handler ------------------------ - -Su controlador de notificación debe implementar la interfaz `Kanboard\Core\Notification\NotificationInterface`: - -```php -interface NotificationInterface -{ - /** - * Envia notificación a un usuario - * - * @access public - * @param array $user - * @param string $event_name - * @param array $event_data - */ - public function notifyUser(array $user, $event_name, array $event_data); - - /** - * Envia notificacion a un projecto - * - * @access public - * @param array $project - * @param string $event_name - * @param array $event_data - */ - public function notifyProject(array $project, $event_name, array $event_data); -} -``` - -Ejemplo de notificacion de plugins ---------------------------------- - -- [Slack](https://github.com/kanboard/plugin-slack) -- [Hipchat](https://github.com/kanboard/plugin-hipchat) -- [Jabber](https://github.com/kanboard/plugin-jabber) - diff --git a/doc/es_ES/plugin-overrides.markdown b/doc/es_ES/plugin-overrides.markdown deleted file mode 100644 index a416d161..00000000 --- a/doc/es_ES/plugin-overrides.markdown +++ /dev/null @@ -1,42 +0,0 @@ -Plugin Reescritura -================ - -Reesritura HTTP Contenido Política de Seguridad ------------------------------------------------ - -Si desea reemplazar el encabezado HTTP predeterminado de la directiva de seguridad del contenido, puede utilizar el método`setContentSecurityPolicy()`: - -```php -<?php - -namespace Kanboard\Plugin\Csp; - -use Kanboard\Core\Plugin\Base; - -class Plugin extends Base -{ - public function initialize() - { - $this->setContentSecurityPolicy(array('script-src' => 'something')); - } -} -``` - -Plantillas de reescrituras --------------------------- - -Las plantillas definidas en el núcleo se pueden anular . Por ejemplo , se puede redefinir el diseño predeterminado o cambiar notificaciones por correo electrónico. - -Ejemolo de plantilla de reescritura: - -```php -$this->template->setTemplateOverride('header', 'theme:layout/header'); -``` - -El primer argumento es el nombre de la plantilla original y el segundo argumento de la plantilla para usar como reemplazo. - -Puede seguir utilizando la plantilla original utilizando el prefijo "kanboard:" : - -```php -<?= $this->render('kanboard:header') ?> -``` diff --git a/doc/es_ES/plugin-registration.markdown b/doc/es_ES/plugin-registration.markdown deleted file mode 100644 index 5031427f..00000000 --- a/doc/es_ES/plugin-registration.markdown +++ /dev/null @@ -1,160 +0,0 @@ -Registracion de Plugin -====================== - -Estructura del directorio --------------------------- - -Los Plugins estan almacenados en el subdirectorio `plugins. Un ejemplo de estructura del directorio de un plugin: - -```bash -plugins -└── Budget <= Plugin name - ├── Asset <= Javascript/CSS files - ├── Controller - ├── LICENSE <= Plugin license - ├── Locale - │ ├── fr_FR - │ ├── it_IT - │ ├── ja_JP - │ └── zh_CN - ├── Model - ├── Plugin.php <= Plugin registration file - ├── README.md - ├── Schema <= Database migrations - ├── Template - └── Test <= Unit tests -``` - -Solamente el archivo de registración `Plugin.php` es requerido. Las otras carpetas son opcionales. - -La primera letra del nombre del plugin debe ser capitalizada. - -Archivo de registración del plugin ----------------------------------- - -Kanboard Kanboard escaneará el directorio `plugins` y cargara automaticamente todo en este directorio. el archivo `Plugin.php` se utiliza para cargar y registrar el plugin. - -Ejemplo del archivo `Plugin.php` (`plugins/Foobar/Plugin.php`): - -```php -<?php - -namespace Kanboard\Plugin\Foobar; - -use Kanboard\Core\Plugin\Base; - -class Plugin extends Base -{ - public function initialize() - { - $this->template->hook->attach('template:layout:head', 'theme:layout/head'); - } -} -``` - -Este archivo debera contener una clase `Plugin` se define en el namespace `Kanboard\Plugin\Yourplugin` y extiende `Kanboard\Core\Plugin\Base`. - -El único método requerido es `initialize()`. Este método se llama para cada petición cuando el plugin es cargado. - -Metodos del plugin --------------- - -Los métodos disponibles son `Kanboard\Core\Plugin\Base`: - -- `initialize()`: ejecuta cuando el plugin es cargafo -- `getClasses()`: Regresa todas las clases que se deben almacenar en el contenedor de inyección de dependencias -- `on($event, $callback)`: Escucha eventos internos. -- `getPluginName()`: devuelve el nombre del plugin. -- `getPluginAuthor()`: Devuelve el autor del plugin. -- `getPluginVersion()`: Devuelve la versíon del plugin. -- `getPluginDescription()`: Devuelve la descripcion del plugin. -- `getPluginHomepage()`: Devuelve la pagina inicial del plugin (link) -- `setContentSecurityPolicy(array $rules)`: Reescribe las reglas por default del HTTP CSP. -- `onStartup()`: Si está presente este método, se ejecuta automáticamente cuando el evento "app.bootstrap" se dispara. - -Su registro de plugin tambien puede heradar de la clase Kanboard\Core\Base, de esta manera se puede acceder a todas las clases y los métodos de Kanboard facilmente. - -En este ejemplo se obtendrá el usuario #123: - -```php -$this->user->getById(123); -``` - -Plugin de traducción -------------------- - -Este plugin se puede traducir en la misma forma que el resto de la aplicación . Debe cargar las traducciones a sí mismo cuando se crea la sesión : - -```php -public function onStartup() -{ - Translator::load($this->languageModel->getCurrentLanguage(), __DIR__.'/Locale'); -} -``` - -Las traducciones deben ser almacenadas en el archivo `plugins/Myplugin/Locale/xx_XX/translations.php` (remplazar xx_XX por el codigo del lenguaje fr_FR, en_US...). - -Las traducciones estan almacenadas en un diccionario, Si desea sobreescribir una cadena existente, sólo tiene que utilizar la misma clave en el archivo de traducción. - -Inyección de dependencias de contenedores ------------------------------- -Kanboard utiliza la Pimple , un simple inyección de contenedores de dependencia PHP . Sin embargo , Kanboard puede registrar cualquier clase en el contenedor fácilmente. - -Estas clases están disponibles en todas partes en la aplicación y se crea una única instancia . - -Aquí un ejemplo para registrar sus propios modelos en el contenedor: - -```php -public function getClasses() -{ - return array( - 'Plugin\Budget\Model' => array( - 'HourlyRateModel', - 'BudgetModel', - ) - ); -} -``` - -Ahora bien, si se utiliza una clase que se extiende desde `Core\Base`, tu puedes acceder directamente cualquier instancia de la clase: - -```php -$this->hourlyRateModel->remove(123); -$this->budgetModel->getDailyBudgetBreakdown(456); - -// It's the same thing as using the container: -$this->container['hourlyRateModel']->getAll(); -``` - -Llaves de los contenedores son únicos a través de la aplicación . Si reemplaza una clase existente , que va a cambiar el comportamiento por defecto . - -Agregar un metodo nuevo en la API ---------------------------------- - -Kanboard usa la libreria [JSON-RPC](https://github.com/fguillot/JsonRPC) para manejar las llamadas de la api. - -Para agregar un nuevo metodo tu puedes que puede hacer algo para llamar a tu plugin: - -```php -$this->api->getProcedureHandler()->withCallback('my_method', function() { - return 'foobar'; -}); -``` - -`$this->container['api']` or `$this->api` expose an instance of the object `JsonRPC\Server`. - -Leer la documentacion de la libreria para mas información. - -Agregar una nueva consola de comandos --------------------------------------- - -Kanboard usa la libreria [Symfony Console](http://symfony.com/doc/current/components/console/introduction.html) para manejar las lineas de comandos. - -Kanboard genera una instancia del objeto `Symfony\Component\Console\Application` via `$this->cli`. -Tu puedes agregar nuevos comandos desde tu plugin: - -```php -$this->cli->add(new MyCommand()); -``` - -Lea la documentación de la biblioteca para obtener más información. diff --git a/doc/es_ES/plugin-routes.markdown b/doc/es_ES/plugin-routes.markdown deleted file mode 100644 index 69357e3c..00000000 --- a/doc/es_ES/plugin-routes.markdown +++ /dev/null @@ -1,85 +0,0 @@ -Personalizar Rutas -================== - -Cuando está habilitada la reescritura de URL, tu puedes definir rutas personalizadas desde tus plugins. - -Definir nuevas rutas --------------------- - -Las rutas son manejadas por la clase `Kanboard\Core\Http\Route`. - -Las nuevas rutas se pueden agregar mediante el uso del método `addRoute($path, $controller, $action, $plugin)`, here an example: - -```php -$this->route->addRoute('/my/custom/route', 'myController', 'myAction', 'myplugin'); -``` - -Cuando el usuario final **end-user** van a la URL `/my/custom/route`, el metodo `Kanboard\Plugin\Myplugin\Controller\MyController::myAction()` será ejecutado. - -El primer caracter del contraldor y el nombre del plugin serán convertidos en mayusculas con la funcion `ucfirst()`. - -Tu puedes ademas definir rutas con variables: - -```php -$this->route->addRoute('/my/route/:my_variable', 'myController', 'myAction', 'myplugin'); -``` - -El prefijo colon `:`, define una variable. -Por ejemplo `:my_variable` declare el nombre de la nueva variable `my_variable`. - -Para extraer los valores de la variable puedes usar el metodo `getStringParam()` or `getIntegerParam()` desde la clase `Kanboard\Core\Http\Request`: - -Si tenemos la URL `/my/route/foobar`, el valor de `my_variable` es `foobar`: - -```php -$this->request->getStringParam('my_variable'); // Return foobar -``` - -Generate links based on the routing table ------------------------------------------ - -Desde las plantillas , se tiene que usar el helper `Kanboard\Helper\Url`. - -### Generar un link HTML - -```php -<?= $this->url->link('My link', 'mycontroller', 'myaction', array('plugin' => 'myplugin')) ?> -``` - -Generara este HTML: - -```html -<a href="/my/custom/route">My link</a> -``` - -### Generara solamente el atributo `href`: - -```php -<?= $this->url->href('My link', 'mycontroller', 'myaction', array('plugin' => 'myplugin')) ?> -``` - -HTML salida: - -```html -/my/custom/route -``` - -Salida HTML cuando la reescritura del URL no esta habilitada: - -```html -?controller=mycontroller&action=myaction&plugin=myplugin -``` - -### Generar enlace de redirección: - -Desde un controlador, si tu necesitas para From a controller, si tu necesitas realizar una redirección: - -```php -$this->url->to('mycontroller', 'myaction', array('plugin' => 'myplugin')); -``` - -Generar: - -``` -?controller=mycontroller&action=myaction&plugin=myplugin -``` diff --git a/doc/es_ES/plugin-schema-migrations.markdown b/doc/es_ES/plugin-schema-migrations.markdown deleted file mode 100644 index b7165490..00000000 --- a/doc/es_ES/plugin-schema-migrations.markdown +++ /dev/null @@ -1,40 +0,0 @@ -Plugin Migración de esquemas -============================ - -Kanboard realiza migraciones de base de datos automaticamente para ti. -Las migraciones deben ser almacenadas en una carpeta **Schema** y el nombre de archivo debe ser el mismo que el controlador de base de datos: - -```bash -Schema -├── Mysql.php -├── Postgres.php -└── Sqlite.php -``` - -Cada archivo contiene todas las migraciones, aqui un ejemple para Sqlite: - -```php -<?php - -namespace Kanboard\Plugin\Something\Schema; - -const VERSION = 1; - -function version_1($pdo) -{ - $pdo->exec('CREATE TABLE IF NOT EXISTS something ( - "id" INTEGER PRIMARY KEY, - "project_id" INTEGER NOT NULL, - "something" TEXT, - FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE - )'); -} -``` - -- La constante `VERSION` es la ultima versión de tu esquema -- Cada funcion es una migración `version_1()`, `version_2()`, etc. -- Una instancia `PDO` es pasado como un primer argumneto -- Todo se ejecuta dentro de una transacción , si algo no funciona se realiza una operación de rollback y se muestra el error al usuario - -Kanboard siempre compara la version definida en tu esquema y la version almacenada en la base de datos. Si la versiones son diferentes, kanboard siempre ejecuta cada migración una por una hasta alcanzar la ultima version. - diff --git a/doc/es_ES/plugins.markdown b/doc/es_ES/plugins.markdown deleted file mode 100644 index 633d7126..00000000 --- a/doc/es_ES/plugins.markdown +++ /dev/null @@ -1,46 +0,0 @@ -Desarrollo de Plugin -==================== - -Nota : el plugin API es **considerado alpha** en estos momentos. - -Los plugins son útiles para extender las funcionalidades básicas de Kanboard , la adición de características , la creación de temas o cambiar el comportamiento por defecto . - -Los creadores de plugins deben especificar explícitamente las versiones compatibles de Kanboard . El código interno de Kanboard puede cambiar con el tiempo y su extensión debe ser probado con nuevas versiones . Compruebe siempre el [ChangeLog](https://github.com/kanboard/kanboard/blob/master/ChangeLog) para realizar los cambios. - -- [Crear tu plugin](plugin-registration.markdown) -- [Usar plugins hooks](plugin-hooks.markdown) -- [Eventos](plugin-events.markdown) -- [Rescribir compartamientos por default en la aplicación](plugin-overrides.markdown) -- [Agregar plugins para migrar esquemas](plugin-schema-migrations.markdown) -- [Personalizar rutas](plugin-routes.markdown) -- [Agregar helpers](plugin-helpers.markdown) -- [Agregar trasportes de email ](plugin-mail-transports.markdown) -- [Agregar tipos de notificaciones](plugin-notifications.markdown) -- [Agregar acciones automaticas](plugin-automatic-actions.markdown) -- [Adjuntar metados para usuarios,tareas y proyectos](plugin-metadata.markdown) -- [Arquitectura de autenticación](plugin-authentication-architecture.markdown) -- [Registración de plugins de autenticación](plugin-authentication.markdown) -- [Arquitectura de autorización](plugin-authorization-architecture.markdown) -- [Personlizar grupos de proveedores](plugin-group-provider.markdown) -- [Links externos para proveedores](plugin-external-link.markdown) -- [Agregar avatar a proveedores](plugin-avatar-provider.markdown) -- [Cliente LDAP](plugin-ldap-client.markdown) - -Ejemplos de plugins -------------------- - -- [SMS Two-Factor Authentication](https://github.com/kanboard/plugin-sms-2fa) -- [Reverse-Proxy Authentication with LDAP support](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) -- [Budget planning](https://github.com/kanboard/plugin-budget) -- [User timetables](https://github.com/kanboard/plugin-timetable) -- [Subtask Forecast](https://github.com/kanboard/plugin-subtask-forecast) -- [Automatic Action example](https://github.com/kanboard/plugin-example-automatic-action) -- [Theme plugin example](https://github.com/kanboard/plugin-example-theme) -- [CSS plugin example](https://github.com/kanboard/plugin-example-css) diff --git a/doc/es_ES/requirements.markdown b/doc/es_ES/requirements.markdown deleted file mode 100755 index ef56dd67..00000000 --- a/doc/es_ES/requirements.markdown +++ /dev/null @@ -1,104 +0,0 @@ -Requerimientos -=============== - -Lado del servidor --------------------- - -### Sistemas operativos compatibles - -| Sistemas operativos | -|--------------------------------------| -| Linux Ubuntu Xenial Xerus 16.04 LTS | -| Linux Centos 7.x | -| Linux Redhat 7.x | -| Linux Debian 9 | -| FreeBSD 10.x | -| Microsoft Windows 2016 | -| Microsoft Windows 2012 R2 | - -### Base de datos compatibles - -| Base de datos | -|--------------------| -| Sqlite >= 3.7 | -| Mysql >= 5.5 | -| MariaDB >= 10 | -| Postgresql >= 9.3 | - -Qué base de datos para elegir? - -| Tipo | Uso | -|-----------------|-----------------------------------------------------| -| Sqlite | un solo usuario o equipo pequeño (casi no hay concurrencia) | -| Mysql/Postgres | Equipo grande, configuración de alta disponibilidad | - -No usar Sqlite en montajes de NFS, use Sqlite solo cuando tengas un disco con Fast I/O - -### Servidores Web Compatibles - -| Servidores Web | -|--------------------| -| Apache HTTP Server | -| Nginx | -| Microsoft IIS | - -Kanboard esta pre configurado para trabajar con Apache (URL rewriting). - -### Versiones de PHP - -| Versión de PHP | -|----------------| -| PHP >= 5.6 | - -### PHP Extensiones Requeridas - -| PHP Extensiones Requeridas | Nota | -|----------------------------|-------------------------------| -| pdo_sqlite | Solo si usas Sqlite | -| pdo_mysql | Solo si usas Mysql/MariaDB | -| pdo_pgsql | Solo si usas Postgres | -| gd | | -| mbstring | | -| openssl | | -| json | | -| hash | | -| ctype | | -| session | | -| ldap | Solamente para autenticación LDAP | -| Zend OPcache | Recomendado | - -### Extensiones PHP opcionales - -| PHP Extensiones Requeridas | Nota | -|----------------------------|--------------------------------------------| -| zip | Usado para instalar plugins desde Kanboard | - -### Recomendaciones - -- Usar sistemas operativos modernos de Linux o Unix. -- El mejor performace se obtienen con la última versión de PHP junto con la operación de OPcode esta activado. - - -Lado del cliente ----------------- - -### Browsers [Navegadores] - -Siempre usar el navegador mas moderno o la ultima versión posible: - -| Browser | -|---------------------------------------| -| Safari | -| Google Chrome | -| Mozilla Firefox | -| Microsoft Internet Explorer >= 11 | -| Microsoft Edge | - -### Dispositivos - -| Device | Resolución de la pantalla | -|-------------------|--------------------| -| Laptop o desktop | >= 1366 x 768 | -| Tablet | >= 1024 x 768 | - -Kanboard aún no está optimizado para smartphones. Está funcionando, pero la interfaz de usuario no es muy cómoda de usar. diff --git a/doc/es_ES/reverse-proxy-authentication.markdown b/doc/es_ES/reverse-proxy-authentication.markdown deleted file mode 100755 index 757301e5..00000000 --- a/doc/es_ES/reverse-proxy-authentication.markdown +++ /dev/null @@ -1,64 +0,0 @@ -Autenticación por proxy inverso -============================ - -Este metodo de autenticación a menudo es usado por [SSO](http://en.wikipedia.org/wiki/Single_sign-on) (Single Sign-On) especialmente para organizaciones mayores. - -La autenticación se realiza mediante otro sistema, Kanboard no conoce su contraseña y supongamos que ya está autenticado. - -Requerimentos ------------- - -- Un proxy inverso bien configurado - -o - -- Apache Auth en el mismo servidor - - -¿Como funciona esto? -------------------- - -1. Su proxy inverso autentica al usuario y envia el nombre de usuario a través de una cabecera HTTP. -2. Kanboard recuperar el nombre de usuario de la solicitud - - El usuario se crea automáticamente si es necesario - - Abrir una nueva sesión Kanboard sin ningún símbolo asumiendo que es válida - -Instrucciones de instalación ----------------------------- - -### Configuración de su proxy inverso - -Esto esta fuera del alcance de esta documentación. -Debería comprobar la conexión del usuario ya que es enviado por el proxy inverso utilizando una cabecera HTTP. - -### Configuración de Kanboard - -Crear un archivo `config.php` copiar el archivo` config.default.php`: - -```php -<?php - -// Activar / desactivar la autenticación del proxy inverso -define('REVERSE_PROXY_AUTH', true); // Set this value to true - -// La cabecera HTTP para recuperar. Si no se especifica, el valor por defecto es REMOTE_USER -define('REVERSE_PROXY_USER_HEADER', 'REMOTE_USER'); - -// El Kanboard predeterminado esta el administrador para su organización. -// Ya que todo debe ser filtrada por el proxy inverso, -// Debe tener un usuario administrador para el arranque. -define('REVERSE_PROXY_DEFAULT_ADMIN', 'myadmin'); - -// El dominio predeterminado para asumir la dirección de correo electrónico. -// En caso de que el nombre de usuario no es una dirección de correo electrónico, -// Se actualizará automáticamente como USER@mydomain.com -define('REVERSE_PROXY_DEFAULT_DOMAIN', 'mydomain.com'); -``` - -Notas: - -- Si el proxy esta en el mismo servidor Web que ejecuta Kanboard, según la [CGI protocol](http://www.ietf.org/rfc/rfc3875) el Header será `REMOTE_USER`. Por ejemplo, Apache añadir `REMOTE_USER` por defecto si` Require valid-usuario de la red se establece. - -- Si Apache es un proxy inverso a otro Apache corriendo Kanboard, la cabecera `REMOTE_USER` no se establece (mismo comportamiento con IIS y Nginx) - -- Si tu tienes un autentico reverse proxy, the [HTTP ICAP draft](http://tools.ietf.org/html/draft-stecher-icap-subid-00#section-3.4) proposes the header to be `X-Authenticated-User`. This de facto standard has been adopted by a number of tools. diff --git a/doc/es_ES/rss.markdown b/doc/es_ES/rss.markdown deleted file mode 100755 index ac448391..00000000 --- a/doc/es_ES/rss.markdown +++ /dev/null @@ -1,23 +0,0 @@ -Suscripciones RSS/Atom -====================== - -Kanboard Soporta feeds RSS para proyectos y usuarios. - -- Los feeds del proyecto contiene solamente las actividades del proyecto. -- Los feeds del usuario contiene el flujo de actividad de todos los proyectos que el usuario es un miembro - -Aquellas suscripciones estan solamente activadas cuando el acceso publico esta habilitado en el perfil del usuario o en la configuraci�n del proyecto. - -Habilitar/Deshabilitar Feeds RSS de proyectos ---------------------------------------------- - -Ir a **Configuraci�n de proyecto > Acceso publico**. - -![Disable public access](../screenshots/project-disable-sharing.png) - -Habilitar/Deshabilitar Feeds RSS de usuarios --------------------------------------------- - -Ir a **Perfil de usuario > Acceso publico**. - -El enlace RSS est� protegido por un token aleatorio , s�lo las personas que conocen la URL pueden tener acceso al feed.
\ No newline at end of file diff --git a/doc/es_ES/screenshots.markdown b/doc/es_ES/screenshots.markdown deleted file mode 100755 index 2ced69a0..00000000 --- a/doc/es_ES/screenshots.markdown +++ /dev/null @@ -1,25 +0,0 @@ -Agregar screenshots -================== - -Tu puedes copiar y pegar imagenes directamente en Kanboard y salvarlo al mismo tiempo. -Estas im�genes se cargan como archivos adjuntos a la tarea . - -Esto es especialmente �til para tomar capturas de pantalla para describir un problema , por ejemplo. - -Puede a�adir im�genes directamente desde el tablero haciendo clic en el men� desplegable o en la p�gina de vista de tareas . - -![Drop-down screenshot menu](../screenshots/dropdown-screenshot.png) - -Para a�adir una nueva imagen , coloque su captura de pantalla y pegar CTRL+V or Command+V: - -![Screenshot page](../screenshots/task-screenshot.png) - -En Mac OS X, puede utilizar los atajos para tomar screenshots: - -- Command-Control-Shift-3: Tome una screenshot de la pantalla , y guardarlo en el portapapeles -- Command-Control-Shift-4, a continuaci�n, seleccione un �rea: Tome una captura de pantalla de la zona y la guarda en el portapapeles -- Command-Control-Shift-4, entonces el espacio , a continuaci�n, haga clic en una ventana : Tome una captura de pantalla de una ventana y guardarlo en el portapapeles - -Tambi�n hay varias aplicaciones de terceros que pueden ser utilizados para tomar capturas de pantalla con anotaciones y formas. - -** Nota: Esta funci�n no funciona con todos los navegadores ** No funciona con Safari , debido a este error . : https://bugs.webkit.org/show_bug.cgi?id=49141 diff --git a/doc/es_ES/subtasks.markdown b/doc/es_ES/subtasks.markdown deleted file mode 100644 index 6507e6e5..00000000 --- a/doc/es_ES/subtasks.markdown +++ /dev/null @@ -1,46 +0,0 @@ -Subtareas -======== - -Las subtareas son utiles por que dividen el trabajo de las tareas. - -Cada subtareas: - -- Se puede asignar a un miembro del proyecto -- Tiene 3 diferentes estado: **Todo**, **En progreso**, **Realizado** -- Tienen rastreo de información: **tiempo gastado** y **tiempo estimado** -- Ordenar por posición - -Crear subtareas ------------------ - -Desde la vista de la tarea en la barra lateral izquierda haga clic en **Agregar una subtarea**: - -![Añadir una subtarea](../screenshots/add-subtask.png) - -Tambien puede agregar una subtarea rápidamente introduciendo solamente el titulo: - -![Añadir una subtarea desde la vista de la subtarea](../screenshots/add-subtask-shortcut.png) - -Cambiar estado de subtarea -------------------------- - -Al hacer clic en el título de la subtarea, se hace el cambio de estado : - -![Subtask en progreso](../screenshots/subtask-status-inprogress.png) - -El icono antes de que el titulo se actualice el estatus. - -![Subtarea realizada](../screenshots/subtask-status-done.png) - -Nota: cuando la tarea se cierra todas las subtareas se cambian al estado **Hecho**. - -Temporizador de subtarea -------------------------- - -- Cada vez que una subtarea está en marcha, el temporizador se inicia también -El temporizador puede ser iniciado y detenido en cualquier momento. -- El contador registra el tiempo empleado en la subtarea automáticamente. -También puede cambiar manualmente el valor del campo, al editar una subtarea. -- El cálculo de tiempo se redondea al cuarto más cercano.Esta información se registra en una tabla separada. -- El tiempo de tarea y tiempo de estimados es de actualización automáticamente según la suma de todas las subtareas. - diff --git a/doc/es_ES/suse-installation.markdown b/doc/es_ES/suse-installation.markdown deleted file mode 100644 index 7fb318c9..00000000 --- a/doc/es_ES/suse-installation.markdown +++ /dev/null @@ -1,17 +0,0 @@ -Instalacion en OpenSuse -======================== - -OpenSuse Leap 42.1 ------------------- - -```bash---terminal -sudo zypper install php5 php5-sqlite php5-gd php5-json php5-mcrypt php5-mbstring php5-openssl -cd /srv/www/htdocs - -# Download the latest release from https://github.com/kanboard/kanboard/releases -sudo wget https://github.com/kanboard/kanboard/archive/v<VERSION>.zip - -sudo unzip kanboard-<version>.zip -sudo chown -R wwwrun /srv/www/htdocs/kanboard-<version>/data -sudo rm kanboard-<version>.zip - diff --git a/doc/es_ES/swimlanes.markdown b/doc/es_ES/swimlanes.markdown deleted file mode 100755 index 2e608f95..00000000 --- a/doc/es_ES/swimlanes.markdown +++ /dev/null @@ -1,34 +0,0 @@ -Swimlanes -========= - -Swimlanes son separaciones horizontales en tu tablero. -Por ejemplo, es útil para separar las versiones de software, dividir las tareas en diferentes productos, equipos o lo que quieras. - -Tablero con swimlanes ----------------------- - -![Swimlanes](../screenshots/swimlanes.png) - -- Tu puedes colapsar los swimlanes haciendo click en el icono de la izquierda -- El swimlane por defecto se muestra siempre en la parte superior - -La gestión de swimlanes ------------------------ - -- Todos los proyectos tienen un swimlane predeterminado. -- Si hay más de un swimlane, el tablero mostrará todos swimlanes. -- Usted puede arrastrar y soltar las tareas entre swimlanes. - -Para configurar swimlanes ir a la página de **configuración del proyecto ** y elija la sección **Swimlanes**. - - -![Configuración Swimlanes](../screenshots/swimlane-configuration.png) - -A partir de ahí, se puede añadir un nuevo swimlane o cambiar el nombre por defecto. -También puede desactivar y cambiar la posición de los diferentes swimlanes. - -- El swimlane por defecto es siempre en la parte superior, pero se puede ocultarlo. -- Swimlanes inactivas no se muestran en el tablero. -- **Extracción de una swimlane no elimina tareas **, esas tareas se moverán a la swimlane predeterminada. - - diff --git a/doc/es_ES/tags.markdown b/doc/es_ES/tags.markdown deleted file mode 100755 index 621c01ff..00000000 --- a/doc/es_ES/tags.markdown +++ /dev/null @@ -1,28 +0,0 @@ -Tags ** Etiqueta ** -==================== - -Con kanboard, tu puedes asociar una o mas tags a una tarea. -Tu puedes definir etiquetas globalmente para todos los proyectos o solo para unos proyectos en especifico - -![Tags en el tablero](../screenshots/tags-board.png) - -Desde el formulario de tarea, tu puedes caputarar las tags deseadas: - -![Tags form](../screenshots/tags-task.png) - -La auto-completacion se forma para mostrar ó sugerir etiquetas disponibles. - -También puede crear etiquetas directamente desde el formulario de tareas . -Por defecto , al crear etiquetas de un formulario de tarea que están asociados al proyecto actual : - -![Project Tags](../screenshots/tags-projects.png) - -Todas las tags pueden ser manejadas en configuración del proyecto. - -Para definir tags globalmente para todos los proyectos, ve a la configuración de la aplicación : - -![Global Tags](../screenshots/tags-global.png) - -Para buscar tareas basadas en etiquetas, solo use el atributo "tag": - -![Search Tags](../screenshots/tags-search.png) diff --git a/doc/es_ES/translations.markdown b/doc/es_ES/translations.markdown deleted file mode 100644 index 66fd2a4c..00000000 --- a/doc/es_ES/translations.markdown +++ /dev/null @@ -1,68 +0,0 @@ -Translations -============ - -How to translate Kanboard to a new language? --------------------------------------------- - -- Translations are stored inside the directory `app/Locale` -- There is a subdirectory for each language, for example in French we have `fr_FR`, Italian `it_IT` etc. -- A translation is a PHP file that returns an Array with a key-value pairs -- The key is the original text in English and the value is the translation of the corresponding language -- **French translations are always up to date** -- Always use the last version (branch master) - -### Create a new translation: - -1. Make a new directory: `app/Locale/xx_XX` for example `app/Locale/fr_CA` for French Canadian -2. Create a new file for the translation: `app/Locale/xx_XX/translations.php` -3. Use the content of the French locales and replace the values -4. Update the file `app/Model/Language.php` -5. Check with your local installation of Kanboard if everything is OK -6. Send a [pull-request with Github](https://help.github.com/articles/using-pull-requests/) - -How to update an existing translation? --------------------------------------- - -1. Open the translation file `app/Locale/xx_XX/translations.php` -2. Missing translations are commented with `//` and the values are empty, just fill blank and remove the comment -3. Check with your local installation of Kanboard and send a [pull-request](https://help.github.com/articles/using-pull-requests/) - -How to add new translated text in the application? --------------------------------------------------- - -Translations are displayed with the following functions in the source code: - -- `t()`: display text with HTML escaping -- `e()`: display text without HTML escaping - -Always use the english version in the source code. - -Text strings use the function `sprintf()` to replace elements: - -- `%s` is used to replace a string -- `%d` is used to replace an integer - -All formats are available in the [PHP documentation](http://php.net/sprintf). - -How to find missing translations in the applications? ------------------------------------------------------ - -From a terminal, run the following command: - -```bash -./cli locale:compare -``` - -All missing and unused translations are displayed on the screen. -Put that in the French locale and sync other locales (see below). - -How to synchronize translation files? -------------------------------------- - -From a Unix shell run this command: - -```bash -./cli locale:sync -``` - -The French translation is used a reference to other locales. diff --git a/doc/es_ES/update.markdown b/doc/es_ES/update.markdown deleted file mode 100755 index ae5d7a5e..00000000 --- a/doc/es_ES/update.markdown +++ /dev/null @@ -1,33 +0,0 @@ -Actualizar Kanboard a una nueva versión -======================================= - -La actualización de Kanboard a una nueva versión es perfecta. -El proceso se puede resumir simplemente copiar la carpeta de datos a la nueva carpeta Kanboard . -Kanboard ejecutará migraciones de bases de datos de forma automática. - -Cosas importantes que hacer antes de actualizar --------------------------------------- - -- **Siempre crear un backup de tus datos antes de actualizarlo** -- Verificar que tu backup es valido -- Siempre leer el [change log](https://github.com/kanboard/kanboard/blob/master/ChangeLog) para verificar si hay cambios destacados -- Siempre cerrar las sesiones de todos los usuarios (eliminar todas las sesiones en el servidor) - -Desde el archivo (Versión estable ) ---------------------------------- - -1. Descomprimir el nuevo archivo -2. Copiar el contenido de la carpeta de datos en el directorio recién descomprimido -3. Copiar tu `config.php` personalizado si tienes uno -4. Copiar tus plugins sin son necesarios -5. Asegúrese de que el directorio `data` es escribible por el usuario del servidor web -6. Testearlo -7. Eliminar tu viejo directorio del Kanboard - -Desde el repositorio (development version) ------------------------------------------ - -1. `git pull` -2. Inicia la sesión y comprobar si todo está bien - -Nota: Este método se instalará la **versión de desarrollo actual**, utilice a su propio riesgo. diff --git a/doc/es_ES/user-mentions.markdown b/doc/es_ES/user-mentions.markdown deleted file mode 100644 index b3f2f169..00000000 --- a/doc/es_ES/user-mentions.markdown +++ /dev/null @@ -1,18 +0,0 @@ -Menciones de usuarios -===================== - -Kanboard ofrece la posibilidad de enviar notificaciones cuando alguien es mencionado. - -Si usted necesita obtener la atención de alguien en un comentario o una tarea, use el simbolo @ seguido por el usuario. -Kanboard automaticamente desplegara una lista de usuarios: - -![User Mention](../screenshots/mention-autocomplete.png) - -- Por el momento, solo las descripciones de la tarea y la area de comentarios la función esta activada. -- El usuario mencionado sólo funciona durante las tareas y comentarios creados -- Para notificar, necesita mencionar a los usuarios con su membresia de proyecto -- Cuando alguien se mencionó, este usuario recibirá una notificación. -- El @username mencionado está relacionado con el perfil de usuario. - -La notificacion es enviada de acuerdo a la configuracion del usuario, se le puede enviar un email, una notificaicon via web o mensajes en Slack/Hipchat/Jabber si y cuando se tenga instalados dichos plugins. - diff --git a/doc/fr_FR/2fa.markdown b/doc/fr_FR/2fa.markdown deleted file mode 100644 index f6c5976a..00000000 --- a/doc/fr_FR/2fa.markdown +++ /dev/null @@ -1,33 +0,0 @@ -Authentification à deux facteurs -================================ - -Chaque utilisateur peut activer [l'authentification à deux facteurs](http://en.wikipedia.org/wiki/Two_factor_authentication). -Après s’être connecté, un code à usage unique (6 caractères) est demandé à l'utilisateur pour lui autoriser l’accès à Kanboard. - -Ce code doit être fourni par un logiciel compatible, généralement installé sur votre smartphone. - -Kanboard utilise le [Time-based One-time Password Algorithm](http://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm) défini dans la [RFC 6238](http://tools.ietf.org/html/rfc6238). - -Il existe de nombreux logiciels compatibles avec le standard TOTP system. -Par exemple, vous pouvez utilisez ces applications libres et open source : - -- [Google Authenticator](https://github.com/google/google-authenticator/) (Android, iOS, Blackberry) -- [FreeOTP](https://freeotp.github.io/) (Android, iOS) -- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/) (utilitaire en ligne de commande sur Unix/Linux) - -Ce système peut fonctionner hors ligne et vous n'avez pas l'obligation d'avoir un téléphone portable. - -Paramétrage ------------ - -1. Allez dans le profil utilisateur. -2. Sur la gauche, cliquez sur **Authentification à deux facteurs** et cochez la case. -3. Une clef secrète est générée pour vous. - -![2FA](../screenshots/2fa.png) - -- Vous devez sauvegarder votre clef dans votre logiciel TOTP. Si vous utilisez un smartphone, la solution la plus simple est de scanner le QR code avec FreeOTP ou Google Authenticator -- À chaque ouverture de session, un nouveau code sera demandé -- N'oubliez pas de tester votre appareil avant de quitter votre session - -Une nouvelle clef est générée à chaque fois que vous activez/désactivez cette fonction diff --git a/doc/fr_FR/analytics-tasks.markdown b/doc/fr_FR/analytics-tasks.markdown deleted file mode 100644 index 4ab2555a..00000000 --- a/doc/fr_FR/analytics-tasks.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Statistiques pour les tâches -============================ - -Chaque tâche possède une section analytique accessible à partir du menu à gauche dans la page des tâches - -Lead et cycle time ------------------- - -![Lead and cycle time](../screenshots/task-lead-cycle-time.png) - -- Le lead time est la durée entre la création de la tâche et son achèvement (tâche fermée). -- Le cycle time est la durée entre la date de début et l'achèvement. -- Si la tâche n’est pas fermée, l’heure courante est utilisée à la place de la date d'achèvement. -- Si la date de départ n'est pas spécifiée, le cycle time n'est pas calculé. - -Remarque : vous pouvez configurer une action pour définir automatiquement que la date de départ sera le moment où vous déplacez une tâche vers une colonne de votre choix - -Temps passé dans chaque colonne --------------------------------- - -![Temps passé dans chaque colonne](../screenshots/time-into-each-column.png) - -- Ce graphique montre le temps total passé dans chaque colonne pour la tâche -- Le temps passé est calculé jusqu’à ce que la tâche soit fermée diff --git a/doc/fr_FR/analytics.markdown b/doc/fr_FR/analytics.markdown deleted file mode 100644 index 64712e06..00000000 --- a/doc/fr_FR/analytics.markdown +++ /dev/null @@ -1,71 +0,0 @@ -Statistiques pour les projets -============================= - -Chaque projet dispose d'une section analytique. En fonction de la façon dont vous utilisez Kanboard, vous pourrez voir les rapports suivants : - -Répartition des utilisateurs ----------------------------- - -![Répartition des utilisateurs](../screenshots/user-repartition.png) - -Ce graphique circulaire affiche le nombre de tâches assignées par utilisateur. - -Distribution des tâches ------------------------ - -![Distribution des tâches](../screenshots/task-distribution.png) - -Ce graphique circulaire donne une vue d'ensemble du nombre de tâches ouvertes par colonne. - -Diagramme de flux cumulé ------------------------- - -![Diagramme de flux cumulé](../screenshots/cfd.png) - -- Ce graphique affiche le nombre de tâches de façon cumulée pour chaque colonne en fonction du temps passé. -- La légende montre l'ordre de la pile. -- Chaque jour, le nombre total de tâches est enregistré pour chaque colonne. -- Si vous souhaitez exclure les tâches terminées, modifiez les [paramètres du projet global](project-configuration.markdown). - -Remarque : il faut au moins deux jours de données pour que le graphique apparaisse. - -Graphique d'avancement ----------------------- - -![Graphique d'avancement](../screenshots/burndown-chart.png) - -Un [graphique d'avancement](http://en.wikipedia.org/wiki/Burn_down_chart) est disponible pour chaque projet. - -- Il s'agit de la représentation graphique du travail qui reste à faire en fonction du temps restant. -- Kanboard utilise la complexité des estimations d'achèvement pour créer le graphique. -- Chaque jour, la somme des estimations pour chaque colonne est calculée. - -Temps moyen passé pour chaque colonne -------------------------------------- - -![Temps moyen passé pour chaque colonne](../screenshots/average-time-spent-into-each-column.png) - -Ce graphique affiche le temps moyen passé pour chaque colonne pour les 1000 dernière tâches. - -- Kanboard utilise les transitions entre tâches pour calculer les données. -- Le temps passé est calculé jusqu'à la fin de la tâche. - -Temps moyen de Lead et Cycle ----------------------------- - -![Temps moyen passé pour chaque colonne](../screenshots/average-lead-cycle-time.png) - -Ce graphique affiche le temps moyen de lead et cycle pour les 1000 dernières tâches au cours du temps. - -- Le *lead time* est le temps passé entre la création de la tâche et sa date d'achèvement. -- Le *cycle time* est le temps passé entre la date de début spécifiée et la date d'achèvement de la tâche. -- Si la tâche n'est pas close, la date courante est utilisée à la place de la date d'achèvement. - -Ces métriques sont calculées et enregistrées chaque jour pour l'ensemble du projet. - -N'oubliez pas de lancer chaque jour le calcul statistique ---------------------------------------------------------- - -Pour générer des données analytique précises, vous devriez lancer chaque jour le cronjob **statistiques quotidiennes du projet**. - -[Consultez la documentation sur la ligne de commande avec Kanboard](cli.markdown) diff --git a/doc/fr_FR/application-configuration.markdown b/doc/fr_FR/application-configuration.markdown deleted file mode 100644 index d36cb478..00000000 --- a/doc/fr_FR/application-configuration.markdown +++ /dev/null @@ -1,41 +0,0 @@ -Paramètres de l'application -==================== - -Certains paramètres de l'application peuvent être modifiés sur la page des paramètres. -Seuls les administrateurs peuvent modifier ces paramètres. - -Allez au menu **Paramètres**, puis choisissez **Paramètres de l'application** sur la gauche. - -![Paramètres de l'application](../screenshots/application-settings.png) - -### URL de l'application - -Ce paramètre est utilisé pour les notifications par mail. -Le pied de page du mail contiendra un lien vers la tâche du Kanboard. - -### Langue - -La langue de l'application peut être modifiée à tout moment. -Elle sera définie pour tous les utilisateurs. - -### Fuseau horaire - -Par défaut, Kanboard utilise le TUC comme fuseau horaire, mais vous pouvez définir votre propre fuseau horaire. -La liste contient tous les fuseaux horaires pris en charge par votre serveur web. - -### Format de date - -Format d'entrée utilisé pour les champs de saisie de date, par exemple la date d'échéance pour les tâches. - -Kanboard propose 4 différents formats: - -- JJ/MM/AAAA -- MM/JJ/AAAA (par défaut) -- AAAA/MM/JJ -- MM.JJ.AAAA - -Le format [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) est toujours accepté (AAAA-MM-JJ ou AAAA_MM_JJ). - -### Feuille de style personnalisée - -Écrivez votre propre CSS pour remplacer ou améliorer le style par défaut de Kanboard. diff --git a/doc/fr_FR/application-configuration.markup b/doc/fr_FR/application-configuration.markup deleted file mode 100644 index d36cb478..00000000 --- a/doc/fr_FR/application-configuration.markup +++ /dev/null @@ -1,41 +0,0 @@ -Paramètres de l'application -==================== - -Certains paramètres de l'application peuvent être modifiés sur la page des paramètres. -Seuls les administrateurs peuvent modifier ces paramètres. - -Allez au menu **Paramètres**, puis choisissez **Paramètres de l'application** sur la gauche. - -![Paramètres de l'application](../screenshots/application-settings.png) - -### URL de l'application - -Ce paramètre est utilisé pour les notifications par mail. -Le pied de page du mail contiendra un lien vers la tâche du Kanboard. - -### Langue - -La langue de l'application peut être modifiée à tout moment. -Elle sera définie pour tous les utilisateurs. - -### Fuseau horaire - -Par défaut, Kanboard utilise le TUC comme fuseau horaire, mais vous pouvez définir votre propre fuseau horaire. -La liste contient tous les fuseaux horaires pris en charge par votre serveur web. - -### Format de date - -Format d'entrée utilisé pour les champs de saisie de date, par exemple la date d'échéance pour les tâches. - -Kanboard propose 4 différents formats: - -- JJ/MM/AAAA -- MM/JJ/AAAA (par défaut) -- AAAA/MM/JJ -- MM.JJ.AAAA - -Le format [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) est toujours accepté (AAAA-MM-JJ ou AAAA_MM_JJ). - -### Feuille de style personnalisée - -Écrivez votre propre CSS pour remplacer ou améliorer le style par défaut de Kanboard. diff --git a/doc/fr_FR/automatic-actions.markdown b/doc/fr_FR/automatic-actions.markdown deleted file mode 100644 index 41cc6981..00000000 --- a/doc/fr_FR/automatic-actions.markdown +++ /dev/null @@ -1,133 +0,0 @@ -Actions automatiques -==================== - -Pour réduire au minimum l'interaction avec les utilisateurs, Kanboard dispose d'actions automatiques. - -Chaque action automatique est définie ainsi : - -- Un événement à suivre -- Une action associée à cet évènement -- Éventuellement quelques paramètres à définir - -Chaque projet a une série d'actions automatisées qui lui sont propres, le panneau de configuration est situé sur la page qui liste les projets, il vous suffit de cliquer sur le lien **Actions automatiques**. - -Ajouter une nouvelle action ---------------------------- - -Cliquez sur le lien **Ajouter une nouvelle action**. - -![Action automatique](../screenshots/automatic-action-creation.png) - -- Commencez par choisir une action -- Ensuite, sélectionnez un évènement -- Et pour finir, les paramètres de l'action - -Liste des évènements disponibles --------------------------------- - -- Déplacement d'une tâche vers une autre colonne -- Déplacement d'une tâche à un autre emplacement de la même colonne -- Modification d'une tâche -- Création d'une tâche -- Réouverture d'une tâche -- Fermeture d'une tâche -- Création ou modification d'une tâche -- Changement d'assigné à une tâche -- Création ou mise à jour du lien vers une tâche -- Réception d'un *commit* de Github -- Ouverture d'une *issue* de Github -- Fermeture d'une *issue* de Github -- Réouverture d'une *issue* de Github -- Modification de l'assigné à une *issue* de Github -- Modification de l'étiquette d'une *issue* de Github -- Création d'un commentaire d'une *issue* de Github -- Ouverture d'une *issue* de Gitlab -- Fermeture d'une *issue* de Gitlab -- Réception d'un *commit* de Gitlab -- Réception d'un *commit* de Bitbucket -- Ouverture d'une *issue* de Bitbucket -- Fermeture d'une *issue* de Bitbucket -- Réouverture d'une *issue* de Bitbucket -- Modification de l'assigné à une *issue* de Bitbucket issue assignee change -- Création d'un commentaire d'une *issue* de Bitbucket - -Liste des actions disponibles ------------------------------ - -- Fermer une tâche -- Ouvrir une tâche -- Assigner la tâche à un utilisateur particulier -- Assigner la tâche à la personne qui fait l'action -- Cloner la tâche depuis un autre projet -- Déplacer la tâche vers un autre projet -- Déplacer la tâche vers une autre colonne quand elle est assignée à un utilisateur -- Déplacer la tâche vers une autre colonne quand quand l'assigné est supprimé -- Assigner une couleur quand la tâche est déplacée vers une colonne particulière -- Assigner une couleur à un utilisateur particulier -- Assigner automatiquement une couleur selon la catégorie -- Assigner automatiquement une catégorie en fonction d'une couleur -- Créer un commentaire depuis un fournisseur externe -- Créer une tâche depuis un fournisseur externe -- Ajouter un journal de commentaires quand on change une tâche de colonne -- Modifier l'assigné en fonction d'un nom d'utilisateur externe -- Modifier la catégorie en fonction d'une étiquette externe -- Mettre à jour automatiquement la date de début -- Déplacer la tâche vers une autre colonne quand la catégorie a changé -- Envoyer une tâche par mail à quelqu'un -- Modifier la couleur de la tâche quand on utilise un lien particulier pour cette tâche - -Exemples --------- -Voici quelques exemples d'utilisation dans la vraie vie : - -### Quand je déplace une tâche vers la colonne "Terminer", fermer automatiquement cette tâche - -- Choisir l'action : **Fermer la tâche** -- Choisir l'évènement : **Déplacement d'une tâche vers une autre colonne** -- Définir le paramètre de l'action : **Colonne = Terminé** (c'est la colonne de destination) - -### Quand je déplace une tâche vers la colonne "À valider", assigner cette tâche à un utilisateur particulier - -- Choisir l'action : **Assigner la tâche à un utilisateur particulier** -- Choisir l'évènement : **Déplacer une tâche vers une nouvelle colonne** -- Définir les paramètres de l'action :**Colonne = À valider** et **Utilisateur = Adrien** (Adrien est par exemple un testeur) - -### Quand je déplace une tâche vers la colonne "Travail en cours", assigner cette tâche à l'utilisateur courant - -- Choisir l'action : **Assigner la tâche à la personne qui fait cette action** -- Choisir l'évènement : **Déplacer une tâche vers une autre colonne** -- Définir le paramètre de l'action : **Colonne = Travail en cours** - -### Quand une tâche est terminée, dupliquer cette tâche vers un autre projet - -Supposons que nous ayons deux projets : "Commande du client" et "Production". Une fois validée la commande, la basculer vers le projet "Production". - -- Choisir l'action : **Dupliquer la tâche vers un autre projet** -- Choisir l'évènement : **Fermer une tâche** -- Définir les paramètres de l'action : **Colonne = Validé** et **Projet = Production** - -### Quand une tâche est déplacée vers la toute dernière colonne, déplacer la même tâche exactement vers un autre projet - -Supposons que nous ayons deux projets : "Idées" et "Développement". Une fois validée l'idée, la basculer vers le projet "Développement". - -- Choisir l'action : **Déplacer la tâche vers un autre projet** -- Choisir l'évènement : **Déplacer une tâche vers une autre colonne** -- Définir les paramètres de l'action : **Colonne = Validé** et **Projet = Développement** - -### Je veux assigner automatiquement une couleur à l'utilisateur Adrien - -- Choisir l'action : **Assigner une couleur à un utilisateur particulier** -- Choisir l'évènement : **Modification de l'assigné à une tâche** -- Définir les paramètres de l'action :**Couleur = Vert** et **Assigné = Adrien** - -### Je veux assigner automatiquement une couleur à la catégorie "Demande de fonctionnalité" - -- Choisir l'action : **Assigner automatiquement une couleur à une catégorie particulière** -- Choisir l'évènement : **Création ou modification d'une tâche** -- Définir les paramètres de l'action : **Couleur = Bleu** et **Catégorie = Demande de fonctionnalité** - -### Je veux régler automatiquement la date de début quand la tâche est déplacée dans la colonne "Travail en cours" - -- Choisir l'action : **Mettre à jour automatiquement la date de début** -- Choisir l'évènement : **Déplacer une tâche vers une autre colonne** -- Définir les paramètres de l'action : **Colonne= Travail en cours** diff --git a/doc/fr_FR/board-collapsed-expanded.markdown b/doc/fr_FR/board-collapsed-expanded.markdown deleted file mode 100644 index 29396772..00000000 --- a/doc/fr_FR/board-collapsed-expanded.markdown +++ /dev/null @@ -1,18 +0,0 @@ -Mode replié et déplié -===================== - -Les tâches peuvent être affichées sur le tableau en mode replié ou déplié. -Basculer d'un mode à l'autre peut être fait à l'aide du raccourci clavier **« s »** ou en utilisant le menu déroulant sur la gauche. - -Mode replié ------------ - -![Tâches repliées](screenshots/board-collapsed-mode.png) - -- Si la tâche est affectée à quelqu'un, les initiales de la personne sont affichées à côté du numéro de la tâche. -- Si le titre de la tâche est trop long, mettez le curseur de la souris au-dessus de la tâche pour voir une boite flottante avec le titre entier. - -Mode déplié ------------ - -![Tâches dépliées](screenshots/board-expanded-mode.png) diff --git a/doc/fr_FR/board-configuration.markdown b/doc/fr_FR/board-configuration.markdown deleted file mode 100644 index 2fdcbecf..00000000 --- a/doc/fr_FR/board-configuration.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Paramètres du tableau -============== - -Allez dans le menu **Paramètres** puis choisissez *Paramètres du tableau** sur la gauche - -![Paramètres du tableau](../screenshots/board-settings.png) - -### Mise en avant d'une tâche - -Cette fonctionnalité affiche une ombre autour de la tâche lorsqu'une tâche à été déplacée récemment. - -Initialisez la fonctionnalité à 0 pour la désactiver, par défaut 2 jours (172800 secondes). - -Toutes les tâches qui ont été déplacées depuis 2 jours seront entourées d'une ombre. - -### Intervalle pour rafraîchir un tableau public - - Lorsque vous partagez un tableau, la page sera, par défaut, automatiquement rafraîchie toutes les 60 secondes. - -### Intervalle pour rafraîchir un tableau privé - - Lorsque votre navigateur web est ouvert sur un tableau, Kanboard vérifie toutes les 10 secondes si quelque chose à été modifié par un autre utilisateur. - - Techniquement, ce processus est fait par Ajax polling. diff --git a/doc/fr_FR/board-horizontal-scrolling-and-compact-view.markdown b/doc/fr_FR/board-horizontal-scrolling-and-compact-view.markdown deleted file mode 100644 index 7ad9c23c..00000000 --- a/doc/fr_FR/board-horizontal-scrolling-and-compact-view.markdown +++ /dev/null @@ -1,11 +0,0 @@ -Défilement horizontal et mode compact -===================================== - -Lorsque le tableau ne loge pas dans votre écran, une barre de défilement horizontal appaîtra en bas de l'écran. - -Cependant, il est possible de basculer vers la vue compacte pour afficher toutes les colonnes dans votre écran. - -![Tableau en mode compact](screenshots/board-compact-mode.png) - -Basculer entre le défilement horizontal et la vue compacte s'effectue avec le raccourci clavier **« c »** ou en utilisant le menu déroulant sur la gauche. - diff --git a/doc/fr_FR/board-show-hide-columns.markdown b/doc/fr_FR/board-show-hide-columns.markdown deleted file mode 100644 index 8eac0b2c..00000000 --- a/doc/fr_FR/board-show-hide-columns.markdown +++ /dev/null @@ -1,12 +0,0 @@ -Afficher ou cacher des colonnes dans le tableau -=============================================== - -Vous pouvez très facilement cacher ou afficher des colonnes dans le tableau : - -![Cacher une colonne](screenshots/hide-column.png) - -Pour cacher une colonne, ouvrez le menu déroulant de la colonne. - -![Afficher une colonne](screenshots/show-column.png) - -Pour afficher de nouveau la colonne, cliquez sur l'icône avec le « plus ». diff --git a/doc/fr_FR/calendar-configuration.markdown b/doc/fr_FR/calendar-configuration.markdown deleted file mode 100644 index a1992311..00000000 --- a/doc/fr_FR/calendar-configuration.markdown +++ /dev/null @@ -1,43 +0,0 @@ -Paramètres du calendrier -======================== - -Allez au menu **Paramètres**, puis choisissez **Paramètres du calendrier** sur la gauche. - -![Paramètres du calendrier](../screenshots/calendar-settings.png) - -il existe deux calendriers distincts dans Kanboard : - -- le calendrier du projet -- le calendrier de l'utilisateur, disponible dans le tableau de bord - -Le calendrier du projet ------------------------ - -Ce calendrier affiche les tâches avec les dates d'échéance et les tâches selon leur date de création ou de début. - -### Afficher les tâches selon leur date de création - -- La date de début d'un évènement du calendrier est la date de création de la tâche. -- la date de fin de l'évènement est la date d'achèvement de la tâche. - -### Afficher les tâches selon leur date de début - -- La date de début d'un évènement du calendrier est la date du démarrage effectif de la tâche. -- Cette date ne peut pas être définie manuellement. -- La date de fin de l'évènement est la date de l'achèvement de la tâche. -- S'il n'existe pas de date de début la tâche ne figurera pas sur le calendrier . - -Calendrier de l'utilisateur ---------------------------- - -Ce calendrier n'affiche que les tâches assignées à l'utilisateur et de façon facultative des informations sur les sous-tâches. - -### Afficher les sous-tâches selon le suivi du temps passé - -- Affiche les sous-tâches dans le calendrier d'après les informations recueillies dans l afeuille de suivi du temps. -- Le croisement des données avec l'emploi du temps de l'utilisateur est également calculé. - -### Afficher les estimations des sous-tâches (anticipation sur le travail à venir) - -- Affiche l'estimation du travail à venir pour les sous-tâches qui ont le statut « à faire » et avec une valeur définie à « estimé ». - diff --git a/doc/fr_FR/calendar.markdown b/doc/fr_FR/calendar.markdown deleted file mode 100644 index b6d97cff..00000000 --- a/doc/fr_FR/calendar.markdown +++ /dev/null @@ -1,20 +0,0 @@ -Calendriers -======== - -il existe deux visualisations différentes des calendriers : - -- La vue du projet avec des filtres (disponibles depuis le tableau) -- La vue utilisateur (disponible depuis le tableau de bord de l'utilisateur) - -Pour l'instant le calendrier permet d'afficher les informations suivantes : - -- Les tâches avec une date d'échéance, affichée en haut. **La date d'échéance peut être modifiée en déplaçant la tâche vers un autre jour**. -- les tâches basées sur la date de création ou la date de début. **Ces évènements ne peuvent pas être modifiés avec le calendrier**. -- Le suivi dans le temps de sous-tâches, tous les segments temporels sont affichés dans le calendrier. -- Les estimations pour les sous-tâches, les prévisions et le travail restant - -![Calendrier](../screenshots/calendar.png) - -La configuration du calendrier peut être modifiée dans la page des paramètres. - -Remarque : la date d'échéance n'inclut pas d'information temporelle. diff --git a/doc/fr_FR/centos-installation.markdown b/doc/fr_FR/centos-installation.markdown deleted file mode 100644 index 9fa67513..00000000 --- a/doc/fr_FR/centos-installation.markdown +++ /dev/null @@ -1,89 +0,0 @@ -Installation de Kanboard sur CentOS -=================================== - -CentOS 7 --------- - -Installez PHP et Apache : - -```bash -yum install -y php php-mbstring php-pdo php-gd unzip wget -``` - -Par défaut, Centos 7 utilise PHP 5.4.16 et Apache 2.4.6. - -Redémarrer Apache : - -```bash -systemctl restart httpd.service -``` - -Installez Kanboard : - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R apache:apache kanboard-<version>/data -rm kanboard-<version>.zip -``` - -CentOS 6.x ----------- - -Installez PHP et Apache : - -```bash -yum install -y php php-mbstring php-pdo php-gd unzip wget -``` - -Par défaut, Centos 6.5 utilise PHP 5.3.3 et Apache 2.2.15. - -Activez les "short tags": - -- Modifiez le fichier `/etc/php.ini` -- Changez cette ligne pour que la valeur soit à `On` : `short_open_tag = On` - -Redémarrez Apache: - -```bash -service httpd restart -``` - -Installez Kanboard : - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R apache:apache kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Restrictions SELinux --------------------- - -Si SELinux est activé, soyez sûr que Apache puisse écrire dans le répertoire `data` : - -```bash -chcon -R -t httpd_sys_content_rw_t /var/www/html/kanboard/data -``` - -La même chose s'applique pour autoriser Kanboard à envoyer des requêtes réseau externes : - -```bash -setsebool -P httpd_can_network_connect=1 -``` - -Autoriser des connexions externes est nécessaire si vous souhaitez utiliser LDAP, SMTP ou les webhooks. - -Notes ------ - -Certaines fonctionnalités de Kanboard demandent à ce que vous installiez une [tâche planifiée](cronjob.markdown). diff --git a/doc/fr_FR/closing-tasks.markdown b/doc/fr_FR/closing-tasks.markdown deleted file mode 100644 index d9f5cb28..00000000 --- a/doc/fr_FR/closing-tasks.markdown +++ /dev/null @@ -1,16 +0,0 @@ -Fermer des tâches -============= - -Quand une tâche est fermée, elle n'est plus visible sur le tableau. - -Toutefois, vous pouvez toujours accéder à la liste des tâches closes en utilisant la requête **status:closed** dans un formulaire de recherche, ou bien choisissez simplement **Tâches fermées** dans le menu déroulant des filtres. - -Il existe deux façons différentes de fermer une tâche, depuis le menu déroulant des tâches sur le tableau : - -![Fermer une tâche par le menu déroulant](../screenshots/menu-close-task.png) - -…ou bien depuis la barre latérale dans la vue détaillée des tâches - -![Fermer une tâche](../screenshots/closing-tasks.png) - -Remarque : quand vous fermez une tâche, toutes les sous-tâches qui ne sont pas achevées verront leur statut passer à "Terminé". diff --git a/doc/fr_FR/create-tasks-by-email.markdown b/doc/fr_FR/create-tasks-by-email.markdown deleted file mode 100644 index 79a21709..00000000 --- a/doc/fr_FR/create-tasks-by-email.markdown +++ /dev/null @@ -1,45 +0,0 @@ -Créer des tâches par email -========================== - -Vous pouvez créer des tâches directement en envoyant un message. - -Pour le moment, Kanboard fonctionne avec 3 services externes : - -- [Mailgun](https://github.com/kanboard/plugin-mailgun) -- [Sendgrid](https://github.com/kanboard/plugin-sendgrid) -- [Postmark](https://github.com/kanboard/plugin-postmark) - -Ces services gèrent le courrier entrant sans qu'on ait à configurer un serveur SMTP. - -À la réception d'un email par l'un de ces services, le message qu'il contenait est transmis et traité automatiquement par Kanboard. -Toutes les opérations complexes sont prises en charge par ces services. - -Processus de réception du courrier entrant ------------------------------------------- - -1. Vous envoyez un mail à une adresse spécifique, par exemple **quelquechose+monprojet@inbound.mondomaine.tld** -2. Votre mail est envoyé sur les serveurs tiers SMTP -3. Le fournisseur de SMTP appelle Kanboard via un webhook avec le mail en JSON ou aux formats multipart/form-data -4. Kanboard analyse le mail reçu et crée la tâche dans le bon projet - -Remarque : les nouvelles tâches sont automatiquement créées dans la première colonne. - -Format du mail --------------- - -- La partie locale de l'adresse mail doit utiliser le signe + comme séparateur, par exemple **kanboard+projet123** -- La chaîne de caractères définie après le signe + doit correspondre à l'identifiant d'un projet, par exemple **projet123** est l'identifiant du projet **Projet 123** -- le sujet de l'email devient le titre de la tâche -- Le corps du message devient la description de la tâche (au format Markdown) - -Les courriers entrants peuvent être écrits aux formats .txt ou .HTML. -**Kanboard peut convertir en Markdown les messages écrits en simple HTML**. - -Sécurité et prérequis ---------------------- - -- Le webhook de Kanboard est protégé par un jeton aléatoire -- L'adresse de l'expéditeur doit correspondre à celle d'un utilisateur de Kanboard -- L'utilisateur de Kanboard doit être un membre du projet -- Le projet Kanboard doit avoir un identifiant unique, par exemple **MONPROJET** - diff --git a/doc/fr_FR/creating-projects.markdown b/doc/fr_FR/creating-projects.markdown deleted file mode 100644 index e5da7cc6..00000000 --- a/doc/fr_FR/creating-projects.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Créer des projets -================= - -Kanboard peut gérer de multiples projets. Voici deux sortes de projets : - -- Les projets multi-utilisateurs (pour le travail collaboratif, en équipe) -- Les projets privés, réservés à un seul utilisateur - -Créer des projets multi-utilisateurs ------------------------------------- - -- Seuls les administrateurs et les gestionnaires de projets peuvent créer ce type de projets -- La gestion des utilisateurs est disponible - -Depuis le tableau de bord, cliquez sur le lien **Nouveau projet** : - -![Formulaire de création de projet](screenshots/new-project.png) - -C'est vraiment très simple, il vous suffit de trouver un nom pour votre projet ! - -Créer un projet privé ---------------------- - -- Tout le monde peut créer un projet privé (sauf si désactivé par l'administrateur) -- Il n'y a **pas** de gestion des utilisateurs -- Seuls le propriétaire et les administrateurs peuvent accéder au projet - -Depuis le tableau principal, cliquez sur le lien **Nouveau projet privé**. - -Créer un projet depuis un autre projet --------------------------------------- - -Lorsque vous créez un nouveau projet, vous pouvez choisir de dupliquer les propriétés d'un projet existant : - -- Permissions -- Catégories -- Actions -- Swimlanes -- Tâches diff --git a/doc/fr_FR/creating-tasks.markdown b/doc/fr_FR/creating-tasks.markdown deleted file mode 100644 index c3cfed01..00000000 --- a/doc/fr_FR/creating-tasks.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Créer des tâches -============== - -Depuis le tableau, cliquez sur le signe plus + à côté du nom de la colonne : - -![Création de tâche à partir du tableau](screenshots/task-creation-board.png) - -Le formulaire de création de tâche apparaît : - -![Formulaire de création de tâche](screenshots/task-creation-form.png) - -Le seul champ obligatoire est le titre. - -Description des champs : - -- **Titre** : le titre de votre tâche, tel qu'il sera affiché sur le tableau. -- **Description** : vous permet d'ajouter davantage d'informations sur la tâche. Le contenu peut être écrit en [Markdown](syntax-guide.markdown). -- **Libellés**: Liste de libellés associés à la tâche. -- **Créer une autre tâche** : cochez cette case si vous souhaitez créer une tâche similaire (les champs seront pré-remplis). -- **Assigné** : la personne qui va travailler sur la tâche. -- **Catégorie** : une seule catégorie peut être assignée à une tâche. -- **Colonne** : la colonne dans laquelle la tâche sera créée. La tâche sera positionnée en bas de cette colonne. -- **Couleur** : Choisissez la couleur de la carte. -- **Complexité** : utilisée dans la gestion de projet agile (Scrum), la complexité des points d'étape est un nombre qui montre à l'équipe le degré de difficulté de l'avancement du projet. Les utilisateurs se servent souvent des suites de Fibonacci. -- **Référence** : Identifiant externe, par exemple cela peut-être un numéro de ticket qui vient d'un système externe. -- **Estimation originale** : estimation du nombre d'heures nécessaire pour terminer les tâches. -- **Date d'échéance** : les tâches dont la date d'échéance est dépassée auront une date d'échéance en rouge et les dates suivantes seront en noir dans le tableau. Plusieurs formats de date sont acceptés, outre le sélecteur de date. - -Avec le lien d'aperçu (« Prévisualiser »), vous pouvez voir la description de la tâche convertie depuis la syntaxe Markdown. - -Vous créer une tâche de plusieurs manières : - -- Avec l'icône avec le signe plus sur le board -- Avec le raccourci clavier "n" -- Depuis le menu déroulant en haut à gauche diff --git a/doc/fr_FR/currency-rate.markdown b/doc/fr_FR/currency-rate.markdown deleted file mode 100644 index c004b4a4..00000000 --- a/doc/fr_FR/currency-rate.markdown +++ /dev/null @@ -1,11 +0,0 @@ -Taux de change des devises -========================== - -Chaque utilisateur peut avoir un taux horaire prédéfini dans différentes devises. -Si vous avez à manipuler plusieurs devises, vous pouvez définir ici le taux en fonction de la devise de référence. - -Cette fonctionnalité est utilisée pour calculer le budget du projet. - -![Currency Rate](../screenshots/currency-rate.png) - -Les paramètres pour le taux de change des devises sont situés dans **Paramètres > Taux de change** diff --git a/doc/fr_FR/custom-project-roles.markdown b/doc/fr_FR/custom-project-roles.markdown deleted file mode 100644 index df250435..00000000 --- a/doc/fr_FR/custom-project-roles.markdown +++ /dev/null @@ -1,86 +0,0 @@ -Rôles personnalisés pour les projets -==================================== - -Vous pouvez créer des rôles personnalisés pour les projets afin d'appliquer des restrictions spécifiques sur les personnes qui appartiennent à ce rôle. -Ces rôles personnalisés sont définis pour chaque projet. - -Un rôle personnalisé hérite du rôle « Membre du projet ». -Par exemple, vous pouvez créer un rôle personnalisé pour forcer quelqu'un à suivre un process. -Vous pourriez avoir un groupe de gens qui sont autorisés seulement à déplacer des tâches entre les colonnes « Travail en cours » et « Terminé ». - -Liste des restrictions ----------------------- - -- Restrictions au niveau du projet : - - La création de tâches n'est pas permise - - Ouvrir ou fermer une tâche n'est pas permise - - Déplacer une tâche n'est pas autorisé -- Restrictions au niveau des colonnes : - - La création de tâches est autorisée ou bloquée pour une colonne spécifique - - L'ouverture ou la fermeture de tâche est autorisée ou bloquée pour une colonne spécifique -- Déplacer une tâche seulement entre les colonnes spécifiées - -Configuration -------------- - -### 1) Créer un rôle personnalisé - -Depuis les réglages du projet, cliquez dans le menu à gauche sur **Rôles personnalisés** et en haut de la page sur **Ajouter un nouveau rôle personnalisé**. - -![New custom role](../screenshots/new_custom_role.png) - -Donnez un nom au rôle et soumettez le formulaire. - -### 2) Ajouter une restriction au rôle - -Il y a plusieurs sortes de restrictions : - -- Restrictions au niveau du projet -- Restriction sur le déplacement des tâches entre les colonnes -- Restrictions sur les colonnes - -Vous pouvez cliquer sur le menu déroulant pour ajouter une nouvelle restriction : - -![Ajouter une nouvelle restriction](../screenshots/add_new_restriction.png) - -### 3) Liste des restrictions - -![Liste des restrictions](../screenshots/example-restrictions.png) - -Par exemple, ce rôle est capable de créer des tâches seulement dans la colonne « Backlog » et de déplacer des tâches entre les colonnes « Ready » et « Work in progress ». - -### 4) Assigner le rôle à quelqu'un - -Allez dans la section **Permissions** dans le menu sur la gauche et assignez le rôle personnalisé à l'utilisateur. - -![Assignation du rôle](../screenshots/custom_roles.png) - -Exemples --------- - -### Autoriser les gens à créer des tâches uniquement dans certaines colonnes - -![Exemple de restriction sur la création des tâches](../screenshots/example-restriction-task-creation.png) - -- Les utilisateurs qui appartiennent à ce rôle seront capables de créer des tâches seulement dans la colonne « Backlog ». -- La combinaison des deux règles est importante, sinon cela ne fonctionnera pas. - -### Autoriser les gens à changer le statut des tâches uniquement dans certaines colonnes - -![Exemple de restriction sur statut des tâches](../screenshots/example-restriction-task-status.png) - -- Les utilisateurs qui appartiennent à ce rôle seront capables de change le statut des tâches seulement dans la colonne « Backlog ». -- Les tâches qui possèdent le statut ouvert sont visibles sur le tableau alors que celles qui ont le statut fermé ne sont pas visibles. - -### Ne pas autoriser les gens à changer le statut des tâches dans une colonne spécifique - -![Exemple de restriction sur les colonnes](../screenshots/example-restriction-task-status-blocked.png) - -Les utilisateurs qui appartiennent à ce rôle ne seront pas capables de changer le statut des tâches dans la colonne « Done ». -Par contre, cela reste possible dans les autres colonnes. - -### Autoriser les gens à déplacer des tâches seulement entre certaines colonnes - -![Exemple de restriction pour le drag and drop](../screenshots/example-restriction-task-drag-and-drop.png) - -Les utilisateurs qui appartiennent à ce rôle seront capables de déplacer les tâches seulement entre les colonnes « Ready » et « Work in progress ». diff --git a/doc/fr_FR/debian-installation.markdown b/doc/fr_FR/debian-installation.markdown deleted file mode 100644 index 12e02da1..00000000 --- a/doc/fr_FR/debian-installation.markdown +++ /dev/null @@ -1,72 +0,0 @@ -Installation de Kanboard sur Debian -=================================== - -Debian 8 (Jessie) ------------------ - -Installez Apache et PHP : - -```bash -apt-get update -apt-get install -y php5 php5-sqlite php5-gd unzip -service apache2 restart -``` - -Installez Kanboard : - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Debian 7 (Wheezy) ------------------ - -Installez Apache et PHP : - -```bash -apt-get update -apt-get install -y php5 php5-sqlite php5-gd unzip -``` - -Installez Kanboard : - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Debian 6 (Squeeze) ------------------- - -Installez Apache et PHP : - -```bash -apt-get update -apt-get install -y libapache2-mod-php5 php5-sqlite php5-gd unzip -``` - -Installez Kanboard : - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` diff --git a/doc/fr_FR/duplicate-move-tasks.markdown b/doc/fr_FR/duplicate-move-tasks.markdown deleted file mode 100644 index dd313714..00000000 --- a/doc/fr_FR/duplicate-move-tasks.markdown +++ /dev/null @@ -1,58 +0,0 @@ -Dupliquer et déplacer des tâches -================================ - -Dupliquer une tâche dans le même projet ---------------------------------------- - -Allez à la vue par tâche et choisissez **Dupliquer** sur la gauche. - -![Duplication de tâche](../screenshots/task-duplication.png) - -Une nouvelle tâche sera créée avec les mêmes propriétés que celles de la tâche originale. - -Dupliquer une tâche vers un autre projet ------------------------------------ - -Allez à la vue par tâches et choisissez **Dupliquer dans un autre projet**. - -![Duplication d'une tâche dans un autre projet](../screenshots/task-duplication-another-project.png) - -Seuls les projets dont vous êtes membre apparaîtront dans le menu déroulant. - -Avant de copier les tâches, Kanboard vous demandera les propriétés de la destination qui ne sont pas communes entre les projets source et destination. - -Vous devez essentiellement définir : - -- La swimlane de destination -- La colonne -- La catégorie -- L'assigné - -Déplacer une tâche vers un autre projet ------------------------------- - -Allez à la vue par tâches et choisissez **Déplacer vers un autre projet**. - -Déplacer vers un autre projet est semblable à l'opération de duplication, vous devez choisir les nouvelles propriétés de la tâche. - -Liste des champs dupliqués -------------------------- -Voici la liste des champs dupliqués : - -- 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/doc/fr_FR/editing-projects.markdown b/doc/fr_FR/editing-projects.markdown deleted file mode 100644 index 2186a1b9..00000000 --- a/doc/fr_FR/editing-projects.markdown +++ /dev/null @@ -1,15 +0,0 @@ -Modifier des projets -==================== - -Les projets peuvent être renommés et désactivés à tout moment. - -Pour renommer un projet, il suffit de cliquer sur le lien « Modifier un projet » sur la gauche. - -![Modification de projet](screenshots/project-edition.png) - -- Les dates de début et de fin sont utilisées pour créer le diagramme de Gantt du projet -- La description est visible en infobulle sur le tableau et sur la page qui liste les projets -- Les administrateurs et administrateurs de projets peuvent convertir un projet privé en projet multi-utilisateur en décochant la case « Projet privé ». -- Vous pouvez également convertir un projet multi-utilisateur en projet privé. - -Remarque : quand vous rendez un projet privé, tous les utilisateurs existants auront accès au projet. Ajustez la liste des utilisateurs selon vos besoins. diff --git a/doc/fr_FR/gantt-chart-projects.markdown b/doc/fr_FR/gantt-chart-projects.markdown deleted file mode 100644 index 5453a535..00000000 --- a/doc/fr_FR/gantt-chart-projects.markdown +++ /dev/null @@ -1,17 +0,0 @@ -Diagramme de Gantt pour tous les projets -============================ - -Le but de ce diagramme de Gantt est d'afficher une vue d'ensemble de tous les projets basée sur les dates de début et de fin. - -- Ce diagramme de Gantt est disponible dans la section de gestion du projet -- Seuls les administrateurs et administrateurs de projet peuvent accéder à cette section -- Les administrateurs de projet ne verront que les projets dans lesquels il y a des membres -- Les objets privés ne sont pas affichés dans ce graphique - -![Diagramme de Gantt pour tous les projets](../screenshots/gantt-chart-all-projects.png) - -- La **date de début** et la **date de fin** des projets est utilisée pour construire le graphique -- Les barres horizontales peuvent être redimensionnées et déplacées latéralement avec votre souris -- Il n'y a pas de glisser-déposer vertical -- Les barres de projet sont affichées en noir quand il n'y a ni date de début ni date de fin définies -- L'infobulle affiche la liste des gestionnaires de projets et les membres ordinaires diff --git a/doc/fr_FR/gantt-chart-tasks.markdown b/doc/fr_FR/gantt-chart-tasks.markdown deleted file mode 100644 index bf2ff45e..00000000 --- a/doc/fr_FR/gantt-chart-tasks.markdown +++ /dev/null @@ -1,20 +0,0 @@ -Diagramme de Gantt pour les tâches -====================== - -Le but de ce diagramme de Gantt est de montrer une vue d'ensemble du temps utilisé en fonction de l'ensemble des tâches d'un projet donné. - -- Le diagramme de Gantt est disponible depuis le « sélecteur de vue » -- Seuls les gestionnaires de projet peuvent accéder à cette section - -![Gantt Chart](../screenshots/gantt-chart-project.png) - -- La **date de début** et la **date de fin** des tâches sont utilisées pour créer le graphique -- Les tâches peuvent être redimensionnées et déplacées horizontalement avec votre souris -- Il n'y a pas de glisser-déposer vertical -- La barre est de la même couleur que la tâche -- Chaque barre affiche un niveau de progression en pourcentage, qui est calculé en utilisant la position de la colonne dans le tableau -- Pour correspondre au modèle du Kanban, les tâches peuvent être ordonnées suivant leur position dans le tableau ou suivant les dates de début -- Les nouvelles tâches crées avec cette vue seront affichées sur le tableau en position 1 de la première colonne -- Les tâches sont affichées en noir quand il n'existe ni date de début ni date d'échéance définies - -![Tâche non définie](../screenshots/gantt-chart-not-defined.png) diff --git a/doc/fr_FR/index.markdown b/doc/fr_FR/index.markdown deleted file mode 100644 index b33baf85..00000000 --- a/doc/fr_FR/index.markdown +++ /dev/null @@ -1,78 +0,0 @@ -Documentation -============= - -Utiliser Kanboard ------------------ - -### Introduction - -- [Qu'est-ce que Kanban ?](what-is-kanban.markdown) -- [Comparons Kanban aux Todo listes et à Scrum](kanban-vs-todo-and-scrum.markdown) -- [Exemples d'utilisation](usage-examples.markdown) - -### Utiliser un tableau - -- [Vues Tableau, Agenda et Liste](project-views.markdown) -- [Mode Replié et Déplié](board-collapsed-expanded.markdown) -- [Défilement horizontal et mode compact](board-horizontal-scrolling-and-compact-view.markdown) -- [Afficher ou cacher des colonnes dans le tableau](board-show-hide-columns.markdown) - -### Travailler avec les projets - -- [Types de projets](project-types.markdown) -- [Créer des projets](creating-projects.markdown) -- [Modifier des projets](editing-projects.markdown) -- [Supprimer des projets](removing-projects.markdown) -- [Partager des tableaux et des tâches](sharing-projects.markdown) -- [Actions automatiques](automatic-actions.markdown) -- [Permissions des projets](project-permissions.markdown) -- [Swimlanes](swimlanes.markdown) -- [Calendriers](calendar.markdown) -- [Analytique](analytics.markdown) -- [Diagramme de Gantt pour les tâches](gantt-chart-tasks.markdown) -- [Diagramme de Gantt pour tous les projets](gantt-chart-projects.markdown) -- [Rôles personnalisés pour les projets](custom-project-roles.markdown) - -### Travailler avec les tâches - -- [Créer des tâches](creating-tasks.markdown) -- [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 internes entre les tâches](task-links.markdown) -- [Transitions](transitions.markdown) -- [Suivi du temps](time-tracking.markdown) -- [Tâches récurrentes](recurring-tasks.markdown) -- [Créer des tâches par email](create-tasks-by-email.markdown) -- [Sous-tâches](subtasks.markdown) -- [Analytique des tâches](analytics-tasks.markdown) -- [Mentionner les utilisateurs](user-mentions.markdown) - -### Travailler avec les utilisateurs - -- [Rôles](roles.markdown) -- [Gestion des utilisateurs](user-management.markdown) -- [Notifications](notifications.markdown) -- [Authentification à deux facteurs](2fa.markdown) - -### Paramètres - -- [Raccourcis clavier](keyboard-shortcuts.markdown) -- [Paramètres de l'application](application-configuration.markdown) -- [Paramètres du projet](project-configuration.markdown) -- [Paramètres du tableau](board-configuration.markdown) -- [Paramètres du calendrier](calendar-configuration.markdown) -- [Paramètres du lien](link-labels.markdown) -- [Taux de change](currency-rate.markdown) - -Détails techniques ------------------- - -### Installation - -- [Prérequis](requirements.markdown) -- [Instructions d'installation](installation.markdown) -- [Mise à jour vers une nouvelle version](update.markdown) -- [Installation sur Ubuntu](ubuntu-installation.markdown) -- [Installation sur Debian](debian-installation.markdown) -- [Installation sur Centos](centos-installation.markdown) diff --git a/doc/fr_FR/installation.markdown b/doc/fr_FR/installation.markdown deleted file mode 100644 index 84626151..00000000 --- a/doc/fr_FR/installation.markdown +++ /dev/null @@ -1,64 +0,0 @@ -Installation -============ - -Avant toute chose, vérifiez-les [prérequis](requirements.markdown) avant d'aller plus loin. - -Depuis l'archive (version stable) ---------------------------------- - -1. Vous devez avoir un serveur web avec PHP déjà configuré -2. Téléchargez le code source de l'application et copiez le dossier `kanboard` là où vous le souhaitez -3. Vérifiez si le répertoire `data` est accessible en écriture par l'utilisateur de votre serveur web -4. Avec votre navigateur, allez sur <http://yourpersonalserver/kanboard> -5. L'utilisateur et le mot de passe par défaut sont **admin/admin** -6. Commencez à utiliser le logiciel -7. N'oubliez pas de changer le mot de passe par défaut ! - -Le répertoire `data` est utilisé pour : - -- La base de données Sqlite : `db.sqlite` -- Le fichier de débogage : `debug.log` (uniquement si le mode débug est actif) -- Les fichiers uploadés : `files/*` -- Les vignettes des images : `files/thumbnails/*` - -Les gens qui utilisent une base de données distante (Mysql/Postgresql) ou un système de stockage distant tel que Amazon S3 n'ont pas forcément besoin d'avoir un dossier `data` local. - -Depuis le dépôt git (version de développement) ----------------------------------------------- - -1. `git clone https://github.com/kanboard/kanboard.git` -2. Allez à l'étape 3) juste au-dessus - -Cette méthode va installer **la version en cours de développement**, utilisez là à vos risques. - -Installation en dehors du document root ---------------------------------------- - -Si vous souhaitez installer Kanboard en dehors du document root de votre serveur web, vous devez créer au minimum ces liens symboliques : - -```bash -. -├── assets -> ../kanboard/assets -├── cli -> ../kanboard/cli -├── doc -> ../kanboard/doc -├── favicon.ico -> ../kanboard/favicon.ico -├── index.php -> ../kanboard/index.php -├── jsonrpc.php -> ../kanboard/jsonrpc.php -└── robots.txt -> ../kanboard/robots.txt -``` - -Le `.htaccess` est optionnel parce que sont contenu peut-être inclus directement dans la configuration Apache. - -Vous pouvez également définir un autre dossier pour les plug-ins et les fichiers uploadés en changeant le [fichier de configuration](config.markdown). - -Installations supplémentaires ------------------------------ - -- Certaines fonctionnalités de Kanboard demandent à ce que vous installiez une [tâche planifiée](cronjob.markdown) (Rapports et statistiques) -- [Un processus qui tourne en arrière-plan](worker.markdown) peut être installé pour améliorer les performances - -Sécurité --------- - -- Ne pas oublier de changer le mot de passe par défaut -- Ne pas autoriser tout le monde à accéder au dossier `data` depuis l'URL. Il y a déjà un `.htaccess` pour Apache et un fichier `web.config` pour IIS mais rien pour Nginx. diff --git a/doc/fr_FR/kanban-vs-todo-and-scrum.markdown b/doc/fr_FR/kanban-vs-todo-and-scrum.markdown deleted file mode 100644 index b6f5bc1f..00000000 --- a/doc/fr_FR/kanban-vs-todo-and-scrum.markdown +++ /dev/null @@ -1,36 +0,0 @@ -Comparons Kanban aux Todo listes et à Scrum -============================== - -Kanban et les Todo listes --------------------- - -### Todo listes : - -- Une seule phase (une simple liste d'éléments) -- La possibilité de multitâche (moins efficace) - -### Kanban: - -- Multiples phases, chaque colonne représente une étape -- Permet de se concentrer sans se disperser sur de multiples tâches, puisque l'on peut poser une limite au travail en cours par colonne - -Kanban et Scrum ---------------- -### Scrum : - -- Limite les Sprints dans le temps, généralement à 2 ou 4 semaines -- N'accepte pas de modifications pendant l'itération -- Nécessite une estimation -- Utilise la vélocité comme métrique par défaut -- Le tableau Scrum est remis à zéro entre chaque Sprint -- Scrum a des rôles prédéfinis comme Scrum Master, Product Owner et l'équipe -- Beaucoup de réunions : planification, consolidation du backlog, quotidienne, rétrospective - -### Kanban : -- Flux continu -- Des modifications peuvent arriver à n'importe quel moment -- L'estimation est facultative -- Utilise le temps *lead* et *cycle* pour mesurer l'efficacité -- Le tableau Kanban est permanent -- Kanban n'impose aucune contrainte stricte ni de réunion, le processus est plus flexible - diff --git a/doc/fr_FR/keyboard-shortcuts.markdown b/doc/fr_FR/keyboard-shortcuts.markdown deleted file mode 100644 index 28a131d8..00000000 --- a/doc/fr_FR/keyboard-shortcuts.markdown +++ /dev/null @@ -1,37 +0,0 @@ -Raccourcis clavier -================== - -La disponibilité des raccourcis clavier dépend de la page sur laquelle vous êtes couramment. - -Vues par projets (Tableau, Agenda, Liste, Gantt) --------------------------------------------- - -- Passer à la vue tableau = **v b** (appuyer sur **v** puis **b**) -- Passer à la vue agenda = **v c** -- Passer à la vue liste = **v l** -- Passer à la vue Gantt = **v g** - -Vue tableau ----------- - -- Nouvelle tâche = **n** -- Étendre / replier une tâche = **s** -- Vue compacte / vue étendue = **c** - -Vue détaillée d'une tâche -------------------------- - -- Modifier une tâche = **e** -- Nouvelle sous-tâche = **s** -- Nouveau commentaire = **c** -- Nouveau lien interne = **l** - -Application ------------ - -- Afficher la liste des raccourcis clavier = **?** -- Ouvrir le changement de tableau = **b** -- Aller au moteur de recherche = **f** -- Restaurer la boîte de recherche = **r** -- Fermer la fenêtre de dialogue = **ESC** -- Soumettre un formulaire = **CTRL+ENTER** ou **⌘+ENTER** diff --git a/doc/fr_FR/link-labels.markdown b/doc/fr_FR/link-labels.markdown deleted file mode 100644 index 6a81713a..00000000 --- a/doc/fr_FR/link-labels.markdown +++ /dev/null @@ -1,13 +0,0 @@ -Paramètres des liens -============= - -Les relations entre les tâches peuvent être modifiées depuis les paramètres de l'application (**Paramètres > Paramètres des liens**) - -![Libellé des liens](../screenshots/link-labels.png) - -Chaque nom du libellé peut avoir un nom du libellé opposé. - -Si il n'y a pas d'opposé, le nom du libellé sera considéré comme étant bidirectionnel. - -![Création d'un libellé de lien](../screenshots/link-label-creation.png) - diff --git a/doc/fr_FR/notifications.markdown b/doc/fr_FR/notifications.markdown deleted file mode 100644 index ca674111..00000000 --- a/doc/fr_FR/notifications.markdown +++ /dev/null @@ -1,45 +0,0 @@ -Notifications -============= - -Kanboard est capable d'envoyer des notifications via différents canaux : - -- Email -- Web (Liste de message non lus) - -Vous pouvez ajouter d'autres canaux en ajoutant des extensions comme par exemple Hipchat, Slack ou encore Jabber. - -Configuration --------------- - -Chaque utilisateur doit autoriser les notifications dans son profil : **Profil Utilisateur > Notifications**. Cette option est désactivée par défaut. - -Vous devez, bien sûr, avoir renseigné une adresse email valide dans votre profil et l'application doit être configurée pour envoyer des emails. - -![Notifications](../screenshots/notifications.png) - -Vous pouvez choisir votre méthode favorite de notification : - -- Email -- Web - -Pour chaque projet dont vous êtes membre, vous pouvez choisir de recevoir des notifications pour : - -- Toutes les tâches -- Seulement les tâches qui vous sont assignées -- Seulement les tâches que vous avez créées -- Seulement les tâches que vous avez créées et celles qui vous sont assignées - -Vous pouvez aussi sélectionner certain projets, par défaut tous les projets dont vous êtes membre sont sélectionnés. - -Notifications web ------------------ - -Les notifications web sont accessibles depuis le tableau de bord ou depuis l'icône en haut de la page : - -![Icône des notifications web](../screenshots/web-notifications-icon.png) - -Les notifications sont affichées sous forme de liste. Vous pouvez marquer comme lu chacune d'entre-elle ou toutes en même temps. - -![Notifications web](../screenshots/web-notifications.png) - -Avec cette méthode vous pouvez quand même rester avertis de ce que se passe sans pour autant être inondé d'emails. diff --git a/doc/fr_FR/project-configuration.markdown b/doc/fr_FR/project-configuration.markdown deleted file mode 100644 index 0b3a4044..00000000 --- a/doc/fr_FR/project-configuration.markdown +++ /dev/null @@ -1,42 +0,0 @@ - -Paramètres du projet -================ - -Aller dans le menu **Préférences**; puis choisissez **Paramètres du projet** sur la gauche - -![Paramètres du projet](../screenshots/project-settings.png) - -###Colonnes par défaut pour les nouveaux projets - -Vous pouvez changer le nom des colonnes par défaut. -C'est utile si vous créez toujours des projets comprenant les même colonnes - -Chaque nom de colonne doit être séparé par une virgule. - -Par défaut, Kanboard utilise les noms de colonne suivants : en attente, prêt, en cours, terminé. - -###Catégories par défaut pour les nouveaux projets - -Les catégories ne sont pas globales à l'application mais rattachées à un projet. -Chaque projet peut avoir plusieurs catégories. - -De plus, si vous créez toujours la même catégorie pour tous vos projets, vous pouvez définir ici la liste des catégories à créer automatiquement - -### Autoriser une seule sous-tâche en cours à la fois pour un utilisateur - -Lorsque cette option est sélectionnée, un utilisateur ne peut travailler que sur une seule sous-tâche à la fois - -Si une autre sous-tâche possède le statut « en cours », l'utilisateur verra cette boite de dialogue : - -![Limite des sous-tâches pour l'utilisateur](../screenshots/subtask-user-restriction.png) - -### Déclencher automatiquement le suivi du temps pour les sous-tâches - -- Si activé, lorsque le statut d'une sous-tâche devient « en cours », le chrono va démarrer automatiquement -- Désactivez cette option si vous n'utilisez pas le suivi du temps. - -### Inclure les tâches fermées dans le diagramme de flux cumulé - -- Si l'option est activée, les tâches fermées seront incluses dans le diagramme de flux cumulé -- Si l'option est désactivée, seules les tâches ouvertes seront incluses dans le diagramme de flux cumulé -- Cette option affecte la colonne "total" de la table "project_daily_column_stats" diff --git a/doc/fr_FR/project-permissions.markdown b/doc/fr_FR/project-permissions.markdown deleted file mode 100644 index d5e3662d..00000000 --- a/doc/fr_FR/project-permissions.markdown +++ /dev/null @@ -1,18 +0,0 @@ -Permissions des projets -======================= - -Chaque projet est isolé des autres. -Les accès au projet doivent être autorisés par le chef de projet. - -Chaque utilisateur et chaque groupe peut avoir un rôle différent. -Il y a 3 types de [rôles pour les projets](roles.markdown) : - -- Chef de projet -- Membre du projet -- Visualiseur - -L'assignation des rôles est disponible depuis **Paramètres du projet > Permissions**: - -![Permissions du projet](screenshots/project-permissions.png) - -Les projets privés ne peuvent pas définir de permissions. diff --git a/doc/fr_FR/project-types.markdown b/doc/fr_FR/project-types.markdown deleted file mode 100644 index 70434ec8..00000000 --- a/doc/fr_FR/project-types.markdown +++ /dev/null @@ -1,14 +0,0 @@ -Types de projets -================ - -Il y a deux types de projets : - -| Type | Description | -|-------------------|-------------------------------------------------------------------------------------| -| Projet d'équipe | La gestion des utilisateurs est activée | -| Projet privé | Projet qui appartient à une seule personne, il n'y a pas de gestion d'utilisateurs | - -- Seulement les administrateurs et les gestionnaires peuvent créer des projets d'équipe. -- Les projets privés peuvent être créé par tout le monde. - -[Lire la documentation à propos des rôles dans Kanboard](roles.markdown) diff --git a/doc/fr_FR/project-views.markdown b/doc/fr_FR/project-views.markdown deleted file mode 100644 index 603108f6..00000000 --- a/doc/fr_FR/project-views.markdown +++ /dev/null @@ -1,61 +0,0 @@ -Vues Tableau, Agenda et Liste -============================= - -Pour chaque projet, les tâches peuvent être visualisées dans différentes vues : **Tableau, Agenda, Liste ou Gantt**. -Chaque vue affiche le résultat filtré par le champ de recherche en haut de page. -Le moteur de recherche utilise la [syntaxe avancée](search.markdown). - -Vue Tableau ------------ - -![Vue Tableau](screenshots/board-view.png) - -- Dans cette vue, il est possible de glisser-déposer facilement des tâches d'une colonne à l'autre. -- Il est également possible d'utiliser le raccourci clavier **« v b »** pour afficher la vue Tableau. -- Les tâches avec une ombre ont été modifiées récemment. - -![Tableau Limite de tâches](screenshots/board-task-limit.png) - -Lorsque la limite de tâches est atteinte pour une colonne, l'arrière-plan devient rouge. -Ce qui signifie qu'il y a trop de tâches en cours en même temps. - -[En apprendre plus sur la configuration du Tableau](board-configuration.markdown) - -Vue Agenda ----------- - -![Vue Agenda](screenshots/calendar-view.png) - -- Dans cette vue, il est possible de voir les tâches avec des dates d'échéance. -- Selon les paramètres, il est également possible de voir les tâches en cours. -- Il est également possible d'utiliser le raccourci clavier **« v c »** pour afficher la vue Agenda. -- [En apprendre plus sur la configuration de l'Agenda](calendar-configuration.markdown) - -Vue Liste ---------- - -![Vue liste](screenshots/list-view.png) - -- Dans cette vue, tous les résultats de votre recherche sont affichés dans un tableau. -- Il est également possible d'utiliser le raccourci clavier **« v l »** pour afficher la vue Liste. - -Vue Gantt ---------- - -![Vue Gantt](screenshots/gantt-view.png) - -- La vue Gantt affiche les tâches dans une fresque horizontale -- Le diagramme utilise la date de début et la date d'échéance pour afficher les tâches -- Il est également possible d'utiliser le raccourci clavier **« v g »** pour afficher la vue Gantt. - -Aperçu du projet ----------------- - -![Aperçu du projet](screenshots/project-view.png) - -Ce mode permet d'afficher une vue d'ensemble du projet : - -- Vous pouvez voir la description du projet -- Attacher et visualiser des pièces-jointes au projet -- Visualiser la liste des membres -- Voir les dernières activités du projet diff --git a/doc/fr_FR/recurring-tasks.markdown b/doc/fr_FR/recurring-tasks.markdown deleted file mode 100644 index 20953262..00000000 --- a/doc/fr_FR/recurring-tasks.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Tâches récurrentes -=============== - -Pour convenir à ma méthodologie de Kanban, les tâches récurrentes ne sont pas basées sur une date mais sur les évènements du tableau. - -- Les tâches récurrentes sont dupliquées dans la première colonne du tableau quand les évènements sélectionnés se produisent -- La date d'échéance peut être automatiquement recalculée -- Chaque tâche enregistre l'identifiant de tâche de la tâche parente qui l'a créée et la tâche enfant qui a été créée. - -Configuration -------------- - -Allez à la page de vue par tâches ou utilisez le menu déroulant du tableau, puis choisissez **Modifier la récurrence**. - -![Tâche récurrente](../screenshots/recurring-tasks.png) - -il existe trois façons de déclencher la création d'une nouvelle tâche récurrente : - -- Déplacer une tâche depuis la première colonne -- Déplacer une tâche vers la dernière colonne -- Fermer la tâche - -Les dates d'échéance, si elles concernent la tâche courante, peuvent être recalculées en fonction d'un nombre donné de jours, mois ou années. -La date de base pour le calcul de la nouvelle date d'échéance peut être soit la date d'échéance existante, soit la date de l'action. diff --git a/doc/fr_FR/removing-projects.markdown b/doc/fr_FR/removing-projects.markdown deleted file mode 100644 index 9445f335..00000000 --- a/doc/fr_FR/removing-projects.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Supprimer des projets -===================== - -Pour supprimer un projet, vous devez être gestionnaire du projet ou administrateur. - -Aller dans les **Préférences du projet**, depuis le menu à gauche, en bas, choisissez **Supprimer**. - -![Supprimer un Projet](../screenshots/project-remove.png) - -Supprimer un projet, supprime également toutes les tâches qui appartiennent à ce projet. diff --git a/doc/fr_FR/requirements.markdown b/doc/fr_FR/requirements.markdown deleted file mode 100644 index e5ab72cc..00000000 --- a/doc/fr_FR/requirements.markdown +++ /dev/null @@ -1,103 +0,0 @@ -Prérequis -========= - -Côté serveur ------------- - -### Systèmes d'exploitation compatibles - -| Système d'exploitation | -|--------------------------------------| -| Linux Ubuntu Xenial Xerus 16.04 LTS | -| Linux Centos 7.x | -| Linux Redhat 7.x | -| Linux Debian 9 | -| FreeBSD 10.x | -| Microsoft Windows 2016 | -| Microsoft Windows 2012 R2 | - -### Bases de données compatibles - -| Base de données | -|--------------------| -| Sqlite >= 3.7 | -| Mysql >= 5.5 | -| MariaDB >= 10 | -| Postgresql >= 9.3 | - -Quelle base de données choisir ? - -| Type | Utilisation | -|-----------------|-------------------------------------------------------------| -| Sqlite | Un seul utilisateur ou petite équipe (concurrence faible) | -| Mysql/Postgres | Équipe plus importante, installation à haute-disponibilité | - -Ne pas utiliser Sqlite sur des montages NFS, seulement lorsque vous avez un disque dur avec des entrées/sorties rapides. - -### Serveurs web compatibles - -| Serveur web | -|--------------------| -| Apache HTTP Server | -| Nginx | -| Microsoft IIS | - -Kanboard est préconfiguré pour fonctionner avec Apache (réécriture des URL). - -### Versions de PHP compatibles - -| Version de PHP | -|----------------| -| PHP >= 5.6.0 | - -A partir de la version 1.2, Kanboard nécessite au moins PHP 5.6. - -### Extensions PHP requises - -| Extension PHP | Note | -|----------------------------|------------------------------------------| -| pdo_sqlite | Seulement si vous utilisez Sqlite | -| pdo_mysql | Seulement si vous utilisez Mysql/MariaDB | -| pdo_pgsql | Seulement si vous utilisez Postgres | -| gd | | -| mbstring | | -| openssl | | -| json | | -| hash | | -| ctype | | -| session | | -| ldap | Seulement pour l'authentification LDAP | -| Zend OPcache | Recommandé | - -### Extensions PHP optionnelles - -| Extension PHP | Note | -|----------------------------|--------------------------------------------| -| zip | Utilisé pour installer les extensions | - -### Recommendations - -- Système d'exploitation Unix ou Linux moderne. -- Les meilleures performances sont obtenues avec la dernière version de PHP et le cache OPcode activé. - -Côté client ------------ - -### Navigateurs web - -Toujours utiliser un navigateur web moderne si possible : - -| Navigateur web | -|---------------------------------------| -| Safari | -| Google Chrome | -| Mozilla Firefox | -| Microsoft Internet Explorer >= 11 | -| Microsoft Edge | - -### Appareils - -| Device | Screen resolution | -|-------------------|--------------------| -| Laptop or desktop | >= 1366 x 768 | -| Tablet | >= 1024 x 768 | diff --git a/doc/fr_FR/roles.markdown b/doc/fr_FR/roles.markdown deleted file mode 100644 index c6a41aa1..00000000 --- a/doc/fr_FR/roles.markdown +++ /dev/null @@ -1,26 +0,0 @@ -Rôles des utilisateurs -====================== - -Rôles au niveau de l'application --------------------------------- - -Chaque utilisateur possède un de ces rôles : - -| Rôle | Description | -|----------------|----------------------------------------------------------------------------------------| -| Administrateur | Accès à tout | -| Gestionnaire | Peut créer des projets d'équipe mais ne peut pas changer les réglages de l'application | -| Utilisateur | Peut créer des projets privés | - -Rôles au niveau des projets ---------------------------- - -Chaque membre d'un projet peut avoir un rôle différent : - -| Rôle | Description | -|------------------------|----------------------------------------------------------------------| -| 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.markdown b/doc/fr_FR/screenshots.markdown deleted file mode 100644 index 8d8493ab..00000000 --- a/doc/fr_FR/screenshots.markdown +++ /dev/null @@ -1,26 +0,0 @@ -Ajouter des captures d'écran -================== - -Vous pouvez copier-coller des images directement dans Kanboard pour gagner du temps. -Ces images sont mises en ligne en tant que pièces jointes à une tâche. - -Ceci est particulièrement utile pour prendre des captures d'écran, quand il faut par exemple décrire un problème. - -Vous pouvez ajouter directement des captures depuis le tableau en cliquant sur le menu déroulant ou sur la page de visualisation des tâches. - -![La capture d'écran dans le menu déroulant](../screenshots/dropdown-screenshot.png) - -Pour ajouter une nouvelle image, prenez votre capture et collez-la avec CTRL+V ou Command+V: - -![Page de capture](../screenshots/task-screenshot.png) - -Avec Mac OS X, vous pouvez utiliser les raccourcis suivants pour prendre des captures d'écran : - -- Command-Control-Maj-3 : prend une capture de l'écran entier et l'enregistre dans le presse-papiers -- Command-Control-Maj-4, puis choix d'une zone : prend une capture d'une zone définie et l'enregistre dans le presse-papiers -- Command-Control-Maj-4, puis touche espace, puis clic sur une fenêtre : prend une capture d'une fenêtre et l'enregistre dans le presse-papiers - -Il existe plusieurs applications tierces qui peuvent être utilisées pour prendre des captures d'écran avec des annotations et un choix de formes. - -**Remarque : cette fonctionnalité n'est pas disponible sur tous les navigateurs.** Elle n'existe pas pour Safari en raison de ce bug : https://bugs.webkit.org/show_bug.cgi?id=49141 - diff --git a/doc/fr_FR/screenshots/automatic-action-creation.png b/doc/fr_FR/screenshots/automatic-action-creation.png Binary files differdeleted file mode 100644 index 7c1349f9..00000000 --- a/doc/fr_FR/screenshots/automatic-action-creation.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/board-collapsed-mode.png b/doc/fr_FR/screenshots/board-collapsed-mode.png Binary files differdeleted file mode 100644 index 93aa66f5..00000000 --- a/doc/fr_FR/screenshots/board-collapsed-mode.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/board-compact-mode.png b/doc/fr_FR/screenshots/board-compact-mode.png Binary files differdeleted file mode 100644 index eba6a784..00000000 --- a/doc/fr_FR/screenshots/board-compact-mode.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/board-expanded-mode.png b/doc/fr_FR/screenshots/board-expanded-mode.png Binary files differdeleted file mode 100644 index e0e1cb83..00000000 --- a/doc/fr_FR/screenshots/board-expanded-mode.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/board-task-limit.png b/doc/fr_FR/screenshots/board-task-limit.png Binary files differdeleted file mode 100644 index 51fc11eb..00000000 --- a/doc/fr_FR/screenshots/board-task-limit.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/board-view.png b/doc/fr_FR/screenshots/board-view.png Binary files differdeleted file mode 100644 index 96d7c43c..00000000 --- a/doc/fr_FR/screenshots/board-view.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/calendar-view.png b/doc/fr_FR/screenshots/calendar-view.png Binary files differdeleted file mode 100644 index 9d188fdd..00000000 --- a/doc/fr_FR/screenshots/calendar-view.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/gantt-view.png b/doc/fr_FR/screenshots/gantt-view.png Binary files differdeleted file mode 100644 index be65790f..00000000 --- a/doc/fr_FR/screenshots/gantt-view.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/hide-column.png b/doc/fr_FR/screenshots/hide-column.png Binary files differdeleted file mode 100644 index 7cc1c605..00000000 --- a/doc/fr_FR/screenshots/hide-column.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/internal-task-links.png b/doc/fr_FR/screenshots/internal-task-links.png Binary files differdeleted file mode 100644 index b5fb30a9..00000000 --- a/doc/fr_FR/screenshots/internal-task-links.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/list-view.png b/doc/fr_FR/screenshots/list-view.png Binary files differdeleted file mode 100644 index 6068d53d..00000000 --- a/doc/fr_FR/screenshots/list-view.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/new-project.png b/doc/fr_FR/screenshots/new-project.png Binary files differdeleted file mode 100644 index e455ff89..00000000 --- a/doc/fr_FR/screenshots/new-project.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/new-user.png b/doc/fr_FR/screenshots/new-user.png Binary files differdeleted file mode 100644 index 6c36d754..00000000 --- a/doc/fr_FR/screenshots/new-user.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/project-disable-sharing.png b/doc/fr_FR/screenshots/project-disable-sharing.png Binary files differdeleted file mode 100644 index 12644480..00000000 --- a/doc/fr_FR/screenshots/project-disable-sharing.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/project-edition.png b/doc/fr_FR/screenshots/project-edition.png Binary files differdeleted file mode 100644 index 35e8f026..00000000 --- a/doc/fr_FR/screenshots/project-edition.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/project-enable-sharing.png b/doc/fr_FR/screenshots/project-enable-sharing.png Binary files differdeleted file mode 100644 index 949cef0c..00000000 --- a/doc/fr_FR/screenshots/project-enable-sharing.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/project-permissions.png b/doc/fr_FR/screenshots/project-permissions.png Binary files differdeleted file mode 100644 index 718f437c..00000000 --- a/doc/fr_FR/screenshots/project-permissions.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/project-view.png b/doc/fr_FR/screenshots/project-view.png Binary files differdeleted file mode 100644 index e917a259..00000000 --- a/doc/fr_FR/screenshots/project-view.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/show-column.png b/doc/fr_FR/screenshots/show-column.png Binary files differdeleted file mode 100644 index 37034cce..00000000 --- a/doc/fr_FR/screenshots/show-column.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/swimlane-configuration.png b/doc/fr_FR/screenshots/swimlane-configuration.png Binary files differdeleted file mode 100644 index 7d1df5a5..00000000 --- a/doc/fr_FR/screenshots/swimlane-configuration.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/swimlanes.png b/doc/fr_FR/screenshots/swimlanes.png Binary files differdeleted file mode 100644 index 810e012d..00000000 --- a/doc/fr_FR/screenshots/swimlanes.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/task-creation-board.png b/doc/fr_FR/screenshots/task-creation-board.png Binary files differdeleted file mode 100644 index 6f22ab49..00000000 --- a/doc/fr_FR/screenshots/task-creation-board.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/task-creation-form.png b/doc/fr_FR/screenshots/task-creation-form.png Binary files differdeleted file mode 100644 index f1b57a43..00000000 --- a/doc/fr_FR/screenshots/task-creation-form.png +++ /dev/null diff --git a/doc/fr_FR/screenshots/task-transitions.png b/doc/fr_FR/screenshots/task-transitions.png Binary files differdeleted file mode 100644 index eab3b3b7..00000000 --- a/doc/fr_FR/screenshots/task-transitions.png +++ /dev/null diff --git a/doc/fr_FR/sharing-projects.markdown b/doc/fr_FR/sharing-projects.markdown deleted file mode 100644 index f3db3c68..00000000 --- a/doc/fr_FR/sharing-projects.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Partager des tableaux et des tâches -=================================== - -Par défaut, les tableaux sont privés, mais il est possible de rendre un tableau public. - -Un tableau public ne **peut pas être modifié, il est en lecture seule**. -Son accès est protégé par un jeton aléatoire, seules les personnes qui ont la bonne URL peuvent voir le tableau. - -Les tableaux publics sont automatiquement réactualisés toutes les minutes. -Les détails des tâches sont disponibles en lecture seule. - -Exemples d'utilisation : - -- Partager son tableau avec quelqu'un qui ne fait pas partie de votre organisation / entreprise / groupe -- Afficher le tableau sur un grand écran dans votre bureau - -Activer l'accès public ----------------------- - -Choisissez votre projet, puis cliquez sur « Accès public » et enfin sur le bouton « Activer l'accès public ». - -![Activer l'accès public](screenshots/project-enable-sharing.png) - -Lorsque l'accès public est activé, plusieurs liens sont créés : - -- Affichage du tableau public -- Lien de souscription au fil RSS -- Lien d'abonnement à iCalendar - -![Désactiver l'accès public](screenshots/project-disable-sharing.png) - -Vous pouvez désactiver l'accès public à tout moment. - -À chaque fois que vous activez ou désactivez l'accès public, un nouveau jeton aléatoire est créé. -**Les liens précédents ne fonctionneront pas**. diff --git a/doc/fr_FR/subtasks.markdown b/doc/fr_FR/subtasks.markdown deleted file mode 100644 index 2375a307..00000000 --- a/doc/fr_FR/subtasks.markdown +++ /dev/null @@ -1,43 +0,0 @@ -Sous-tâches -======== - -Les sous-tâches sont utiles pour se partager le travail que représente une tâche. - -Chaque sous-tâche : - -- peut être assignée à un membre du projet -- a trois différents statuts : **À faire**, **En cours**, **Terminé** -- dispose d'informations sur le temps de travail : **temps passé** et **temps estimé** -- est classée en fonction de sa position - -Créer des sous-tâches ------------------ - -Depuis la vue par tâche, cliquez sur **Ajouter une sous-tâche** dans le panneau latéral. - -![Ajouter une sous-tâche](../screenshots/add-subtask.png) - -Vous pouvez aussi ajouter rapidement une sous-tâche en saisissant seulement son titre : - -![Add a subtask from the task view](../screenshots/add-subtask-shortcut.png) - -Modifier le statut d'une sous-tâche ---------------------- - -Quand vous cliquez sur le titre d'une sous-tâche son statut change : - -![Sous-tâche en cours](../screenshots/subtask-status-inprogress.png) - -L'icône devant le titre est mise à jour en fonction du statut. - -![Sous-tâche effectuée](../screenshots/subtask-status-done.png) - -Remarque : quand la tâche est fermée, toutes les sous-tâches voient leur statut passer à **Terminé**. - -Chrono des sous-tâches -------------- - -- À chaque fois qu'une sous-tâche est en cours de réalisation, le chronomètre est également démarré. Il peut être lancé et interrompu à tout moment. -- Le chronomètre enregistre automatiquement le temps passé sur la sous-tâche. Vous pouvez aussi modifier manuellement la valeur du temps passé dans le champ adéquat quand vous modifiez une sous-tâche. -- Le temps passé est arrondi au quart d'heure le plus proche. Cette information est enregistrée dans un tableau distinct. -- Le temps passé à la tâche ainsi que le temps estimé sont automatiquement mis à jour en fonction de la somme de toutes les sous-tâches. diff --git a/doc/fr_FR/swimlanes.markdown b/doc/fr_FR/swimlanes.markdown deleted file mode 100644 index 92b4a9fa..00000000 --- a/doc/fr_FR/swimlanes.markdown +++ /dev/null @@ -1,29 +0,0 @@ -Swimlanes -========= - -Les *swimlanes* sont des séparations horizontales de votre tableau (pensez à des « couloirs » ou « lignes d'eau » dans une piscine). - -Par exemple, cela peut servir à séparer les sorties des différentes versions d'un logiciel, à diviser vos tâches selon différents produits, équipes ou tout autre critère de votre choix. - -Tableau avec des swimlanes --------------------------- - -![Swimlanes](screenshots/swimlanes.png) - -Gestion des swimlanes ------------------- - -- Tous les projets ont une swimlane par défaut. -- S'il existe plus d'une swimlane, le tableau les affichera toutes. -- Vous pouvez glisser-déposer les tâches d'une swimlane à l'autre. - -Pour configurer les swimlanes allez sur la page de **Configuration du projet** et choisissez la section **Swimlanes**. - -![Swimlanes Configuration](screenshots/swimlane-configuration.png) - -À partir de cet endroit, vous pouvez ajouter une nouvelle swimlane ou renommer celle qui existe par défaut. -Vous pouvez aussi désactiver et modifier la position des diverses swimlanes. - -- La swimlane par défaut est toujours en haut de tableau mais vous pouvez la cacher. -- Les swimlanes inactives ne sont pas affichées dans le tableau. -- **Supprimer une swimlane ne supprime pas les tâches qui lui sont assignées**, ces tâches seront transférées à la swimlane par défaut. diff --git a/doc/fr_FR/task-links.markdown b/doc/fr_FR/task-links.markdown deleted file mode 100644 index 3f58378f..00000000 --- a/doc/fr_FR/task-links.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Liens entre les tâches -====================== - -Les tâches peuvent être liées ensemble avec des relations prédéfinies. - -![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 : - -- **fait référence à** -- **bloque** | est bloqué par -- **est bloqué par** | bloque -- **duplique** | est dupliqué par -- **est dupliqué par** | duplique -- **est un enfant de** | est un parent de -- **est un parent de** | est un enfant de -- **vise les étapes importantes** | est une étape importante de -- **est une étape importante de** | vise les étapes importantes -- **correctifs** | est réglé par -- **est réglé par** | correctifs - -Ces étiquettes peuvent être modifiées dans les paramètres de l'application. diff --git a/doc/fr_FR/time-tracking.markdown b/doc/fr_FR/time-tracking.markdown deleted file mode 100644 index b1278f3b..00000000 --- a/doc/fr_FR/time-tracking.markdown +++ /dev/null @@ -1,44 +0,0 @@ -Suivi du temps -============= - -Les informations de la feuille de suivi du temps peuvent être définies au niveau des tâches ou des sous-tâches - -Suivi de temps des tâches ------------------- - -![Suivi de temps des tâches ](../screenshots/task-time-tracking.png) - -Les tâches ont deux champs: - -- Temps estimé -- Temps passé - -Ces valeurs représentent des heures de travail et doivent être entrées manuellement. - - -Suivi de temps des sous-tâches ---------------------- - -![Suivi de temps des sous-tâches](../screenshots/subtask-time-tracking.png) - -Les sous-tâches ont aussi les champs "temps passé" et "temps estimé" - -Lorsque vous changez la valeur de ces champs, **le suivi des tâches est mis à jour automatiquement et devient la somme des sous-tâches**. - -Kanboard enregistre le temps entre chaque changement de statut des sous-tâches dans une table séparée - -- Changer le statut de la sous-tâche de **à faire** à **en cours** marque le temps de début -- Changer le statut de la sous-tâche de **en cours** à **à faire** marque le temps de fin mais aussi met à jour le temps passé sur la sous-tâche et la tâche - -La répartition de tous les enregistrements est visible sur la page de la tâche - -![Feuille de suivi du temps pour les tâches](../screenshots/task-timesheet.png) - -Pour chaque sous-tâche, le chrono peut être à tout moment arrêté/démarré - -![Chrono des sous-tâches](../screenshots/subtask-timer.png) - -- Le chrono ne dépend pas du statut de la sous-tâche -- Chaque fois que vous démarrez le chrono, un nouvel enregistrement est créé dans la table de suivi des temps -- Chaque fois que vous arrêtez l'horloge, la date de fin est enregistrée dans la table de suivi des temps -- Le temps passé est arrondi au quart d’heure le plus proche (seulement pour Kanboard < 1.0.32) diff --git a/doc/fr_FR/transitions.markdown b/doc/fr_FR/transitions.markdown deleted file mode 100644 index 1b7b0879..00000000 --- a/doc/fr_FR/transitions.markdown +++ /dev/null @@ -1,14 +0,0 @@ -Transitions entre les tâches -============================ - -Les transitions enregistrent tous les mouvements des tâches entre les colonnes - -![Transitions](screenshots/task-transitions.png) - -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 diff --git a/doc/fr_FR/ubuntu-installation.markdown b/doc/fr_FR/ubuntu-installation.markdown deleted file mode 100644 index 0053fa80..00000000 --- a/doc/fr_FR/ubuntu-installation.markdown +++ /dev/null @@ -1,74 +0,0 @@ -Installation de Kanboard sur Ubuntu -=================================== - -Ubuntu Xenial 16.04 LTS ------------------------ - -Installez Apache et PHP : - -```bash -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 -``` - -Installez Kanboard : - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Ubuntu Trusty 14.04 LTS ------------------------ - -Installez Apache et PHP : - -```bash -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 -``` - -Installez Kanboard : - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Ubuntu Precise 12.04 LTS ------------------------- - -Installez Apache et PHP : - -```bash -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 -``` - -Installez Kanboard : - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Certaines fonctionnalités de Kanboard demandent à ce que vous installiez une [tâche planifiée](cronjob.markdown). diff --git a/doc/fr_FR/update.markdown b/doc/fr_FR/update.markdown deleted file mode 100644 index ed248b58..00000000 --- a/doc/fr_FR/update.markdown +++ /dev/null @@ -1,53 +0,0 @@ -Mise à jour de Kanboard à une nouvelle version -============================================== - -La plupart du temps, mettre à jour Kanboard vers une nouvelle version est transparent. -Le processus pourrait se résumer à simplement copier le dossier `data` vers le nouveau répertoire `kanboard`. -Kanboard va appliquer les migrations SQL automatiquement pour vous. - -Choses importantes à faire avant la mise à jour ------------------------------------------------ - -- **Toujours, faire une sauvegarde complète de vos données avant !** -- **Vérifiez que votre sauvegarde est valide !** -- Vérifiez encore -- Toujours lire la [liste des changements](https://github.com/kanboard/kanboard/blob/master/ChangeLog) pour vérifier sil y a des opérations manuelles à faire -- Stoppez le _worker_ -- Mettez le serveur web en mode maintenance pour éviter que les gens utilisent l'application pendant la mise à jour - -Depuis l'archive (version stable) ---------------------------------- - -1. Décompressez la nouvelle archive -2. Copier le dossier `data` dans le nouveau répertoire décompressé -3. Copiez votre fichier de configuration personnalisé `config.php` si vous en avez un -4. Si vous avez installé des plug-ins, utilisez la dernière version -5. Vérifiez que le répertoire `data` est accessible en écriture par l'utilisateur du serveur web -6. Testez que tout fonctionne correctement -7. Supprimez l'ancien répertoire de Kanboard - -Depuis le dépôt git (version de développement) ---------------------------------------------- - -1. `git pull` -2. Testez que tout fonctionne correctement - -Cette méthode va installer **la version en cours de développement**, utilisez là à vos risques. - -Appliquer les migrations SQL manuellement ------------------------------------------ - -Par défaut, les migrations SQL sont exécutées automatiquement. -La version du schéma est vérifiée à chaque requête. -De cette manière, les changements de base de données sont appliqués automatiquement. - -Vous pouvez désactiver ce comportement si vous le souhaitez en fonction de votre configuration. -Par exemple, si plusieurs processus essaient de mettre à jour le schéma en même temps, il se peut que vous ayez des problèmes même si chaque opération se fait dans une transaction. - -Pour désactiver cette fonctionnalité, mettez le paramètre `DB_RUN_MIGRATIONS` à `false` dans votre fichier de [configuration](config.markdown). - -Lorsque vous allez mettre à jour Kanboard, exécutez cette commande : - -```bash -./cli db:migrate -``` diff --git a/doc/fr_FR/usage-examples.markdown b/doc/fr_FR/usage-examples.markdown deleted file mode 100644 index b91fa613..00000000 --- a/doc/fr_FR/usage-examples.markdown +++ /dev/null @@ -1,69 +0,0 @@ -Exemples d'utilisation -============== -Il est possible de personnaliser ses tableaux selon l'activité de votre entreprise : - -Développement logiciel --------------------- - -- Prévu -- Prêt -- En cours -- À valider -- Validé -- En production - -Suivi de bogues ------------- - -- Rapporté -- Confirmé -- En cours -- Testé -- Résolu - -Ventes ------ - -- Objectifs -- Réunions -- Propositions -- Achats - -Gestion au plus juste ------------------------- - -- Idées -- Expression de la demande -- Étude de marché -- Analyses -- Fait - - -Procédure de recrutement ------------------- - -- Offres d'emploi -- Candidats -- Appels téléphoniques -- Entretiens -- Embauches - -Boutiques en ligne ------------- - -- Commande -- Empaquetage -- Prêt à envoyer -- Envoyé - -Artisanat ------------ - -- Commande -- Assemblage -- Tests -- Empaquetage -- Prêt à envoyer -- Envoyé - - diff --git a/doc/fr_FR/user-management.markdown b/doc/fr_FR/user-management.markdown deleted file mode 100644 index bb9b0731..00000000 --- a/doc/fr_FR/user-management.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Gestion des utilisateurs -======================== - -Ajouter un nouvel utilisateur ------------------------------ - -Pour ajouter un nouvel utilisateur, vous devez être administrateur. - -1. Depuis le menu déroulant situé en haut à droite, cliquez sur **Gestion des utilisateurs** -2. Dans la partie haute vous avez un lien **Créer un utilisateur local** ou **Créer un utilisateur distant** -3. Informez les champs de saisie et enregistrez - -![Nouvel utilisateur](screenshots/new-user.png) - -Quand vous créez un **utilisateur local**, vous devez préciser au moins deux valeurs : - -- **nom d'utilisateur** : c'est l'identifiant unique de votre utilisateur (login) -- **mot de passe** : le mot de passe de votre utilisateur doit comporter au moins 6 caractères - -Pour les **utilisateurs distants**, seul le nom d'utilisateur est obligatoire. - -Modifier des utilisateurs -------------------------- - -Quand vous allez au menu **utilisateurs**, vous disposez d'une liste d'utilisateurs. Pour modifier un utilisateur cliquez sur le lien **Modifier**. - -- si vous êtes un utilisateur ordinaire, vous ne pouvez modifier que votre propre profil -- vous devez être administrateur pour pouvoir modifier n'importe quel utilisateur - -Supprimer des utilisateurs --------------------------- - -Depuis le menu **utilisateurs**, cliquez sur le lien **supprimer**. Ce lien n'est visible que si vous êtes administrateur. - -Si vous supprimez un utilisateur particulier, **les tâches assignées à cette personne ne lui seront plus assignées** après cette opération. diff --git a/doc/fr_FR/user-mentions.markdown b/doc/fr_FR/user-mentions.markdown deleted file mode 100644 index 5861b5cd..00000000 --- a/doc/fr_FR/user-mentions.markdown +++ /dev/null @@ -1,13 +0,0 @@ -Mentionner les utilisateurs -=========================== - -Kanboard offre la possibilité d'envoyer des notifications lorsque quelqu'un est mentionné. - -Si vous avez besoin d'obtenir l'attention de quelqu'un dans un commentaire ou une tâche, utilisez le symbole @ suivi de l'identifiant de l'utilisateur. -Kanboard va automatiquement suggérer une liste d'utilisateurs : - -![Mentions](../screenshots/user-mentions.png) - -- Pour le moment, cette fonctionnalité est activée uniquement pour la description des tâches et les commentaires -- Cela fonctionne seulement lors de la création des tâches ou commentaires -- Pour être mentionné, les utilisateurs doivent être membres du projet diff --git a/doc/fr_FR/what-is-kanban.markdown b/doc/fr_FR/what-is-kanban.markdown deleted file mode 100644 index f479927c..00000000 --- a/doc/fr_FR/what-is-kanban.markdown +++ /dev/null @@ -1,34 +0,0 @@ -Qu'est-ce que Kanban? -=============== - - -Kanban est une méthodologie développée à l'origine par l'entreprise Toyota pour gagner en efficacité. - -Kanban n'impose que deux contraintes : - -- Visualiser votre flux d'activité -- Limiter votre travail en cours - -Visualiser votre flux d'activité ------------------------ - -- Votre activité est affichée sur un tableau, vous disposez ainsi d'une vue très nette sur l'ensemble de votre projet -- Chaque colonne représente une étape de votre flux d'activité - -Se concentrer sur une seule tâche à la fois sans disperser son activité ----------------------------------- - -- Chaque phase peut avoir sa date d'échéance -- Les limites fixées sont très utiles pour identifier les goulots d'étranglement -- Les limites évitent de travailler à un trop grand nombre de tâches à la fois - -Mesure des performances et des progrès ------------------------------------ - -Kanban utilise lead time et cycle times pour mesurer les performances : - -- **Lead time** : le *lead time* est la durée entre la création de la tâche et son achèvement. -- **Cycle time** : le *cycle time* est la durée entre la date de début et l'achèvement. - -Par exemple, vous pouvez avoir un *lead time* de 100 jours et n'avoir à travailler qu'une heure pour achever la tâche. - diff --git a/doc/ru_RU/2fa.markdown b/doc/ru_RU/2fa.markdown deleted file mode 100644 index 15b055ba..00000000 --- a/doc/ru_RU/2fa.markdown +++ /dev/null @@ -1,37 +0,0 @@ -Двухфакторная аутентификация -============================= - -Любой пользователь может включить [двух-уровневую аутентификацию](http://ru.wikipedia.org/wiki/Многофакторная_аутентификация). После успешного входа, разовый код (6 знаков) запрашивается у пользователя для получения доступа в Канборд. - -Этот код присылается в программу на вашем смартфоне. - -Канборд использует [Time-based One-time Password Algorithm](http://ru.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://freeotp.github.io/) (Android, iOS) -- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/) (Command line utility on Unix/Linux) - -Эти системы могут работать офлайн и вам не нужно иметь мобильную связь. - -Настройка ---------- - -1. Перейдите в пользовательский профиль -2. Слева нажмите **Двухфакторная авторизация** и поставьте галочку в чекбоке -3. Секретный ключ сгенерируется для вас - -![2FA](../screenshots/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 deleted file mode 100644 index cdabe294..00000000 --- a/doc/ru_RU/analytics-tasks.markdown +++ /dev/null @@ -1,37 +0,0 @@ -Аналитика для задач -=================== - -На странице детального просмотра задачи, в левом боковом меню, для каждой задачи имеется раздел аналитики. - -Затраченное время и время цикла -------------------------------- - -![Lead and cycle time](../screenshots/task-lead-cycle-time.png) - -Затраченное время и время цикла - - -- Затраченное время - время между созданием задачи и датой завершения (закрытие задачи). -- Время цикла - время между началом выполнения задачи и датой завершения. -- Если задача не закрыта, то для расчета используется текущее время вместо даты завершения. -- Если дата начала выполнения задачи не указана, то время цикла не может быть расчитано. - - -**Заметка**: Вы можете настроить автоматическое создание даты начала выполения задачи, когда вы перемещаете задачу в определенную колонку. - - -Время затраченное в каждой колонке ----------------------------------- - -![Time spent into each column](../screenshots/time-into-each-column.png) - -Время затраченное в каждой колонке - - - -- Этот график показывает сколько времени задача находилась в каждой колонке. -- Затраченное время расчитывается до закрытия задачи. - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/analytics.markdown b/doc/ru_RU/analytics.markdown deleted file mode 100644 index aaf5cb04..00000000 --- a/doc/ru_RU/analytics.markdown +++ /dev/null @@ -1,95 +0,0 @@ -Аналитика -========= - -Каждый проект имеет анлитический раздел. В зависимости от того как вы используете Канборд, вы можете видеть подобные отчеты: - -Перераспределение(загрузка) пользователей ------------------------------------------ - -![User repartition](../screenshots/user-repartition.png) - -Перераспределение(загрузка) пользователей - - -Круговая диаграмма, представленная выше, показыает количество открытых задач назначенных определенным пользователям. - - -Распределение задач -------------------- - -![Task distribution](../screenshots/task-distribution.png) - -Распределение задач - - - -На рисунке выше, представлена круговая диаграмма, которая показывает количество открытых задач в определенных колонках. - - - -Накопительная диаграмма ------------------------ - -![Cumulative flow diagram](../screenshots/cfd.png) - -Накопительная диаграмма - - -- Эта диаграмма отображает количество задач выполненных в каждой колонке в определенный промежуток времени. -- Счетчик задач записывается для каждой колонки каждый день. -- Если вы хотите исключить закрытые задачи, измените [глобальные настройки проекта](project-configuration.markdown). - - -Заметка: Для того чтобы увидеть этот график, вам нужно иметь, как минимум, данные за два дня. - - -Диаграмма сгорания ------------------- - -![Burndown chart](../screenshots/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](../screenshots/average-time-spent-into-each-column.png) - -Среднее время затраченное в каждой колонке - - -Этот график показывает среднее время затраченное в каждой колонке для последних 1000 задач. - -- Канборд использует для подсчёта данных переходы задач между колонками. -- Затраченное время подсчитывается до закрытия задачи. - -Среднее время выполнения и время цикла --------------------------------------- - -![Average time spent into each column](../screenshots/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 deleted file mode 100644 index 257f83ec..00000000 --- a/doc/ru_RU/api-json-rpc.markdown +++ /dev/null @@ -1,78 +0,0 @@ -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 deleted file mode 100644 index fd26e5fa..00000000 --- a/doc/ru_RU/application-configuration.markdown +++ /dev/null @@ -1,54 +0,0 @@ -Настройки приложения -==================== - -Некоторые параметры для приложения могут быть изменены на странице настроек. Только администратор может сделать эти настройки. -Выберите в правом выпадающем меню **Настройки**, затем в слева выберите **Настройки приложения**. - -![Application settings](../screenshots/application-settings.png) - -Настройки приложения - - -URL приложения[¶](#application-url "Ссылка на этот заголовок") --------------------------------------------------------------- - -Этот параметр используется для email уведомлений. В тексте сообщения будет содержаться ссылка на задачу в Канборде. - - -Язык[¶](#language "Ссылка на этот заголовок") ---------------------------------------------- - -Язык приложения может быть изменен в любое время. Язык устанавливается для всех пользователей Канборд. - - -Часовой пояс[¶](#time-zone "Ссылка на этот заголовок") ------------------------------------------------------- - -По умолчанию, Канборд использует часовой пояс UTC, но вы можете указать любой часовой пояс. Список содержит все поддерживаемые часовые пояса для вашего веб сервера. - - -Формат даты[¶](#date-format "Ссылка на этот заголовок") -------------------------------------------------------- - -Формать даты, который используется для полей дата. Например, дата завершения задачи. - -Канборд поддерживает 4 разных формата: - -- ДД/ММ/ГГГГ -- ММ/ДД/ГГГГ (по умолчанию) -- ГГГГ/ММ/ДД -- ММ.ДД.ГГГГ - -Формат [ISO 8601](http://ru.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 deleted file mode 100644 index 9a0124c5..00000000 --- a/doc/ru_RU/assets.markdown +++ /dev/null @@ -1,53 +0,0 @@ -Как создать 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 deleted file mode 100644 index bca5a4ef..00000000 --- a/doc/ru_RU/automatic-actions.markdown +++ /dev/null @@ -1,128 +0,0 @@ -Автоматизация процессов -======================= - - -Для минимизации пользовательских действий, 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 deleted file mode 100644 index 9edd412e..00000000 --- a/doc/ru_RU/board-collapsed-expanded.markdown +++ /dev/null @@ -1,31 +0,0 @@ -Компактное и развёрнутое отображение задач -========================================== - -Задачи на Доске могут быть отображены в компактном или развёрнутом виде. Переключение между компактным и развёрнутым видом может быть выполнено с помощью горячей клавиши **“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 deleted file mode 100644 index cc77ba38..00000000 --- a/doc/ru_RU/board-configuration.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Настройка Доски -=============== - - -В правом верхнем выпадающем меню выберите **Настройки**, затем, слева, выберите **Настройки Доски**. - -![Board settings](../screenshots/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 deleted file mode 100644 index 35b1d8c4..00000000 --- a/doc/ru_RU/board-horizontal-scrolling-and-compact-view.markdown +++ /dev/null @@ -1,19 +0,0 @@ -Горизонтальная прокрутка и компактный вид -========================================= - -Когда ширины экрана не хватает для отображения всех колонок, то внизу появляется горизонтальная прокрутка. - -Однако, можно переключится на компактный вид доски для отображения всех колонок на вашем экране. - - -![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 deleted file mode 100644 index 57f21ac4..00000000 --- a/doc/ru_RU/board-show-hide-columns.markdown +++ /dev/null @@ -1,25 +0,0 @@ -Показать и скрыть колонки на Доске -================================== - -Вы можете показать и скрыть колонки на Доске очень просто: - -![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 deleted file mode 100644 index 25e50880..00000000 --- a/doc/ru_RU/bruteforce-protection.markdown +++ /dev/null @@ -1,37 +0,0 @@ -Защита от 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 deleted file mode 100644 index b90638cb..00000000 --- a/doc/ru_RU/calendar-configuration.markdown +++ /dev/null @@ -1,59 +0,0 @@ -Настройки календаря -=================== - -В правом верхнем выпадающем меню выберите **Настройки**, затем, слева, выберите **Настройки календаря**. - - -![Calendar settings](../screenshots/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 deleted file mode 100644 index 2d2ba567..00000000 --- a/doc/ru_RU/calendar.markdown +++ /dev/null @@ -1,31 +0,0 @@ -Календарь -========= - - -Календарь может быть представлен в двух видах: - -- Представление в проекте с использование фильтров (доступно на Доске) -- Пользовательское представление (доступно в рабочей панели и в пользовательском разделе) - -В Календаре можно увидеть следующую информацию: - -- Задачи с “датой выполнения”, отображаются наверху. **Дата выполнения может быть изменена перемещением задачи на другой день**. -- Задачи с датой создания или датой начала. **Эти события не могут быть изменены в календаре**. -- Отслеживание времени подзадачи. Все записанные временные диапазоны будут отображены в Календаре. -- Подсчёты, прогнозы затрачиваемого время на подзадачу. - -![Calendar](../screenshots/calendar.png) - -Календарь - - -Настроки Календаря могут быть изменены на странице **Настройки** - -Заметка: Дата исполения не содержит информацию о времени. - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/centos-installation.markdown b/doc/ru_RU/centos-installation.markdown deleted file mode 100644 index c1510902..00000000 --- a/doc/ru_RU/centos-installation.markdown +++ /dev/null @@ -1,125 +0,0 @@ -Инсталяция Канборд на 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 - - # Download the latest release from https://github.com/kanboard/kanboard/releases - wget https://github.com/kanboard/kanboard/archive/v<version>.zip - - unzip kanboard-<version>.zip - chown -R apache:apache kanboard-<version>/data - rm kanboard-<version>.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 - - # Download the latest release from https://github.com/kanboard/kanboard/releases - wget https://github.com/kanboard/kanboard/archive/v<version>.zip - - unzip kanboard-<version>.zip - chown -R apache:apache kanboard-<version>/data - rm kanboard-<version>.zip - - - -Готово. Можете работать с Канборд. Откройте в браузере `http://ваш_сервер/kanboard/`{.docutils .literal}. - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/cli.markdown b/doc/ru_RU/cli.markdown deleted file mode 100644 index 2e93ff3d..00000000 --- a/doc/ru_RU/cli.markdown +++ /dev/null @@ -1,174 +0,0 @@ -Интерфейс командной строки -========================== - -Канборд обеспечивает простой интерфейс командной строки, которым можно воспользоваться только из Unix терминала. Эта возможность доступна только с локальной машины. - -Интерфейс командной строки полезен для выполнения команд вне процессов веб сервера. - -Использование[¶](#usage "Ссылка на этот заголовок") ---------------------------------------------------- - -- Откройте терминал и перейдите в директорию Канборд (например: `cd /var/www/kanboard`) -- Выполните команду `./cli` - - -```bash -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 - worker Execute queue worker - db - db:migrate Execute SQL migrations - db:version Show database schema version - 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:archive Disable projects not touched during one year - 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 "Ссылка на этот заголовок") - -Применение: - - ./cli export:tasks <project_id> <start_date> <end_date> - -Пример: - - ./cli export:tasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv - -Данные CSV передаются в `stdout`. - -### Экспорт подзадач в формате CSV[¶](#subtasks-csv-export "Ссылка на этот заголовок") - -Применение: - - ./cli export:subtasks <project_id> <start_date> <end_date> - -Пример: - - ./cli export:subtasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv - -### Экспорт перемещения задач в формате CSV[¶](#task-transitions-csv-export "Ссылка на этот заголовок") - -Применение: - - ./cli export:transitions <project_id> <start_date> <end_date> - -Пример: - - ./cli export:transitions 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv - -### Экспорт ежедневных сведений в формате CSV[¶](#export-daily-summaries-data-in-csv "Ссылка на этот заголовок") - -Экспортированные данные будут выведены в стандартный вывод: - - ./cli export:daily-project-column-stats <project_id> <start_date> <end_date> - -Пример: - - ./cli export:daily-project-column-stats 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv - -### Отправка уведомлений для просроченных задач[¶](#send-notifications-for-overdue-tasks "Ссылка на этот заголовок") - -Email сообщения будут отправлены всем пользователям, у которых включено оповещение. - - ./cli notification:overdue-tasks - -Необязательные параметры: - -- `--show`: Показывать отправку уведомлений -- `--group`: Группировать все просроченные задачи для одного пользователя (со всех проектов) на один email -- `--manager`: Посылать все просроченные задачи менеджеру (менеджерам) проекта в одном email сообщении - -Вы можете просмотреть просроченные задачи с помощью параметра `--show`: - -```bash -./cli 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 "Ссылка на этот заголовок") - -Эта команда считает статистику для каждого проекта: - - ./cli projects:daily-stats - Run calculation for Project #0 - Run calculation for Project #1 - Run calculation for Project #10 - -### Триггеры для задач[¶](#trigger-for-tasks) - -Эта команда посылает “событие для ежедневных фоновых заданий” для всех открытых задач в каждом проекте. - - ./cli trigger:tasks - Trigger task event: project_id=2, nb_tasks=1 - -### Сброс пароля пользователя[¶](#reset-user-password "Ссылка на этот заголовок") - - ./cli user:reset-password my_user - -Будет запрошен пароль и подтверждение. Символы не отображаются на экране. - -### Удаление двухуровневой аутентификации для пользователя[¶](#remove-two-factor-authentication-for-a-user "Ссылка на этот заголовок") - - ./cli user:reset-2fa my_user - -### Установка плагина[¶](#install-a-plugin "Ссылка на этот заголовок") - - ./cli plugin:install https://github.com/kanboard/plugin-github-auth/releases/download/v1.0.1/GithubAuth-1.0.1.zip - -Заметка: Установленные файлы будут иметь теже права, что и у текущего пользователя - -### Удаление плагина[¶](#remove-a-plugin "Ссылка на этот заголовок") - - ./cli plugin:uninstall Budget - -### Обновление всех плагинов[¶](#upgrade-all-plugins "Ссылка на этот заголовок") - - ./cli 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 deleted file mode 100644 index 5ba3d3c4..00000000 --- a/doc/ru_RU/closing-tasks.markdown +++ /dev/null @@ -1,30 +0,0 @@ -Закрытие задач -============== - -Когда задача закрыта, то она скрывается на Доске. - -Не смотря на это, вы можете в любой момент зайти в список закрытых задач используя запрос **status:closed** в любой форме поиска или просто выбрать фильтр “Закрытые задачи” в выпадающем меню. - -Имеется два пути для закрытия задачи: - На Доске выбрать задачу и выпадающем меню выбрать **Закрыть задачу** - -![Close a task from drop-down menu](../screenshots/menu-close-task.png) - -Закрытие задачи, используя выпадающее меню. - - -или - Используя детальное представление задачи, выбрать **Закрыть задачу** в меню боковой панели (слева) - - -![Close task](../screenshots/closing-tasks.png) - -Закрытие задачи. - - - -**Заметка**: Когда вы закрываете задачу, у всех не выполненных подзадач будет изменен статус на “Выполнено” - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/cloudron.markdown b/doc/ru_RU/cloudron.markdown deleted file mode 100644 index 7a12e57d..00000000 --- a/doc/ru_RU/cloudron.markdown +++ /dev/null @@ -1,45 +0,0 @@ -Как запустить Канборд на 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://git.cloudron.io/cloudron/kanboard-app). Для подробной информации смотрите [описание приложения](https://cloudron.io/appstore.html?app=net.kanboard.cloudronapp). - - - -Исходный код приложения[¶](#application-source-code "Ссылка на этот заголовок") -------------------------------------------------------------------------------- - - - -Исходный код приложения Cloudron находится [здесь](https://git.cloudron.io/cloudron/kanboard-app). - - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/coding-standards.markdown b/doc/ru_RU/coding-standards.markdown deleted file mode 100644 index b6100375..00000000 --- a/doc/ru_RU/coding-standards.markdown +++ /dev/null @@ -1,64 +0,0 @@ -Стандарты используемые при написании кода -========================================= - - - -Код 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 deleted file mode 100644 index b0419966..00000000 --- a/doc/ru_RU/config.markdown +++ /dev/null @@ -1,523 +0,0 @@ -Конфигурационный файл -===================== - - - -Вы можете изменить базовые настройки Канборда добавив файл `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 deleted file mode 100644 index 54917067..00000000 --- a/doc/ru_RU/contributing.markdown +++ /dev/null @@ -1,96 +0,0 @@ -Руководство для участников проекта -================================== - - - -Как я могу помочь проекту?[¶](#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 deleted file mode 100644 index 2e380916..00000000 --- a/doc/ru_RU/create-tasks-by-email.markdown +++ /dev/null @@ -1,36 +0,0 @@ -Создание задач через 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 сообщение на определенный адрес, например **myproject@inbound.mydomain.tld** -2. Email сообщение перенаправляется на SMTP сервер -3. SMTP провайдер передает в веб сервис Канборда email сообщение в JSON формате или в формате multipart/form-data -4. Канборд обрабатывает полученное email сообщение и создает задачу в указанном проекте - -Notes ------ - -- Веб транслятор Канборд защищен случайным ключом -- Email адрес отправителя должен быть такой же как и у пользователя Канборд -- Проект в Канборде должен иметь уникальный идентификатор -- Отправитель email сообщения должен быть участником проекта -- Email сообщения могут быть написаны в текстовом или HTML формате. **Канборд сам переконвертирует формат сообщения в Markdown** -- Заметка**: Новые задачи автоматически создаются в первой колонке -- Refer to the documentation of each plugin for the configuration diff --git a/doc/ru_RU/creating-projects.markdown b/doc/ru_RU/creating-projects.markdown deleted file mode 100644 index b94a37cf..00000000 --- a/doc/ru_RU/creating-projects.markdown +++ /dev/null @@ -1,62 +0,0 @@ -Создание проектов -================= - - -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 deleted file mode 100644 index 4f086d30..00000000 --- a/doc/ru_RU/creating-tasks.markdown +++ /dev/null @@ -1,42 +0,0 @@ -Создание задач -============== - - -На Доске нажмите значок плюс рядом с названием колонки: - - -![Task creation from the board](../screenshots/task-creation-board.png) - -Создание задачи на Доске - - -Далее появится форма создания задачи: - -![Task creation form](../screenshots/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 deleted file mode 100644 index f6d3a2af..00000000 --- a/doc/ru_RU/cronjob.markdown +++ /dev/null @@ -1,28 +0,0 @@ -Ежедневные фоновые задачи -========================= - -Для корректной работы, Канборд должен запускать ежедневные фоновые задачи. На 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 && ./cli 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 deleted file mode 100644 index 1c58e5df..00000000 --- a/doc/ru_RU/currency-rate.markdown +++ /dev/null @@ -1,43 +0,0 @@ -Курсы валют -=========== - - -Каждый пользователь может иметь предопределенный ежечасный курс для разных валют. Если вы хотите вручную занести курсы валют, то вы можете указать ставку в соответсвии с курсом. - -Эта опция используются для расчета бюджета проекта. - -![Currency Rate](../screenshots/currency-rate.png) - -Курсы валют - - -Для настроек курса валют выберите, справа вверху в выпадающем меню, **Настройки** -\> затем, слева, **Курсы валют**. - - - - - - - - - - - - - - - - - - - - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/custom-filters.markdown b/doc/ru_RU/custom-filters.markdown deleted file mode 100644 index 0170e099..00000000 --- a/doc/ru_RU/custom-filters.markdown +++ /dev/null @@ -1,36 +0,0 @@ -Пользовательские фильтры -======================== - -Пользовательские фильтры позволяют вам сохранять любые поисковые запросы. Таким образом, вы можете легко расширить стандартные фильтры и сохранить часто используемые поисковые запросы. - -- Пользовательские фильтры сохраняются в проекте и имеют привязку к создателю. -- Если создатель фильтра является менеджером проекта, то он может предоставить этот фильтр всем участникам проекта. - - -Создание фильтра[¶](#filter-creation "Ссылка на этот заголовок") ----------------------------------------------------------------- - - -Перейдите в **Меню** -\> **Пользовательские фильтры** или **Меню** -\> **Настройки** -\> **Пользовательские фильтры** - -![Custom Filter Creation](../screenshots/custom-filter-creation.png) - -Создание пользовательского фильтра. - - - -Созданый фильтр появится на Доске рядом со стандартными фильтрами - -![Custom Filter Dropdown](../screenshots/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 deleted file mode 100644 index 567a8f71..00000000 --- a/doc/ru_RU/debian-installation.markdown +++ /dev/null @@ -1,101 +0,0 @@ -Как установить Канборд на 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 - - # Download the latest release from https://github.com/kanboard/kanboard/releases - wget https://github.com/kanboard/kanboard/archive/v<version>.zip - - unzip kanboard-<version>.zip - chown -R www-data:www-data kanboard-<version>/data - rm kanboard-<version>.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 - - # Download the latest release from https://github.com/kanboard/kanboard/releases - wget https://github.com/kanboard/kanboard/archive/v<version>.zip - - unzip kanboard-<version>.zip - chown -R www-data:www-data kanboard-<version>/data - rm kanboard-<version>.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 - - # Download the latest release from https://github.com/kanboard/kanboard/releases - wget https://github.com/kanboard/kanboard/archive/v<version>.zip - - unzip kanboard-<version>.zip - chown -R www-data:www-data kanboard-<version>/data - rm kanboard-<version>.zip - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/docker.markdown b/doc/ru_RU/docker.markdown deleted file mode 100644 index eaebd7c5..00000000 --- a/doc/ru_RU/docker.markdown +++ /dev/null @@ -1,134 +0,0 @@ -Как запустить Канборд с 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/storage/volumes/). - - - -Обновление вашего контейнера[¶](#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 deleted file mode 100644 index a5f7d150..00000000 --- a/doc/ru_RU/duplicate-move-tasks.markdown +++ /dev/null @@ -1,79 +0,0 @@ -Дублирование и перенос задач -============================ - - -Создание копии задачи в том же проекте[¶](#duplicate-a-task-into-the-same-project "Ссылка на этот заголовок") -------------------------------------------------------------------------------------------------------------- - - -Перейдите в детальное представление задачи и выберите в боковой панели (слева) **Клонировать**. - -![Task Duplication](../screenshots/task-duplication.png) - -Создание копии задачи. - - -Новая задача будет создана с теми же свойствами как и у оригинальной задачи. - - -Создание копии задачи в другой проект[¶](#duplicate-a-task-to-another-project "Ссылка на этот заголовок") ---------------------------------------------------------------------------------------------------------- - - -Перейдите в детальное представление задачи и выберите в боковом меню (слева) **Клонировать в другой проект**. - -![Task Duplication Another Project](../screenshots/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 deleted file mode 100644 index 45c7c837..00000000 --- a/doc/ru_RU/editing-projects.markdown +++ /dev/null @@ -1,25 +0,0 @@ -Редактирование проектов -======================= - - -Проект может быть переименован и выключен в любое время - -Для переименования проекта нажмите на ссылку **“Изменить проект”** (для перехода выберите **Меню** -\> **Настройки**) - - -![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 deleted file mode 100644 index e04aca7b..00000000 --- a/doc/ru_RU/email-configuration.markdown +++ /dev/null @@ -1,156 +0,0 @@ -Настройка 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 deleted file mode 100644 index 3764e98e..00000000 --- a/doc/ru_RU/env.markdown +++ /dev/null @@ -1,21 +0,0 @@ -Переменные окружения -==================== - -Переменные окружения могут пригодится когда Канборд развертывается как контейнер (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 deleted file mode 100644 index 45451d5a..00000000 --- a/doc/ru_RU/ext-search.markdown +++ /dev/null @@ -1,235 +0,0 @@ -Синтаксис расширенного поиска -============================= - - -В Канборде используется простой язык запросов для расширенного поиска. Вы можете искать задачи, комментарии, подзадачи, ссылки, но только активные. - - -Пример запроса[¶](#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 deleted file mode 100644 index 0730f2c8..00000000 --- a/doc/ru_RU/faq.markdown +++ /dev/null @@ -1,162 +0,0 @@ -Часто задаваемые вопросы -======================== - - -Вы можете порекомендовать веб хостинг провайдера для Канборд?[¶](#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 deleted file mode 100644 index b014e354..00000000 --- a/doc/ru_RU/freebsd-installation.markdown +++ /dev/null @@ -1,187 +0,0 @@ -Инсталяция на 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 deleted file mode 100644 index 72065f72..00000000 --- a/doc/ru_RU/gantt-chart-projects.markdown +++ /dev/null @@ -1,60 +0,0 @@ -Диаграмма Ганта для всех проектов -================================= - - - -Цель диаграммы Ганта для проектов - показать прогресс проектов основанный на дате начала и дате завершения. - - - -- Диаграмма Ганта для проектов доступна из раздела **Управление проектами** - - - -- Только менеджеры проекта и администраторы имеют доступ в этот раздел - - - -- Менеджеры проекта могут видеть только те проекты, в которых они являются участниками - - - -- Приватные проекты не показывают этот график - - - -![Gantt Chart for all projects](../screenshots/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 deleted file mode 100644 index 7ff4cf74..00000000 --- a/doc/ru_RU/gantt-chart-tasks.markdown +++ /dev/null @@ -1,66 +0,0 @@ -Диаграмма Ганта для задач -========================= - - - -Цель диаграммы Ганта - показать время отведенное на задачу в заданном проекте. - - - -- Диаграмма Ганта доступна в рабочем окружении проекта - - - -- Только менеджеры проектов могут иметь доступ в этот раздел - - - -![Gantt Chart](../screenshots/gantt-chart-project.png) - -Диаграмма Ганта. - - - -- Дата начала и дата завершения задач используется для рисования диаграммы - - - -- Задача может быть расширена и перемещена горизонтально с помощью мыши - - - -- Перемещение по вертикали невозможно - - - -- Полоса (горизонтальный столбик) на диаграмме имеет такой же цвет как и задача - - - -- Каждая полоса отображает статус прогресса в процентах. Проценты подсчитываются с учетом позиции задачи в колонке на Доске. - - - -- Для соответсвия модели Kanban, задачи могут быть отсортированы в соответствии с позициями на доске или по дате начала - - - -- Новые задачи созданные через диаграмму Ганта будут показаны на Доске в первой колонке на первой позиции - - - -- Задачи отображаются черным цветом, если не указана дата начала или дата исполнения - - - -![Task not defined](../screenshots/gantt-chart-not-defined.png) - -Задача без указанных дат начала или завершения - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/genindex.markdown b/doc/ru_RU/genindex.markdown deleted file mode 100644 index ceb48d17..00000000 --- a/doc/ru_RU/genindex.markdown +++ /dev/null @@ -1,15 +0,0 @@ -Алфавитный указатель -==================== - - - - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/groups.markdown b/doc/ru_RU/groups.markdown deleted file mode 100644 index 18f56f67..00000000 --- a/doc/ru_RU/groups.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Управление группами -=================== - - - -В Канборде каждый пользователь может быть членом одной или нескольких групп. Группа - это что-то вроде команды или организации. - - - -Только администраторы могут создавать новую группу и добавлять туда пользователей. - - - -Настройка групп доступна через **Управление пользователями** (выпадающее меню справа вверху) -\> **Просмотр всех пользователей**. Здесь вы можете создавать новые группы и добавлять пользователей в группы. - - - -![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 deleted file mode 100644 index 6e2bd945..00000000 --- a/doc/ru_RU/heroku.markdown +++ /dev/null @@ -1,72 +0,0 @@ -Развертывание Канборд на 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 deleted file mode 100644 index c17d21ee..00000000 --- a/doc/ru_RU/ical.markdown +++ /dev/null @@ -1,111 +0,0 @@ -Синхронизация вашего календаря -============================== - - -Канборд поддерживает 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](../screenshots/apple-calendar-add-subscription.png) - -Добавление подписки на календарь. - - -- Вы можете выбрать синхронизацию календаря с iCloud, чтобы иметь доступ к календарю с любых ваших устройств -- Не забудьте указать частоту синхронизации - - -![Edit iCal subscription](../screenshots/apple-calendar-edit-subscription.png) - -Редактирование подписки на календарь. - - -Добавление вашего календаря из Канборд в Microsoft Outlook[¶](#adding-your-kanboard-calendar-to-microsoft-outlook "Ссылка на этот заголовок") ---------------------------------------------------------------------------------------------------------------------------------------------- - -![Outlook Add Internet Calendar](../screenshots/outlook-add-subscription.png) - -Добавление в Outlook календаря из интернет - -- Откройте Outlook -- Выберите **Открыть календарь** -\> **Из интернета** -- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте - - -![Outlook Edit Internet Calendar](../screenshots/outlook-edit-subscription.png) - -Настройка интернет календаря в Outlook. - - -Добавление вашего календаря из Канборд в Mozilla Thunderbird[¶](#adding-your-kanboard-calendar-to-mozilla-thunderbird "Ссылка на этот заголовок") -------------------------------------------------------------------------------------------------------------------------------------------------- - - -- Установите в Thunderbird Дополнение **Lightning** -- Выберите **Файл** -\> **Новый календарь** -- В диалоговом окне, выберите **Из сети** - -![Thunderbird Step 1](../screenshots/thunderbird-new-calendar-step1.png) - -Создание календаря в Thunderbird, шаг 1. - - - -- Выберите формат iCalendar -- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте - -![Thunderbird Step 2](../screenshots/thunderbird-new-calendar-step2.png) - -Создание календаря в Thunderbird, шаг 2. - -- Выберите цвета и другие настройки и в завершении нажмите **Сохранить**. - - -Добавление вашего календаря Канборд в календарь Google[¶](#adding-your-kanboard-calendar-to-google-calendar "Ссылка на этот заголовок") ---------------------------------------------------------------------------------------------------------------------------------------- - -- Нажмите иконку “треугольник” рядом с **Другие календари** (слева). -- Вставьте ссылку на календарь из Канборд в поле “Добавить календарь друга” -- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте - - -![Google Calendar](../screenshots/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 deleted file mode 100644 index 88467206..00000000 --- a/doc/ru_RU/index.markdown +++ /dev/null @@ -1,247 +0,0 @@ -Документация -============ - - -Как работать в 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) - - - -### Настройка[¶](#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 deleted file mode 100644 index 5bc4f66c..00000000 --- a/doc/ru_RU/installation.markdown +++ /dev/null @@ -1,110 +0,0 @@ -Инсталяция -========== - - - -В первую очередь, ознакомтесь с [требованиями](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 "Ссылка на этот заголовок") --------------------------------------------------------------------------------------------------------------------------- - -1. `git clone https://github.com/fguillot/kanboard.git` -2. Далее, перейдите к третьему шагу [Инсталяция из архива](installation.html#from-the-archive-stable-version) - - - -**Внимание**: Инсталируя **текущую разрабатываемую версию**, вы должны понимать, что это нестабильная версия и берете все риски по работе Канборд на себя. - - - -Инсталяция в другой каталог[¶](#installation-outside-of-the-document-root "Ссылка на этот заголовок") ------------------------------------------------------------------------------------------------------ - - - -Если вы хотите инсталировать Канборд в другую директорию, вне корневого каталога веб сервера, вам нужно создать, как минимум, следующие символьные ссылки: - - . - - ├── assets -> ../kanboard/assets - ├── doc -> ../kanboard/doc - ├── cli -> ../kanboard/cli - ├── 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 deleted file mode 100644 index 7c1b205b..00000000 --- a/doc/ru_RU/kanban-vs-todo-and-scrum.markdown +++ /dev/null @@ -1,75 +0,0 @@ -Сравнение 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 deleted file mode 100644 index a09c92bc..00000000 --- a/doc/ru_RU/keyboard-shortcuts.markdown +++ /dev/null @@ -1,99 +0,0 @@ -Горячие клавиши -=============== - - -Горячие клавиши доступны в зависимости от страницы на которой вы находитесь. - - - -В проекте (Доска, Календарь, Список, Гант)[¶](#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 deleted file mode 100644 index a94d8f89..00000000 --- a/doc/ru_RU/ldap-authentication.markdown +++ /dev/null @@ -1,327 +0,0 @@ -Аутентификация 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 deleted file mode 100644 index 32b8a29d..00000000 --- a/doc/ru_RU/ldap-configuration-examples.markdown +++ /dev/null @@ -1,438 +0,0 @@ -Пример конфигурации 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 deleted file mode 100644 index 87d9d1cc..00000000 --- a/doc/ru_RU/ldap-group-sync.markdown +++ /dev/null @@ -1,153 +0,0 @@ -Синхронизация групп 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 deleted file mode 100644 index 5d00913d..00000000 --- a/doc/ru_RU/ldap-parameters.markdown +++ /dev/null @@ -1,49 +0,0 @@ -Параметры 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 deleted file mode 100644 index 9d6bb543..00000000 --- a/doc/ru_RU/ldap-profile-picture.markdown +++ /dev/null @@ -1,46 +0,0 @@ -Фотография пользователя из профиля 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 deleted file mode 100644 index e698f162..00000000 --- a/doc/ru_RU/link-labels.markdown +++ /dev/null @@ -1,23 +0,0 @@ -Настройки ссылки -================ - - -Связи в задачах могут быть изменены в настройках приложения (**Настройки** -\> **Настройки ссылки**) - -![Link Labels](../screenshots/link-labels.png) - -Метки для ссылок. - - -Каждая метка может иметь противоположное опеределение. Если нет противоположного значения, метка считается двунаправленная. - -![Link Label Creation](../screenshots/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 deleted file mode 100644 index 82c02b37..00000000 --- a/doc/ru_RU/mysql-configuration.markdown +++ /dev/null @@ -1,128 +0,0 @@ -Настройка 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 deleted file mode 100644 index ca516f78..00000000 --- a/doc/ru_RU/nice-urls.markdown +++ /dev/null @@ -1,233 +0,0 @@ -Переопределение 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 deleted file mode 100644 index 8b975b0d..00000000 --- a/doc/ru_RU/nitrous.markdown +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index 9631743c..00000000 --- a/doc/ru_RU/notifications.markdown +++ /dev/null @@ -1,111 +0,0 @@ -Уведомления -=========== - - - -Канборд имеет возможность отправлять сообщения по нескольким каналам: - - - -- Email - -- Веб (уведомления в Канборд) - - - -Внешние плагины позволяют вам посылать уведомления в Slack, Hipchat, Jabber или другие чат системы. - - - -Настройка[¶](#configuration "Ссылка на этот заголовок") -------------------------------------------------------- - - - -Любой пользователь может включить уведоления в своем профиле: в правом верхнем углу выберите во всплывающем меню **Мой профиль** -\> **Уведомления**. Уведомления по умолчанию выключены. - - - -Для получения уведомлений по email вам надо иметь электронную почту (email), которая должна быть указана в вашем профиле, и Канборд должен быть настроен на отправку электронной почты. - - - -![Notifications](../screenshots/notifications.png) - -Уведомления - - - -Вы можете выбрать, удобный для вас, способ получения уведомлений: - - - -- Email - - - -- Веб (смотрите ниже) - - - -Для каждого проекта в котором вы являетесь участником, вы можете выбрать получение уведомления для: - - - -- Всех задач - - - -- Только для задач назначеных вам - - - -- Только для задач, которые создали вы - - - -- Только для задач, созданных вами и назначенных вам - - - -Также, вы можете выбрать проекты из которых хотите получать уведомления. По умолчанию - все проекты, в которых вы являетесь участником. - - - -Веб уведомления[¶](#web-notifications "Ссылка на этот заголовок") ------------------------------------------------------------------ - - - -Веб уведомления доступны на рабочей панели **Мои уведомления** или вверху в виде иконки: - - - -![Web Notifications Icon](../screenshots/web-notifications-icon.png) - -Иконка веб уведомления. - - - -Уведомления отображаются списком. Вы можете выбрать действие **Пометить как прочитанное** для каждого сообщения или отметить сразу все. - - - -![Web Notifications](../screenshots/web-notifications.png) - -Веб уведомления. - - - -Таким образом, вы можете получать веб уведомления без использования электронной почты. - - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/plugin-directory.markdown b/doc/ru_RU/plugin-directory.markdown deleted file mode 100644 index 1920c91d..00000000 --- a/doc/ru_RU/plugin-directory.markdown +++ /dev/null @@ -1,38 +0,0 @@ -Настройка директории плагинов -============================= - - - -Для установки, обновления и удаления плагинов в интерфейсе пользователя, вам необходимо выполнить следующие пункты: - - - -- Директория плагинов должна быть доступна на запись от пользователя веб сервера - - - -- Расширение 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 deleted file mode 100644 index e5ec2719..00000000 --- a/doc/ru_RU/plugins.markdown +++ /dev/null @@ -1,167 +0,0 @@ -Разработка плагина -================== - - - -**Внимание: 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 deleted file mode 100644 index 9407ce59..00000000 --- a/doc/ru_RU/postgresql-configuration.markdown +++ /dev/null @@ -1,92 +0,0 @@ -Настройка 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 deleted file mode 100644 index 159648d5..00000000 --- a/doc/ru_RU/project-configuration.markdown +++ /dev/null @@ -1,105 +0,0 @@ -Настройки проекта -================= - - - -В правом верхнем выпадающем меню выберите **Настройки**, затем выберите **Настройки проекта** слева. - - - -![Project settings](../screenshots/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](../screenshots/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 deleted file mode 100644 index 478bd3df..00000000 --- a/doc/ru_RU/project-permissions.markdown +++ /dev/null @@ -1,52 +0,0 @@ -Права доступа к проекту -======================= - - - -Все проекты изолированы и отделены друг от друга. Доступ к проекту может назначать владелец проекта. - - - -Каждый пользователь и каждая группа могут иметь разные назначенные роли. Имеются [три типа ролей для проектов](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 deleted file mode 100644 index d1169241..00000000 --- a/doc/ru_RU/project-types.markdown +++ /dev/null @@ -1,27 +0,0 @@ -Типы проектов -============= - - - -Проекты могут быть двух типов: - - - -| Тип | Описание | -|-----------------|----------------------------------------------------------| -| Командный проект| В проекте могут принимать участие пользователи и группы | -| Приватный проект| Проект принадлежит только одному пользователю, к проекту нельзя присоединить участников| - - - -- Командный проект могут создавать только пользователи с ролью Администратор и Менеджер. -- Приватный проект могут создавать все пользователи. - - -[Читать документацию про роли в Kanboard](roles.markdown) - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/project-views.markdown b/doc/ru_RU/project-views.markdown deleted file mode 100644 index b952df4e..00000000 --- a/doc/ru_RU/project-views.markdown +++ /dev/null @@ -1,154 +0,0 @@ -Представления Доска, Календарь, Список и Гант -============================================= - - - -В каждом проекте задачи могут быть отображены в разных представлениях: **Доска, Календарь, Список и Гант**. Для отображения представлений используется фильтр в верхней части рабочей панели. Для поиска используется [расширенный синтаксис](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](../screenshots/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 deleted file mode 100644 index 6e6835ed..00000000 --- a/doc/ru_RU/recurring-tasks.markdown +++ /dev/null @@ -1,67 +0,0 @@ -Повторяющиеся задачи -==================== - - - -Для соответсвия методологии Канбан, повторяющиеся задачи не имеют в качестве основы дату, а запускаются при наступлении событий на Доске. - - - -- Повторяющиеся задачи копируются (появляются вновь) в первой колонке Доски когда наступает определенное событие - - - -- Дата завершения (срок выполнения задачи) пересчитывается автоматически - - - -- Each task records the task id of the parent task that created it and the child task created - - - -Настройка[¶](#configuration "Ссылка на этот заголовок") -------------------------------------------------------- - - - -Перейдите на страницу детального представления задачи или используйте выпадающее меню на доске, выберите **Редактировать повторы**. - - - -![Recurring task](../screenshots/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 deleted file mode 100644 index aa6933b9..00000000 --- a/doc/ru_RU/requirements.markdown +++ /dev/null @@ -1,137 +0,0 @@ -Системные требования -==================== - - - -На сервере[¶](#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 deleted file mode 100644 index 2d97a6e4..00000000 --- a/doc/ru_RU/reverse-proxy-authentication.markdown +++ /dev/null @@ -1,138 +0,0 @@ -Аутентификация 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 deleted file mode 100644 index 5af8a937..00000000 --- a/doc/ru_RU/roles.markdown +++ /dev/null @@ -1,44 +0,0 @@ -Пользовательские роли -===================== - - - -Роли в приложениях[¶](#application-roles "Ссылка на этот заголовок") - --------------------------------------------------------------------- - - - -Каждый пользователь системы Канборд имеет одну из этих ролей - - - -| Роль | Описание | -|----------------|-----------------------------------------------------------| -| Администратор | Имеет доступ ко всему | -| Менеджер | Может создавать командные проекты, но не может изменять настройки приложения | -| Пользователь | Может создавать только приватные проекты | - - - - -Роли в проектах[¶](#project-roles "Ссылка на этот заголовок") - -------------------------------------------------------------- - - - -В каждом командном проекте могут быть назначены разные роли для пользователей и групп: - - -| Роль | Описание | -|-----------------|----------------------------------------------------------| -| Менеджер проекта| Может изменять настройки проекта, имеет доступ к диаграмме Ганта и отчетам | -| Участник проекта| Может создавать задачи и пользоваться доской | -| Наблюдатель проекта | Имеет доступ к доске и задачам только на просмотр (чтение) | - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/rss.markdown b/doc/ru_RU/rss.markdown deleted file mode 100644 index 3d953182..00000000 --- a/doc/ru_RU/rss.markdown +++ /dev/null @@ -1,58 +0,0 @@ -RSS/Atom подписки -================= - - - -Канборд поддерживает RSS ленты для проектов и пользователей. - - - -- RSS/Atom лента для проекта - содержит только активность в проекте - - - -- RSS/Atom лента пользователя - содержит поток активности пользователя во всех проектах, в которых пользователь является участником - - - -Эти подписки доступны только при включенном общем доступе в пользовательском профиле или в настройках проекта. - - - -Включение/выключение RSS ленты проекта[¶](#enable-disable-project-rss-feeds "Ссылка на этот заголовок") -------------------------------------------------------------------------------------------------------- - - - -Перейдите в **Настройки проекта** -\> **Общий доступ** - - - -![Disable public access](../screenshots/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 deleted file mode 100644 index 825f43de..00000000 --- a/doc/ru_RU/screenshots.markdown +++ /dev/null @@ -1,74 +0,0 @@ -Добавление снимков экрана (скриншота) -===================================== - - - -Для экономии времени вы можете копировать и вставлять изображения прямо в Канборде. Загруженные изображения прикрепляются к задаче. - - - -Например, очень удобно для решения проблемы прикрепить снимок экрана. - - - -Вы можете добавить снимок экрана прямо из Доски нажав на выпадающее меню задачи и выбрав **Прикрепить картинку** или на странице детального просмотра задачи. - - - -![Drop-down screenshot menu](../screenshots/dropdown-screenshot.png) - - - -Выпадающее меню задачи - **Прикрепить картинку**. - - - -Для добавления нового снимка экрана (скриншота), сделайте снимок экрана (нажмите клавиши Ctrl+PrtScn) и вставьте его используя сочетания клавиш CTRL+V или Command+V - - - -![Screenshot page](../screenshots/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 deleted file mode 100644 index 14c3f5b1..00000000 --- a/doc/ru_RU/search.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Поиск - -===== - - - -Для работы поиска включите JavaScript в браузере. - - - -Здесь можно делать поиск по всем разделам этой документации. Введите ключевые слова в текстовое поле и нажмите кнопку «искать». Внимание: будут найдены только те страницы, в которых есть все указанные слова. Страницы, где есть только часть этих слов, отобраны не будут. - - - - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/sharing-projects.markdown b/doc/ru_RU/sharing-projects.markdown deleted file mode 100644 index cf897fa9..00000000 --- a/doc/ru_RU/sharing-projects.markdown +++ /dev/null @@ -1,82 +0,0 @@ -Публичные доски и задачи -======================== - - - -По умолчанию, Доска имеет приватный доступ, но имеется возможность сделать Доску публичной. - - - -Публичная доска **не может быть изменена (имеется только доступ на чтение)**. Доступ к доске защищен случайно сгенерированным ключом, только пользователи знающие правильный 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 deleted file mode 100644 index 202452cb..00000000 --- a/doc/ru_RU/sqlite-database.markdown +++ /dev/null @@ -1,96 +0,0 @@ -Настройка базы данных 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 deleted file mode 100644 index cd758a19..00000000 --- a/doc/ru_RU/subtasks.markdown +++ /dev/null @@ -1,111 +0,0 @@ -Подзадачи -========= - - -Подзадачи - это прекрасная возможность разделить основную задачу на части. - - - -Каждая подзадача: - - - -- Может быть назначена участнику проекта - - - -- Имеет 3 разных статуса: **Для исполнения**, **В работе**, **Выполнено** - - - -- Имеет информацию по отслеживанию времени: **затраченное время** и **запланированное время** - - - -- Может быть перемещена в списке, для изменения порядка выполнения - - - -Создание подзадачи[¶](#creating-subtasks "Ссылка на этот заголовок") --------------------------------------------------------------------- - - - -В детальном представлении задачи, в левой боковой панели нажмите **Добавить подзадачу**: - - - -![Add a subtask](../screenshots/add-subtask.png) - -Добавление подзадачи. - - - -Вы, также, можете быстро добавить подзадачу нажав на заголовок: - - - -![Add a subtask from the task view](../screenshots/add-subtask-shortcut.png) - -Добавление подзадачи на странице детального просмотра задачи. - - - -Изменение статуса подзадачи[¶](#change-subtask-status "Ссылка на этот заголовок") ---------------------------------------------------------------------------------- - - - -Когда вы нажимаете на заголовок подзадачи стату меняется: - - - -![Subtask in progress](../screenshots/subtask-status-inprogress.png) - -Выполнение подзадачи. - - - -Иконка перед названием подзадачи обновляется в соответсвии со статусом. - - - -![Subtask done](../screenshots/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 deleted file mode 100644 index 9955bff3..00000000 --- a/doc/ru_RU/suse-installation.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Инсталяция на 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 - - # Download the latest release from https://github.com/kanboard/kanboard/releases - sudo wget https://github.com/kanboard/kanboard/archive/v<VERSION>.zip - - sudo unzip kanboard-<version>.zip - sudo chown -R wwwrun /srv/www/htdocs/kanboard-<version>/data - sudo rm kanboard-<version>.zip - - - - - - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/swimlanes.markdown b/doc/ru_RU/swimlanes.markdown deleted file mode 100644 index 0d074bb1..00000000 --- a/doc/ru_RU/swimlanes.markdown +++ /dev/null @@ -1,81 +0,0 @@ -Дорожки -======= - - - -Дорожки - это горизонтальное разделение вашей Доски. Например, очень удобно разделять релизы программ, разделить ваши задачи для разных продуктов, команд или чего-то еще. - - - -Доска с дорожками[¶](#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 deleted file mode 100644 index c084f255..00000000 --- a/doc/ru_RU/syntax-guide.markdown +++ /dev/null @@ -1,246 +0,0 @@ -Руководство по синтаксису -========================= - - - -Канборд использует [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.org/) - - - - <https://kanboard.org> - - - -### Результат[¶](#id6 "Ссылка на этот заголовок") - - - -[My link title](https://kanboard.org/) - - - -[https://kanboard.org](https://kanboard.org) - - - -Исходный код[¶](#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 deleted file mode 100644 index 64a7ca10..00000000 --- a/doc/ru_RU/task-links.markdown +++ /dev/null @@ -1,93 +0,0 @@ -Ссылки на задачи -================ - - - -Задачи могут быть созданы вместе с предопределенными связями: - - - -![Task Links](../screenshots/task-links.png) - -Ссылки на задачи - - - -Связи по умолчанию: - - - -- **относится к** - - - -- **блокирована**| блокирует - - - -- **блокирует** | блокирована - - - -- **дублирована** | дублирует - - - -- **дублирует** | дублирована - - - -- **является продолжением** | является началом для - - - -- **является началом для** | является продолжением - - - -- **часть вехи** | является вехой для - - - -- **является вехой для** | часть вехи - - - -- **исправлено** | исправляет - - - -- **исправляет** | исправлено - - - -Эти названия могут быть быть изменены в настройках приложения. - - - - - - - - - - - - - - - - - - - - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/tests.markdown b/doc/ru_RU/tests.markdown deleted file mode 100644 index 2373d030..00000000 --- a/doc/ru_RU/tests.markdown +++ /dev/null @@ -1,262 +0,0 @@ -Автоматизированные тесты -======================== - - - -[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 deleted file mode 100644 index c1afaf33..00000000 --- a/doc/ru_RU/time-tracking.markdown +++ /dev/null @@ -1,112 +0,0 @@ -Отслеживание времени -==================== - - - -Отслеживание времени (контроль времени) может быть использовано для уровня задач или для уровня подзадач. - - - -Отслеживание времени исполнения задач[¶](#task-time-tracking "Ссылка на этот заголовок") ------------------------------------------------------------------------------------------ - - - -![Task time tracking](../screenshots/task-time-tracking.png) - -Отслеживание времени исполнения задач - - - -Задачи имеют два поля: - - - -- Запланировано времени - - - -- Затрачено времени - - - -Эти значения показывают время работы и могут быть установлены вручную - - - -Отслеживание времени подзадач[¶](#subtask-time-tracking "Ссылка на этот заголовок") ------------------------------------------------------------------------------------ - - - -![Subtask time tracking](../screenshots/subtask-time-tracking.png) - -Отслеживание времени подзадач - - - -Подзадачи тоже имеют поля “Запланировано” и “Затрачено” время. - - - -Когда вы меняете значения в этих полях, **отслеживание времени задачи обновляется автоматически и формируется суммарное время всех подзадач** - - - -Канборд записывает время между изменениями статуса каждой подзадачи в отдельную таблицу. - - - -- При изменении статуса подзадачи с **“Для испольнения”** на **“В работе”**, записывается время начала - - - -- При изменении статуса подзадачи с **“В работе”** на **“Выполнено”**, записывается как время окончания и, при этом, обновляется **затраченное время** в подзадаче и в задаче. - - - -Анализ всех записей можно увидеть на странице детального просмотра задачи: - - - -![Task timesheet](../screenshots/task-timesheet.png) - -Таблица учета времени. - - - -Для каждой подзадачи, таймер может быть остановлен и запущен в любое время: - - - -![Subtask timer](../screenshots/subtask-timer.png) - -Таймер подзадач. - - - -- Таймер не зависит от статуса подзадачи - - - -- Вы можете запустить таймер для новой записи, созданной в таблице отслеживания задач, в любое время - - - -- Вы можете остановить учет времени даты завершения в таблице отслеживания задач, в любое время - - - -- Подсчёт затраченного времени округляется до четверти часа - - - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/transitions.markdown b/doc/ru_RU/transitions.markdown deleted file mode 100644 index 655fc188..00000000 --- a/doc/ru_RU/transitions.markdown +++ /dev/null @@ -1,60 +0,0 @@ -Перемещения задач -================= - - - -Запись о перемещении отражает каждое движение задачи между колонками. - - - -![Transitions](../screenshots/transitions.png) - -Перемещения. - - - -Перемещение доступно в боковом меню в детальном представлении задачи (**Перемещения**). Вы можете увидеть следующую информацию: - - - -- Дата, когда было выполенено перемещение - - - -- Исходная колонка - колонка, из которой было сделано перемещение - - - -- Колонка назначения - колонка, в которую была перемещена задача - - - -- Исполнитель (пользователь, который переместил задачу) - - - -- Время проведенное в колонке (сколько времени было затрачено на выполнение задачи в указанной колонке) - - - -Данные о перемещении задач, также, могут быть экспортированы со страницы настроек проекта (**Меню** -\> **Экспорт**). - - - -![Transitions Export](../screenshots/transitions-export.png) - -Экспорт перемещений задач. - - - -Для указанного промежутка времени вы можете сформировать CSV файл, который вы можете импортировать в любое программное обеспечение с электронными таблицами (например, Excell). - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/translations.markdown b/doc/ru_RU/translations.markdown deleted file mode 100644 index 0b9c6752..00000000 --- a/doc/ru_RU/translations.markdown +++ /dev/null @@ -1,72 +0,0 @@ -Переводы на другие языки (локализация) -====================================== - -Как перевести Канборд на новый язык?[¶](#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 "Ссылка на этот заголовок") ------------------------------------------------------------------------------------------------------------------------------------ - -Из терминала запустите следующую команду: - - ./cli locale:compare - -Все отсутствующие и неиспользуемые переводы будут показаны на экране. Добавьте их во французскую локализацию и синхронизируйте с другими локализациями (смотрите ниже) - -Как синхронизировать файлы переводов?[¶](#how-to-synchronize-translation-files "Ссылка на этот заголовок") ----------------------------------------------------------------------------------------------------------- - -В оболочке Unix запустите следующую команду: - - ./cli locale:sync - -Французский перевод используется для ссылки на другие локализации. - -[Русская документация Kanboard](http://kanboard.ru/doc/) diff --git a/doc/ru_RU/ubuntu-installation.markdown b/doc/ru_RU/ubuntu-installation.markdown deleted file mode 100644 index 67f3c44e..00000000 --- a/doc/ru_RU/ubuntu-installation.markdown +++ /dev/null @@ -1,107 +0,0 @@ -Как инсталировать Канборд на 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 - # Download the latest release from https://github.com/kanboard/kanboard/releases - wget https://github.com/kanboard/kanboard/archive/v<version>.zip - - unzip kanboard-<version>.zip - chown -R www-data:www-data kanboard-<version>/data - rm kanboard-<version>.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 - - # Download the latest release from https://github.com/kanboard/kanboard/releases - wget https://github.com/kanboard/kanboard/archive/v<version>.zip - - unzip kanboard-<version>.zip - chown -R www-data:www-data kanboard-<version>/data - rm kanboard-<version>.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 - - # Download the latest release from https://github.com/kanboard/kanboard/releases - wget https://github.com/kanboard/kanboard/archive/v<version>.zip - - unzip kanboard-<version>.zip - chown -R www-data:www-data kanboard-<version>/data - rm kanboard-<version>.zip - - - -Некоторые возможности Канборда требуют [запуска ежедневных фоновых задач](cronjob.markdown). - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/update.markdown b/doc/ru_RU/update.markdown deleted file mode 100644 index 84483f7b..00000000 --- a/doc/ru_RU/update.markdown +++ /dev/null @@ -1,54 +0,0 @@ -Обновление Канборд до новой версии -================================== - - -Обновление Канборда до новой версии бесшовное. Процесс сводится к тому, что надо просто скопировать каталог с данными из старой версии в новый Канборд. Канборд запустит миграцию баз данных автоматически. - - - -Важные замечания перед обновлением[¶](#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. Выполните вход и проверьте, что все работает корректно - - -**Внимание**: Выполняя обновление из разрабатываемой версии, вы должны понимать, что это нестабильная версия и берете все риски по работе Канборд на себя. - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/usage-examples.markdown b/doc/ru_RU/usage-examples.markdown deleted file mode 100644 index d0d580e8..00000000 --- a/doc/ru_RU/usage-examples.markdown +++ /dev/null @@ -1,193 +0,0 @@ -Примеры использования -===================== - - - -Вы можете настроить вашу доску в соответсвии с вашими бизнес-процессами - - - -Разработка программного обеспечения[¶](#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 deleted file mode 100644 index 0ae0e903..00000000 --- a/doc/ru_RU/user-management.markdown +++ /dev/null @@ -1,89 +0,0 @@ -Управление пользователями -========================= - - - -Создание нового пользователя[¶](#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 deleted file mode 100644 index 855a07a8..00000000 --- a/doc/ru_RU/user-mentions.markdown +++ /dev/null @@ -1,49 +0,0 @@ -Ссылка на пользователя -====================== - - - -В Канборде есть возможность посылать уведомления пользователю, если кто-то ссылается на него в тексте. - - - -Если вы хотите заострить внимание о ком-либо в комментарии или в задаче, то вы можете использовать символ @ и следом указать имя пользователя. Канборд автоматически предлагает список пользователей: - - - -![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 deleted file mode 100644 index 9afb58b8..00000000 --- a/doc/ru_RU/user-types.markdown +++ /dev/null @@ -1,26 +0,0 @@ -Типы пользователей -================== - - - -В Канборде могут быть два типа пользователей: - - - -| Тип | Описание | -|--------------|-------------------------------------------------------------| -| Локальный пользователь | Пароль пользователя хранится в базе данных Канборда| -| Удаленный пользователь | Учетные данные пользователя управляются (контролируются) другой системой (например, LDAP сервер). Другими словами, аутентификация пользователя происходит во внешней системе, не в Канборде.| - - - -Примеры удаленных пользователей: - -- LDAP пользователь - -- Аутентификация пользователя через реверс-прокси - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/vagrant.markdown b/doc/ru_RU/vagrant.markdown deleted file mode 100644 index c59f5ccb..00000000 --- a/doc/ru_RU/vagrant.markdown +++ /dev/null @@ -1,51 +0,0 @@ -Запуск Канборда с Vagrant -========================= - - - -Вы можете легко развернуть Канборд с Vagrant: - - - -- Склонируйте проект с репозитория git - - - -- Выполните `vagrant up` - - - -- Для входа в приложение используйте URL `http://localhost:8001/` - - - -Виртуальная машина построена на Ubuntu 16.04 с PHP 7. - - - - - - - - - - - - - - - - - - - - - - - - - - - -[Русская документация Kanboard](http://kanboard.ru/doc/) - diff --git a/doc/ru_RU/webhooks.markdown b/doc/ru_RU/webhooks.markdown deleted file mode 100644 index dbba0867..00000000 --- a/doc/ru_RU/webhooks.markdown +++ /dev/null @@ -1,477 +0,0 @@ -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 deleted file mode 100644 index 3c479088..00000000 --- a/doc/ru_RU/what-is-kanban.markdown +++ /dev/null @@ -1,80 +0,0 @@ -Что такое 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 deleted file mode 100644 index 479c44f1..00000000 --- a/doc/ru_RU/windows-apache-installation.markdown +++ /dev/null @@ -1,253 +0,0 @@ -Установка Канборд на 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://github.com/kanboard/kanboard/releases) - - - -- Разархивируйте архив в `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 deleted file mode 100644 index 0aabca6a..00000000 --- a/doc/ru_RU/windows-iis-installation.markdown +++ /dev/null @@ -1,150 +0,0 @@ -Инсталяция 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/screenshots/2fa.png b/doc/screenshots/2fa.png Binary files differdeleted file mode 100644 index 1f6ed348..00000000 --- a/doc/screenshots/2fa.png +++ /dev/null diff --git a/doc/screenshots/add-subtask-shortcut.png b/doc/screenshots/add-subtask-shortcut.png Binary files differdeleted file mode 100644 index 0f4bd17d..00000000 --- a/doc/screenshots/add-subtask-shortcut.png +++ /dev/null diff --git a/doc/screenshots/add-subtask.png b/doc/screenshots/add-subtask.png Binary files differdeleted file mode 100644 index 39fc3ee9..00000000 --- a/doc/screenshots/add-subtask.png +++ /dev/null diff --git a/doc/screenshots/add_new_restriction.png b/doc/screenshots/add_new_restriction.png Binary files differdeleted file mode 100644 index f707ca6f..00000000 --- a/doc/screenshots/add_new_restriction.png +++ /dev/null diff --git a/doc/screenshots/apple-calendar-add-subscription.png b/doc/screenshots/apple-calendar-add-subscription.png Binary files differdeleted file mode 100644 index c5d36cb6..00000000 --- a/doc/screenshots/apple-calendar-add-subscription.png +++ /dev/null diff --git a/doc/screenshots/apple-calendar-edit-subscription.png b/doc/screenshots/apple-calendar-edit-subscription.png Binary files differdeleted file mode 100644 index a3a922b1..00000000 --- a/doc/screenshots/apple-calendar-edit-subscription.png +++ /dev/null diff --git a/doc/screenshots/application-settings.png b/doc/screenshots/application-settings.png Binary files differdeleted file mode 100644 index 11bdd1de..00000000 --- a/doc/screenshots/application-settings.png +++ /dev/null diff --git a/doc/screenshots/automatic-action-creation.png b/doc/screenshots/automatic-action-creation.png Binary files differdeleted file mode 100644 index 66606bbd..00000000 --- a/doc/screenshots/automatic-action-creation.png +++ /dev/null diff --git a/doc/screenshots/average-lead-cycle-time.png b/doc/screenshots/average-lead-cycle-time.png Binary files differdeleted file mode 100644 index 9adf7294..00000000 --- a/doc/screenshots/average-lead-cycle-time.png +++ /dev/null diff --git a/doc/screenshots/average-time-spent-into-each-column.png b/doc/screenshots/average-time-spent-into-each-column.png Binary files differdeleted file mode 100644 index ff857d12..00000000 --- a/doc/screenshots/average-time-spent-into-each-column.png +++ /dev/null diff --git a/doc/screenshots/bitbucket-webhooks.png b/doc/screenshots/bitbucket-webhooks.png Binary files differdeleted file mode 100644 index c8a0b616..00000000 --- a/doc/screenshots/bitbucket-webhooks.png +++ /dev/null diff --git a/doc/screenshots/board-collapsed-mode.png b/doc/screenshots/board-collapsed-mode.png Binary files differdeleted file mode 100644 index 72e2d8b3..00000000 --- a/doc/screenshots/board-collapsed-mode.png +++ /dev/null diff --git a/doc/screenshots/board-compact-mode.png b/doc/screenshots/board-compact-mode.png Binary files differdeleted file mode 100644 index e9280070..00000000 --- a/doc/screenshots/board-compact-mode.png +++ /dev/null diff --git a/doc/screenshots/board-expanded-mode.png b/doc/screenshots/board-expanded-mode.png Binary files differdeleted file mode 100644 index abc617c6..00000000 --- a/doc/screenshots/board-expanded-mode.png +++ /dev/null diff --git a/doc/screenshots/board-hide-show-column.png b/doc/screenshots/board-hide-show-column.png Binary files differdeleted file mode 100644 index a3086130..00000000 --- a/doc/screenshots/board-hide-show-column.png +++ /dev/null diff --git a/doc/screenshots/board-settings.png b/doc/screenshots/board-settings.png Binary files differdeleted file mode 100644 index a6cf1155..00000000 --- a/doc/screenshots/board-settings.png +++ /dev/null diff --git a/doc/screenshots/board-task-limit.png b/doc/screenshots/board-task-limit.png Binary files differdeleted file mode 100644 index 1cf2d4ee..00000000 --- a/doc/screenshots/board-task-limit.png +++ /dev/null diff --git a/doc/screenshots/board-view.png b/doc/screenshots/board-view.png Binary files differdeleted file mode 100644 index 2a60cfd5..00000000 --- a/doc/screenshots/board-view.png +++ /dev/null diff --git a/doc/screenshots/budget-cost-breakdown.png b/doc/screenshots/budget-cost-breakdown.png Binary files differdeleted file mode 100644 index 52c54bc5..00000000 --- a/doc/screenshots/budget-cost-breakdown.png +++ /dev/null diff --git a/doc/screenshots/budget-graph.png b/doc/screenshots/budget-graph.png Binary files differdeleted file mode 100644 index 727d6b3c..00000000 --- a/doc/screenshots/budget-graph.png +++ /dev/null diff --git a/doc/screenshots/budget-lines.png b/doc/screenshots/budget-lines.png Binary files differdeleted file mode 100644 index 3463d93a..00000000 --- a/doc/screenshots/budget-lines.png +++ /dev/null diff --git a/doc/screenshots/burndown-chart.png b/doc/screenshots/burndown-chart.png Binary files differdeleted file mode 100644 index bb5fb08e..00000000 --- a/doc/screenshots/burndown-chart.png +++ /dev/null diff --git a/doc/screenshots/calendar-settings.png b/doc/screenshots/calendar-settings.png Binary files differdeleted file mode 100644 index 447864fe..00000000 --- a/doc/screenshots/calendar-settings.png +++ /dev/null diff --git a/doc/screenshots/calendar-view.png b/doc/screenshots/calendar-view.png Binary files differdeleted file mode 100644 index fdc49ded..00000000 --- a/doc/screenshots/calendar-view.png +++ /dev/null diff --git a/doc/screenshots/calendar.png b/doc/screenshots/calendar.png Binary files differdeleted file mode 100644 index 258c1ea3..00000000 --- a/doc/screenshots/calendar.png +++ /dev/null diff --git a/doc/screenshots/cfd.png b/doc/screenshots/cfd.png Binary files differdeleted file mode 100644 index 20a7543c..00000000 --- a/doc/screenshots/cfd.png +++ /dev/null diff --git a/doc/screenshots/closing-tasks.png b/doc/screenshots/closing-tasks.png Binary files differdeleted file mode 100644 index 15d90976..00000000 --- a/doc/screenshots/closing-tasks.png +++ /dev/null diff --git a/doc/screenshots/currency-rate.png b/doc/screenshots/currency-rate.png Binary files differdeleted file mode 100644 index 4190ffec..00000000 --- a/doc/screenshots/currency-rate.png +++ /dev/null diff --git a/doc/screenshots/custom-filter-creation.png b/doc/screenshots/custom-filter-creation.png Binary files differdeleted file mode 100644 index 11794de5..00000000 --- a/doc/screenshots/custom-filter-creation.png +++ /dev/null diff --git a/doc/screenshots/custom-filter-dropdown.png b/doc/screenshots/custom-filter-dropdown.png Binary files differdeleted file mode 100644 index edce08e7..00000000 --- a/doc/screenshots/custom-filter-dropdown.png +++ /dev/null diff --git a/doc/screenshots/custom_roles.png b/doc/screenshots/custom_roles.png Binary files differdeleted file mode 100644 index 23f5d9f5..00000000 --- a/doc/screenshots/custom_roles.png +++ /dev/null diff --git a/doc/screenshots/dropdown-screenshot.png b/doc/screenshots/dropdown-screenshot.png Binary files differdeleted file mode 100644 index e8eb32e7..00000000 --- a/doc/screenshots/dropdown-screenshot.png +++ /dev/null diff --git a/doc/screenshots/example-restriction-task-creation.png b/doc/screenshots/example-restriction-task-creation.png Binary files differdeleted file mode 100644 index cdfb7a93..00000000 --- a/doc/screenshots/example-restriction-task-creation.png +++ /dev/null diff --git a/doc/screenshots/example-restriction-task-drag-and-drop.png b/doc/screenshots/example-restriction-task-drag-and-drop.png Binary files differdeleted file mode 100644 index bcd7a418..00000000 --- a/doc/screenshots/example-restriction-task-drag-and-drop.png +++ /dev/null diff --git a/doc/screenshots/example-restriction-task-status-blocked.png b/doc/screenshots/example-restriction-task-status-blocked.png Binary files differdeleted file mode 100644 index 343a96b4..00000000 --- a/doc/screenshots/example-restriction-task-status-blocked.png +++ /dev/null diff --git a/doc/screenshots/example-restriction-task-status.png b/doc/screenshots/example-restriction-task-status.png Binary files differdeleted file mode 100644 index c06a1931..00000000 --- a/doc/screenshots/example-restriction-task-status.png +++ /dev/null diff --git a/doc/screenshots/example-restrictions.png b/doc/screenshots/example-restrictions.png Binary files differdeleted file mode 100644 index fef481c5..00000000 --- a/doc/screenshots/example-restrictions.png +++ /dev/null diff --git a/doc/screenshots/gantt-chart-all-projects.png b/doc/screenshots/gantt-chart-all-projects.png Binary files differdeleted file mode 100644 index efeb1e87..00000000 --- a/doc/screenshots/gantt-chart-all-projects.png +++ /dev/null diff --git a/doc/screenshots/gantt-chart-not-defined.png b/doc/screenshots/gantt-chart-not-defined.png Binary files differdeleted file mode 100644 index a9f40a8a..00000000 --- a/doc/screenshots/gantt-chart-not-defined.png +++ /dev/null diff --git a/doc/screenshots/gantt-chart-project.png b/doc/screenshots/gantt-chart-project.png Binary files differdeleted file mode 100644 index 85e48475..00000000 --- a/doc/screenshots/gantt-chart-project.png +++ /dev/null diff --git a/doc/screenshots/gantt-view.png b/doc/screenshots/gantt-view.png Binary files differdeleted file mode 100644 index 94d58051..00000000 --- a/doc/screenshots/gantt-view.png +++ /dev/null diff --git a/doc/screenshots/github-webhooks.png b/doc/screenshots/github-webhooks.png Binary files differdeleted file mode 100644 index 6a4e0b94..00000000 --- a/doc/screenshots/github-webhooks.png +++ /dev/null diff --git a/doc/screenshots/gitlab-webhooks.png b/doc/screenshots/gitlab-webhooks.png Binary files differdeleted file mode 100644 index 84abbf36..00000000 --- a/doc/screenshots/gitlab-webhooks.png +++ /dev/null diff --git a/doc/screenshots/google-calendar-add-subscription.png b/doc/screenshots/google-calendar-add-subscription.png Binary files differdeleted file mode 100644 index 168b1f19..00000000 --- a/doc/screenshots/google-calendar-add-subscription.png +++ /dev/null diff --git a/doc/screenshots/groups-management.png b/doc/screenshots/groups-management.png Binary files differdeleted file mode 100644 index adc301c7..00000000 --- a/doc/screenshots/groups-management.png +++ /dev/null diff --git a/doc/screenshots/hide-column.png b/doc/screenshots/hide-column.png Binary files differdeleted file mode 100644 index c205299f..00000000 --- a/doc/screenshots/hide-column.png +++ /dev/null diff --git a/doc/screenshots/hipchat-notification.png b/doc/screenshots/hipchat-notification.png Binary files differdeleted file mode 100644 index f1fb19b0..00000000 --- a/doc/screenshots/hipchat-notification.png +++ /dev/null diff --git a/doc/screenshots/hipchat-room-token.png b/doc/screenshots/hipchat-room-token.png Binary files differdeleted file mode 100644 index d0f08b19..00000000 --- a/doc/screenshots/hipchat-room-token.png +++ /dev/null diff --git a/doc/screenshots/hipchat-settings.png b/doc/screenshots/hipchat-settings.png Binary files differdeleted file mode 100644 index 170fd4a5..00000000 --- a/doc/screenshots/hipchat-settings.png +++ /dev/null diff --git a/doc/screenshots/hourly-rate.png b/doc/screenshots/hourly-rate.png Binary files differdeleted file mode 100644 index 6aa3160c..00000000 --- a/doc/screenshots/hourly-rate.png +++ /dev/null diff --git a/doc/screenshots/internal-task-links.png b/doc/screenshots/internal-task-links.png Binary files differdeleted file mode 100644 index 713d717e..00000000 --- a/doc/screenshots/internal-task-links.png +++ /dev/null diff --git a/doc/screenshots/jabber-notification.png b/doc/screenshots/jabber-notification.png Binary files differdeleted file mode 100644 index 1fa12398..00000000 --- a/doc/screenshots/jabber-notification.png +++ /dev/null diff --git a/doc/screenshots/jabber-settings.png b/doc/screenshots/jabber-settings.png Binary files differdeleted file mode 100644 index f253a660..00000000 --- a/doc/screenshots/jabber-settings.png +++ /dev/null diff --git a/doc/screenshots/kanboard-github-webhooks.png b/doc/screenshots/kanboard-github-webhooks.png Binary files differdeleted file mode 100644 index 05bd82ac..00000000 --- a/doc/screenshots/kanboard-github-webhooks.png +++ /dev/null diff --git a/doc/screenshots/link-label-creation.png b/doc/screenshots/link-label-creation.png Binary files differdeleted file mode 100644 index 503a5153..00000000 --- a/doc/screenshots/link-label-creation.png +++ /dev/null diff --git a/doc/screenshots/link-labels.png b/doc/screenshots/link-labels.png Binary files differdeleted file mode 100644 index 5f35b538..00000000 --- a/doc/screenshots/link-labels.png +++ /dev/null diff --git a/doc/screenshots/list-view.png b/doc/screenshots/list-view.png Binary files differdeleted file mode 100644 index 1fa4a433..00000000 --- a/doc/screenshots/list-view.png +++ /dev/null diff --git a/doc/screenshots/menu-close-task.png b/doc/screenshots/menu-close-task.png Binary files differdeleted file mode 100644 index 48602b46..00000000 --- a/doc/screenshots/menu-close-task.png +++ /dev/null diff --git a/doc/screenshots/new-private-project.png b/doc/screenshots/new-private-project.png Binary files differdeleted file mode 100644 index 3921ac22..00000000 --- a/doc/screenshots/new-private-project.png +++ /dev/null diff --git a/doc/screenshots/new-project.png b/doc/screenshots/new-project.png Binary files differdeleted file mode 100644 index 70056586..00000000 --- a/doc/screenshots/new-project.png +++ /dev/null diff --git a/doc/screenshots/new-user.png b/doc/screenshots/new-user.png Binary files differdeleted file mode 100644 index caea7178..00000000 --- a/doc/screenshots/new-user.png +++ /dev/null diff --git a/doc/screenshots/new_custom_role.png b/doc/screenshots/new_custom_role.png Binary files differdeleted file mode 100644 index 811d07d1..00000000 --- a/doc/screenshots/new_custom_role.png +++ /dev/null diff --git a/doc/screenshots/new_restriction.png b/doc/screenshots/new_restriction.png Binary files differdeleted file mode 100644 index e6f206f7..00000000 --- a/doc/screenshots/new_restriction.png +++ /dev/null diff --git a/doc/screenshots/notifications.png b/doc/screenshots/notifications.png Binary files differdeleted file mode 100644 index 8451b771..00000000 --- a/doc/screenshots/notifications.png +++ /dev/null diff --git a/doc/screenshots/outlook-add-subscription.png b/doc/screenshots/outlook-add-subscription.png Binary files differdeleted file mode 100644 index 277b35a9..00000000 --- a/doc/screenshots/outlook-add-subscription.png +++ /dev/null diff --git a/doc/screenshots/outlook-edit-subscription.png b/doc/screenshots/outlook-edit-subscription.png Binary files differdeleted file mode 100644 index f57579d6..00000000 --- a/doc/screenshots/outlook-edit-subscription.png +++ /dev/null diff --git a/doc/screenshots/overtime-timetable.png b/doc/screenshots/overtime-timetable.png Binary files differdeleted file mode 100644 index 8ebd30dd..00000000 --- a/doc/screenshots/overtime-timetable.png +++ /dev/null diff --git a/doc/screenshots/project-automatic-action-step1.png b/doc/screenshots/project-automatic-action-step1.png Binary files differdeleted file mode 100644 index a2f9b606..00000000 --- a/doc/screenshots/project-automatic-action-step1.png +++ /dev/null diff --git a/doc/screenshots/project-automatic-action-step2.png b/doc/screenshots/project-automatic-action-step2.png Binary files differdeleted file mode 100644 index 56c79d96..00000000 --- a/doc/screenshots/project-automatic-action-step2.png +++ /dev/null diff --git a/doc/screenshots/project-automatic-action-step3.png b/doc/screenshots/project-automatic-action-step3.png Binary files differdeleted file mode 100644 index b834ac45..00000000 --- a/doc/screenshots/project-automatic-action-step3.png +++ /dev/null diff --git a/doc/screenshots/project-automatic-actions.png b/doc/screenshots/project-automatic-actions.png Binary files differdeleted file mode 100644 index 22628701..00000000 --- a/doc/screenshots/project-automatic-actions.png +++ /dev/null diff --git a/doc/screenshots/project-creation-form.png b/doc/screenshots/project-creation-form.png Binary files differdeleted file mode 100644 index 4d270cd3..00000000 --- a/doc/screenshots/project-creation-form.png +++ /dev/null diff --git a/doc/screenshots/project-creation-link.png b/doc/screenshots/project-creation-link.png Binary files differdeleted file mode 100644 index 2f380acb..00000000 --- a/doc/screenshots/project-creation-link.png +++ /dev/null diff --git a/doc/screenshots/project-disable-sharing.png b/doc/screenshots/project-disable-sharing.png Binary files differdeleted file mode 100644 index d68383bd..00000000 --- a/doc/screenshots/project-disable-sharing.png +++ /dev/null diff --git a/doc/screenshots/project-edition.png b/doc/screenshots/project-edition.png Binary files differdeleted file mode 100644 index fdebad6d..00000000 --- a/doc/screenshots/project-edition.png +++ /dev/null diff --git a/doc/screenshots/project-enable-sharing.png b/doc/screenshots/project-enable-sharing.png Binary files differdeleted file mode 100644 index 40e43f5c..00000000 --- a/doc/screenshots/project-enable-sharing.png +++ /dev/null diff --git a/doc/screenshots/project-nobody-allowed.png b/doc/screenshots/project-nobody-allowed.png Binary files differdeleted file mode 100644 index adfede15..00000000 --- a/doc/screenshots/project-nobody-allowed.png +++ /dev/null diff --git a/doc/screenshots/project-permissions.png b/doc/screenshots/project-permissions.png Binary files differdeleted file mode 100644 index 5ac972fc..00000000 --- a/doc/screenshots/project-permissions.png +++ /dev/null diff --git a/doc/screenshots/project-remove.png b/doc/screenshots/project-remove.png Binary files differdeleted file mode 100644 index 4fa82cf6..00000000 --- a/doc/screenshots/project-remove.png +++ /dev/null diff --git a/doc/screenshots/project-settings.png b/doc/screenshots/project-settings.png Binary files differdeleted file mode 100644 index 5925abb0..00000000 --- a/doc/screenshots/project-settings.png +++ /dev/null diff --git a/doc/screenshots/project-view.png b/doc/screenshots/project-view.png Binary files differdeleted file mode 100644 index b2fe479f..00000000 --- a/doc/screenshots/project-view.png +++ /dev/null diff --git a/doc/screenshots/recurring-tasks.png b/doc/screenshots/recurring-tasks.png Binary files differdeleted file mode 100644 index 32943122..00000000 --- a/doc/screenshots/recurring-tasks.png +++ /dev/null diff --git a/doc/screenshots/restrictions.png b/doc/screenshots/restrictions.png Binary files differdeleted file mode 100644 index 0dc69afb..00000000 --- a/doc/screenshots/restrictions.png +++ /dev/null diff --git a/doc/screenshots/show-column.png b/doc/screenshots/show-column.png Binary files differdeleted file mode 100644 index b7f73516..00000000 --- a/doc/screenshots/show-column.png +++ /dev/null diff --git a/doc/screenshots/slack-add-incoming-webhook.png b/doc/screenshots/slack-add-incoming-webhook.png Binary files differdeleted file mode 100644 index 9032f382..00000000 --- a/doc/screenshots/slack-add-incoming-webhook.png +++ /dev/null diff --git a/doc/screenshots/slack-notification.png b/doc/screenshots/slack-notification.png Binary files differdeleted file mode 100644 index cc25721b..00000000 --- a/doc/screenshots/slack-notification.png +++ /dev/null diff --git a/doc/screenshots/subtask-status-done.png b/doc/screenshots/subtask-status-done.png Binary files differdeleted file mode 100644 index 5fffc236..00000000 --- a/doc/screenshots/subtask-status-done.png +++ /dev/null diff --git a/doc/screenshots/subtask-status-inprogress.png b/doc/screenshots/subtask-status-inprogress.png Binary files differdeleted file mode 100644 index 648b4622..00000000 --- a/doc/screenshots/subtask-status-inprogress.png +++ /dev/null diff --git a/doc/screenshots/subtask-time-tracking.png b/doc/screenshots/subtask-time-tracking.png Binary files differdeleted file mode 100644 index 51a1976a..00000000 --- a/doc/screenshots/subtask-time-tracking.png +++ /dev/null diff --git a/doc/screenshots/subtask-timer.png b/doc/screenshots/subtask-timer.png Binary files differdeleted file mode 100644 index 2d540c6f..00000000 --- a/doc/screenshots/subtask-timer.png +++ /dev/null diff --git a/doc/screenshots/subtask-user-restriction.png b/doc/screenshots/subtask-user-restriction.png Binary files differdeleted file mode 100644 index 9ce14739..00000000 --- a/doc/screenshots/subtask-user-restriction.png +++ /dev/null diff --git a/doc/screenshots/swimlane-configuration.png b/doc/screenshots/swimlane-configuration.png Binary files differdeleted file mode 100644 index 83a172a6..00000000 --- a/doc/screenshots/swimlane-configuration.png +++ /dev/null diff --git a/doc/screenshots/swimlanes-configuration.png b/doc/screenshots/swimlanes-configuration.png Binary files differdeleted file mode 100644 index 21b4eeea..00000000 --- a/doc/screenshots/swimlanes-configuration.png +++ /dev/null diff --git a/doc/screenshots/swimlanes.png b/doc/screenshots/swimlanes.png Binary files differdeleted file mode 100644 index c4ae0ea2..00000000 --- a/doc/screenshots/swimlanes.png +++ /dev/null diff --git a/doc/screenshots/tags-board.png b/doc/screenshots/tags-board.png Binary files differdeleted file mode 100644 index 61c3e5b2..00000000 --- a/doc/screenshots/tags-board.png +++ /dev/null diff --git a/doc/screenshots/tags-global.png b/doc/screenshots/tags-global.png Binary files differdeleted file mode 100644 index be417f34..00000000 --- a/doc/screenshots/tags-global.png +++ /dev/null diff --git a/doc/screenshots/tags-projects.png b/doc/screenshots/tags-projects.png Binary files differdeleted file mode 100644 index 34e83534..00000000 --- a/doc/screenshots/tags-projects.png +++ /dev/null diff --git a/doc/screenshots/tags-search.png b/doc/screenshots/tags-search.png Binary files differdeleted file mode 100644 index e6aeb057..00000000 --- a/doc/screenshots/tags-search.png +++ /dev/null diff --git a/doc/screenshots/tags-task.png b/doc/screenshots/tags-task.png Binary files differdeleted file mode 100644 index 512602e3..00000000 --- a/doc/screenshots/tags-task.png +++ /dev/null diff --git a/doc/screenshots/task-creation-board.png b/doc/screenshots/task-creation-board.png Binary files differdeleted file mode 100644 index 6a70b1ef..00000000 --- a/doc/screenshots/task-creation-board.png +++ /dev/null diff --git a/doc/screenshots/task-creation-form.png b/doc/screenshots/task-creation-form.png Binary files differdeleted file mode 100644 index 9158709b..00000000 --- a/doc/screenshots/task-creation-form.png +++ /dev/null diff --git a/doc/screenshots/task-distribution.png b/doc/screenshots/task-distribution.png Binary files differdeleted file mode 100644 index ffd27971..00000000 --- a/doc/screenshots/task-distribution.png +++ /dev/null diff --git a/doc/screenshots/task-duplication-another-project.png b/doc/screenshots/task-duplication-another-project.png Binary files differdeleted file mode 100644 index f308c51f..00000000 --- a/doc/screenshots/task-duplication-another-project.png +++ /dev/null diff --git a/doc/screenshots/task-duplication.png b/doc/screenshots/task-duplication.png Binary files differdeleted file mode 100644 index 7a8e7584..00000000 --- a/doc/screenshots/task-duplication.png +++ /dev/null diff --git a/doc/screenshots/task-lead-cycle-time.png b/doc/screenshots/task-lead-cycle-time.png Binary files differdeleted file mode 100644 index 2648f57b..00000000 --- a/doc/screenshots/task-lead-cycle-time.png +++ /dev/null diff --git a/doc/screenshots/task-links.png b/doc/screenshots/task-links.png Binary files differdeleted file mode 100644 index b6112fcf..00000000 --- a/doc/screenshots/task-links.png +++ /dev/null diff --git a/doc/screenshots/task-screenshot.png b/doc/screenshots/task-screenshot.png Binary files differdeleted file mode 100644 index afcc310c..00000000 --- a/doc/screenshots/task-screenshot.png +++ /dev/null diff --git a/doc/screenshots/task-time-tracking.png b/doc/screenshots/task-time-tracking.png Binary files differdeleted file mode 100644 index ec699e2a..00000000 --- a/doc/screenshots/task-time-tracking.png +++ /dev/null diff --git a/doc/screenshots/task-timesheet.png b/doc/screenshots/task-timesheet.png Binary files differdeleted file mode 100644 index ece7335f..00000000 --- a/doc/screenshots/task-timesheet.png +++ /dev/null diff --git a/doc/screenshots/task-transitions.png b/doc/screenshots/task-transitions.png Binary files differdeleted file mode 100644 index 51f1a246..00000000 --- a/doc/screenshots/task-transitions.png +++ /dev/null diff --git a/doc/screenshots/thunderbird-new-calendar-step1.png b/doc/screenshots/thunderbird-new-calendar-step1.png Binary files differdeleted file mode 100644 index f5323a2d..00000000 --- a/doc/screenshots/thunderbird-new-calendar-step1.png +++ /dev/null diff --git a/doc/screenshots/thunderbird-new-calendar-step2.png b/doc/screenshots/thunderbird-new-calendar-step2.png Binary files differdeleted file mode 100644 index 594ff397..00000000 --- a/doc/screenshots/thunderbird-new-calendar-step2.png +++ /dev/null diff --git a/doc/screenshots/time-into-each-column.png b/doc/screenshots/time-into-each-column.png Binary files differdeleted file mode 100644 index a835667d..00000000 --- a/doc/screenshots/time-into-each-column.png +++ /dev/null diff --git a/doc/screenshots/timetable.png b/doc/screenshots/timetable.png Binary files differdeleted file mode 100644 index b0fb5f40..00000000 --- a/doc/screenshots/timetable.png +++ /dev/null diff --git a/doc/screenshots/transitions-export.png b/doc/screenshots/transitions-export.png Binary files differdeleted file mode 100644 index 3e2e1924..00000000 --- a/doc/screenshots/transitions-export.png +++ /dev/null diff --git a/doc/screenshots/transitions.png b/doc/screenshots/transitions.png Binary files differdeleted file mode 100644 index 498c582b..00000000 --- a/doc/screenshots/transitions.png +++ /dev/null diff --git a/doc/screenshots/user-mentions.png b/doc/screenshots/user-mentions.png Binary files differdeleted file mode 100644 index d91ddfdc..00000000 --- a/doc/screenshots/user-mentions.png +++ /dev/null diff --git a/doc/screenshots/user-repartition.png b/doc/screenshots/user-repartition.png Binary files differdeleted file mode 100644 index 6a763420..00000000 --- a/doc/screenshots/user-repartition.png +++ /dev/null diff --git a/doc/screenshots/web-notifications-icon.png b/doc/screenshots/web-notifications-icon.png Binary files differdeleted file mode 100644 index 3e86f57b..00000000 --- a/doc/screenshots/web-notifications-icon.png +++ /dev/null diff --git a/doc/screenshots/web-notifications.png b/doc/screenshots/web-notifications.png Binary files differdeleted file mode 100644 index 51fc5235..00000000 --- a/doc/screenshots/web-notifications.png +++ /dev/null diff --git a/doc/screenshots/week-timetable.png b/doc/screenshots/week-timetable.png Binary files differdeleted file mode 100644 index 088572ba..00000000 --- a/doc/screenshots/week-timetable.png +++ /dev/null diff --git a/doc/tr_TR/2fa.markdown b/doc/tr_TR/2fa.markdown deleted file mode 100644 index d540ab95..00000000 --- a/doc/tr_TR/2fa.markdown +++ /dev/null @@ -1,33 +0,0 @@ -Çift-Kademeli Kimlik Doğrulama -========================= - -Her kullanıcı [Çift-Kademeli Kimlik Doğrulama two-factor authentication](http://en.wikipedia.org/wiki/Two_factor_authentication) yı aktyif edebilir. -Başarılı bir oturum açtıktan sonra, kullanıcıya Kanboard'a erişim izni vermeleri için bir kerelik kod (6 karakter) istenecektir. - -Bu kod, genellikle akıllı telefonunuza takılı olan uyumlu bir yazılım tarafından sağlanmalıdır. - -Kanboard, [RFC 6238] (http://tools.ietf.org/html/rfc6238) içinde tanımlanan [Zamana Dayalı Bir Zamanlık Şifre Algoritması Time-based One-time Password Algorithm] (http://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm) kullanır. - -Standart TOTP sistemi ile uyumlu birçok yazılım bulunmaktadır. -Örneğin, şu uygulamaları kullanabilirsiniz: - -- [Google Authenticator](https://github.com/google/google-authenticator/) (Android, iOS, Blackberry) -- [FreeOTP](https://freeotp.github.io/) (Android, iOS) -- [OATH Toolkit Araç Seti](http://www.nongnu.org/oath-toolkit/) (Unix/Linux'da Komut satırı yardımcı programı) - -Bu sistem çevrimdışı çalışabilir ve mutlaka cep telefonunuz olması gerekmez. - -Kurmak ------ - -1. Kullanıcı profilinize git -2. Sol tarafta **İki faktörlü kimlik doğrulama** seçeneğini tıklayın ve kutuyu işaretleyin -3. Sizin için gizli bir anahtar oluşturulur. - -![2FA](../screenshots/2fa.png) - -- TOTP yazılımında gizli anahtarı kaydetmeniz gerekir. Akıllı telefon kullanıyorsanız, en kolay çözüm QR kodunu FreeOTP veya Google Authenticator ile taramaktır. -- Her sefer yeni bir oturum açtığınızda, yeni bir kod sorulur -- Oturumunuzu kapatmadan önce cihazınızı test etmeyi unutmayın - -Bu özelliği her etkinleştirirken / devre dışı bıraktığınızda yeni bir gizli anahtar oluşturulur. diff --git a/doc/tr_TR/analytics-tasks.markdown b/doc/tr_TR/analytics-tasks.markdown deleted file mode 100644 index 8dda3b7b..00000000 --- a/doc/tr_TR/analytics-tasks.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Görevler için analiz -=================== - -Her görev, görev görünümünde sol menüden erişilebilen bir analiz bölümüne sahiptir. - -Teslim ve döngü süresi -------------------- - -![Lead and cycle time](../screenshots/task-lead-cycle-time.png) - -- Teslim zamanı, görev yaratma ve tamamlanma tarihi arasındaki zamandır (görev kapatıldı). -- Döngü süresi, başlangıç tarihi ile tamamlanma tarihi arasındaki zamandır. -- Görev kapalı değilse, tamamlanma tarihi yerine geçerli saat kullanılır. -- Başlangıç tarihi belirtilmemişse, çevrim süresi hesaplanmaz. - -Not: Görevi seçtiğiniz kolona taşıdığınızda başlangıç tarihini otomatik olarak tanımlamak için otomatik bir eylem yapılandırabilirsiniz. - -Her bir kolonda geçen süre ---------------------------- - -![Time spent into each column](../screenshots/time-into-each-column.png) - -- Bu grafik, görev için her bir kolonda geçen toplam süreyi gösterir. -- Geçen süre, görev kapanıncaya kadar hesaplanır. diff --git a/doc/tr_TR/analytics.markdown b/doc/tr_TR/analytics.markdown deleted file mode 100644 index 73686c68..00000000 --- a/doc/tr_TR/analytics.markdown +++ /dev/null @@ -1,66 +0,0 @@ -Analizler -========= - -Her projenin bir analiz bölümü vardır. Kanboard'u nasıl kullandığınıza bağlı olarak, şu raporları görebilirsiniz: - -Kullanıcı yeniden bölümlendirme ----------------- - -![User repartition](../screenshots/user-repartition.png) - -Bu pasta grafik kullanıcı başına atanan açık görev sayısını gösterir. - -Görev dağıtımı ------------------ - -![Task distribution](../screenshots/task-distribution.png) - -Bu pasta grafiği, sütun başına açık görev sayısına genel bir bakış sunar. - -Kümülatif akış diyagramı ------------------------ - -![Cumulative flow diagram](../screenshots/cfd.png) - -- Bu grafik, zaman içindeki her bir sütun için toplu olarak görev sayısını gösterir. -- Her gün, her bir sütun için toplam görev sayısı kaydedilir. -- Kapatılan görevleri hariç tutmak istiyorsanız [global proje ayarları](project-configuration.markdown) seçeneğini değiştirin. - -Not: Grafiği görmek için en az iki güne kadar veri içermeniz gerekir. - -Geribildirim (Burndown) tablosu ---------------- - -![Burndown chart](../screenshots/burndown-chart.png) - -Her proje için [geribildirim (Burndown) tablosu] (http://en.wikipedia.org/wiki/Burn_down_chart) mevcuttur. - -- Bu çizelge, zamana karşı yapılan işin grafik bir temsilidir. -- Kanboard, bu diyagramı oluşturmak için karmaşıklığı veya öykü(olay-hikaye) noktasını kullanır. -- Her gün, her sütunun öykü(olay-hikaye) puanlarının toplamı hesaplanır. - -Her sütuna harcanan ortalama süre ------------------------------------ - -![Average time spent into each column](../screenshots/average-time-spent-into-each-column.png) - -Bu grafik, son 1000 görev için her bir sütuna harcanan ortalama süreyi gösterir. - -- Kanboard, veriyi hesaplamak için görev geçişlerini kullanır. -- Harcanan zaman, görev kapanıncaya kadar hesaplanır. - -Ortalama Teslim ve Döngü Süresi ---------------------------- - -![Average time spent into each column](../screenshots/average-lead-cycle-time.png) - -Bu grafik, son 1000 görevin zaman içindeki ortalama teslim ve döngü süresini göstermektedir. - -- Teslim zamanı, görev yaratma ve tamamlanma tarihi arasındaki zamandır. -- Döngü süresi, görevin belirtilen başlangıç tarihi ile bitiş tarihine kadar olan zamandır. -- Görev kapalı değilse, tamamlanma tarihi yerine geçerli saat kullanılır. - -Bu metrikler, tüm proje için her gün hesaplanır ve kaydedilir. - -Not: Doğru istatistikleri elde etmek için [günlük-daily cronjob](cronjob.markdown) çalıştırmayı unutmayın. - diff --git a/doc/tr_TR/api-json-rpc.markdown b/doc/tr_TR/api-json-rpc.markdown deleted file mode 100644 index 7e3bc52f..00000000 --- a/doc/tr_TR/api-json-rpc.markdown +++ /dev/null @@ -1,72 +0,0 @@ -Json-RPC API -============ - -Kullanıcı ve uygulama API'sı ------------------------- - -İki tür API erişimi vardır: - -### Uygulama API'si - -- "jsonrpc" kullanıcısı ve ayarlar sayfasında belirteç-token bulunan API'ya erişim -- Tüm prosedürlere erişim -- İzin verilen izin yok -- Sunucuda kullanıcı oturumu yok -- "My ..." ile başlayan işlemlere erişim yok (örneğin: "getMe" veya "getMyProjects") -- Olası hizmetlere-client örnek: veri taşıma / içe aktarma, başka bir sistemden görevler oluşturma, vb. - -### Kullanıcı API'si - -- Kullanıcı kimlik bilgileri (kullanıcı adı ve şifre) ile API'ye erişim -- Ayrıca, şifreniz yerine bir kişisel erişim belirteci-token da oluşturabilirsiniz. -- Uygulama rolü ve proje izinleri her prosedür için kontrol edilir -- Sunucuda bir kullanıcı oturumu oluşturuldu -- Olası hizmetlere-client örnek: yerel mobil / masaüstü uygulaması, komut satırı yardımcı programı, vb. - -Güvenlik --------- - -- Her zaman geçerli bir sertifika ile HTTPS kullanın (düz metin iletişimi önlemek için) -- Mobil bir uygulama yaparsanız, cihazdaki kullanıcı kimlik bilgilerini güvenli bir şekilde depolamanız sizin sorumluluğunuzdur -- Kullanıcı API'sinde 3 kimlik doğrulama hatası yapıldıktan sonra, son kullanıcı end-user giriş formunu kullanarak hesabının kilidini açması gerekir -- İki-kademeli kimlik doğrulama API aracılığıyla henüz mevcut değil - -Protokol --------- - -Kanboard, harici programlarla etkileşim kurmak için Json-RPC protokolünü kullanır. - -JSON-RPC, JSON'da kodlanmış uzaktan yordam çağrı protokolüdür. -XML-RPC ile hemen hemen aynı şey ama JSON biçimi iledir. - -[Protokolün 2. versiyonunu](http://www.jsonrpc.org/specification) kullanıyorsanız, -API'yi `POST` HTTP isteği ile çağırmalısınız. - -Kanboard, yığın isteklerini destekler, böylece tek bir HTTP isteğinde birden fazla API çağrısı yapabilirsiniz. Daha yüksek ağ gecikmeli mobil istemciler için özellikle yararlıdır. - -Kullanımı ------ - -- [Kimlik Doğrulama](api-authentication.markdown) -- [Örnekler](api-examples.markdown) -- [Uygulama](api-application-procedures.markdown) -- [Projeler](api-project-procedures.markdown) -- [Proje İzinleri](api-project-permission-procedures.markdown) -- [Panolar](api-board-procedures.markdown) -- [Kolonlar](api-column-procedures.markdown) -- [Kulvarlar](api-swimlane-procedures.markdown) -- [Kategoriler](api-category-procedures.markdown) -- [Otomatik İşlemler](api-action-procedures.markdown) -- [Görevler](api-task-procedures.markdown) -- [Alt-Görevler](api-subtask-procedures.markdown) -- [Alt Görev Süre Çizelgesi](api-subtask-time-tracking-procedures.markdown) -- [Görev Dosyaları](api-task-file-procedures.markdown) -- [Proje Dosyaları](api-project-file-procedures.markdown) -- [Bağlantılar](api-link-procedures.markdown) -- [İç Görev Bağlantıları](api-internal-task-link-procedures.markdown) -- [Harici Görev Bağlantıları](api-external-task-link-procedures.markdown) -- [Yorumlar](api-comment-procedures.markdown) -- [Kullanıcılar](api-user-procedures.markdown) -- [Gruplar](api-group-procedures.markdown) -- [Grup Üyeleri](api-group-member-procedures.markdown) -- [Ben](api-me-procedures.markdown) diff --git a/doc/tr_TR/application-configuration.markdown b/doc/tr_TR/application-configuration.markdown deleted file mode 100644 index c80c8f73..00000000 --- a/doc/tr_TR/application-configuration.markdown +++ /dev/null @@ -1,45 +0,0 @@ -Uygulama ayarları -==================== - -Uygulama için bazı parametreler ayarlar sayfasında değiştirilebilir. -Bu ayarları yalnızca yöneticiler değiştirebilir. - -Sağ üstteki **Ayarlar** menüsüne gidin, ardından soldaki **Uygulama ayarları** seçeneğini seçin. - -![Uygulama ayarları](../screenshots/application-settings.png) - - -### Uygulama URL - -Bu parametre, e-posta bildirimleri için kullanılır. -E-postalarınızda altbilgi(footer) alanı, Kanboard görevine bir bağlantı içerir. - -### Dil - -Uygulama dili her an değiştirilebilir. -Dil, tüm kullanıcılar için belirlenecek. - - -### Saat dilimi - -Varsayılan olarak, Kanboard UTC'yi saat dilimi olarak kullanır, ancak kendi saat dilimini tanımlayabilirsiniz. -Liste, web sunucunuz tarafından desteklenen tüm saat dilimlerini içerir. - - -### Tarih formatı - -Tarih alanlarında kullanılan girdi biçimi, örneğin görevler için son tarih. - -Kanboard, 4 farklı format sunuyor: - -- DD/MM/YYYY -- MM/DD/YYYY (varsayılan) -- YYYY/MM/DD -- MM.DD.YYYY - -[ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) biçimi daima kabul edilir (YYYY-MM-DD veya YYYY_MM_DD). - - -### Özel Stil(CSS) Sayfası - -Kanboard varsayılan stilini geçersiz kılmak veya geliştirmek için kendi CSS'nizi yazın. diff --git a/doc/tr_TR/assets.markdown b/doc/tr_TR/assets.markdown deleted file mode 100644 index 3c4ada0e..00000000 --- a/doc/tr_TR/assets.markdown +++ /dev/null @@ -1,50 +0,0 @@ -Varlıklarğ-assets (Javascript ve CSS dosyaları) nasıl oluşturulur -============================================== - -Stil sayfası ve Javascript dosyaları bir araya getirilir ve küçültülür. - -- Orijinal CSS dosyaları `assets/css/src/*.css` klasöründe saklanır -- Orijinal Javascript kodu `assets/js/src/*.js` klasöründe saklanır -- `assets/*/vendor.min.*` birleştirilmiş ve küçültülmüş harici bağımlılıklardır -- `assets/*/app.min.*` birleştirme ve küçültülmüş uygulama kaynak kodu - -Gereksinimler ------------- - -- `npm` ile [NodeJS](https://nodejs.org/) - -Javascript ve CSS dosyalarını oluşturma ---------------------------------- - -Kanboard, öğeleri oluşturmak için [Gulp](http://gulpjs.com/) ve bağımlılıkları yönetmek için [Bower](http://bower.io/) kullanır. -Bu araçlar, projeye NodeJS bağımlılıkları olarak yüklenir. - -### Her şeyi çalıştır - -```bash -make static -``` - -### `vendor.min.js` ve `vendor.min.css` leri oluşturun - -```bash -gulp vendor -``` - -### `app.min.js` oluşturun - -```bash -gulp js -``` - -### `app.min.css` oluşturun - -```bash -gulp css -``` - -Notlar ------ - -Varlıkların oluşturulması Kanboard'un arşivinden mümkün değildir, havuzun klonlamanız gerekir. - diff --git a/doc/tr_TR/automatic-actions.markdown b/doc/tr_TR/automatic-actions.markdown deleted file mode 100644 index c1890c4f..00000000 --- a/doc/tr_TR/automatic-actions.markdown +++ /dev/null @@ -1,108 +0,0 @@ -Otomatik İşlemler -================= - -Kullanıcı etkileşimini en aza indirgemek için, Kanboard otomatik işlemleri desteklemektedir. - -Her otomatik işlem şu şekilde tanımlanır: - -- Dinlemek için bir etkinlik -- Bu etkinlikle bağlantılı işlem -- Sonunda tanımlamak için bazı parametreler - -Her projenin farklı otomatik eylemler kümesi vardır, proje girişi sayfasında yapılandırma panelinde bulunur, **Otomatik işlemler** bağlantısına tıklayın. - -Yeni bir eylem ekle ----------------- - -**Yeni bir otomatik işlem ekle** bağlantısını tıklayın. - -![Automatique action](../screenshots/automatic-action-creation.png) - -- Bir eylem seçin -- Sonra bir etkinlik seçin -- Ve son olarak, parametreleri tanımlayın - -Kullanılabilir işlemlerin listesi -------------------------- - -- Harici bir sağlayıcının yorumunu oluşturma -- Görevi sütunlar arasında taşırken yorum günlüğü ekleme -- Otomatik olarak bir renge dayalı bir kategori atama -- Kategoriyi harici bir etikete göre değiştirin -- Bağlantıya dayalı otomatik olarak bir kategori atama -- Bir kategoriyi temel alan otomatik olarak bir renk ata -- Görev belirli bir kolona taşıntığında renk ata -- Belirli bir görev bağlantısı kullanırken görev rengini değiştirme -- Belirli bir kullanıcıya renk atama -- Görevi eylemi yapan kişiye atayın -- Görevi, sütun değiştiğinde işlemi yapan kişiye atayın -- Görevi belirli bir kullanıcıya atayın -- Harçlı kişiyi harici bir kullanıcı adına göre değiştirin -- Görevi kapat -- Görevi belirli bir sütunda kapatma -- Harici bir sağlayıcıdan bir görev oluşturma -- Görevin başka bir projeye kopyalanması -- Görevini e-postayla birine gönderin -- Görevi başka bir projeye taşı -- Görevi bir kullanıcıya atandığında başka bir kolona taşıyın -- Kategori değiştirildiğinde görevi başka bir kolona taşı -- Görev sahibi silindiğinde, görevi başka bir kolona taşı -- Görev aç -- Başlangıç tarihini otomatik olarak güncelle - -Örnekler --------- - -İşte gerçek hayatta kullanılan bazı örnekler: - -### Bir görevi "Bitti" kolonuna taşıdığımda, bu görevi otomatik olarak kapat - -- İşlemi seçin: **Bir görevi belirli bir sütunda kapatın** -- Etkinliği seçin: **Görevi başka bir kolona taşıyın** -- Eylem parametresini tanımlayın: **Kolon=Bitti** (hedef kolon budur) - -### Bir görevi "Doğrulanacak" kolonuna taşıdığımda, bu görevi belirli bir kullanıcıya atayın - -- İşlemi seçin: **Görevi belirli bir kullanıcıya atayın** -- Etkinliği seçin: **Görevi başka bir kolona taşıyın** -- Eylem parametrelerini tanımlayın: **Kolon=Doğrulanacak** ve **Kullanıcı=Bob** (Bob bizim test görevlimizdir) - -### Görevi "Çalışma sürüyor" kolonuna taşıdığımda, bu görevi geçerli kullanıcıya atayın - -- İşlemi seçin: **Görevi, kolon değiştiğinde işlemi yapan kişiye atayın** -- Etkinliği seçin: **Görevi başka bir kolona taşıyın** -- Eylem parametresini tanımlayın: **Kolon=Çalışma sürüyor** - -### Bir görev tamamlandığında, bu görevi başka bir projeye kopyalayın - -Diyelim ki "Müşteri Siparişi" ve "Üretim" olmak üzere iki projemiz var, sipariş onaylandıktan sonra onu "Üretim" projesine değiştirelim. - -- İşlemi seçin: **Görevi başka bir projeye çoğaltın** -- Etkinliği seçin: **Görevi kapatma** -- Eylem parametrelerini tanımlayın: **Kolon=Doğrulanmış** ve **Proje=Üretim** - -### Bir görev son kolona taşıntığında, aynı görevi başka bir projeye taşıyın - -Diyelim ki iki proje "Fikirler" ve "Geliştirme" var, bir kez fikir geçerliliği onaylandıktan sonra onu "Geliştirme" projesine takas edelim. - -- İşlemi seçin: **Görevi başka bir projeye taşıyın** -- Etkinliği seçin: **Görevi başka bir kolona taşıyın** -- Eylem parametrelerini tanımlayın: **Kolon=Doğrulanmış** ve **Proje=Geliştirme** - -### Bob kullanıcısına otomatik olarak bir renk atamak istiyorum - -- İşlemi seçin: **Belirli bir kullanıcıya renk atayın** -- Etkinliği seçin: **Görev atayanı değişim** -- Eylem parametrelerini tanımlayın: **Renk=Yeşil** ve **Atayan=Bob** - -### Tanımlanan "Özellik İsteği" kategorisine otomatik olarak bir renk atamak istiyorum - -- İşlemi seçin: **Otomatik olarak bir kategoriye dayalı bir renk atayın** -- Etkinliği seçin: **Görev oluşturma veya değiştirme** -- Eylem parametrelerini tanımlayın: **Renk=Mavi** ve **Kategori=Özellik İsteği** - -### Görev "Çalışma sürüyor" sütununa taşındığında başlangıç tarihini otomatik olarak ayarlamak istiyorum - -- İşlemi seçin: **Başlangıç tarihini otomatik olarak güncelleyin** -- Etkinliği seçin: **Görevi başka bir kolona taşıyın** -- Eylem parametrelerini tanımlayın: **Kolon=Çalışma sürüyor** diff --git a/doc/tr_TR/board-collapsed-expanded.markdown b/doc/tr_TR/board-collapsed-expanded.markdown deleted file mode 100644 index da144ebc..00000000 --- a/doc/tr_TR/board-collapsed-expanded.markdown +++ /dev/null @@ -1,18 +0,0 @@ -Daraltılmış ve Genişletilmiş mod -=========================== - -Tahtadaki görevler daraltılmış veya genişletilmiş modda görüntülenebilir. -Bir görünümden diğerine geçmek, **"s"** klavye kısayoluyla veya soldaki açılır menüyü kullanarak yapılabilir. - -Daraltılmış mod --------------- - -![Tasks collapsed](../screenshots/board-collapsed-mode.png) - -- Görev başkasına devredilirse, kişinin baş harfleri görev numarasının yanında gösterilir -- Görev başlığı çok uzunsa, tam başlıklı bir araç ipucu göstermek için farenizi görevin üzerine koyabilirsiniz. - -Genişletilmiş mod -------------- - -![Tasks expanded](../screenshots/board-expanded-mode.png) diff --git a/doc/tr_TR/board-configuration.markdown b/doc/tr_TR/board-configuration.markdown deleted file mode 100644 index 7eb38660..00000000 --- a/doc/tr_TR/board-configuration.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Pano ayarları -============== - -Sağ Üst menüden **Ayarlar** menüsüne gidin, ardından soldaki **Pano ayarları** seçimini yapın. - -![Board settings](../screenshots/board-settings.png) - -### Görev öne çıkarma - -Bu özellik, yakın zamanda bir görev taşındığında görevin çevresinde bir gölge görüntüler. - -Bu özelliği devre dışı bırakmak için 0 değerini, varsayılan olarak 2 gün (172800 saniye) olarak ayarlayın. - -2 günden beri taşınan herşey görevin çevresinde gölgeli olacaktır. - -### Heskese açık paylaşılan Pano(public board) için yenileme aralığı - -Bir panoyu paylaştığınızda, sayfa her 60 saniyede otomatik olarak varsayılan olarak yenilenir. - -### Özel Pano için yenileme aralığı - -Web tarayıcınız bir tahtada açık olduğunda, bir şey bir başkası tarafından değiştirildiğinde Kanboard her 10 saniyede bir kontrol eder. - -Teknik olarak bu süreç Ajax yoklaması ile yapılır. diff --git a/doc/tr_TR/board-horizontal-scrolling-and-compact-view.markdown b/doc/tr_TR/board-horizontal-scrolling-and-compact-view.markdown deleted file mode 100644 index 6b370f48..00000000 --- a/doc/tr_TR/board-horizontal-scrolling-and-compact-view.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Yatay kaydırma ve kompakt mod -===================================== - -PAno ekranınıza sığmadığı zaman, altta yatay bir kaydırma çubuğu görünür. - -Bununla birlikte, ekranınızdaki tüm sütunları görüntülemek için kompakt ekrana geçmek mümkündür. - -![Switch to compact mode](../screenshots/board-compact-mode.png) - -Yatay kaydırma ve kompakt görünüm arasındaki geçiş, klavye kısayol **"c"** ile veya sol üstteki açılır menüyü kullanarak yapılabilir. diff --git a/doc/tr_TR/board-show-hide-columns.markdown b/doc/tr_TR/board-show-hide-columns.markdown deleted file mode 100644 index 540b5447..00000000 --- a/doc/tr_TR/board-show-hide-columns.markdown +++ /dev/null @@ -1,12 +0,0 @@ -Panoda sütunları göster ve gizle -================================== - -Sütunları çok pratik bir şekilde gizleyebilir veya görüntüleyebilirsiniz: - -![Hide a column](../screenshots/hide-column.png) - -Bir sütunu gizlemek için sütun açılır menüsünü tıklayın ve "Bu sütunu gizle" yi seçin: - -![Show a column](../screenshots/show-column.png) - -Sütunu tekrar göstermek için "artı simgesini" tıklayın. diff --git a/doc/tr_TR/bruteforce-protection.markdown b/doc/tr_TR/bruteforce-protection.markdown deleted file mode 100644 index 5b543824..00000000 --- a/doc/tr_TR/bruteforce-protection.markdown +++ /dev/null @@ -1,35 +0,0 @@ -(Brute Force)Kaba kuvvet Koruma -====================== - -Kanboard'un kaba kuvvet koruması, kullanıcı hesabı düzeyinde çalışır: - -- Aynı kullanıcı adı için üç kimlik doğrulama hatası yapıldıktan sonra, oturum açma formu, otomatik bot hazırlayıcıları önlemek için bir captcha resmi görüntüler. -- 6 kimlik doğrulama başarısızlığından sonra, kullanıcı hesabı 15 dakika boyunca kilitlenir. - -Bu özellik yalnızca oturum açma formunu kullanan kimlik doğrulama yöntemleri için kullanılabilir. - -Bununla birlikte **kullanıcı API'sı aracılığıyla üç kimlik doğrulama hatasından sonra**, giriş formunu kullanarak hesabın kilidinin açılması gerekir. - -Botlar, çeşitli anonim vekilleri kullanabileceğinden, Kanboard herhangi bir IP adresini engellemez. Bununla birlikte, büyük taramaları önlemek için [fail2ban] (http://www.fail2ban.org) gibi harici araçları kullanabilirsiniz. - -Yapılandırma -------------- - -Varsayılan ayarlar şu yapılandırma değişkenleriyle değiştirilebilir: - -```php -// 3 kimlik doğrulama hatasından sonra captcha'yı etkinleştir -define('BRUTEFORCE_CAPTCHA', 3); - -// 6 kimlik doğrulama hatasından sonra hesabı kilitle -define('BRUTEFORCE_LOCKDOWN', 6); - -// Hesap süresini dakika olarak kilitle -define('BRUTEFORCE_LOCKDOWN_DURATION', 15); -``` - -Kullanıcıların kilidini açma ---------------- - -15 dakika beklemek istemiyorsanız kullanıcı arayüzünden bir kullanıcının kilidini kaldırabilirsiniz. -Yönetici olarak, kullanıcı profiline gidin ve "Bu kullanıcının kilidini aç" ı tıklayın. diff --git a/doc/tr_TR/calendar-configuration.markdown b/doc/tr_TR/calendar-configuration.markdown deleted file mode 100644 index f6096c5a..00000000 --- a/doc/tr_TR/calendar-configuration.markdown +++ /dev/null @@ -1,44 +0,0 @@ -Takvim ayarları -================= - -**Ayarlar** menüsüne gidin, ardından soldaki **Takvim ayarları** seçeneğini seçin. - -![Calendar settings](../screenshots/calendar-settings.png) - -Kanboard'da iki farklı takvim vardır: - -- Proje takvimi -- Kullanıcı takvimi (dashboard-gösterge tablosundan kullanılabilir) - -Proje takvimi ----------------- - -Bu takvim, oluşturulma tarihi veya başlangıç tarihine dayanan bitiş tarihi ve görevleri olan görevleri gösterir. - -### Görevleri oluşturma tarihe göre göster - -- Takvim etkinliğinin başlangıç tarihi, görevin oluşturulma tarihidir. -- Etkinliğin bitiş tarihi tamamlanma tarihidir. - -### Görevleri başlangıç tarihine göre göster - -- Takvim etkinliğinin başlangıç tarihi, görevin başlangıç tarihidir. -- Bu tarih el-ile manuel olarak tanımlanabilir. -- Etkinliğin bitiş tarihi tamamlanma tarihidir. -- Başlama tarihi yoksa, görev takvimde görünmez. - -Kullanıcı takvimi -------------- - -Bu takvim yalnızca kullanıcıya atanan görevleri ve isteğe bağlı olarak alt görev bilgisini gösterir. - -### Alt görevleri zaman izlemeye göre göster - -- Takvimdeki alt görevleri zaman izleme tablosunda kaydedilen bilgilerden görüntüleyin. -- Kullanıcı zaman çizelgesiyle kesişme noktası da hesaplanır. - -### Alt görev tahminlerini göster (gelecek çalışmaların tahmini) - -- Alt görevler için "todo" statüsünde ve tanımlanmış "tahmini" değerli gelecekteki çalışmalarının tahmini gösterilir. - - diff --git a/doc/tr_TR/calendar.markdown b/doc/tr_TR/calendar.markdown deleted file mode 100644 index 62885a6a..00000000 --- a/doc/tr_TR/calendar.markdown +++ /dev/null @@ -1,20 +0,0 @@ -Takvim -======== - -Takvim için iki farklı görünüm vardır: - -- Filtrelerle proje görünümü (panoda bulunur) -- Kullanıcı görünümü (kontrol panelinden ve kullanıcı bölümünden kullanılabilir) - -Şu anda takvim şu bilgileri görüntüleyebilmektedir: - -- Vade tarihli görevler, en üstte gösterilir. **Görevi başka bir güne ** geçirmek suretiyle vade değişimi yapabilirsiniz**. -- Görevler, oluşturulma tarihi veya başlangıç tarihini temel alır.** Bu etkinlikler takvimle değiştirilemez**. -- Alt görev zaman takibi, kaydedilen tüm zaman aralığı takvimde gösterilecektir. -- Alt iş tahminleri, sol iş tahminleri - -![Calendar](../screenshots/calendar.png) - -Takvim yapılandırması ayarlar sayfasından değiştirilebilir. - -Not: Teslim tarihi, zaman bilgisi içermemektedir. diff --git a/doc/tr_TR/centos-installation.markdown b/doc/tr_TR/centos-installation.markdown deleted file mode 100644 index aa0deb0d..00000000 --- a/doc/tr_TR/centos-installation.markdown +++ /dev/null @@ -1,89 +0,0 @@ -CentOS'da Kanboard Kurulumu -=============================== - -Centos 7 --------- - -PHP'yi ve Apache'ye kurun: - -```bash -yum install -y php php-mbstring php-pdo php-gd unzip wget -``` - -Varsayılan olarak, Centos 7, PHP 5.4.16 ve Apache 2.4.6 kullanır. - -Apache'yi yeniden başlatın: - -```bash -systemctl restart httpd.service -``` - -Kanboard'u kurmak: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R apache:apache kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Centos 6.x ----------- - -PHP'yi ve Apache'yi kurun: - -```bash -yum install -y php php-mbstring php-pdo php-gd unzip wget -``` - -Varsayılan olarak, Centos 6.5, PHP 5.3.3 ve Apache 2.2.15'i kullanır. - -Kısa etiketleri etkinleştirin: - -- Dosyayı düzenleyin `/etc/php.ini` -- Satırı değiştirin; `short_open_tag = On` - -Apache'yi yeniden başlatın: - -```bash -service httpd restart -``` - -Kanboard'u kurmak: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R apache:apache kanboard-<version>/data -rm kanboard-<version>.zip -``` - -SELinux kısıtlamaları --------------------- - -SELinux etkinleştirilmişse, Apache kullanıcısının dizin verilerine yazabildiğinden emin olun: - -```bash -chcon -R -t httpd_sys_content_rw_t /var/www/html/kanboard/data -``` - -Sunucunuzu, SELinux'la olduğu gibi, Kanboard'un e-posta göndermelerine ve harici ağ istekleri almasına izin verecek şekilde yapılandırmalarını sağlayın: - -```bash -setsebool -P httpd_can_network_connect=1 -``` - -LDAP, SMTP, Web kancaları veya herhangi bir üçüncü taraf entegrasyonu kullanıyorsanız harici bağlantılara izin verilmesi gereklidir. - -Notlar ------ - -Kanboard'un bazı özellikleri, [günlük arka plan işleri](cronjob.markdown) çalıştırmanızı gerektirir. diff --git a/doc/tr_TR/cli.markdown b/doc/tr_TR/cli.markdown deleted file mode 100644 index aa7fdec9..00000000 --- a/doc/tr_TR/cli.markdown +++ /dev/null @@ -1,225 +0,0 @@ -Komut satırı arayüzü-CLI -====================== - -Kanboard, herhangi bir Unix terminalinden kullanılabilen basit bir komut satırı arabirimi sağlar. -Bu araç yalnızca yerel makinede kullanılabilir. - -Bu özellik, komutları web sunucusu işlemleri dışında çalıştırmak için kullanışlıdır. - -Kullanımı ------ - -- Bir terminal açın ve Kanboard dizinine gidin (örneğin: `cd /var/www/kanboard`) -- `./cli` veya `php cli` komutunu çalıştırın - -```bash -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 - worker Execute queue worker - db - db:migrate Execute SQL migrations - db:version Show database schema version - 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:archive Disable projects not touched during one year - 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 -``` - -Kullanılabilir komutlar ------------------- - -### Görevleri CSV olarak dışa aktarma - -Kullanımı: - -```bash -./cli export:tasks <project_id> <start_date> <end_date> -``` - -Örnek: - -```bash -./cli export:tasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -CSV verileri şu adrese gönderilir; `stdout`. - -### Alt görevleri CSV olarak dışa aktarma - -Kullanımı: - -```bash -./cli export:subtasks <project_id> <start_date> <end_date> -``` - -Örnek: - -```bash -./cli export:subtasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -### Görev geçişlerini CSV olarak dışa aktarma - -Kullanımı: - -```bash -./cli export:transitions <project_id> <start_date> <end_date> -``` - -Örnek: - -```bash -./cli export:transitions 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -### CSV'de günlük özet verilerini dışa aktar - -Dışa aktarılan veriler standart çıktıda bastırılacaktır: - -```bash -./cli export:daily-project-column-stats <project_id> <start_date> <end_date> -``` - -Örnek: - -```bash -./cli export:daily-project-column-stats 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv -``` - -### Gecikmiş görevler için bildirim gönder - -E-postalar, bildirimlerin etkinleştirildiği tüm kullanıcılara gönderilecektir. - -```bash -./cli notification:overdue-tasks -``` - -İsteğe bağlı parametreler: - -- `--show`: Ekran bildirimleri gönderin -- `--group`: Bir kullanıcı için tüm gecikmiş görevleri tek bir e-postayla gruplandırın (tüm projelerden) -- `--manager`: Gecikmiş tüm görevleri tek bir e-postayla proje yöneticisine gönderin - -Gecikmiş görevleri bayrağıyla da görüntüleyebilirsiniz `--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 | | -+-----+---------+------------+------------+--------------+----------+ -``` - -### Günlük proje istatistikleri hesaplamasını çalıştır - -Bu komut, her projenin istatistiklerini hesaplar: - -```bash -./cli projects:daily-stats -Run calculation for Project #0 -Run calculation for Project #1 -Run calculation for Project #10 -``` - -### Görevler için tetikleyici - -Bu komut, her projenin açık görevlerine "günlük cronjob etkinliği" gönderir. - -```bash -./cli trigger:tasks -Trigger task event: project_id=2, nb_tasks=1 -``` - -### Kullanıcı şifresini sıfırla - -```bash -./cli user:reset-password my_user -``` - -Bir şifre ve onay istenir. Karakterler ekrana yazdırılmaz. - -### Bir kullanıcı için iki-kademeli kimlik doğrulamayı kaldırma - -```bash -./cli user:reset-2fa my_user -``` - -### Bir eklenti kurma - -```bash -./cli plugin:install https://github.com/kanboard/plugin-github-auth/releases/download/v1.0.1/GithubAuth-1.0.1.zip -``` - -Not: Yüklü dosyalar, geçerli kullanıcıyla aynı izinlere sahip olacak - -### Eklentiyi kaldır - -```bash -./cli plugin:uninstall Budget -``` - -### Tüm eklentileri güncelle - -```bash -./cli plugin:upgrade -* Updating plugin: Budget Planning -* Plugin up to date: Github Authentication -``` - -### Arkaplan çalışanını çalıştır - -```bash -./cli worker -``` - -### Veritabanı geçişlerini yürütün - -`DB_RUN_MIGRATIONS` parametresi `false` olarak ayarlanırsa, veritabanı geçişlerini manuel olarak çalıştırmışsınızdır: - -```bash -./cli db:migrate -``` - -### Veritabanı şema sürümünü denetle - -```bash -./cli db:version -Current version: 95 -Last version: 96 -``` diff --git a/doc/tr_TR/closing-tasks.markdown b/doc/tr_TR/closing-tasks.markdown deleted file mode 100644 index 5b762b91..00000000 --- a/doc/tr_TR/closing-tasks.markdown +++ /dev/null @@ -1,16 +0,0 @@ -Görevleri kapatma -================ - -Bir görev kapatıldığında, panodan gizlenir. - -Bununla birlikte, her zaman arama durumundaki **status:closed** sorgusunu kullanarak kapalı görev listesine her zaman erişebilir veya filtre açılır menüsünden **Kapalı görev** seçeneğini belirleyin. - -Bir görevi kapatmak için panodaki görev açılır menüsünden iki farklı yol vardır: - -![Close a task from drop-down menu](../screenshots/menu-close-task.png) - -Veya görev ayrıntı görünümündeki görev yan çubuğu menüsünden: - -![Close task](../screenshots/closing-tasks.png) - -Not: Bir görevi kapattığınızda, tamamlanmayan alt görevlerin tamamı "Bitti" durumuna değiştirilir. diff --git a/doc/tr_TR/cloudron.markdown b/doc/tr_TR/cloudron.markdown deleted file mode 100644 index 95c63b1d..00000000 --- a/doc/tr_TR/cloudron.markdown +++ /dev/null @@ -1,26 +0,0 @@ -Cloudboard üzerinde Kanboard nasıl çalıştırılır -================================ - -[Cloudron](https://cloudron.io), Kanboard gibi web uygulamaları yükleyebileceğiniz özel bir akıllı sunucudur. -Kanboard'u özel bir alan-isim-domain e yükleyebilir ve her biri kurulum otomatik olarak Kanboard sürümleri ile yedeklenir ve güncel tutulur. - -[![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=net.kanboard.cloudronapp) - -Hesaplar --------- - -Uygulama, (LDAP aracılığıyla) Cloudron Kullanıcı Yönetimi ile sıkı bir şekilde bütünleşir. Sadece -Cloudron kullanıcıları Kanboard'a erişebilirler. Buna ek olarak, herhangi bir Cloudron yöneticisi -Otomatik olarak bir Kanboard yöneticisi olur. - -Eklentileri Yükleme ------------------- - -Eklentiler [Cloudron CLI](https://git.cloudron.io/cloudron/cloudron-cli) aracını kullanılarak yüklenebilir ve yapılandırılabilir. -Daha fazla bilgi için [uygulama açıklaması](https://cloudron.io/appstore.html?app=net.kanboard.cloudronapp) konusuna bakın. - -Uygulama Kaynak kodu ----------------------- - -Cloudron uygulaması için kaynak kodu [buradadır](https://git.cloudron.io/cloudron/kanboard-app). - diff --git a/doc/tr_TR/coding-standards.markdown b/doc/tr_TR/coding-standards.markdown deleted file mode 100644 index f7d192a6..00000000 --- a/doc/tr_TR/coding-standards.markdown +++ /dev/null @@ -1,24 +0,0 @@ -Kodlama standartları -================ - -PHP kodu --------- - -- Girinti: 4 spaces -- Satır sonu: Unix => `\n` -- Kodlama: UTF-8 -- Şablonlar için sadece `<?php` veya `<?=` açık tag kullanın, ancak **asla** `<?` kullanmayın -- Yöntemler ve sınıf özellikleri için daima PHPdoc yorumlarını yaz -- Kodlama stili: [PSR-1](http://www.php-fig.org/psr/psr-1/) ve [PSR-2](http://www.php-fig.org/psr/psr-2/) - -JavaScript kodu ---------------- - -- Girinti: 4 spaces -- Satır sonu: Unix => `\n` - -CSS kodu --------- - -- Girinti: 4 spaces -- Satır sonu: Unix => `\n` diff --git a/doc/tr_TR/config.markdown b/doc/tr_TR/config.markdown deleted file mode 100644 index 4cf250e4..00000000 --- a/doc/tr_TR/config.markdown +++ /dev/null @@ -1,335 +0,0 @@ -Yapılandırma dosyası -=========== - -Kanboard'un varsayılan ayarlarını proje kökünde veya `data` klasöründe `config.php` dosyasına ekleyerek özelleştirebilirsiniz. -`config.default.php` dosyasını` config.php` olarak yeniden adlandırabilir ve istenen değerleri değiştirebilirsiniz. - -Hata ayıklama modunu etkinleştir/devre dışı bırak -------------------------- - -```php -define('DEBUG', true); -define('LOG_DRIVER', 'file'); // Other drivers are: syslog, stdout, stderr or file -``` - -Hata ayıklama modunu etkinleştirirseniz günlük sürücüsü tanımlanmalıdır. -Hata ayıklama modu tüm SQL sorgularını ve sayfaları oluşturmak için harcanan süreyi günlüğe kaydeder. - -Eklentiler -------- - -Eklenti klasörü: - -```php -define('PLUGINS_DIR', 'data/plugins'); -``` - -Kullanıcı arayüzünden eklenti kurulumunu etkinleştirme/devre dışı bırakma: - -```php -define('PLUGIN_INSTALLER', true); // Default is true -``` - -Varsayılan eklenti dizini URL'sini değiştirin: - -```php -define('PLUGIN_API_URL', 'https://kanboard.org/plugins.json'); -``` - -Yüklenen dosyalar için klasör -------------------------- - -```php -define('FILES_DIR', 'data/files'); -``` - -Önbellek parametreleri ----------------- - -```php -// Available cache drivers are "file" and "memory" -define('CACHE_DRIVER', 'memory'); - -// Cache folder to use if cache driver is "file" (must be writeable by the web server user) -define('CACHE_DIR', DATA_DIR.DIRECTORY_SEPARATOR.'cache'); -``` - -Url yeniden yazmayı etkinleştir/devre dışı bırak --------------------------- - -```php -define('ENABLE_URL_REWRITE', false); -``` - -E-posta yapılandırması -------------------- - -```php -// Enable/disable email configuration from the user interface -define('MAIL_CONFIGURATION', true); - -// E-mail address used 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'); -``` - -Veritabanı ayarları ------------------ - -```php -// Run automatically database migrations -// If set to false, you will have to run manually the SQL migrations from the CLI during the next Kanboard upgrade -// Do not run the migrations from multiple processes at the same time (example: web page + background worker) -define('DB_RUN_MIGRATIONS', true); - -// 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 ayarları -------------- - -```php -// 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'); -``` - -Tersine-Proxy Kimlik Doğrulama ayarları -------------------------------------- - -```php -// 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 Kimlik Doğrulama ayarları hatırla ----------------------------------- - -```php -// Enable/disable remember me authentication -define('REMEMBER_ME_AUTH', true); -``` - -Güvenli HTTP üstbilgileri ayarları ----------------------------- - -```php -// 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); -``` - -Günlüğe kaydetme -------- - -By default, Kanboard do not log anything. -If you want to enable the logging, you have to set a log driver. - -```php -// 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'); -``` - -Kaba kuvvet Brute-force koruması ---------------------- - -```php -// 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); -``` - -Oturum -------- - -```php -// 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 İstemcisi ------------ - -Harici HTTP isteklerinin bir proxy üzerinden gönderilmesi gerekiyorsa: - -```php -define('HTTP_PROXY_HOSTNAME', ''); -define('HTTP_PROXY_PORT', '3128'); -define('HTTP_PROXY_USERNAME', ''); -define('HTTP_PROXY_PASSWORD', ''); -``` - -Kendinden imzalı sertifikalara izin vermek için: - -```php -// Set to false to allow self-signed certificates -define('HTTP_VERIFY_SSL_CERTIFICATE', true); -``` - -Çeşitli ayarlar ----------------- - -```php -// 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'); - -// TOTP (2FA) issuer name -define('TOTP_ISSUER', 'Kanboard'); -``` diff --git a/doc/tr_TR/contributing.markdown b/doc/tr_TR/contributing.markdown deleted file mode 100644 index b464d1b0..00000000 --- a/doc/tr_TR/contributing.markdown +++ /dev/null @@ -1,70 +0,0 @@ -Katılımcı Yönergeleri -====================== - -Nasıl yardımcı olabilirim? ---------------- - -Kanboard mükemmel değildir ancak yardımcı olacak birçok yol vardır: - -- Geribildirim ver -- Hataları bildir -- Çeviriler ekleyin veya güncelleyin -- Dokümantasyonu iyileştirin -- Kod yazmak -- Arkadaşlarına, Kanboard'ın harika olduğunu söyle :) - -Herhangi bir büyük taahhütte bulunmadan önce yeni bir konu açın ve teklifinizi açıklayın. - -Geribildirim vermek istiyorum ------------------------ - -- Bir şeyin geliştirilmesi gerektiğini düşünüyorsunuz (kullanıcı arayüzü, özellik talepleri) -- Fikrinizin önceden önerilip onaylanmadığını kontrol edin -- Yeni bir sayı açın -- Fikrini tarif et -- Mevcut tekliflerde +1 ile de oy kullanabilirsiniz - -Hata bildirmek istiyorum ----------------------- - -- Sorunun daha önce bildirilmediğini kontrol edin -- Yeni bir bilet aç -- Neyin kırıldığını açıkla -- Hatayı nasıl üreteceğinizi açıklayın -- Çevrenizi tanımlayın (Kanboard sürümü, işletim sistemi, web sunucusu, PHP sürümü, veritabanı sürümü, barındırma sağlayıcısı barındırma) - -Kanboard'u tercüme etmek istiyorum ----------------------------- - -Kanboard birçok dile çevrildi. -Bununla birlikte, çeviriler tam değil, [katkıda bulunmak için çeviri rehberine](translations.markdown) göz atın. - -Belgeleri iyileştirmek istiyorum ------------------------------------ - -- Bir şeylerin net olmadığını, dilbilgisi hataları, yazım hataları var mı diye düşünüyorsun. -- Belgeler Markdown'da yazılmış ve `docs` klasöründe saklanmıştır. -- Dosyaları düzenleyin ve çekme isteği gönderin. -- Resmi web sitesindeki dokümanlar depo ile senkronize edilir. - -Koda katkıda bulunmak istiyorum --------------------------------- - -Çekme talepleri her zaman memnuniyetle karşılanır, ancak kabul edilmesi için şu yönergeleri takip etmeniz gerekir: - -- **Büyük bir değişiklik veya tasarım önerisi yapmadan önce, tartışmaya başlamak için yeni bir bilet açın** -- Yeni bir özellik eklemek isterseniz, Kanboard'un arkasındaki felsefeye saygı gösterin. **Basitliğe** odaklanıyoruz, şişirilmiş bir yazılım istemiyoruz. -- Aynı şey, kullanıcı arabirimi, **basitlik ve verimlilik** için de geçerlidir. -- Özellik veya hata düzeltmesi başına yalnızca bir çekme isteği gönderin. -- Daha küçük bir çekme isteği daha kolay incelenir ve daha hızlı birleştirilir. -- [Birim testlerinin geçer](tests.markdown) olduğundan emin olun. -- [kodlama standartlarına](kodlama standartları.markdown) saygı gösterin. -- Korunabilir kod yazın, kod tekrarından kaçının, PHP'nin iyi uygulamalarını kullanın. - -Herhangi bir durumda, bir şey hakkında yeni bir bilet açtığından emin değilseniz. - -Arkadaşlarına, Kanboard'ın harika olduğunu söyle :) ---------------------------------------------- - -Kanboard kullanırsanız, sözcüğü çevrenize yayın. -Onlara ücretsiz ve açık kaynak yazılımın harika olduğunu söyle :) diff --git a/doc/tr_TR/create-tasks-by-email.markdown b/doc/tr_TR/create-tasks-by-email.markdown deleted file mode 100644 index 43762dd4..00000000 --- a/doc/tr_TR/create-tasks-by-email.markdown +++ /dev/null @@ -1,45 +0,0 @@ -E-posta ile görevler oluşturma -===================== - -Bir e-posta göndererek görevleri doğrudan oluşturabilirsiniz. -Bu özellik eklentiler kullanarak ulaşılabilir. - -Şu anda Kanboard, 3 harici hizmetler ile entegre edilmiştir: - -- [Mailgun](https://github.com/kanboard/plugin-mailgun) -- [Sendgrid](https://github.com/kanboard/plugin-sendgrid) -- [Postmark](https://github.com/kanboard/plugin-postmark) - -Bu hizmetler, herhangi bir SMTP sunucusunu yapılandırmak zorunda kalmadan gelen e-postaları işlemektedir. - -Bir e-posta alındığında, Kanboard belirli bir son noktadaki mesajı alır. -Tüm karmaşık çalışmalar bu hizmetler tarafından zaten gerçekleştirilmektedir. - -Gelen e-postaların iş akışı ------------------------- - -1. Belli bir adrese bir e-posta gönderiyorsunuz, örneğin **something+myproject@inbound.mydomain.tld** -2. E-postanız, üçüncü parti SMTP sunucularına yönlendirilir -3. SMTP sağlayıcısı, Kanboard web kancasını-hook E-postayla JSON veya çok parçalı / form-veri formatlarını çağırır -4. Kanboard, alınan e-postayı ayrıştırır ve doğru projeye göre görev oluşturur. - -Not: Yeni görevler otomatik olarak ilk kolonda oluşturulur. - -E-posta biçimi ------------- - -- E-posta adresinin yerel kısmı artı ayırıcıyı kullanmalıdır, örneğin ** kanboard + project123 ** -- Artı işaretinden sonra tanımlanan dize, bir proje tanımlayıcısıyla eşleşmelidir, örneğin **project123** ** projenin tanımlayıcısı **Proje 123** -- E-posta konusu görev başlığı haline gelir -- E-posta gövdesi görev açıklaması olur (Markdown biçimi) - -Gelen e-postalar metin veya HTML biçiminde yazılabilir. -**Kanboard, basit HTML e-postalarını Markdown** a dönüştürebilir. - -Güvenlik ve gereksinimler -------------------------- - -- Kanboard web kancası rastgele bir tokenla korunuyor -- Gönderenin e-posta adresi bir Kanboard kullanıcısı ile eşleşmelidir -- Kanboard projesinin benzersiz bir tanımlayıcısı olmalıdır, örneğin **PROJEM** -- Kanboard kullanıcısının projeye üye olması gerekir diff --git a/doc/tr_TR/creating-projects.markdown b/doc/tr_TR/creating-projects.markdown deleted file mode 100644 index 54ead2fb..00000000 --- a/doc/tr_TR/creating-projects.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Projeleri Oluşturma -================= - -Kanboard birden fazla projeyi idare edebilir. İki tür proje vardır: - -- Takım projeleri -- Tek bir kullanıcı için özel proje - -Birden fazla kullanıcı için proje oluşturma -------------------------------------- - -- Yalnızca yöneticiler ve proje yöneticileri bu projeleri oluşturabilir -- Kullanıcı yönetimi mevcut - -Gösterge tablosundan **Yeni proje** bağlantısını tıklayın: - -![Project creation form](../screenshots/new-project.png) - -Çok kolay, sadece projeniz için bir isim bulmanız gerekiyor! - -Özel proje oluşturma --------------------------- - -- Herkes özel bir proje yaratabilir -- Burda kullanıcı yönetimi **YOK**. -- Projeye yalnızca sahibi ve yöneticiler erişebilir - -Gösterge tablosundan **Yeni özel proje** bağlantısını tıklayın. - -Başka bir projeden projeler oluşturma --------------------------------------- - -Yeni bir proje oluşturduğunuzda, başka bir projenin özelliklerini çoğaltmayı seçebilirsiniz: - -- İzinler -- Eylemler -- Swimlanes -- Katagori -- Görevler diff --git a/doc/tr_TR/creating-tasks.markdown b/doc/tr_TR/creating-tasks.markdown deleted file mode 100644 index dd7fe9b6..00000000 --- a/doc/tr_TR/creating-tasks.markdown +++ /dev/null @@ -1,30 +0,0 @@ -Görevler Oluşturma -============== - -Panodan, sütun adının yanındaki artı işaretini tıklayın: - -![Task creation from the board](../screenshots/task-creation-board.png) - -Sonra görev oluşturma formu görünür: - -![Task creation form](../screenshots/task-creation-form.png) - -Alan açıklamaları: - -- **Başlık**: Panoda görünecek olan görevinizin başlığı. -- **Tanım **: [Markdown](syntax-guide.markdown) biçimini destekleyen açıklama. -- **Etiketler**: Görevlerle ilişkili etiketler listesi. -- **Başka bir görev oluştur**: Benzer bir görev oluşturmak istiyorsanız bu kutuyu işaretleyin (bazı alanlar önceden doldurulacaktır). -- **Renk**: Kartın rengini seçin. -- **Atanan**: Görev üzerinde çalışacak kişi. -- **Kategori**: Göreve yalnızca bir kategori atanabilir (yalnızca projelerde kategori varsa görünür). -- **Kolon**: Görevin oluşturulacağı kolon, göreviniz kolonun en altına yerleştirilir. -- **Öncelik**: Görev önceliği, aralık proje ayarlarında tanımlanabilir, varsayılan değerler P0 - P3'tür. -- **Karmaşıklık**: Çevik proje yönetimi (Scrum) 'da kullanılan karmaşıklık veya hikaye puanları, ekibe hikayenin ne kadar zor olduğunu anlatan bir sayıdır. Çoğu zaman insanlar Fibonacci serisini kullanıyor. -- **Referans**: Görev için harici kimlik, örneğin başka bir sistemden gelen bilet numarası olabilir -- **Orijinal Tahmin**: Görevi tamamlamak için tahmini saat. -- **Geçen Süre**: Görev üzerinde geçen süre. -- **Başlangıç Tarihi**: Bu bir tarih saati alanıdır. -- **Bitiş Tarihi**: Vadesi geçmiş görevler kırmızı geçerlilik süresine sahip olacak ve yaklaşan bitiş tarihleri panoda siyah olacaktır. Tarih seçiciye ek olarak birkaç tarih biçimi kabul edilir. - -Önizleme bağlantısıyla görev açıklamasının Markdown sözdiziminden dönüştürülmesini görebilirsiniz. diff --git a/doc/tr_TR/cronjob.markdown b/doc/tr_TR/cronjob.markdown deleted file mode 100644 index 65dc1b5d..00000000 --- a/doc/tr_TR/cronjob.markdown +++ /dev/null @@ -1,56 +0,0 @@ -Arka Plan İş Zaman Planlaması -========================= - -Düzgün çalışabilmek için, Kanboard günlük olarak arka planda bir iş yürütülmesini ister. -Genellikle Unix platformlarında bu işlem `cron` tarafından yapılır. - -Bu arka plan işi, bu özellikler için gereklidir: - -- Raporlar ve analizler (her bir projenin günlük istatistiklerini hesaplayın) -- Vazgeçilmiş görev bildirimleri gönder -- Olaya bağlı otomatik eylemleri yürütün "Görevler için günlük arka plan işi" - -Unix ve Linux platformlarında konfigürasyon ------------------------------------------ - -Unix/Linux işletim sistemlerinde bir cronjob tanımlamanın birden çok yolu vardır, bu örnek Ubuntu 14.04 içindir. -Prosedür, diğer sistemler için de benzerdir. - -Web sunucusu kullanıcısının crontab'sını düzenleyin: - -```bash -sudo crontab -u www-data -e -``` - -Günlük cronjobu sabah 08.00'de çalıştırma örneği: - -```bash -0 8 * * * cd /path/to/kanboard && ./cli cronjob >/dev/null 2>&1 -``` - -Not: Sqlite kullanıyorsanız, cronjob işleminin veritabanına yazma erişimi olmalıdır. -Genellikle, cronjob'u web sunucusu kullanıcısı altında çalıştırmak yeterlidir. - -Microsoft Windows Server'da Yapılandırma ------------------------------------------ - -Yinelenen görevi yapılandırmadan önce, Kanboard CLI komut dosyasını çalıştıran bir toplu iş dosyası (*.bat veya *.cmd) oluşturun. - -İşte bir örnek (`C:\kanboard.bat`): - -``` -"C:\php\php.exe" -f "C:\inetpub\wwwroot\kanboard\cli" cronjob -``` - -**Kurulumunuza göre PHP yürütülebilir dosyanın yolunu ve Kanboard'un komut dosyasının yolunu değiştirmelisiniz.** - -Windows Görev Zamanlayıcısını yapılandırın: - -1. "Yönetimsel Araçlar" bölümüne gidin. -2. "Görev Zamanlayıcısı" nı açın. -3. Sağda "Görev Oluştur" u seçin -4. Bir isim seçin, örneğin "Kanboard" -5. "Güvenlik Seçenekleri" altında, Sqlite kullanıyorsanız, veritabanına yazabilecek bir kullanıcı seçin (yapılandırmanıza bağlı olarak IIS_IUSRS olabilir) -6. Yeni bir "Tetikleyici" oluşturun, günlük ve bir gece, örneğin gece vakti seçin -7. Yeni bir eylem ekleyin, "Bir programı başlat" ı seçin ve yukarıda oluşturulan toplu iş dosyasını seçin - diff --git a/doc/tr_TR/currency-rate.markdown b/doc/tr_TR/currency-rate.markdown deleted file mode 100644 index 9d3444bc..00000000 --- a/doc/tr_TR/currency-rate.markdown +++ /dev/null @@ -1,11 +0,0 @@ -Döviz kuru -============== - -Her kullanıcı, farklı para birimlerinde önceden belirlenmiş bir saat ücreti alabilir. -Birden çok para birimini işlemek zorundaysanız, burada referans para birimine göre oranı tanımlarsınız. - -Bu özellik, proje bütçesi hesaplamasında kullanılır. - -![Currency Rate](../screenshots/currency-rate.png) - -Para birimi oranı ayarları ** Ayarlar> Para birimi oranları ** 'da bulunur. diff --git a/doc/tr_TR/custom-filters.markdown b/doc/tr_TR/custom-filters.markdown deleted file mode 100644 index 52c312ac..00000000 --- a/doc/tr_TR/custom-filters.markdown +++ /dev/null @@ -1,19 +0,0 @@ -Özel Filtreler -============== - -Özel filtreler, herhangi bir arama sorgusunu kaydetmenize izin verir. -Bu şekilde, varsayılan filtreleri kolayca genişletebilir ve en çok kullanılan arama sorguları kaydedebilirsiniz. - -- Özel filtreler proje tarafından saklanır ve içerik oluşturucuyla ilişkilendirilir. -- Oluşturan proje yöneticisi ise, filtreyi diğer proje üyeleri ile paylaşmayı seçebilir. - -Filtre oluşturma ---------------- - -İşlem açılır menüsüne veya proje ayarlarına gidin ve **özel filtreler** öğesini seçin: - -![Custom Filter Creation](../screenshots/custom-filter-creation.png) - -Filtrenizi oluşturduktan sonra, panoda varsayılan filtrelerin yanında görünecektir: - -![Custom Filter Dropdown](../screenshots/custom-filter-dropdown.png) diff --git a/doc/tr_TR/custom-project-roles.markdown b/doc/tr_TR/custom-project-roles.markdown deleted file mode 100644 index 1a4837fb..00000000 --- a/doc/tr_TR/custom-project-roles.markdown +++ /dev/null @@ -1,88 +0,0 @@ -Özel Proje Rolleri -==================== - -Bu role ait kişiler üzerinde belirli kısıtlamalar dizisi uygulamak için özel proje rolleri oluşturabilirsiniz. -Bu özel roller her proje için tanımlanmıştır. - -Özel rol, proje üyesi rolünden devralır. -Örneğin, birini bir işlemi takip etmeye zorlamak için özel bir rol oluşturmak isteyebilirsiniz. -Görevleri yalnızca "Devam etmekte olan iş" sütunundan "Bitti" sütununa taşımanıza izin verilen bir grup insana sahip olabilirsiniz. - -Mevcut kısıtlamalar ----------------------- - -- Proje Kısıtlamaları: - - Görev oluşturulmasına izin verilmiyor - - Bir görevi kapatmak veya açmak yasaktır - - Görevin taşınmasına izin verilmiyor -- Sütun Kısıtlamaları: - - Görev oluşturulması sadece belirli bir sütun için **izin** verilir - - Görev oluşturulması yalnızca belirli bir sütun için **engel** lenir - - Bir görevi kapatmak veya açmak için sadece belirli bir sütuna **izin** verilir - - Bir görevi kapatmak veya açmak için yalnızca belirli bir sütun için **engel** lenir -- Görevleri yalnızca belirtilen sütunlar arasında taşıma - -Yapılandırma -------------- - -### 1) Yeni bir özel rol oluştur - -Proje ayarlarından, **Özel Roller** menüsünde soldaki simgesini tıklayın ve sayfanın üst kısmında **Yeni özel rol ekleyin** seçeneğini tıklayın. - -![New custom role](../screenshots/new_custom_role.png) - -Rol için bir isim verin ve formu gönderin. - -### 2) Rol için bir sınırlama ekleyin - -Burada farklı kısıtlamalar vardır: - -- Proje kısıtlamaları -- Sürükle ve bırak kısıtlamaları -- Sütun kısıtlamaları - -Yeni bir kısıtlama eklemek için tabloda açılır menüye tıklayabilirsiniz: - -![Add a new restriction](../screenshots/add_new_restriction.png) - -### 3) Kısıtlamalar listesi - -![List of restrictions](../screenshots/example-restrictions.png) - -Örneğin, bu rol yalnızca "Geri Kayıt-Backlog" sütununda görevler oluşturabilir ve görevleri "Hazır" ve "Devam etmekte olan" sütunları arasında taşımak mümkündür. - -### 4) Rolü birine atayın - -Sol menüdeki "izinler" bölümüne gidin ve istenen rolü kullanıcıya atayın. - -![Custom project role](../screenshots/custom_roles.png) - -Örnekler --------- - -### Kullanıcıların yalnızca belirli sütunlarda görev oluşturmasına izin ver - -![Example restriction task creation](../screenshots/example-restriction-task-creation.png) - -- Bu role ait kullanıcılar, yalnızca "Geri Kayıt-Backlog" sütununda yeni görevler oluşturabilir. -- 2 kuralın kombinasyonu önemlidir, aksi takdirde bu işe yaramaz. - -### Kullanıcıların görev durumunu yalnızca belirli sütunlarda değiştirmelerine izin ver - -![Example restriction task status](../screenshots/example-restriction-task-status.png) - -- Bu role ait olan kullanıcılar, "Geri Kayıt-Backlog" sütunundaki görev durumunu değiştirebilecek. -- Durum açık olan görevler tahta üzerinde görünür ve durum kapalı olan görevler varsayılan olarak tahtada gizlidir. - -### Kullanıcıların belirli bir sütundaki görev durumunu değiştirmesine izin verme - -![Example column restriction](../screenshots/example-restriction-task-status-blocked.png) - -Bu role ait kullanıcılar, "Tamamlandı" sütunundaki görev durumunu değiştiremez. -Ancak diğer sütunlarda da mümkün olacaktır. - -### Kullanıcıların görevleri yalnızca belirli sütunlar arasında taşımasına izin ver - -![Example restriction task drag and drop](../screenshots/example-restriction-task-drag-and-drop.png) - -Bu role ait kullanıcılar, görevleri yalnızca "Hazır" ve "Devam etmekte olan" sütunları arasında taşıyabilir. diff --git a/doc/tr_TR/debian-installation.markdown b/doc/tr_TR/debian-installation.markdown deleted file mode 100644 index 171328b7..00000000 --- a/doc/tr_TR/debian-installation.markdown +++ /dev/null @@ -1,76 +0,0 @@ -Debian'da Kanboard Kurulumu -=============================== - -Debian 8 (Jessie) ------------------ - -Apache ve PHP'yi kurun: - -```bash -apt-get update -apt-get install -y php5 php5-sqlite php5-gd unzip -service apache2 restart -``` - -Kanboard'u kurun: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Debian 7 (Wheezy) ------------------ - -Apache ve PHP'yi kurun: -```bash -apt-get update -apt-get install -y php5 php5-sqlite php5-gd unzip -``` - -Kanboard'u kurun: - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Debian 6 (Squeeze) ------------------- - -Apache ve PHP'yi kurun: - -```bash -apt-get update -apt-get install -y libapache2-mod-php5 php5-sqlite php5-gd unzip -``` - -Kanboard'u kurun: - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Not ------ - -Kanboard'un bazı özellikleri, [günlük arka plan işi-cronjob](cronjob.markdown) çalıştırmanızı gerektirir. diff --git a/doc/tr_TR/docker.markdown b/doc/tr_TR/docker.markdown deleted file mode 100644 index 37d2ac1b..00000000 --- a/doc/tr_TR/docker.markdown +++ /dev/null @@ -1,96 +0,0 @@ -Docker ile Kanboard nasıl çalıştırılır? -================================ - -Kanboard, [Docker](https://www.docker.com) ile kolayca çalıştırabilir. - -Disk görüntü-image boyutu yaklaşık **70MB** olup aşağıdakileri içerir: - -- [Alpine Linux](http://alpinelinux.org/) -- [Süreç yöneticisi S6](http://skarnet.org/software/s6/) -- Nginx -- PHP 7 - -Kanboard cronjob'u her gece yarısı çalışıyor. -URL yeniden yazma, birlikte gelen yapılandırma dosyasında etkinleştirilmiştir. - -Kapsayıcı-konteyner çalışırken, bellek kullanımı yaklaşık **30MB** civarındadır. - -Kararlı sürümü kullanmak ----------------------- - -Kanboard'un en kararlı sürümünü elde etmek için **stable** etiketini kullanın: - -```bash -docker pull kanboard/kanboard -docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:stable -``` - -Geliştirme sürümünü kullanmak (otomatik yapı) ---------------------------------------------- - -Depodaki her yeni taahhüt, [Docker Hub](https://registry.hub.docker.com/u/kanboard/kanboard/) üzerinde yeni bir yapı oluşturur. - -```bash -docker pull kanboard/kanboard -docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:latest -``` - -**latest** etiketi, Kanboard'un **geliştirme versiyonudur-development version**, risk almak kendi sorumluluğunuzdadır. - -Kendi Docker görüntü-image oluşturun ---------------------------- - -Kendi görüntü-image inızı oluşturmak için Kanboard havuzunda-repository bir `Dockerfile` var. -Kanboard havuzunda-repository klonlayın ve aşağıdaki komutu çalıştırın: - -```bash -docker build -t youruser/kanboard:master . -``` - -veya - -```bash -make docker-image -``` - -Bağlantı noktası 80 üzerinde arka planda kapsayıcı-konteyner çalıştırmak için: - -```bash -docker run -d --name kanboard -p 80:80 -t youruser/kanboard:master -``` - -Cilt-Volumes -------- - -Kapsayıcınıza-konyetner 2 cilt bağlayabilirsiniz: - -- Veri klasörü: `/var/www/app/data` -- Eklentiler-Plugins klasörü: `/var/www/app/plugins` - -[Resmi Docker belgeleri](https://docs.docker.com/storage/volumes/) 'da açıklandığı gibi, ana makineye bir hacim bağlamak için `-v` parametresi-bayrağını kullanın. - -Kapsayıcınızı-Konteyner Yükseltme ----------------------- - -- Yeni görüntü-image koy -- Eski kapsayıcı-konteyner çıkarın -- Aynı ciltlere sahip yeni bir kapsayıcı-konteyner yeniden başlat - -Ortam Değişkenleri ---------------------- - -Ortam değişkenleri listesi [bu sayfa](env.markdown) 'da mevcuttur. - -Yapılandırma dosyaları ------------- - -- Kapsayıcı-konteyner da zaten `/var/www/app/config.php` de bulunan özel bir yapılandırma dosyası bulunmaktadır. -- Kendi yapılandırma dosyanızı veri hacmine kaydedebilirsiniz: `/var/www/app/data/config.php`. - -Kaynaklar ----------- - -- [Resmi Kanboard görüntü-image](https://registry.hub.docker.com/u/kanboard/kanboard/) -- [Docker belgeleri](https://docs.docker.com/) -- [Dockerfile kararlı sürümü](https://github.com/kanboard/docker) -- [Dockerfile dev sürümü](https://github.com/kanboard/kanboard/blob/master/Dockerfile) diff --git a/doc/tr_TR/duplicate-move-tasks.markdown b/doc/tr_TR/duplicate-move-tasks.markdown deleted file mode 100644 index 09d8367f..00000000 --- a/doc/tr_TR/duplicate-move-tasks.markdown +++ /dev/null @@ -1,58 +0,0 @@ -Görevleri çoğaltmak ve taşımak -======================== - -Bir görevi aynı projeye çoğalt --------------------------------------- - -Görev görünümüne gidin ve soldaki **Çoğalt** seçeneğini belirleyin. - -![Task Duplication](../screenshots/task-duplication.png) - -Orijinalle aynı özelliklere sahip yeni bir görev oluşturulur. - -Görevi başka bir projeye çoğalt ------------------------------------ - -Görev görünümüne gidin ve **Başka bir projeye çoğalt** seçeneğini seçin. - -![Task Duplication Another Project](../screenshots/task-duplication-another-project.png) - -Açılır menüde yalnızca üye olduğunuz projeler gösterilecektir. - -Görevleri kopyalamadan önce, Kanboard kaynak ve hedef proje arasında ortak olmayan hedef özellikleri soracaktır. - -Temelde şunları tanımlamanız gerekir: - -- Hedef kulvar -- Sütun -- Kategori -- Atanan kişi - -Görevi başka bir projeye taşıma ------------------------------- - -Görev görünümüne gidin ve **Başka bir projeye taşı** öğesini seçin. - -Bir görevi başka bir proje çalışmasına çoğaltma ile aynı şekilde taşıdığınızda, görevin yeni özelliklerini seçmeniz gerekir. - -Çoğaltılan alanların listesi -------------------------- - -Çoğaltılmış özelliklerin listesi aşağıda: - -- 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/doc/tr_TR/editing-projects.markdown b/doc/tr_TR/editing-projects.markdown deleted file mode 100644 index 54fe7866..00000000 --- a/doc/tr_TR/editing-projects.markdown +++ /dev/null @@ -1,15 +0,0 @@ -Projeleri Düzenleme -================ - -Projeler yeniden adlandırılabilir ve istediğiniz zaman devre dışı bırakılabilir. - -Bir projeyi yeniden adlandırmak için soldaki "Projeyi düzenle" bağlantısına tıklamanız yeterlidir. - -![Project edition](../screenshots/project-edition.png) - -- Başlangıç tarihi ve bitiş tarihi proje Gantt grafiğini oluşturmak için kullanılır -- Tanım, panoda ve proje listeleme sayfasında araç ipucu olarak görünür -- Yöneticiler ve proje yöneticileri, "Özel proje" onay kutusunu değiştirerek özel bir projeyi birden fazla kullanıcı projesine dönüştürebilirler. -- Birden fazla kullanıcı projesini özel bir projeye dönüştürebilirsiniz. - -Not: Bir projeyi özel yaptığınızda, mevcut tüm kullanıcılar projeye hâlâ erişebilir. Kullanıcı listesini ihtiyaçlarınıza göre ayarlayın. diff --git a/doc/tr_TR/email-configuration.markdown b/doc/tr_TR/email-configuration.markdown deleted file mode 100644 index ed9271f0..00000000 --- a/doc/tr_TR/email-configuration.markdown +++ /dev/null @@ -1,115 +0,0 @@ -E-posta yapılandırması -=================== - -Kullanıcı ayarları -------------- - -E-posta bildirimlerini almak için, Kanboard kullanıcıları şunları yapmalıdır: - -- Profillerinde etkinleştirilmiş bildirimler -- Profillerinde geçerli bir e-posta adresiniz olsun -- Bildirimleri tetikleyecek projenin bir üyesi olun - -Not: İşlemi gerçekleştiren oturum açmış kullanıcı herhangi bir bildirim almıyor, yalnızca diğer proje üyeleri. - -E-posta taşımaları ----------------- - -Kullanabileceğiniz birkaç e-posta ulaşımı vardır: - -- SMTP -- Sendmail -- PHP doğal-native posta fonksiyonu -- Diğer yöntemler harici eklentiler tarafından sağlanabilir: Postmark, Sendgrid ve Mailgun - -Sunucu ayarları ---------------- - -Varsayılan olarak, Kanboard, e-postalar göndermek için birlikte verilen PHP posta işlevini kullanacaktır. -Sunucunuz zaten e-posta gönderebiliyorsa genellikle yapılandırma gerektirmez. - -Bununla birlikte, SMTP protokolü ve Sendmail gibi diğer yöntemleri kullanmak mümkündür. - -### SMTP yapılandırması - -`config.default.php` dosyasını `config.php` olarak yeniden adlandırın ve bu değerleri değiştirin: - -```php -// 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'); -``` - -Güvenli bir bağlantı, TLS veya SSL kullanmak da mümkündür: - -```php -define('MAIL_SMTP_ENCRYPTION', 'ssl'); // Valid values are "null", "ssl" or "tls" -``` - -### Sendmail yapılandırması - -Varsayılan olarak sendmail komutu `/usr/sbin/sendmail -bs` olacaktır, ancak bunu yapılandırma dosyanızda özelleştirebilirsiniz. - -Örnek: - -```php -// 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'); -``` - -### PHP doğal-native posta fonksiyonu - -Varsayılan yapılandırma şu şekildedir: - -```php -define('MAIL_TRANSPORT', 'mail'); -``` - -### Gönderenin e-posta adresi - -Varsayılan olarak, e-postalar gönderenin adresini `notifications@kanboard.local` kullanacaktır. -Bu adrese cevap vermek mümkün değildir. - -Bu adresi, yapılandırma dosyanızdaki `MAIL_FROM` sabitinin değerini değiştirerek özelleştirebilirsiniz. - -```php -define('MAIL_FROM', 'kanboard@mydomain.tld'); -``` - -SMTP sunucusu yapılandırmanız varsayılan adresi kabul etmiyorsa bu yararlı olabilir. - -### Bildirimlerdeki göreve bir bağlantı nasıl görüntülenir? - -Bunu yapmak için, [Uygulama Ayarları](application-configuration.markdown) bölümünde Kanboard kurulumunuzun URL'sini belirtmeniz gerekir. -Varsayılan olarak, hiçbir şey tanımlanmadığından hiçbir bağlantı görüntülenmez. - -Örnekler: - -- http://myserver/kanboard/ -- http://kanboard.mydomain.com/ - -Bitiş eğik çizgisini`/` unutmayın. - -Kanboard, URL'yi bir komut satırı komut dosyasından tahmin edemediğinden ve bazı kişilerin çok spesifik bir yapılandırmaya sahip olmasından bunu manuel olarak tanımlamanız gerekir. - -Sorun giderme ---------------- - -E-posta gönderilmiyorsa ve her şeyin doğru yapılandırıldığından eminseniz: - -- Spam dosyanı kontrol et -- Hata ayıklama modunu etkinleştirin ve `data/debug.log` hata ayıklama dosyasını kontrol edin, tam hatayı görmelisiniz -- Sunucunuzun veya barındırma sağlayıcınızın e-postalar göndermenize izin verdiğinden emin olun -- SeLinux'u kullanırsanız, PHP'nin e-postaları göndermesine izin verin - - diff --git a/doc/tr_TR/env.markdown b/doc/tr_TR/env.markdown deleted file mode 100644 index 150373ce..00000000 --- a/doc/tr_TR/env.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Ortam Değişkenleri -===================== - -Ortam değişkenleri, Kanboard konteyner (Docker) olarak kullanıldığında yararlı olabilir. - - -| Değişken | Tanım | -|---------------|---------------------------------------------------------------------------------------------------------------------------------| -| DATABASE_URL | `[Veritabanı türü]://[kullanıcı adı]:[şifre]@[host]:[port]/[veritabanı adı]`, örnek: `postgres://foo:foo@myserver:5432/kanboard` | -| DEBUG | Hata ayıklama modunu etkinleştir/devre dışı bırak: "true" veya "false" | diff --git a/doc/tr_TR/faq.markdown b/doc/tr_TR/faq.markdown deleted file mode 100644 index 17cd3c8a..00000000 --- a/doc/tr_TR/faq.markdown +++ /dev/null @@ -1,128 +0,0 @@ -Sıkça Sorulan Sorular (F.A.Q. -S.S.S.) -========================== - -Kanboard için bir web barındırma sağlayıcısı önerebilir misiniz? ------------------------------------------------------- - -Kanboard, herhangi bir büyük VPS barındırma sağlayıcısı ile iyi çalışır; [Digital Ocean](https://www.digitalocean.com/?refcode=4b541f47aae4), -[Linode](https://www.linode.com/?r=4e381ac8a61116f40c60dc7438acc719610d8b11) veya [Gandi](https://www.gandi.net/) gibi. - -En iyi performansa sahip olmak için, Kanboard'un varsayılan olarak Sqlite'i kullanması nedeniyle hızlı disk G/Ç(I/O)'si olan bir sağlayıcı seçin. -Paylaşılan bir NFS bağlama noktası kullanan barındırma sağlayıcılarından kaçının. - - -"Sisteminizde uygun bir CSPRNG yüklü değil" -"There is no suitable CSPRNG installed on your system" hatası; ------------------------------------------------------------------------ - -PHP <7.0 kullanıyorsanız, openssl uzantısının etkinleştirilmesini sağlamanız gerekir veya eğer bir `open_basedir` kısıtlaması ile kısıtlanmışsa uygulamadan `/dev/urandom` alanına erişilebilir olmalıdır. - - -Sayfa bulunamadı ve URL yanlış görünüyor (&amp;) --------------------------------------------------- - -- URL, `?controller=auth&action=login&redirect_query=` yerine `/?controller=auth&action=login&redirect_query=` gibi görünüyor. -- Kanboard, "Sayfa bulunamadı" hatası döndürür - -Bu sayı PHP yapılandırmanızdan geliyor, `arg_separator.output` değeri PHP'nin varsayılanı değil, bunu düzeltmenin farklı yolları var: - -Eğer yapabiliyorsanız, doğrudan `php.ini` dosyanızdaki değeri değiştirin: - -``` -arg_separator.output = "&" -``` - -Değeri `.htaccess` ile geçersiz kılın: - -``` -php_value arg_separator.output "&" -``` - -Aksi takdirde, Kanboard değeri doğrudan PHP'de geçersiz kılmaya çalışacaktır. - - -API ve Apache + PHP-FPM ile kimlik doğrulama başarısızlığı --------------------------------------------------------- - -Apache altındaki php-cgi, varsayılan olarak HTTP temel kullanıcı/şifre'sini PHP'ye geçirmiyor. -Bu geçici çözümün çalışması için aşağıdaki şu satırları `.htaccess` dosyanıza ekleyin: - -``` -RewriteCond %{HTTP:Authorization} ^(.+)$ -RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] -``` - - -eAccelerator ile bilinen sorunlar ------------------------------- - -Kanboard, [eAccelerator](http://eaccelerator.net) ile çok iyi çalışmıyor. -Buna sebep boş bir sayfa veya bir Apache çökmesi olabilir: - -``` -[Wed Mar 05 21:36:56 2014] [notice] child pid 22630 exit signal Segmentation fault (11) -``` - -Bu sorunu önlemenin en iyi yolu, eAccelerator'ı devre dışı bırakmak veya hangi dosyaların önbelleklemek istediğinizi `eaccelerator.filter` yapılandırma parametresiyle el-ile manuel olarak tanımlamaktır. - -[eAccelerator projesi ölü gibi görünüyor ve 2012'den beri güncellenmedi](https://github.com/eaccelerator/eaccelerator/commits/master). -[OPcache](http://php.net/manual/en/intro.opcache.php) ile paketlendiğinden PHP'nin son sürümüne geçmenizi öneririz. - - -Neden minimum gereksinim PHP 5.3.3'tir? ------------------------------------------ - -Kanboard, parolaları şifrelemek için `password_hash ()` işlevini kullanır, ancak bu işlev yalnızca PHP >= 5.5 için kullanılabilir. - -Bununla birlikte, [eski PHP sürümleri](https://github.com/ircmaxell/password_compat#requirements) için bir arka port var. -Bu kütüphane, en azından PHP 5.3.7'nin doğru çalışmasını gerektiriyor. - -Görünüşe göre, Centos ve Debian arka-port güvenlik güncellemeleri yaptı, böylece PHP 5.3.3 tamam olmalıdır. - -Kanboard v1.0.10 ve v1.0.11, en azından PHP 5.3.7 gerektirir, ancak bu değişiklik, Kanboard >= v1.0.12 ile PHP 5.3.3 ile uyumlu olacak şekilde geri döndürülmüştür - -Kanboard PHP yerel-local dahili web sunucusu ile nasıl test edilir? ------------------------------------------------------- - -Eğer localhost üzerinde Apache gibi bir web sunucusu kurmak istemiyorsanız. [PHP'nin gömülü web sunucusu ile ](http://www.php.net/manual/en/features.commandline.webserver.php) test edebilirsiniz: - -```bash -unzip kanboard-VERSION.zip -cd kanboard -php -S localhost:8000 -open http://localhost:8000/ -``` - - -Yunboard üzerinde Kanboard nasıl kurulabilir? ------------------------------------- - -[YunoHost](https://yunohost.org/) , Herkes tarafından kullanılabilir olan kendi kendini barındırmayı amaçlayan bir sunucu işletim sistemidir. - -[Yunohost üzerine Kanboard u kolayca yüklemek için paket] var. (https://github.com/mbugeia/kanboard_ynh). - - -İlgili projelerin listesini nereden bulabilirim? --------------------------------------------- - -- [Kanboard API python istemcisi @freekoder tarafından](https://github.com/freekoder/kanboard-py) -- [Kanboard Sunum David Eberlein tarafından](https://github.com/davideberlein/kanboard-presenter) -- [CSV2Kanboard @ashbike tarafından](https://github.com/ashbike/csv2kanboard) -- [Yunohost için Kanboard by @mbugeia](https://github.com/mbugeia/kanboard_ynh) -- [Trello Içe aktarma komut dosyası @matueranet tarafından](https://github.com/matueranet/kanboard-import-trello) -- [Chrome eklentisi Timo tarafından](https://chrome.google.com/webstore/detail/kanboard-quickmenu/akjbeplnnihghabpgcfmfhfmifjljneh?utm_source=chrome-ntp-icon), [Kaynak kodu](https://github.com/BlueTeck/kanboard_chrome_extension) -- [Python istemci komut dosyası @dzudek tarafından](https://gist.github.com/fguillot/84c70d4928eb1e0cb374) -- [SQLite dan MySQL/MariaDB geçiş için için kabuk betiği @oliviermaridat tarafından](https://github.com/oliviermaridat/kanboard-sqlite2mysql) - -- [Kanboard ile entegrasyon Için Git kancaLARI(hooks) Gene Pavlovsky tarafından](https://github.com/gene-pavlovsky/kanboard-git-hooks) - -Kanboard hakkında diğer dillerde bazı eğitimler var mı? ------------------------------------------------------------ - -- [Kanboard hakkında Alman makale dizisi](http://demaya.de/wp/2014/07/kanboard-eine-jira-alternative-im-detail-installation/) - - -İpuçları ----- - -- [SQLite veritabanında ad sınırlamasını kaldırmanın kolay yolu](https://github.com/kanboard/kanboard/issues/1508) diff --git a/doc/tr_TR/freebsd-installation.markdown b/doc/tr_TR/freebsd-installation.markdown deleted file mode 100644 index bb687ebf..00000000 --- a/doc/tr_TR/freebsd-installation.markdown +++ /dev/null @@ -1,126 +0,0 @@ -FreeBSD 10 Kurulum -======================= - -Paketlerden yükle ---------------------- - -```bash -$ pkg update -$ pkg upgrade -$ pkg install apache24 mod_php56 kanboard -``` - -`/etc/rc.conf` dosyanızdaki Apache'yi etkinleştirin: - -```bash -$ echo apache24_enable="YES" >> /etc/rc.conf -``` - -Apache için PHP yi kurun: - -```bash -$ 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 -``` - -Sonra Apache'yi başlatın: - -```bash -$ service apache24 start -``` - -Kanboard klasörüne, Apache docroot'unuza sembolik bağ ekleyin: - -```bash -cd /usr/local/www/apache24/data -ln -s /usr/local/www/kanboard -``` - -http://your.server.domain.tld/ adresine gidin ve tadını çıkarın! - -*Notlar*: -- LDAP entegrasyonu gibi ek özellikler kullanmak istiyorsanız; Lütfen pkg'yi kullanarak uygun PHP modülünü kurun. -- Klasör verisinin izinlerini ayarlamanız gerekebilir - -Bağlantı noktalarından yükleme ---------------------- - -Genellikle 3 eleman kurulmalıdır: - -- Apache -- Apache için mod_php -- Kanboard - -Bağlantı noktaları getir ve çıkar - -```bash -$ portsnap fetch -$ portsnap extract -``` - -Veya mevcut haliyle güncelleme: - -```bash -$ portsnap fetch -$ portsnap update -``` - -Portsnap ile ilgili daha fazla bilgi [FreeBSD Handbook](https://www.freebsd.org/doc/handbook/ports-using.html) 'da bulunabilir. - -Apache'yi kur: - -```bash -$ cd /usr/ports/www/apache24 -$ make install clean -``` -Enable Apache in your `/etc/rc.conf`: - -```bash -$ echo apache24_enable="YES" >> /etc/rc.conf -``` - -Apache için mod_php'yi kurun: - -```bash -$ cd /usr/ports/www/mod_php5 -$ make install clean -``` - -Kanboard form bağlantı noktalarını yükle: - -```bash -$ cd /usr/ports/www/kanboard -$ make install clean -``` - -Kanboard formu portları yükleyin - -```bash -$ 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 -``` - -Sonra Apache'yi başlatın: - -```bash -$ service apache24 start -``` - -http://your.server.domain.tld/kanboard adresine gidin ve tadını çıkarın! - -*Not*: -LDAP entegrasyonu gibi ek özellikleri kullanmak isterseniz -Lütfen `lang/php5-extensions` den uygun PHP eklentisi-modülünü kurun. - -El ile kurulum -------------------- - -Sürüm 1.0.16 itibariyle Kanboard FreeBSD portlarında bulunabilir -Elle kurmanıza gerek yoktur. - -Lütfen aklınızda bulundurun ------------ - -- Portlar [bitbucket](https://bitbucket.org/if0/freebsd-kanboard/) üzerinde barındırılıyor . Yorum yapmaktan çekinmeyin -fork edin ve güncelleme önermek için çekinmeyin! -- Kanboard'un bazı özellikleri, [günlük arka plan işi-cronjob](cronjob.markdown) çalıştırmanızı gerektirir. diff --git a/doc/tr_TR/gantt-chart-projects.markdown b/doc/tr_TR/gantt-chart-projects.markdown deleted file mode 100644 index ac29fc08..00000000 --- a/doc/tr_TR/gantt-chart-projects.markdown +++ /dev/null @@ -1,17 +0,0 @@ -Tüm projeler için Gantt Grafiği -============================ - -Bu Gantt tablosunun amacı, başlangıç ve bitiş tarihlerine dayanan tüm projelerin bir genel görünümünü görüntülemektir. - -- Bu Gantt tablosu proje yönetimi bölümündedir. -- Yalnızca proje yöneticileri ve yöneticiler bu bölüme erişebilir -- Proje yöneticileri yalnızca üyelerinin bulunduğu yerdeki projeleri görür -- Özel projeler bu tabloda gösterilmiyor - -![Gantt Chart for all projects](../screenshots/gantt-chart-all-projects.png) - -- Projelerin **başlangıç tarihi** ve **bitiş tarihi** grafik çizmek için kullanılır -- Yatay çubuklar yeniden boyutlandırılabilir ve farenizle yatay olarak hareket ettirilebilir -- Dikey sürükle ve bırak yok -- Başlangıç veya bitiş tarihi tanımlanmadığında proje çubukları siyah renkte gösterilir -- Bilgi araç ipucu, proje yöneticilerinin ve standart üyelerin listesini gösterir diff --git a/doc/tr_TR/gantt-chart-tasks.markdown b/doc/tr_TR/gantt-chart-tasks.markdown deleted file mode 100644 index 27b23250..00000000 --- a/doc/tr_TR/gantt-chart-tasks.markdown +++ /dev/null @@ -1,20 +0,0 @@ -Görevler için Gantt grafiği -====================== - -Bu Gantt grafiğinin amacı, belirli bir projenin görevleri için zamana dayalı bir genel bakış sunmaktır. - -- Gantt tablosu "görüntü değiştirici" alanındadır. -- Sadece proje yöneticileri bu bölüme erişebilir - -![Gantt Chart](../screenshots/gantt-chart-project.png) - -- Görevlerin **başlangıç tarihi** ve **son tarihi** grafik çizmek için kullanılır -- Görevler, farenizle yatay olarak yeniden boyutlandırılabilir ve taşınabilir -- Dikey sürükle ve bırak yok -- Çubuk görevle aynı renktedir -- Her çubuk bir ilerleme durumu yüzde olarak görüntüler, bu yüzde tahtadaki sütun pozisyonunu kullanarak hesaplanır -- Kanban modeline uymak için, görevler pano pozisyonlarına göre veya başlangıç tarihine göre sipariş edilebilir -- Bu görünümden yaratılan yeni görevler, ilk sütundaki 1 numaralı sayfada tahtada görüntülenir -- Görevler, başlangıç veya bitiş tarihi tanımlanmadığında siyah olarak görüntülenir - -![Task not defined](../screenshots/gantt-chart-not-defined.png) diff --git a/doc/tr_TR/groups.markdown b/doc/tr_TR/groups.markdown deleted file mode 100644 index bb404fb7..00000000 --- a/doc/tr_TR/groups.markdown +++ /dev/null @@ -1,17 +0,0 @@ -Grup Yönetimi -================= - -Kanboard'da her kullanıcı bir veya daha fazla gruba üye olabilir. -Bir grup bir takım ya da bir organizasyon gibidir. - -Yalnızca yöneticiler yeni gruplar oluşturabilir ve kullanıcıları atayabilir. - -Gruplar **Kullanıcı yönetimi>Tüm Grupları Görüntüle** 'den yönetilebilir. -Buradan, gruplar oluşturabilir ve kullanıcıları atayabilirsiniz. - -![Group Management](../screenshots/groups-management.png) - -Her proje yöneticisi, [proje izinleri sayfası](project-permissions.markdown) 'dan bir grup gruba erişimi yetkilendirir. - -Dış kimlik, çoğunlukla harici grup sağlayıcıları için kullanılır. -Kanboard [otomatik olarak grupları LDAP sunucularından senkronize et](ldap-group-sync.markdown) için bir LDAP grup sağlayıcısı sağlar. diff --git a/doc/tr_TR/heroku.markdown b/doc/tr_TR/heroku.markdown deleted file mode 100644 index 6be7cebb..00000000 --- a/doc/tr_TR/heroku.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Heroku üzerinde Kanboard dağıtma -========================= - -[Heroku](https://www.heroku.com/) 'da Kanboard'u ücretsiz deneyebilirsiniz. -Bu tek bir tıklama yükleme düğmesini kullanabilirsiniz veya aşağıdaki el-ile-manuel talimatları izleyin: - -[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy?template=https://github.com/kanboard/kanboard) - -Gereksinimler ------------- - -- Heroku hesabı, ücretsiz bir hesap kullanabilirsiniz -- Heroku komut satırı araçları yüklenmiş olmalı - -Manuel talimatlar -------------------- - -```bash -# Get the last development version -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) -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 -``` - -Sınırlamalar ------------ - -- Heroku'nun depolaması kısa ömürlüdür, bu da, bir yeniden başlatma sonrasında yüklenen dosyalar Kanboard'dan kalıcı değildir. Dosyalarınızı [Amazon S3](https://github.com/kanboard/plugin-s3) gibi bir bulut depolama sağlayıcısına depolamak için bir eklenti kurmak isteyebilirsiniz. -- Kanboard'un bazı özellikleri, [günlük arka plan işi](cronjob.markdown) çalıştırmanızı gerektirir. diff --git a/doc/tr_TR/ical.markdown b/doc/tr_TR/ical.markdown deleted file mode 100644 index a3e79982..00000000 --- a/doc/tr_TR/ical.markdown +++ /dev/null @@ -1,78 +0,0 @@ -Takvimlerinizi (eş zamanlı bilgi aktarma) senkronize etme -====================== - -Kanboard, projeler ve kullanıcılar için iCal özet akışlarını desteklemektedir. -Bu özellik, neredeyse tüm takvim programlarında (örneğin Microsoft Outlook, Apple Takvim, Mozilla Thunderbird ve Google Takvim) Kanboard görevlerini almanıza olanak tanır. - -Takvim abonelikleri **yalnızca okunur** erişimindendir, sizin dışarıdan kullandığınız takvim yazılımından görevler oluşturamazsınız. -Takvim beslemesi(feed'i)'ni dışa aktarma, iCal standardını takip eder. - -Not: Yalnızca -2 ay (önceki) ila +6 aylık (sonraki) tarih aralıklarındaki görevler iCalendar beslemesi(feed'e)'ne aktarılır. - -Proje takvimleri ------------------ - -- Her projenin kendi takvimi vardır. -- Proje başına abonelik bağlantısı benzersizdir, projenizin herkese açık erişimini etkinleştirdiğinizde bu bağlantı etkinleştirilir: **Proje ayarları>Herkese açık erişim**. -- Bu takvim, seçilen proje için yalnızca görevleri gösterir. - -Kullanıcı takvimleri --------------- - -- Her kullanıcının kendi takvimi vardır. -- Kullanıcı başına abonelik bağlantısı benzersizdir; kullanıcının herkese açık erişimini etkinleştirdiğinizde bağlantı etkindir: **Kullanıcı profili>Herkese açık erişim**. -- Bu takvim, kullanıcılara tüm projeler için atanan görevleri gösterir. - -Kanboard takviminizi Apple Takvim(Calendar)'e ekleme ------------------------------------------------ - -- Takvim'i aç -- **Dosya>Yeni Takvim Aboneliği** seçeneğini seçin. -- Kanboard'dan iCal özet akışı (besleme-feed) URL'sini kopyalayıp yapıştırın - -! [iCal aboneliğini ekleyin] (../screenshots / apple-calendar-add-subscription.png) - -- Takvimi iCloud ile senkronize etmeyi tüm cihazlarınızda mevcut olacak şekilde seçebilirsiniz -- Yenileme sıklığını seçmeyi unutmayın - -![Edit iCal subscription](../screenshots/apple-calendar-edit-subscription.png) - -Kanboard takviminizi Microsoft Outlook'a ekleme --------------------------------------------------- - -![Outlook Add Internet Calendar](../screenshots/outlook-add-subscription.png) - -- Outlook'u açın -- ** Takvimi aç>İnternet'ten** i seçin -- Kanboard'dan iCal özet akışı (besleme-feed) URL'sini kopyalayıp yapıştırın - -![Outlook Edit Internet Calendar](../screenshots/outlook-edit-subscription.png) - -Mozilla Thunderbird'e Kanboard takviminizi ekleme ----------------------------------------------------- - -- Thunderbird'e takvim desteği eklemek için ** Lightning ** Eklenti yazılımını yükleyin -- **Dosya>Yeni Takvim** 'i tıklayın -- İletişim kutusunda **Ağda** seçeneğini belirleyin - -![Thunderbird Step 1](../screenshots/thunderbird-new-calendar-step1.png) - -- iCalendar biçimini seçin -- Kanboard'dan iCal özet akışı (besleme-feed) URL'sini kopyalayıp yapıştırın - -![Thunderbird Step 2](../screenshots/thunderbird-new-calendar-step2.png) - -- Renkleri ve diğer ayarları seçin ve sonunda kaydedin - -Kanboard takviminizi Google Takvim'e ekleme ------------------------------------------------- - -- **Diğer takvimler** 'in yanındaki aşağı-oku tıklayın. -- Menüden **Link ekle-Add URL** seçeneğini seçin. -- Kanboard'dan iCal özet akışı (besleme-feed) URL'sini kopyalayıp yapıştırın - -![Google Calendar](../screenshots/google-calendar-add-subscription.png) - -Senkronizasyonunu etkinleştirirseniz, Kanboard takviminiz Android cihazınızdan da kullanılabilir. - -Not: Google Destek'e göre, harici takvimler çok sık yenilenmiyor, [belgeleri okuyun](https://support.google.com/calendar/answer/37100?hl=en&ref_topic=1672445). diff --git a/doc/tr_TR/installation.markdown b/doc/tr_TR/installation.markdown deleted file mode 100644 index c46c379d..00000000 --- a/doc/tr_TR/installation.markdown +++ /dev/null @@ -1,73 +0,0 @@ -Kurulum Talimatları -============ - -Öncelikle, daha ileri gitmek için önce [gereksinimler](requirements.markdown) kontrol edin. - -Arşivden (kararlı sürüm) ---------------------------------- - -1. PHP'nin yüklü olduğu bir web sunucunuz olmalıdır -2. Kaynak kodu indirin ve istediğiniz yere `kanboard` dizini kopyalayın -3. `data` dizininin web sunucusu kullanıcısı tarafından yazılabilir olup olmadığını kontrol edin -4. Tarayıcınızla <http://yourpersonalserver/kanboard> adresine gidin -5. Varsayılan kullanıcı adı ve şifre **admin/admin** -6. Kanboard yazılımını kullanmaya başlayın -7. Parolanızı değiştirmeyi unutmayın! - -`data` klasörü depolamak için kullanılır: - -Sqlite veritabanı: `db.sqlite` -- Hata ayıklama dosyası: `debug.log` (hata ayıklama modu etkinleştirilmişse) -- Yüklenen dosyalar: `files/*` -- Resim tırnak-thumb ları: `files/thumbnails/*` - -Uzak bir veritabanı (Mysql/Postgresql) ve uzak nesne depolama birimi (Aws S3 veya benzeri) kullananların mutlaka kalıcı bir yerel veri klasörüne sahip olmaları veya izinlerini değiştirmeleri gerekmez. - -Git deposundan (geliştirme versiyonu) ---------------------------------------------- - -1. `git clone https://github.com/kanboard/kanboard.git` -2. Yukarıdaki üçüncü adıma geçin - -Not: Bu yöntem, **mevcut geliştirme sürümünü** yükleyecektir, kendi sorumluluğunuzdadır. - -Belge kökü-root dışında kurulum ------------------------------------------ - -Kanboard'u web sunucusu belge kökü dışında yüklemek isterseniz, en azından bu sembolik bağları-symlinks oluşturmanız gerekir: - -```bash -. -├── assets -> ../kanboard/assets -├── cli -> ../kanboard/cli -├── doc -> ../kanboard/doc -├── favicon.ico -> ../kanboard/favicon.ico -├── index.php -> ../kanboard/index.php -├── jsonrpc.php -> ../kanboard/jsonrpc.php -└── robots.txt -> ../kanboard/robots.txt -``` - -İçeriği doğrudan Apache yapılandırmasına eklenebileceğinden `.htaccess` isteğe bağlıdır. - -[Yapılandırma dosyası-Config file](config.markdown) değiştirerek eklentiler ve dosyalar klasörleri için özel bir yer de tanımlayabilirsiniz. - - -Diğer Veritabanı Türleri --------------------- - -Kanboard, MySQL ve Postgres'i Sqlite'e alternatif olarak desteklemektedir. - -- [Mysql yapılandırması](mysql-configuration.markdown) -- [Postgres yapılandırması](postgresql-configuration.markdown) - -İsteğe Bağlı Kurulum ---------------------- - -- Kanboard'un bazı özellikleri, [günlük arka plan işi-cronjob](cronjob.markdown) çalıştırmanızı gerektirir (Raporlar ve analizler için) . -- Performansı artırmak için [Arka plan çalışanını kurun](worker.markdown) - -Güvenlik --------- - -- Varsayılan kullanıcı/şifreyi değiştirmeyi unutmayın -- Herkese URL'den `data` dizinine erişmesine izin verme. Apache için zaten bir `.htaccess` ve IIS için bir `web.config` dosyası var, ancak diğer web sunucuları için bir şey yok. diff --git a/doc/tr_TR/kanban-vs-todo-and-scrum.markdown b/doc/tr_TR/kanban-vs-todo-and-scrum.markdown deleted file mode 100644 index a751b8c3..00000000 --- a/doc/tr_TR/kanban-vs-todo-and-scrum.markdown +++ /dev/null @@ -1,37 +0,0 @@ -Kanban - Todo Listeleri ve Scrum -============================== - -Kanban - Todo listeleri karşılaştırma ---------------------------------- - -### Todo listeleri: - -- Tek aşamalı (yalnızca bir öğe listesi) -- Çoklu görev mümkün (verimli değil) - -### Kanban: - -- Çok fazlı, her sütun bir adım temsil eder -- Sütun başına bir işi ilerleme sınırı belirleyebildiğiniz için Odaklanıp ve Çok görevden kaçınırsınız - -Kanban - Scrum karşılaştırma -------------------- - -### Scrum: - -- Sprint ler time-boxed zaman-kutuları, genellikle 2 veya 4 hafta -- Yineleme sırasında değişikliklere izin verilmez -- Tahmin gerekli -- Hız varsayılan metrik olarak kullanılır -- Scrum panosu her sprint arasında silinir -- Scrum, scrum master, ürün sahipleri ve takım gibi önceden tanımlanmış rollere sahiptir -- Bir çok toplantı: planlama, backlogs geri-bilgi düzenleme, günlük ayak üstü, retrospektif - -### Kanban: - -- Sürekli akış -- Değişiklikler her an yapılabilir -- Tahmin isteğe bağlıdır -- Performansı ölçmek için teslim ve döngü süresi kullanılır -- Kanban tahtası kalıcıdır -- Kanban sıkı kısıtlamalar veya toplantılar öngörmemektedir, süreç daha esnektir diff --git a/doc/tr_TR/keyboard-shortcuts.markdown b/doc/tr_TR/keyboard-shortcuts.markdown deleted file mode 100644 index 9257dce3..00000000 --- a/doc/tr_TR/keyboard-shortcuts.markdown +++ /dev/null @@ -1,38 +0,0 @@ -Klavye kısayolları -================== - -Klavye kısayollarının kullanılabilirliği, bulunduğunuz sayfaya bağlıdır. - -Proje görünümleri (Pano, Takvim, Liste, Gantt) --------------------------------------------- - -- Projeye genel bakışa geçiş = **v o** -- Pano görünümüne geçin = **v b** (**v** sonra **b** üzerine basın) -- Takvim görünümüne geçin = **v c** -- Liste görünümüne geçin = **v l** -- Gantt görünümüne geçin = **v g** - -Pano görünümü ----------- - -- Yeni görev = **n** -- Görevleri genişlet/daralt **s** -- Panoda Kompakt/geniş görünüm = **c** - -Görev görünümü ---------- - -- Görevi düzenle = **e** -- Yeni alt görev ** = **s** -- Yeni yorum = **c** -- Yeni iç bağlantı-link = **l** - -Uygulama ------------ - -- Klavye kısayollarının listesini görüntüle = **?** -- Açık pano anahtarı = **b** -- Arama kutusuna gidin = **f** -- Arama kutusunu sıfırlayın = **r** -- Diyalog ekranını kapat = **ESC** -- Formu gönder = **CTRL+ENTER** veya **⌘+ENTER** diff --git a/doc/tr_TR/ldap-authentication.markdown b/doc/tr_TR/ldap-authentication.markdown deleted file mode 100644 index c6d31117..00000000 --- a/doc/tr_TR/ldap-authentication.markdown +++ /dev/null @@ -1,185 +0,0 @@ -LDAP Kimlik Doğrulaması -=================== - -Gereksinimler ------------- - -- PHP LDAP uzantısı etkinleştirin -- LDAP sunucusu: - - OpenLDAP - - Microsoft Active Directory - - Novell eDirectory - -İş Akışı --------- - -LDAP kimlik doğrulaması etkinleştirildiğinde, oturum açma işlemi şu şekilde iş görür: - -1. Önce veritabanını kullanarak kullanıcıyı doğrulamayı dener -2. Kullanıcı veritabanında bulunmazsa, bir LDAP kimlik doğrulaması yapılır -3. LDAP kimlik doğrulaması başarılı olursa, varsayılan olarak bir yerel kullanıcı otomatik olarak parola olmadan oluşturulur ve LDAP kullanıcıları olarak işaretlenir. - -Tam ad ve e-posta adresi otomatik olarak LDAP sunucusundan alınır. - -Kimlik Doğrulama Türleri --------------------- - -| Tip | Açıklama | -|-------------------|------------------------------------------------------------------------| -| Proxy Kullanıcısı | LDAP dizinine göz atmak için belirli bir kullanıcı kullanılır. | -| Kullanıcı | Son kullanıcı kimlik bilgileri LDAP dizinine göz atmak için kullanılır | -| Anonim | LDAP tarama için kimlik doğrulama yapılmaz | - -** Tavsiye edilen kimlik doğrulama yöntemi "Proxy"'dır**. - -#### Anonim mod - -```php -define('LDAP_BIND_TYPE', 'anonymous'); -define('LDAP_USERNAME', null); -define('LDAP_PASSWORD', null); -``` - -Varsayılan değer budur, ancak bazı LDAP sunucuları güvenlik nedenleriyle anonim taramaya izin vermez. - -#### Proxy mode - -LDAP dizinine göz atmak için belirli bir kullanıcı kullanılır: - -```php -define('LDAP_BIND_TYPE', 'proxy'); -define('LDAP_USERNAME', 'my proxy user'); -define('LDAP_PASSWORD', 'my proxy password'); -``` - -#### Kullanıcı modu - -Bu yöntem, son kullanıcı tarafından sağlanan kimlik bilgilerini kullanır. - -Örneğin, Microsoft Active Directory varsayılan olarak anonim taramaya izin vermez ve bir proxy kullanıcısı kullanmak istemiyorsanız bu yöntemi kullanabilirsiniz. - -```php -define('LDAP_BIND_TYPE', 'user'); -define('LDAP_USERNAME', '%s@kanboard.local'); -define('LDAP_PASSWORD', null); -``` - -Bu durumda, `LDAP_USERNAME` sabiti ldap kullanıcı adına bir örnek olarak kullanılır, örnekler: - -- `%s@kanboard.local` Yerini alacak `my_user@kanboard.local` -- `KANBOARD\\%s` Yerini alacak `KANBOARD\my_user` - -Kullanıcı LDAP filtresi ----------------- - -LDAP dizinindeki kullanıcıları bulmak için yapılandırma parametresi `LDAP_USER_FILTER` i kullanılır. - -Örnekler: - -- `(&(objectClass=user)(sAMAccountName=%s))` yerini alır `(&(objectClass=user)(sAMAccountName=my_username))` -- `uid=%s` yerini alır `uid=my_username` - -[Active Directory için filtreler](http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx) için diğer örnekler - -Kanboard'a erişimi filtrelemek için örnek: - -`(&(objectClass=user)(sAMAccountName=%s)(memberOf=CN=Kanboard Users,CN=Users,DC=kanboard,DC=local))` - -Bu örnek, sadece "Kanboard Kullanıcıları" grubunun üyelerine Kanboard'a bağlanmalarına izin verir. - -Microsoft Active Directory için Örnek --------------------------------------- - -Diyelim ki 'KANBOARD' alanına (kanboard.local) sahibiz ve birincil denetleyicisi `myserver.kanboard.local` diyelim. - -Proxy moduyla ilk örnek: - -```php -<?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))'); -``` - -Kullanıcı modu ile ikinci örnek: - -```php -<?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 için örnek --------------------- - -LDAP sunucumuz `myserver.example.com` olup tüm kullanıcılar `ou=People,dc=example,dc=com` altına saklanır. - -Bu örnek için, anonim bağlayıcı kullanıyoruz. - -```php -<?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'); -``` - -Otomatik hesap oluşturma işlemini devre dışı bırak ------------------------------------ - -Varsayılan olarak, Kanboard hiçbir şey bulunamazsa otomatik olarak bir kullanıcı hesabı oluşturacaktır. - -Kanboard'u yalnızca bazı kişilere kısıtlamak için kullanıcı hesapları oluşturmayı tercih ederseniz, bu davranışı devre dışı bırakabilirsiniz. - -`LDAP_ACCOUNT_CREATION` değerini `false` olarak değiştirmeniz yeterlidir: - -```php -// Automatically create user account -define('LDAP_ACCOUNT_CREATION', false); -``` - -Sorun giderme ---------------- - -### SELinux kısıtlamaları - -SELinux etkinleştirilirse, Apache'nin LDAP sunucunuza erişmesine izin vermeniz gerekir. - -- SELinux'ü izin moduna-permissive mode geçirebilir veya devre dışı bırakabilirsiniz (önerilmez). -- Örneğin, `setsebool -P httpd_can_network_connect=1` gibi tüm ağ bağlantılarına izin verebilir veya daha kısıtlayıcı bir kurala sahip olabilirsiniz - -Her halükarda, resmi Redhat/Centos belgelerine bakın. - -### Hata ayıklama modunu etkinleştir - -Doğru şekilde LDAP kimlik doğrulamasını kuramazsanız, [hata ayıklama modunu etkinleştirebilirsiniz](config.markdown) ve günlük dosyalarını izleyebilirsiniz. - diff --git a/doc/tr_TR/ldap-configuration-examples.markdown b/doc/tr_TR/ldap-configuration-examples.markdown deleted file mode 100644 index cd48d5aa..00000000 --- a/doc/tr_TR/ldap-configuration-examples.markdown +++ /dev/null @@ -1,222 +0,0 @@ -LDAP Yapılandırma Örnekleri -=========================== - -Microsoft Active Directory --------------------------- - -- Kullanıcı doğrulama -- Kullanıcı profili resmini Active Directory'den indirin -- Kullanıcı dilini LDAP özniteliğinden ayarlayın -- Kanboard rolleri Active Directory gruplarına eşlenir -- LDAP grup sağlayıcıları etkinleştirildi - -```php -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'); -``` - - -MemberOf yer paylaşımı ile OpenLDAP ------------------------------- - -Kullanıcı LDIF örneği: - -``` -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 -``` - -Grup LDIF örneği: - -``` -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 -``` - -Kanboard Konfigürasyonu: - -- Kullanıcı doğrulama -- Kanboard rolleri LDAP gruplarıyla eşlenir -- LDAP grup sağlayıcıları etkinleştirildi - -```php -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'); -``` - -Posix gruplarıyla OpenLDAP (memberUid) --------------------------------------- - -Kullanıcı LDIF örneği: - -``` -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 -``` - -Grup LDIF örneği: - -``` -dn: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local -objectClass: posixGroup -cn: Kanboard Managers -gidNumber: 5001 -memberUid: manager -``` - -Kanboard Konfigürasyonu: - -- Kullanıcı doğrulama -- Kanboard rolleri LDAP gruplarıyla eşlenir -- LDAP grup sağlayıcıları etkinleştirildi - -```php -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'); -``` - -GroupOfNames ile OpenLDAP --------------------------- - -Kullanıcı LDIF örneği: - -``` -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 -``` - -Grup LDIF örneği: - -``` -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 -``` - -Kanboard Konfigürasyonu: - -- Kullanıcı doğrulama -- Kanboard rolleri LDAP gruplarıyla eşlenir -- LDAP grup sağlayıcıları etkinleştirildi - -```php -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'); -``` diff --git a/doc/tr_TR/ldap-group-sync.markdown b/doc/tr_TR/ldap-group-sync.markdown deleted file mode 100644 index a5ba3d0f..00000000 --- a/doc/tr_TR/ldap-group-sync.markdown +++ /dev/null @@ -1,79 +0,0 @@ -LDAP Grubu Senkronizasyonu -========================== - -Gereksinimler ------------- - -- LDAP kimlik doğrulamasının düzgün şekilde yapılandırılmış olmasını sağlayın -- `memberOf` veya `memberUid` (PosixGroups) destekleyen bir LDAP sunucusu kullanın - -Kullanıcı gruplarını LDAP gruplarına dayalı olarak otomatik olarak tanımlama ----------------------------------------------------- - -Bu sabitleri yapılandırma dosyanızda kullanın: - -- `LDAP_GROUP_ADMIN_DN`: Uygulama yöneticileri için ayırt edici isimler -- `LDAP_GROUP_MANAGER_DN`: Uygulama yöneticileri için ayırt edici isimler - -### Active Directory Örneği: - -```php -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" kişileri "Yönetici" rolüne sahip olacak -- "Kanboard Yöneticilerinin" üyeleri "Yönetici" rolüne sahip olacak -- Herkesin "Kullanıcı" rolü olacak - -### Posix Gruplu OpenLDAP Örneği: - -```php -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 sunucunuz `memberOf` yerine `memberUid` kullanıyorsa `LDAP_GROUP_USER_FILTER` **parametresini tanımlamanız gerekir**. -Bu örnekteki tüm parametreler zorunludur. - -Proje izinleri için LDAP gruplarını otomatik olarak yükle ------------------------------------------------------- - -Bu özellik, LDAP gruplarını otomatik olarak Kanboard gruplarıyla senkronize etmenizi sağlar. -Her gruba farklı bir proje rolü atanabilir. - -Proje izinleri sayfasında, kullanıcılar otomatik tamamlama alanına gruplar girebilir ve Kanboard herhangi bir sağlayıcı etkin grupları arayabilir. - -Grup yerel veritabanında yoksa, otomatik olarak senkronize edilecektir. - -- `LDAP_GROUP_PROVIDER`: LDAP grup sağlayıcısını etkinleştirin -- `LDAP_GROUP_BASE_DN`: LDAP dizinindeki grupları bulmak için ayırt edici adlar -- `LDAP_GROUP_FILTER`: Sorguyu gerçekleştirmek için kullanılan LDAP filtresi -- `LDAP_GROUP_ATTRIBUTE_NAME`: grup adını almak için kullanılan LDAP özelliği - -### Active Directory Örneği: - -```php -define('LDAP_GROUP_PROVIDER', true); -define('LDAP_GROUP_BASE_DN', 'CN=Groups,DC=kanboard,DC=local'); -define('LDAP_GROUP_FILTER', '(&(objectClass=group)(sAMAccountName=%s*))'); -``` - -Yukarıdaki örnekte verilen filtreyle Kanboard, sorguyla eşleşen grupları arayacaktır. -Son kullanıcı, otomatik tamamlama kutusuna "Grupum" metnini girerse, Kanboard, desenle eşleşen tüm grupları döndürür: `(&(objectClass=group)(sAMAccountName=My group*))`. - -- Not 1: Burada `*` özel karakterleri önemlidir, 00aksi halde tam bir eşleşme yapılacak**. -- Not 2: Bu özellik yalnızca "proxy" veya "anonim" modda yapılandırılmış LDAP kimlik doğrulamasıyla uyumludur - -[Active Directory için daha fazla LDAP filtresi örneği](http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx) - -### Example for OpenLDAP with Posix Groups: - -```php -define('LDAP_GROUP_PROVIDER', true); -define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local'); -define('LDAP_GROUP_FILTER', '(&(objectClass=posixGroup)(cn=%s*))'); -``` - diff --git a/doc/tr_TR/ldap-parameters.markdown b/doc/tr_TR/ldap-parameters.markdown deleted file mode 100644 index 2da43169..00000000 --- a/doc/tr_TR/ldap-parameters.markdown +++ /dev/null @@ -1,36 +0,0 @@ -LDAP Yapılandırma Parametreleri -============================= - -Kullanılabilir LDAP parametrelerinin listesi aşağıdadır: - -| Parametre | Varsayılan değer | Açıklama | -|---------------------------------|------------------|------------------------------------------------| -| `LDAP_AUTH` | false | LDAP kimlik doğrulamasını etkinleştir | -| `LDAP_SERVER` | Empty | LDAP sunucusu ana makine adı | -| `LDAP_PORT` | 389 | LDAP server port | -| `LDAP_SSL_VERIFY` | true | `ldaps://` stil URL'si için sertifikayı doğrulama | -| `LDAP_START_TLS` | false | LDAP başlangıç TLS'i etkinleştir | -| `LDAP_USERNAME_CASE_SENSITIVE` | false | Kanboard, yinelenen kullanıcılardan kaçınmak için ldap kullanıcı adını küçük harflerle yazmaktadır (veritabanı büyük/küçük harf duyarlıdır) | -| `LDAP_BIND_TYPE` | anonymous | Bağ türü: "anonim", "kullanıcı" veya "vekil" | -| `LDAP_USERNAME` | null | Kullanıcı moduyla kullanılacak proxy modu veya kullanıcı adı kalıbıyla kullanılacak LDAP kullanıcı adı | -| `LDAP_PASSWORD` | null | Proxy modu için kullanılacak LDAP şifresi | -| `LDAP_USER_BASE_DN` | Empty | Kullanıcılar için LDAP DN (Örnek: "CN=Kullanıcılar,DC=kanboard,DC=yerel") | -| `LDAP_USER_FILTER` | Empty | Kullanıcı hesabı ararken kullanılacak LDAP deseni (Örnek: "(&(objectClass=user)(sAMAccountName=%s))") | -| `LDAP_USER_ATTRIBUTE_USERNAME` | uid | Kullanıcı adı için LDAP özelliği (Örnek: "samaccountname") | -| `LDAP_USER_ATTRIBUTE_FULLNAME` | cn | Kullanıcı tam adı için LDAP özelliği (Örnek: "displayname") | -| `LDAP_USER_ATTRIBUTE_EMAIL` | mail | Kullanıcı e-postası için LDAP özelliği | -| `LDAP_USER_ATTRIBUTE_GROUPS` | memberof | Kullanıcı profilinde gruplar bulmak için LDAP özniteliği | -| `LDAP_USER_ATTRIBUTE_PHOTO` | Empty | Kullanıcı fotoğrafını bulmak için LDAP özniteliği (jpegPhoto veya thumbnailPhoto) | -| `LDAP_USER_ATTRIBUTE_LANGUAGE` | Empty | Kullanıcı dili için LDAP özniteliği (preferredlanguage), kabul edilen dil biçimi "fr-FR" | -| `LDAP_USER_CREATION` | true | Otomatik LDAP kullanıcı yaratmayı etkinleştir | -| `LDAP_GROUP_ADMIN_DN` | Empty | Yöneticiler için LDAP DN (Örnek: "CN=Kanboard-Admins,CN=Users,DC=kanboard,DC=local") | -| `LDAP_GROUP_MANAGER_DN` | Empty | Müdürler için LDAP DN (Örnek: "CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local") | -| `LDAP_GROUP_PROVIDER` | false | Proje izinleri için LDAP grup sağlayıcısını etkinleştirin | -| `LDAP_GROUP_BASE_DN` | Empty | Gruplar için LDAP Tabanı DN | -| `LDAP_GROUP_FILTER` | Empty | LDAP grup filitresi (Örnek: "(&(objectClass=group)(sAMAccountName=%s*))") | -| `LDAP_GROUP_USER_FILTER` | Empty | Kanboard, tanımlandıysa, LDAP_GROUP_BASE_DN 'deki kullanıcı gruplarını bu filtre ile arayacaktır, yalnızca posixGroups için kullanışlıdır (Örnek: `(&(objectClass=posixGroup)(memberUid=%s))`) | -| `LDAP_GROUP_ATTRIBUTE_NAME` | cn | Grup adı için LDAP özniteliği | - -Notlar: - -- LDAP nitelikleri küçük harflerle yazılmış olmalıdır diff --git a/doc/tr_TR/ldap-profile-picture.markdown b/doc/tr_TR/ldap-profile-picture.markdown deleted file mode 100644 index 515e9d1c..00000000 --- a/doc/tr_TR/ldap-profile-picture.markdown +++ /dev/null @@ -1,27 +0,0 @@ -LDAP Kullanıcı Profili Fotoğrafı -======================= - -Kanboard otomatik olarak kullanıcı resimlerini LDAP sunucusundan indirebilir. - -Bu özellik, yalnızca LDAP kimlik doğrulaması etkinleştirildiğinde ve `LDAP_USER_ATTRIBUTE_PHOTO` parametresi tanımlanırsa etkinleştirilir. - -Yapılandırma -------------- - -`config.php` dosyasında, görüntüyü saklamak için kullanılan LDAP özniteliğini ayarlamanız gerekir. - -```php -define('LDAP_USER_ATTRIBUTE_PHOTO', 'jpegPhoto'); -``` - -Genellikle, `jpegPhoto` veya `thumbnailPhoto` nitelikleri kullanılır. -Görüntü JPEG veya PNG formatında saklanabilir. - -Görüntüyü kullanıcı profiline yüklemek için, Active Directory yöneticileri [AD Photo Edit](http://www.cjwdev.co.uk/Software/ADPhotoEdit/Info.html) gibi yazılımları kullanır. - -Notes ------ - -Profil resmi **kullanıcı daha önce bir resim yüklememişse giriş yaparken indirilir**. - -Kullanıcı fotoğrafını değiştirmek için önceki fotoğrafı kullanıcı profilinden el ile kaldırmanız gerekir. diff --git a/doc/tr_TR/link-labels.markdown b/doc/tr_TR/link-labels.markdown deleted file mode 100644 index bd756218..00000000 --- a/doc/tr_TR/link-labels.markdown +++ /dev/null @@ -1,11 +0,0 @@ -Bağlantı ayarları -============= - -Görev ilişkileri, uygulama ayarlarından değiştirilebilir (** Ayarlar> Bağlantı ayarları **) - -![Link Labels](../screenshots/link-labels.png) - -Her etiketin zıt bir etiketi olabilir. -Herhangi bir zıtlık yoksa, etiket iki yönlü olarak değerlendirilir. - -![Link Label Creation](../screenshots/link-label-creation.png) diff --git a/doc/tr_TR/mysql-configuration.markdown b/doc/tr_TR/mysql-configuration.markdown deleted file mode 100644 index 597d2abf..00000000 --- a/doc/tr_TR/mysql-configuration.markdown +++ /dev/null @@ -1,72 +0,0 @@ -Mysql / MariaDB Yapılandırması -=========================== - -Varsayılan olarak Kanboard, verilerini depolamak için Sqlite'i kullanır. -Ancak Mql veya MariaDB yerine Sqlite kullanmak mümkündür. - -Gereksinimler ------------- - -- MySQL sunucusu -- PHP'nin `pdo_mysql` uzantısı kuruldu - -Not: Kanboard, **Mysql> = 5.5 ve MariaDB> = 10.0** ile test edilmiştir - -MySQL yapılandırması -------------------- - -### Veritabanı oluşturma - -İlk adım, MySQL sunucunuzda bir veritabanı oluşturmaktır. -Örneğin, mysql istemcisi komut satırıyla bunu yapabilirsiniz: - -```sql -CREATE DATABASE kanboard; -``` - -### Bir yapılandırma dosyası oluştur - -`config.php` dosyasında bu değerler bulunmalıdır: - -```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'); -``` - -Not: Ayrıca, `config.default.php` şablon dosyasını `config.php` olarak yeniden adlandırabilirsiniz. - -### SQL dökümünü alma (alternatif yöntem) - -İlk kez, Kanboard her bir veritabanı geçiş işleminde tek tek çalışacak ve bu işlem konfigürasyonunuza göre biraz zaman alabilir. - -Olası bir zaman aşımını önlemek için, veritabanını doğrudan SQL şemasını içe aktararak başlatabilirsiniz: - -```bash -mysql -u root -p my_database < app/Schema/Sql/mysql.sql -``` - -`app/Schema/Sql/mysql.sql` dosyası, veritabanının son sürümünü gösteren bir SQL dökümüdür. - -SSL yapılandırması ------------------ - -Bu parametrelerin Mysql SSL bağlantısını etkinleştirmek için tanımlanması gerekir: - -```php -// 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'); -``` diff --git a/doc/tr_TR/nice-urls.markdown b/doc/tr_TR/nice-urls.markdown deleted file mode 100644 index d13ae2f5..00000000 --- a/doc/tr_TR/nice-urls.markdown +++ /dev/null @@ -1,129 +0,0 @@ -URL yeniden yazımı-rewriting -============= - -Kanboard, URL yeniden yazarlığı etkin veya olmasın kayıtsız çalışabilir. - -- URL yeniden yazılmış örneği: `/board/123` -- Aksi takdirde: `?controller=board&action=show&project_id=123` - -Kanboard'u Apache ile kullanıyorsanız ve mod yeniden yazma özelliği etkinse, güzel URL'ler otomatik olarak kullanılacaktır. -"404 Bulunamadı" mesajı alırsanız, .htaccess dosyalarını çalıştırmak için DocumentRoot için en azından şu geçersiz kılmaları ayarlamanız gerekebilir: - -```sh -<Directory /var/www/kanboard/> - AllowOverride FileInfo Options=All,MultiViews AuthConfig -</Directory> -``` - -URL Kısayolları -------------- - -- Görev "#123"'e gidin: **/t/123** -- "#2" numaralı proje panosuna gidin: **/b/2** -- Proje takvimi "#5"'e gidin: **/c/5** -- "#8." Projenin liste görünümüne gidin : **/l/8** -- Proje numarası "#42" için proje ayarlarına gidin: **/p/42** - -Yapılandırma -------------- - -Varsayılan olarak, Kanboard, Apache modu yeniden yazmanın etkin olup olmadığını kontrol edecektir. - -URL yeniden yazmanın web sunucusundan otomatik olarak algılanmasını önlemek için, bu özelliği yapılandırma dosyanızdan etkinleştirebilirsiniz: - -```php -define('ENABLE_URL_REWRITE', true); -``` - -Bu sabit `true` olduğunda: - -- Komut satırı araçlarından üretilen URL'ler de dönüştürülecek -- Apache'den başka bir web sunucusu, örnegin Nginx veya Microsoft IIS kullanıyorsanız, kendinize URL yeniden yazmayı yapılandırmanız gerekir - -Not: Kanboard her zaman eski okul URL'lerine geçmez, yapılandırılmadığında bu yapılandırma isteğe bağlıdır. - -Nginx yapılandırma örneği ---------------------------- - -Nginx yapılandırma dosyanızın `server` bölümünde şu örneği kullanabilirsiniz: - -```bash -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; -} -``` - -Kanboard `config.php` de: - -```php -define('ENABLE_URL_REWRITE', true); -``` - -Yukarıdaki örneği kendi yapılandırmanıza göre uyarlayın. - -IIS yapılandırma örneği -------------------------- - -1. IIS için Yeniden Yazma modülünü indirin ve yükleyin: [İndirme linki](http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module) -2. Yükleme klasörünüzde bir web.config dosyası oluşturun: - -```xml -<?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> -``` - -Kanboard `config.php` de: - -```php -define('ENABLE_URL_REWRITE', true); -``` - -Yukarıdaki örneği kendi yapılandırmanıza göre uyarlayın. - - diff --git a/doc/tr_TR/notifications.markdown b/doc/tr_TR/notifications.markdown deleted file mode 100644 index ecf1dfa0..00000000 --- a/doc/tr_TR/notifications.markdown +++ /dev/null @@ -1,46 +0,0 @@ -Bildirimler -============= - -Kanboard, çeşitli kanallardan bildirimler gönderebilir: - -- E-posta -- Web (Okunmamış mesajların listesi) - -Harici eklentiler Slack, Hipchat, Jabber veya herhangi bir sohbet sistemine bildirim göndermenizi sağlar. - -Yapılandırma -------------- - -Her kullanıcının profilindeki bildirimleri etkinleştirmesi gerekir: **Kullanıcı Profili>Bildirimler**. Varsayılan olarak devre dışı bırakılmıştır. - -E-posta bildirimlerini almak için profilinizde geçerli bir e-posta adresine ihtiyacınız vardır ve uygulama, e-posta göndermek üzere yapılandırılmalıdır. - -![Notifications](../screenshots/notifications.png) - -Favori bildirim yönteminizi seçebilirsiniz: - -- E-postalar -- Web (aşağıya bakın) - -Üye olduğunuz her proje için aşağıdakilerle ilgili bildirim almayı seçebilirsiniz: - -- Tüm görevler -- Sadece size verilen görevler için -- Sadece sizin tarafınızdan yaratılan görevler için -- Sadece sizin tarafınızdan yaratılan ve size verilen görevler için - -Ayrıca yalnızca bazı projeleri seçebilirsiniz, varsayılan olarak tüm üyelerinizin tamamı bu projelerdir. - -Web bildirimleri ------------------ - -Web bildirimleri, gösterge tablosundan veya üstteki simgeden edinilebilir: - -![Web Notifications Icon](../screenshots/web-notifications-icon.png) - -Bildirimler bir listede gösterilir, böylece tek tek bildirimi okundu olarak veya her şey olarak işaretleyebilirsiniz. - -![Web Notifications](../screenshots/web-notifications.png) - -Bu şekilde e-postalar almadan bildirim alabilirsiniz. - diff --git a/doc/tr_TR/performances.markdown b/doc/tr_TR/performances.markdown deleted file mode 100644 index 6400a622..00000000 --- a/doc/tr_TR/performances.markdown +++ /dev/null @@ -1,39 +0,0 @@ -Kanboard Performans -===================== - -Yapılandırmanıza göre, bazı özellikler Kanboard kullanımını yavaşlatabilir. -Varsayılan olarak, tüm işlemler eşzamanlıdır ve HTTP isteği ile aynı iş parçacığında gerçekleştirilir. -Bu bir PHP kısıtlamasıdır. -Ancak, bunu iyileştirmek mümkündür. - -Yüklediğiniz eklentilere bağlı olarak, harici servislerle iletişim kurmak yüzlerce milisaniyeden fazla hatta saniyeler sürebilir. -Ana iş parçacığının engellenmesini önlemek için, bu işlemleri bir [arka plan çalışma](worker.markdown) havuzuna devretmek mümkündür. -Bu kurulum, altyapınıza ek yazılım yüklemenizi gerektirir. - -Darboğazı nasıl tespit edebilirim? ------------------------------ - -- Hata ayıklama modunu (debug mode) etkinleştir -- Günlük dosyasını (log) izleyin -- Kanboard'da bir şeyler yapın (örneğin bir görevi sürükleyip bırakın) -- Tüm işlemler yürütme süresi ile günlüğe kaydedilir (HTTP istekleri, E-posta bildirimleri, SQL istekleri) - -E-posta bildirimlerinin hızını artırın ---------------------------------- - -SMTP metodunu harici bir sunucu ile kullanmak çok yavaş olabilir. - -Olası çözümler: - -- SMTP'yi hala kullanmak istiyorsanız arka plan çalışma metodunu kullanın -- Postfix ile yerel bir e-posta geçişi kullanın ve "mail" aktarımı kullanın -- E-posta göndermek için bir HTTP API kullanan bir e-posta sağlayıcısı kullanın (Sendgrid, Mailgun veya Postmark) - -Sqlite performansını geliştirin ---------------------------- - -Olası çözümler: - -- Eşzamanlılık (çok sayıda kullanıcı) çok olduğunda Sqlite kullanmayın, bunun yerine Postgres veya Mysql seçin -- Sqlite'i paylaşılan bir NFS bağdaştırıcısı üzerinde kullanmayın -- Zayıf IOPS'li bir diskte Sqlite kullanmayın, yerel SSD sürücülerini kullanmak her zaman tercih edilir diff --git a/doc/tr_TR/plugin-directory.markdown b/doc/tr_TR/plugin-directory.markdown deleted file mode 100644 index 946cc57c..00000000 --- a/doc/tr_TR/plugin-directory.markdown +++ /dev/null @@ -1,16 +0,0 @@ -Eklenti Dizini Yapılandırması -============================== - -Eklentileri kullanıcı arayüzünden kurmak, güncellemek ve kaldırmak için şu gereksinimlere sahip olmanız gerekir: - -- Eklenti dizini, web sunucusu kullanıcısı tarafından yazılabilir olmalıdır -- Zip uzantısı sunucunuzda mevcut olmalıdır -- `PLUGIN_INSTALLER` yapılandırma parametresi `true` olarak ayarlanmalıdır - -Bu özelliği devre dışı bırakmak için yapılandırma dosyanızdaki PLUGIN_INSTALLER` değerini `false` olarak değiştirin. -Dosya sistemi üzerindeki eklenti klasörünün izinlerini de değiştirebilirsiniz. - -Yalnızca yöneticilere kullanıcı arayüzünden eklentiler yüklemesine izin verilir. - -Varsayılan olarak, yalnızca Kanboard'un web sitesinde listelenen eklenti mevcuttur. - diff --git a/doc/tr_TR/plugins.markdown b/doc/tr_TR/plugins.markdown deleted file mode 100644 index 2f3ec2a7..00000000 --- a/doc/tr_TR/plugins.markdown +++ /dev/null @@ -1,47 +0,0 @@ -Eklenti(Plugin) Geliştirme -================== - -Not: Eklenti API'sı şu an **alfa olarak kabul edilmektedir**. - -Eklentiler, Kanboard'un temel işlevlerini genişletmek, özellikler eklemek, temalar oluşturmak veya varsayılan davranışı değiştirmek için kullanışlıdır. - -Eklenti yaratıcıları açıkça Kanboard'un uyumlu sürümlerini belirtmelidir. Kanboard'un dahili kodu zamanla değişebilir ve eklentiniz yeni sürümlerle test edilmelidir. Değişiklikler için lütfen [Değişiklik Günlüğü](https://github.com/kanboard/kanboard/blob/master/ChangeLog) kontrol edin. - -- [Eklenti oluşturma](plugin-registration.markdown) -- [Eklenti kancalarını kullanma](plugin-hooks.markdown) -- [Etkinlikler](plugin-events.markdown) -- [Varsayılan uygulama davranışlarını geçersiz kıl](plugin-overrides.markdown) -- [Eklentiler için transfer şemaları ekle](plugin-schema-migrations.markdown) -- [Özel rutlar](plugin-routes.markdown) -- [Yardımcı ekle](plugin-helpers.markdown) -- [Posta aktarımları ekle](plugin-mail-transports.markdown) -- [Bildirim türlerini ekle](plugin-notifications.markdown) -- Otomatik işlemler ekle](plugin-automatic-actions.markdown) -- [Meta verileri kullanıcılara, görevlere ve projelere ekleme](plugin-metadata.markdown) -- [Kimlik doğrulama mimarisi](plugin-authentication-architecture.markdown) -- [Kimlik doğrulama eklenti kaydı](plugin-authentication.markdown) -- [Yetkilendirme mimarisi](plugin-authorization-architecture.markdown) -- [Özel grup sağlayıcıları](plugin-group-provider.markdown) -- [Dış-harici link sağlayıcıları](plugin-external-link.markdown) -- [Dış görevler](plugin-external-tasks.markdown) -- [Avatar sağlayıcıları ekle](plugin-avatar-provider.markdown) -- [LDAP istemcisi](plugin-ldap-client.markdown) - -Eklentilere örnekler -------------------- - -- [SMS İki-Kademeli Kimlik Doğrulaması](https://github.com/kanboard/plugin-sms-2fa) -- [LDAP desteği ile Ters-Proxy Kimlik Doğrulaması](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) -- [Bütçe planlaması](https://github.com/kanboard/plugin-budget) -- [Kullanıcı zaman çizelgeleri](https://github.com/kanboard/plugin-timetable) -- [Alt Görev Tahmini](https://github.com/kanboard/plugin-subtask-forecast) -- [Otomatik İşlem örneği](https://github.com/kanboard/plugin-example-automatic-action) -- [Tema eklentisi örneği](https://github.com/kanboard/plugin-example-theme) -- [CSS eklentisi örneği](https://github.com/kanboard/plugin-example-css) diff --git a/doc/tr_TR/postgresql-configuration.markdown b/doc/tr_TR/postgresql-configuration.markdown deleted file mode 100644 index 27727919..00000000 --- a/doc/tr_TR/postgresql-configuration.markdown +++ /dev/null @@ -1,51 +0,0 @@ -Postgresql yapılandırması -======================== - -Varsayılan olarak Kanboard, verilerini depolamak için Sqlite'i kullanır, ancak Postgresql'i kullanmak da mümkündür. - -Gereksinimler ------------- - -- Postgresql >= 9.3 -- `pdo_pgsql` PHP uzantısı kurulmuş olmalı (Debian/Ubuntu: `apt-get install php5-pgsql`) - -Configuration -------------- - -### `pgsql` komutu ile boş bir veritabanı oluşturun: - -```sql -CREATE DATABASE kanboard; -``` - -### Bir yapılandırma dosyası oluşturun - -`config.php` dosyasında aşağıdaki şu değerler bulunmalıdır: - -```php -<?php - -// PostgreSQL'i Sqlite yerine kullanmayı seçiyoruz -// 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'); -``` - -Not: Ayrıca, `config.default.php` şablon dosyasını `config.php` olarak yeniden adlandırabilirsiniz. - -### SQL dökümünü-dump alma (alternatif yöntem) - -Başlangıçta bri kez, Kanboard her bir veritabanı geçiş işleminde tek tek çalışacak ve bu işlem konfigürasyonunuza göre biraz zaman alabilir. - -Sorunları veya olası zaman aşımlarını önlemek için, veritabanını doğrudan SQL şemasını içe aktararak başlatabilirsiniz: - -```bash -psql -U postgres my_database < app/Schema/Sql/postgres.sql -``` - -`app/Schema/Sql/postgres.sql` dosyası, veritabanının son sürümünü gösteren bir SQL dökümüdür. diff --git a/doc/tr_TR/project-configuration.markdown b/doc/tr_TR/project-configuration.markdown deleted file mode 100644 index 93e04d64..00000000 --- a/doc/tr_TR/project-configuration.markdown +++ /dev/null @@ -1,42 +0,0 @@ -Proje Ayarları -================ - -Sağ üstte bulunan **Ayarlar** menüsüne gidin, ardından soldaki **Proje ayarları** seçeneğini seçin. - -![Project settings](../screenshots/project-settings.png) - -### Yeni projeler için varsayılan sütunlar - -Varsayılan sütun adlarını buradan değiştirebilirsiniz. -Her zaman aynı sütunlara sahip projeler oluşturmanız yararlıdır. - -Her sütun adı virgül ile ayrılmalıdır. - -Varsayılan olarak, Kanboard şu sütun adlarını kullanır: Bekleme Listesi(Backlog), Hazır, İşlemde ve Tamamlandı. - -### Yeni projeler için varsayılan kategoriler - -Kategoriler uygulama için genel değildir, ancak bir projeye bağlıdır. -Her proje farklı kategorilere sahip olabilir. - -Bununla birlikte, her zaman tüm projeleriniz için aynı kategorileri oluşturursanız, burada otomatik olarak oluşturulacak kategorilerin listesini tanımlayabilirsiniz. - -### Bir kullanıcı için aynı anda yalnızca bir alt görev almasına izin ver - -Bu seçenek etkinleştirildiğinde, bir kullanıcı o anda yalnızca bir alt görevle çalışabilir. - -Başka bir alt görev "devam ediyor" durumuna sahipse, kullanıcı bu iletişim kutusunu görür: - -![Subtask user restriction](../screenshots/subtask-user-restriction.png) - -### Tetikleme otomatik olarak alt görev zamanı izleme - -- Bu seçenek etkinleştirilirse, bir alt görev durumu "devam ediyor" olarak değiştirildiğinde, zamanlayıcı otomatik olarak başlayacaktır. -- Zaman izlemeyi kullanmıyorsanız bu seçeneği devre dışı bırakın. - -### Kümülatif akış diyagramında kapalı görevleri dahil et - -- Bu seçenek etkinleştirilirse, kapalı görevler kümülatif akış şemasına dahil edilir. -- Bu seçenek devre dışı bırakılırsa, yalnızca açık görevler dahil edilir. -- Bu seçenek tablonun "toplam" sütununu etkiler "project_daily_column_stats" - diff --git a/doc/tr_TR/project-permissions.markdown b/doc/tr_TR/project-permissions.markdown deleted file mode 100644 index c64b0ae4..00000000 --- a/doc/tr_TR/project-permissions.markdown +++ /dev/null @@ -1,20 +0,0 @@ -Proje İzinleri -=================== - -Her proje birbirinden izole edilmiş ve birbirinden ayrılmıştır. -Proje erişimine proje sahibi tarafından izin verilmelidir. - -Her kullanıcı ve her gruba ayrı bir rol atanabilir. -[Projeler için roller]3 tür var(roles.markdown): - -- Proje Müdürü -- Proje Üyesi -- Proje Görüntüleyicisi - -Yalnızca yöneticilerin her şeye erişimi vardır. - -Rol atamaları ** Proje Ayarları> İzinler ** 'den ulaşılabilir: - -![Project Permissions](../screenshots/project-permissions.png) - -Özel projeler izin tanımlayamaz. diff --git a/doc/tr_TR/project-types.markdown b/doc/tr_TR/project-types.markdown deleted file mode 100644 index 90dee0ab..00000000 --- a/doc/tr_TR/project-types.markdown +++ /dev/null @@ -1,14 +0,0 @@ -Proje Tipleri -============= - -İki tür proje vardır: - -| Tip | Açıklama | -|-------------------|-----------------------------------------------------------------------| -| Takım Projesi | Kullanıcı ve grup yönetimi ile proje | -| Özel proje | Yalnızca bir kişiye ait olan projede, kullanıcı yönetimi yoktur | - -- Yalnızca Yöneticiler ve Uygulama Yöneticileri ekip projeleri oluşturabilir. -- Özel projeler herkes tarafından oluşturulabilir. - -[Kanboard'daki rollerle ilgili belgeleri okuyun](roles.markdown) diff --git a/doc/tr_TR/project-views.markdown b/doc/tr_TR/project-views.markdown deleted file mode 100644 index 382238c7..00000000 --- a/doc/tr_TR/project-views.markdown +++ /dev/null @@ -1,58 +0,0 @@ -Pano, Takvim ve Liste Görünümleri -============================== - -Her bir proje için, görevler birkaç görünümle görselleştirilebilir: **Pano, Takvim ve Liste ve Gantt**. -Her görünüm en üstteki filtre kutusunun sonucunu gösterir. -Arama motoru[gelişmiş sözdizimini-syntax](search.markdown) kullanır. - -Pano Görünümü ----------- - -![Pano Görünümü](../screenshots/board-view.png) - -- Bu görünümle, sütunlar arasında görevleri sürükleyip bırakabilirsiniz. -- Pano görünümüne geçmek için klavye kısayolunu da kullanabilirsiniz: **"v b"**. -- Bir gölge Görevler son anlarda değiştirilir. - -![Pano Görev Sınırı](../screenshots/board-task-limit.png) - -Bir sütun için görev sınırına ulaşıldığında arka plan kırmızı olur. Yani, aynı anda çok fazla görev devam ediyor demektir. - -[Pano yapılandırması hakkında daha fazla bilgi edinin](board-configuration.markdown) - -Takvim Görünümü --------------- - -![Takvim görünümü](../screenshots/calendar-view.png) - -- Bu görünümle, görevleri vade tarihleriyle görselleştirebilirsiniz. -- Ayarlara bağlı olarak, devam eden görevleri de görebilirsiniz. -- Takvim görünümüne geçmek için klavye kısayolunu da kullanabilirsiniz: **"v c"**. -- [Takvim yapılandırması hakkında daha fazla bilgi edinin](calendar-configuration.markdown) - -Liste Görünümü ---------- - -![Liste görünümü](../screenshots/list-view.png) - -- Bu görünümde, aramanızın tüm sonuçları bir tabloda gösterilir. -- Liste görünümüne geçmek için klavye kısayolunu da kullanabilirsiniz: **"v l"**. - -Gantt Görünümü ----------- - -![Gantt görünümü](../screenshots/gantt-view.png) - -- Gantt görünümü görevleri yatay bir zaman çizelgesinde görüntüler -- Grafiği görüntülemek için başlangıç tarihi ve bitiş tarihi kullanılır -- Hızlı erişim için klavye kısayolunu kullanın: **v g** - -Proje Görünümü ----------------- - -![Proje görünümü](../screenshots/project-view.png) - -- Projenin açıklamasını görüntüleyin -- Belgelerin projeye eklenmesi ve yüklenmesi -- Proje üyelerinin listesini görüntülenmesi -- Projenin son faaliyetlerini görüntüleyin diff --git a/doc/tr_TR/recurring-tasks.markdown b/doc/tr_TR/recurring-tasks.markdown deleted file mode 100644 index bec2d971..00000000 --- a/doc/tr_TR/recurring-tasks.markdown +++ /dev/null @@ -1,25 +0,0 @@ -Tekrar eden görevler -=============== - -Kanban metodolojisine uymak için, tekrar eden görevler bir tarih tabanında değil, panoda olaylara dayanır. - -- Seçilen olaylar gerçekleştiğinde, tekrar eden görevler panonun ilk sütununa kopyalanır -- Teslim tarihi otomatik olarak yeniden hesaplanabilir -- Her görev, onu oluşturan üst görevin görev no(id) ve oluşturulmuş alt görevin kaydını tutar - - -Yapılandırma -------------- - -Görev görünüm sayfasına gidin veya panodaki açılır menüyü kullanın, ardından ** Tekrarı düzenleyin** seçeneğini belirleyin. - -![Recurring task](../screenshots/recurring-tasks.png) - -Halen yeni tekrar eden bir görev oluşturan 3 tetikleyici vardır: - -- Bir görevi ilk sütundan taşıma -- Görevin son sütuna taşınması -- Görevi kapatmak - -Son tarihler, mevcut görev üzerinde ayarlanmışsa, verilen gün, ay veya yıl faktörü ile yeniden hesaplanabilir. -Yeni vade tarihinin hesaplanması için temel tarih, mevcut vade tarihi veya işlem tarihi olabilir. diff --git a/doc/tr_TR/removing-projects.markdown b/doc/tr_TR/removing-projects.markdown deleted file mode 100644 index 128a3da6..00000000 --- a/doc/tr_TR/removing-projects.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Projeleri Kaldırma -================= - -Bir projeyi kaldırmak için, projenin müdürü veya yönetici olmanız gerekir. - -**"Proje ayarları"** 'na gidin ve sol taraftaki menüden, en alttaki **"Kaldır"** seçeneğini seçin. - -![Removing Projects](../screenshots/project-remove.png) - -Bir projeyi kaldırmak, bu projeye ait tüm görevleri kaldırır. diff --git a/doc/tr_TR/requirements.markdown b/doc/tr_TR/requirements.markdown deleted file mode 100644 index 32edce00..00000000 --- a/doc/tr_TR/requirements.markdown +++ /dev/null @@ -1,108 +0,0 @@ -Gereksinimler -============ - -Sunucu tarafı ------------ - -### Uyumlu İşletim Sistemleri - -| İşletim sistemi | -|--------------------------------------| -| 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 | - -### Uyumlu Veritabanları - -| Veritabanı | -|--------------------| -| Sqlite 3.x | -| Mysql >= 5.5 | -| MariaDB >= 10 | -| Postgresql >= 9.3 | - -Hangi veritabanı seçmeli? - -| Tip | Kullanımı | -|-----------------|------------------------------------------------------------| -| Sqlite | Tek kullanıcı veya küçük ekip (neredeyse eşzamanlılık yok) | -| Mysql/Postgres | Daha büyük ekip, yüksek erişilebilirlik yapılandırması | - -Sqlite'i NFS bağlarken kullanmayın; yalnızca hızlı G/Ç - I/O ile bir diskiniz olduğunda. - -### Uyumlu Web Sunucuları - -| WWeb Sunucu | -|--------------------| -| Apache HTTP Server | -| Nginx | -| Microsoft IIS | - -Kanboard, Apache ile çalışacak şekilde önceden yapılandırılmıştır (URL yeniden yazımı). - -### PHP Versionları - -| PHP Version | -|----------------| -| PHP >= 5.3.9 | -| PHP 5.4 | -| PHP 5.5 | -| PHP 5.6 | -| PHP 7.x | - -### Gerekli PHP Eklentileri - -| PHP Eklentisi | Not | -|----------------------------|--------------------------------------| -| pdo_sqlite | Sadece Sqlite kullanıyorsanız | -| pdo_mysql | Sadece Mysql/MariaDB kullanıyorsanız | -| pdo_pgsql | Sadece Postgres kullanıyorsanız | -| gd | | -| mbstring | | -| openssl | | -| json | | -| hash | | -| ctype | | -| session | | -| ldap | Yalnızca LDAP kimlik doğrulaması için| -| Zend OPcache | Tavsiye edilen | - -### İsteğe bağlı PHP Eklentileri - -| PHP Eklentisi | Not | -|----------------------------|--------------------------------------------------| -| zip | Kanboard'dan eklentileri kurmak için kullanılır | - -### Tavsiyeler - -- Modern Linux veya Unix işletim sistemi. -- En iyi performanslar OPcode önbellekleme etkinleştirilmiş haliyle PHP'nin en son sürümü ile elde edilmiştir. - -İstemci-Client tarafı ------------ - -### Tarayıcı-Browsers - -Mümkünse daima en yeni sürümü olan modern bir tarayıcı kullanın: - -| Tarayıcı | -|---------------------------------------| -| Safari | -| Google Chrome | -| Mozilla Firefox | -| Microsoft Internet Explorer >= 11 | -| Microsoft Edge | - -### Cihazlar-PC ler - -| Cihaz | Ekran çözünürlüğü | -|------------------------|--------------------| -| Dizüstü veya masaüstü | >= 1366 x 768 | -| Tablet | >= 1024 x 768 | diff --git a/doc/tr_TR/reverse-proxy-authentication.markdown b/doc/tr_TR/reverse-proxy-authentication.markdown deleted file mode 100644 index 56c9b1fb..00000000 --- a/doc/tr_TR/reverse-proxy-authentication.markdown +++ /dev/null @@ -1,66 +0,0 @@ -Ters-Reverse Proxy Kimlik Doğrulaması -============================ - -Bu kimlik doğrulama yöntemi genellikle büyük kuruluşlar için [SSO](http://en.wikipedia.org/wiki/Single_sign-on) (Tek Oturum Açma/Single Sign-On) için kullanılır. - -Kimlik doğrulama başka bir sistem tarafından yapılır, Kanboard şifrenizi bilmiyor ve siz zaten kimliği doğrulanmış olduğunu varsayalım. - -Gereksinimler ------------- - -- İyi yapılandırılmış bir ters proxy - -veya - -- Aynı sunucuda Apache Kimliği - - -Bu nasıl çalışıyor? -------------------- - -1. Geri vekiliniz, kullanıcının kimliğini doğrular ve kullanıcı adını bir HTTP üstbilgisi aracılığıyla gönderir. -2. Kanboard talepten kullanıcı adını alır - - Kullanıcı gerekirse otomatik olarak oluşturulur - - Geçerli olduğunu varsayan herhangi bir istemeden yeni bir Kanboard oturumu açın - -Kurulum Talimatları -------------------------- - -### Ters proxy ayarlarınızı yapma - -Bu, bu dokümantasyon kapsamında değildir. -Kullanıcı girişinin bir HTTP üstbilgisi kullanarak ters proxy tarafından gönderildiğini kontrol etmeli ve bunlardan hangisinin olduğunu öğrenmelisin. - -### Kanboard'u Kurma - -Özel bir `config.php` dosyası oluşturun veya `config.default.php` dosyasını kopyalayın: - - -```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'); -``` - -Notlar: - -- Proxy, Kanboard'u çalıştıran aynı web sunucusuysa, [CGI protokolü](http://www.ietf.org/rfc/rfc3875) uyarınca, başlık adı `REMOTE_USER` olacaktır. Örnek olarak, Apache, `Require valid-user` parametresi ayarlanmışsa varsayılan olarak `REMOTE_USER` ekler. - -- Apache, Kanboard çalıştıran başka bir Apache için bir ters proxy ise, `REMOTE_USER` başlığı ayarlanmamıştır (IIS ve Nginx ile aynı davranış). - -- Gerçek bir ters proxyğiniz varsa, [HTTP ICAP taslağı](http://tools.ietf.org/html/draft-stecher-icap-subid-00#section-3.4) üstbilgisini `X-Authenticated-User` Kimliği Doğrulanmış Kullanıcı. Bu fiili standart birçok araç tarafından benimsenmiştir. - diff --git a/doc/tr_TR/roles.markdown b/doc/tr_TR/roles.markdown deleted file mode 100644 index 98859bc0..00000000 --- a/doc/tr_TR/roles.markdown +++ /dev/null @@ -1,26 +0,0 @@ -Kullanıcı Rolleri -========== - -Uygulama Rolleri ------------------ - -Her Kanboard kullanıcısı bu rollerden birine sahiptir: - -| Rol | Açıklama | -|------------|---------------------------------------------------------------------------| -| Yönetici | Her şeye erişim | -| Müdür | Ekip projeleri oluşturabilir, ancak uygulama ayarlarını değiştiremezsiniz | -| Kullanıcı | Sadece özel projeler yaratabilir | - -Proje Rolleri -------------- - -Her bir proje ekip projesi her kullanıcıya ve gruba farklı bir rol atayabilir: - -| Rol | Açıklama | -|---------------------|---------------------------------------------------------------------------| -| Proje Müdürü | Proje ayarlarını değiştirebilir, Gantt grafiğine ve raporlara erişebilir | -| Proje Üyesi | Görevler oluşturabilir ve panoyu kullanabilir | -| Proje Görüntüleyici | Panoya ve görevlere salt okunur | - -Kullanıcılara bir dizi kısıtlama uygulamak için özel proje rolleri oluşturulabilir. diff --git a/doc/tr_TR/rss.markdown b/doc/tr_TR/rss.markdown deleted file mode 100644 index 80d8a1d1..00000000 --- a/doc/tr_TR/rss.markdown +++ /dev/null @@ -1,24 +0,0 @@ -RSS / Atom abonelikleri -====================== - -Kanboard, projeler ve kullanıcılar için RSS yayınlarını desteklemektedir. - -- Proje akışları yalnızca projenin aktivitesini içerir -- Kullanıcı akışları, kullanıcının üye olduğu tüm projelerin etkinlik akışını içeriyor - -Bu abonelikler, yalnızca kullanıcı profilinde veya proje ayarlarında genel erişim etkinleştirildiğinde etkinleştirilir. - -Proje RSS yayınlarını etkinleştir / devre dışı bırak --------------------------------- - -**Proje ayarları> Herkese açık erişim** 'e gidin. - -![Disable public access](../screenshots/project-disable-sharing.png) - -Kullanıcı RSS yayınlarını etkinleştir / devre dışı bırak --------------------------------- - - -**Kullanıcı profili> Herkese açık erişim** seçeneğine gidin. - -RSS bağlantısı rastgele bir belirteç-token tarafından korunuyor, yalnızca URL'yi bilen insanlar özet akışına erişebilir. diff --git a/doc/tr_TR/screenshots.markdown b/doc/tr_TR/screenshots.markdown deleted file mode 100644 index 32a8df5c..00000000 --- a/doc/tr_TR/screenshots.markdown +++ /dev/null @@ -1,25 +0,0 @@ -Ekran görüntüleri ekleme -================== - -Zaman kazanmak için görüntüleri doğrudan Kanboard'a kopyalayıp yapıştırabilirsiniz. -Bu görüntüler göreve ek olarak yüklenir. - -Bu, örneğin, bir sorunu tarif etmek için ekran görüntülerinin alınması için özellikle yararlıdır. - -Açılır menüye tıklayarak veya görev görünümü sayfasında doğrudan ekran görüntüleri ekleyebilirsiniz. - -![Drop-down screenshot menu](../screenshots/dropdown-screenshot.png) - -Yeni bir görüntü eklemek için ekran görüntüsünü alın ve CTRL+V veya Command+V ile yapıştırın: - -![Screenshot page](../screenshots/task-screenshot.png) - -Mac OS X'te ekran görüntüleri almak için şu klavye kısayolları kullanabilirsiniz: - -- Command-Control-Shift-3: Ekranın ekran görüntüsünü alın ve kopya panoya kaydedin -- Command-Control-Shift-4, sonra bir alan seçin: Alanın ekran görüntüsünü alın ve panoya kaydedin. -- Command-Control-Shift-4, daha sonra boşluk bırakın, sonra bir pencereyi tıklatın: Bir pencerenin ekran görüntüsünü alın ve panoya kaydedin - -Ek açıklamaları ve şekilleri içeren ekran görüntüleri almak için kullanılabilecek birkaç üçüncü taraf uygulaması da vardır. - -**Not: Bu özellik tüm tarayıcılarda çalışmaz.** Şu hata yüzünden Safari ile çalışmaz:https://bugs.webkit.org/show_bug.cgi?id=49141 diff --git a/doc/tr_TR/search.markdown b/doc/tr_TR/search.markdown deleted file mode 100644 index 1ddc26d1..00000000 --- a/doc/tr_TR/search.markdown +++ /dev/null @@ -1,189 +0,0 @@ -Gelişmiş Arama Sözdizimi(Kodları) -====================== - -Kanboard, gelişmiş arama için basit bir sorgu dili kullanıyor. -Görevler, yorumlar, alt görevler, bağlantılar ile aynı zamanda etkinlik akışında da arama yapabilirsiniz. - -Sorgu örneği ----------------- - -Bu örnek, yarın için bir bitiş tarihi ve "başlığım" ı içeren bir başlık ile bana atanan tüm görevleri geri alacaktır: - -``` -assigne:me due:tomorrow başlığım -``` - -Genel arama -------------- - -### Görev kimliği veya başlığa göre arama - -- Görev kimliği ile ara: `#123` -- Görev kimliği ve görev başlığına göre ara: `123` -- Görev başlığına göre ara: herhangi bir arama nitelikleriyle eşleşmeyen herhangi bir şey - -### Duruma göre ara - -Özellik: **status** - -- Açık görevleri bulmak için sorgu: `status:open` -- Kapatılan görevleri bulmak için sorgu: `status:closed` - -### Devralan göre ara - -Özellik: **assignee** - -- Tam adıyla sorgu: `assignee:"Frederic Guillot"` -- Kullanıcı adı ile sorgu: `assignee:fguillot` -- Birden fazla atanan arama: 'assignee:user1 assignee:"John Doe" -- Atanmamış görevler için sorgu: 'assignee:nobody' -- Görevlerimin sorgulanması: 'assignee:me` - -### Görev yaratıcısına göre ara - -Özellik: **creator** - -- Benim tarafından oluşturulan görevler: `creator:me` -- John Doe tarafından oluşturulan görevler: `creator:"John Doe"` -- Kullanıcı no #1 tarafından oluşturulan görevler: `creator:1` - -### Alt görev atayan tarafından arama yapın - -Özellik: **subtask:assignee** - -- Örnek: `subtask:assignee:"John Doe"` - -### Renk ile ara - -Özellik: **color** - -- Renk kimliği ile arama yapmak için sorgu: `color:mavi` -- Renk adına göre arama yapmak için sorgu: `color:"Oranj"` - -### Vadesine göre ara - -Özellik: **due** - -- Bugünkü görevler için arama yapın: `due:today` -- Yarınki görevler için arama yapın: `due:tomorrow` -- Dünkü görevler için arama yapın: `due:yesterday` -- Tam tarihi olan görevlerde arama yapın: `due:2015-06-29` - -Tarihin ISO 8601 biçimi ile kullanması gerekir: **YYYY-MM-DD**. - -`strtotime ()` işlevi tarafından desteklenen tüm dize formatları desteklenmektedir, örneğin `next Thursday`,` -2 days`, `+2 months`, `tomorrow`, vb. - -Tarih ile desteklenen operatörler: - -- Bundan büyük: **due:>2015-06-29** -- Bundan küçük: **due:<2015-06-29** -- Bundan büyük veya eşit: **due:>=2015-06-29** -- Bundan küçük veya eşit: **due:<=2015-06-29** - -### Değiştirilme tarihine göre ara - -Özellik: **modified** or **updated** - -Tarih biçimleri son tarihle aynıdır. - -Yakın zamanda değiştirilmiş görevlerde aynı zamanda bir filtre var:: `modified:recently`. - -Bu sorgu, ayarlarda yapılandırılan pano vurgulama dönemiyle aynı değeri kullanacaktır. - -### Oluşturma tarihine göre ara - -Özellik: **created** - -Değiştirme tarihi sorguları aynı şekilde çalışır. - -### Başlangıç tarihine göre ara - -Özellik: **started** - -### Açıklamaya göre ara - -Özellik: **description** veya **desc** - -Örnek: `description:"metin arama"` - -### Dış referansa göre ara - -Görev referansı, görevinizin harici bir kimliği, örneğin başka bir yazılımdan gelen bir bilet numarasıdır. - -- Görevleri referans ile bulun: `ref:1234` veya `reference:TICKET-1234` -- Wildcard search: `ref:TICKET-*` - -### Kategoriye göre ara - -Özellik: **category** - -- Görevleri belirli bir kategori ile bulun: `category:"Feature Request"` -- Bu kategorilere sahip tüm görevleri bulun: `category:"Bug" category:"İyileştirmeler"` -- Hiçbir kategori atanmamış görevler bulun: `category:none` - -### Projeye göre ara - -Özellik: **project** - -- Görevleri proje adına göre bulun: `project:"Benim proje adım"` -- Görevleri proje idine göre bulun: `project:23` -- Çeşitli projeler için görevler bulun: `project:"Benim projem A" project:"Benim projem B"` - -### Sütunlara göre ara - -Özellik: **column** - -- Görevleri sütun adına göre bul: `column:" Devam eden işler"` -- Birkaç sütun için görevler bulun: `column:"Backlog" column:hazır` - -### Kulvar (Swim-lane) lara göre ara - -Özellik: **swimlane** - -- Görevleri kulvarlara(swim-lane) göre ara: `swimlane:"Version 42"` -- Çeşitli kulvarlar (swim-lanes) için görev ara: `swimlane:"Version 1.2" swimlane:"Version 1.3"` - -### Görev bağlantısı ile arama - -Özellik: **link** - -- Görevleri bağlantı adına göre bulma: `link:"is a milestone of"` -- Görevleri birkaç bağlantıya bul: `link:"is a milestone of" link:"relates to"` - -### Yorumlara göre ara - -Özellik: **comment** - -- Bu başlık içeren yorumları bulun: `comment:"Yorum mesajım"` - -### Etiketlere göre ara - -Özellik: **tag** - -- Örnek: `tag:"Etiketim"` - -Etkinlik akışı arama ----------------------- - -### Görev başlıklarına göre etkinlik arama - -Özellik: **title** veya yok (varsayılan) - -- Örnek: `title:"Benim Görevim"` -- Görev no ile ara: `#123` - -### Görev durumuna göre olayları arama - -Özellik: **status** - -### Olay yaratıcısı tarafından arayın - -Özellik: **creator** - -### Olay oluşturma tarihine göre ara - -Özellik: **created** - -### Etkinlikleri projeye göre ara - -Özellik: **project** diff --git a/doc/tr_TR/sharing-projects.markdown b/doc/tr_TR/sharing-projects.markdown deleted file mode 100644 index 085f6501..00000000 --- a/doc/tr_TR/sharing-projects.markdown +++ /dev/null @@ -1,35 +0,0 @@ -Pano ve görev paylaşımı -======================== - -Varsayılan olarak, panolar özel durumdadır, ancak panoyu herkese açık yapmak mümkündür. - -Bir genel kurul **değiştirilemez; salt-okunur bir erişimdir**. -Bu erişim rasgele belirteç (random token) tarafından korunur, yalnızca doğru URL'ye sahip kullanıcılar panoyu görebilir. - -Genel panolar her 60 saniyede bir otomatik olarak yenilenir. -Görev ayrıntıları salt okunur haldedir. - -Kullanım örnekleri: - -- Panonuzu kuruluşunuz dışındaki biriyle paylaşın -- Panoyu ofiste geniş bir ekranda görüntüle - -Herkese açık erişimi etkinleştir --------------------- - -Projenizi seçin, ardından "Herkese açık erişim" i tıklayın ve "Herkese açık erişimi etkinleştir" düğmesini tıklayın. - -![Enable public access](../screenshots/project-enable-sharing.png) - -Genel erişim etkinleştirildiğinde, birkaç bağlantı oluşturulur: - -- Genel pano görünümü -- RSS beslemesi abonelik bağlantısı -- iCalendar abonelik bağlantısı - -![Disable public access](../screenshots/project-disable-sharing.png) - -Ayrıca, herkese açık erişimi istediğiniz zaman devre dışı bırakabilirsiniz. - -Her seferinde, kamu erişimini etkinleştirir veya devre dışı bırakırsanız, yeni bir rastgele belirteç (random token) üretilir. -** Önceki bağlantıları artık çalışmayacak **. diff --git a/doc/tr_TR/solving-blank-page-issue.markdown b/doc/tr_TR/solving-blank-page-issue.markdown deleted file mode 100644 index 8a397c84..00000000 --- a/doc/tr_TR/solving-blank-page-issue.markdown +++ /dev/null @@ -1,7 +0,0 @@ -Kanboard'u yükledikten veya yükselttikten sonra boş bir sayfa alıyorum -========================================================= - -- Tüm gereksinimleri sunucunuza yüklediniz mi kontrol edin -- PHP ve Apache hata günlüklerini kontrol edin -- Dosyaların doğru izinlere sahip olup olmadığını kontrol edin -- Agresif bir OPcode önbellekleme kullanıyorsanız, web sunucunuzu veya php-fpm'yi yeniden yükleyin diff --git a/doc/tr_TR/solving-database-migration-issues.markdown b/doc/tr_TR/solving-database-migration-issues.markdown deleted file mode 100644 index 4e929ae6..00000000 --- a/doc/tr_TR/solving-database-migration-issues.markdown +++ /dev/null @@ -1,23 +0,0 @@ -Veritabanlar Arası Transfer Sorunlarını Çözme -================================= - -- Kanboard'u yeni bir sürüme yükselttiğinizde, SQL transferleri(migrations) otomatik olarak yürütülür -- Postgres ve MySQL için geçerli şema sürüm numarası `schema_version` tablosunda saklanır ve Sqlite için bu değişken ` user_version` değişkeninde saklanır -- Transfer(migrations) dosyaları `app/Schema/<DatabaseType>.php` dosyasında tanımlanır -- Her işlev bir transfer işlemidir -- Her transfer, bir işlemde yürütülür -- Transfer işleminde bir hata oluşturursa geri alma gerçekleştirilir - -Yeni sürüme geçerken: - -- Daima verilerinizi yedekleyin -- Transfer işlemlerini birden çok işlemden paralel olarak çalıştırmayın - -"SQL geçişleri çalıştırılamadı [...]" hatası alıyorsanız, el ile düzeltme adımları şunlardır: - -1. Veritabanınıza karşılık gelen dosyayı açın `app/Schema/Sqlite.php` veya `app/Schema/Mysql.php` -2. Başarısız transfer işlevine gidin -3. İşlevde tanımlanan SQL sorgularını manuel olarak çalıştırın -4. Bir hata ile karşılaşırsanız, sorunu tam hata ile birlikte hata izleyicisine bildirin -5. Transferin tüm SQL deyimleri yürütüldüğünde, şema sürüm numarasını güncelleyin -6. Diğer transfer işlemlerini çalıştırın diff --git a/doc/tr_TR/solving-session-issue-windows-iis-ie.markdown b/doc/tr_TR/solving-session-issue-windows-iis-ie.markdown deleted file mode 100644 index c3bc57a8..00000000 --- a/doc/tr_TR/solving-session-issue-windows-iis-ie.markdown +++ /dev/null @@ -1,19 +0,0 @@ -Internet Explorer ve Microsoft IIS ile oturum açamıyorum -============================================================== - -Eğer giriş yapamıyorsanız ve her zaman doğru kimlik bilgilerini girmiş olsanız bile **"Kullanıcı adı veya parola gerekli" ** hatasını alırsanız, -Oturumda bir sorun olduğu anlamına gelir. - -Örneğin, bu kriterler ile karşılarsanız, bu bilinen bir sorundur: - -- Alt çizgi içeren bir alan adı kullanıyorsanız: `kanboard_something.mycompany.tld` -- Microsoft Windows Server ve IIS kullanıyorsanız -- Tarayıcınız Internet Explorer ise - -Çözüm: **Etki alanı adında altçizgi kullanmayın; çünkü bu geçerli bir alan adı değildir**. - -Açıklama: Internet Explorer geçersiz kılınmış alan adlarına sahip çerezleri kabul etmiyor çünkü bu geçerli değil. - -Referans: - -- https://support.microsoft.com/en-us/kb/316112 diff --git a/doc/tr_TR/sqlite-database.markdown b/doc/tr_TR/sqlite-database.markdown deleted file mode 100644 index e092ea8e..00000000 --- a/doc/tr_TR/sqlite-database.markdown +++ /dev/null @@ -1,52 +0,0 @@ -Sqlite veritabanı yönetimi -========================== - -Kanboard, verilerini depolamak için varsayılan olarak Sqlite kullanır. -Tüm görevler, projeler ve kullanıcılar bu veritabanında saklanır. - -Teknik olarak, veritabanı `data` dizini içinde bulunan ve `db.sqlite` olarak adlandırılan tek bir dosyadır. - -Dışa Aktar/Yedekle -------------- - -### Komut satırı - -Yedekleme yapmak çok kolay, kimsenin yazılımı kullanmadığı zaman `data/db.sqlite` dosyasını başka bir yere kopyalamalısın. - -### Kullanıcı arayüzü - -Veritabanını istediğiniz zaman **ayarlar** menüsünden indirebilirsiniz. - -İndirilen veritabanı Gzip ile sıkıştırılır, dosya adı `db.sqlite.gz` olur. - -İthalat/Restorasyon ------------------- - -Veritabanını kullanıcı arabiriminden geri yüklemenin hiçbir yolu yoktur. -Restorasyon, herhangi bir vücut yazılımı kullanmadığında manuel olarak yapılmalıdır. - -- Eski bir yedeklemeyi geri yüklemek için `data/db.sqlite` dosyasını değiştirin ve üzerine kaydedin. -- Sıkıştırılmış bir veritabanını açmak için, terminalde bu komutu; `gunzip db.sqlite.gz` çalıştırın. - -Optimizasyon ------------- - -Bazen, `VACUUM` komutu çalıştırarak veritabanı dosyasını optimize etmek mümkündür. -Bu komut, tüm veritabanını yeniden oluşturur ve çeşitli nedenlerle kullanılabilir: - -- Dosya boyutunu küçült, verileri silerek boş alan yarat, ancak dosya boyutunu değiştirmez. -- Veritabanı sık eklemeler veya güncellemeler nedeniyle parçalanmış. - -### Komut satırından - -``` -sqlite3 data/db.sqlite 'VACUUM' -``` - -### Kullanıcı arayüzünden - -**ayarlar** menüsüne gidin ve **Veritabanını optimize et** linkine tıklayın. - -Daha fazla bilgi için [Sqlite belgeler](https://sqlite.org/lang_vacuum.html). - - diff --git a/doc/tr_TR/subtasks.markdown b/doc/tr_TR/subtasks.markdown deleted file mode 100644 index 159c8a1a..00000000 --- a/doc/tr_TR/subtasks.markdown +++ /dev/null @@ -1,44 +0,0 @@ -Alt Görevler -======== - -Alt görevler bir görevin işini bölmek için yararlıdır. - -Her alt görev: - -- Bir proje üyesine atanabilir -- 3 farklı duruma sahip: **Yapılacak**, **Devam ediyor**, **Bitti** -- Zaman bilgileri bulundurun: **geçen süre** ve **tahmini süre** -- Pozisyona göre sıralanır - -Alt görevler oluşturma ------------------ - -Görev görünümünden, sol kenar çubuğunda **Bir alt görev ekle** seçeneğine tıklayın: - -![Add a subtask](../screenshots/add-subtask.png) - -Ayrıca, yalnızca başlığı girerek bir alt görev ekleyebilirsiniz: - -![Add a subtask from the task view](../screenshots/add-subtask-shortcut.png) - -Alt görev durumunu değiştir ---------------------- - -Alt görev başlığına tıkladığınızda durum değişir: - -![Subtask in progress](../screenshots/subtask-status-inprogress.png) - -Başlıktan önceki simge duruma göre güncellenir. - -![Subtask done](../screenshots/subtask-status-done.png) - -Not: Görev kapatıldığında, tüm alt görevler **Bitti** durumuna değiştirilir. - -Alt görev zamanlayıcı -------------- - -- Bir alt görev her gerçekleştirildiğinde, zamanlayıcı da başlatılır. Zamanlayıcı, herhangi bir zamanda başlatılabilir ve durdurulabilir. -- Süreölçer, alt görev için geçen süreyiotomatik olarak kaydeder. Bir alt görev düzenlediğinizde geçen süre alanının değerini manuel olarak değiştirebilirsiniz. -- Hesaplanan süre, en yakın çeyreğe yuvarlanır. Bu bilgi ayrı bir tabloda kaydedilmiştir. -- Geçen süre ve tahmini süre, tüm alt görevlerin toplamına göre otomatik olarak güncellenir. - diff --git a/doc/tr_TR/suse-installation.markdown b/doc/tr_TR/suse-installation.markdown deleted file mode 100644 index 1eaa9c23..00000000 --- a/doc/tr_TR/suse-installation.markdown +++ /dev/null @@ -1,17 +0,0 @@ -OpenSuse kurulumu -======================== - -OpenSuse Leap 42.1 ------------------- - -```bash -sudo zypper install php5 php5-sqlite php5-gd php5-json php5-mcrypt php5-mbstring php5-openssl -cd /srv/www/htdocs - -# Download the latest release from https://github.com/kanboard/kanboard/releases -sudo wget https://github.com/kanboard/kanboard/archive/v<VERSION>.zip - -sudo unzip kanboard-<version>.zip -sudo chown -R wwwrun /srv/www/htdocs/kanboard-<version>/data -sudo rm kanboard-<version>.zip -``` diff --git a/doc/tr_TR/swimlanes.markdown b/doc/tr_TR/swimlanes.markdown deleted file mode 100644 index e9c7d38a..00000000 --- a/doc/tr_TR/swimlanes.markdown +++ /dev/null @@ -1,31 +0,0 @@ -Kulvarlar -========= - -Kulvarlar tahtada yatay ayrımlardır. -Örneğin, yazılım sürümlerini ayırmak, görevlerinizi farklı ürünlerde, ekiplerde ya da istediğiniz her yerde bölmek yararlıdır. - -Kulvarlar ile pano --------------------- - -![Swimlanes](../screenshots/swimlanes.png) - -- Soldaki ikonuna tıklayarak kulvar(swimlanes) daraltabilirsiniz -- Varsayılan kulvar her zaman üst kısmında gösterilir - -Kulvarları yönetmek ------------------- - -- Bütün projeler varsayılan bir kulvardadır. -- Birden fazla kulvar varsa, pano tüm kulvarları gösterecektir. -- Görevleri kulvarlar arasında sürükleyip bırakabilirsiniz. - -Kulvarları yapılandırmak için **proje yapılandırma sayfasına** gidin ve **Kulvarlar** bölümünü seçin. - -![Swimlanes Configuration](../screenshots/swimlane-configuration.png) - -Oradan, yeni bir kulvar ekleyebilir veya varsayılan bir yeniden adlandırabilirsiniz. -Farklı yüzücülerin yerlerini de devre dışı bırakabilir ve değiştirebilirsiniz. - -- Varsayılan kulvar her zaman en üsttedir fakat bunu gizleyebilirsiniz. -- Aktif olmayan kulvarlar panoda gösterilmiyor. -- ** Bir kulvarın kaldırılması kendisine verilen görevleri kaldırmaz**, bu görevler varsayılan kulvara taşınacaktır. diff --git a/doc/tr_TR/syntax-guide.markdown b/doc/tr_TR/syntax-guide.markdown deleted file mode 100644 index a6720fd2..00000000 --- a/doc/tr_TR/syntax-guide.markdown +++ /dev/null @@ -1,147 +0,0 @@ -Sözdizimi Kılavuzu -============ - -Kanboard, yorumlar veya görev açıklamaları için [Markdown Sözdizimi-syntax](http://en.wikipedia.org/wiki/Markdown) kullanır. -İşte bazı örnekler: - -Kalın ve italik ----------------- - -- Kalın metin: 2 yıldız veya 2 altçizgi kullanın -- İtalik metin: 1 yıldız veya 1 altçizgi kullanın - -### Kaynak -``` -Bu **kelime** çok __önemlidir__. - -Ve burada, bir *italik* bir kelime ; bir altcizgi_ ile. -``` - -### Sonuç - -Bu **kelime** çok __önemlidir__. - -Ve burada, bir *italik* bir kelime ; bir altcizgi_ ile. - -Sırasız Listeler ---------------- - -Sırasız listeda yıldız , eksi veya artılar kullanabilir. - -### Source - -``` -- Öğe 1 -- Öğe 2 -- Öğe 3 - -veya - -* Öğe 1 -* Öğe 2 -* Öğe 3 -``` - -### Sonuç - -- Öğe 1 -- Öğe 2 -- Öğe 3 - -Sıralı listeler -------------- - -Sıralı listeler şöyle bir sayı göre öneki: - -### Source - -``` -1. Önde bunu yap -2. Bunu yap -3. Ve şu -``` - -### Result - -1. Önde bunu yap -2. Bunu yap -3. Ve şu - -Bağlantılar ------ - -### Kaynak - -``` -[Bağlantı başlığım](https://kanboard.org/) - -<https://kanboard.org> - -``` - -### Sonuç - -[Bağlantı başlığım](https://kanboard.org/) - -<https://kanboard.org> - -Kaynak kod ------------ - -### Satır içi kod - -Geri-tırnak-işareti backtick kullanın. - -``` -Bu komutu çalıştır: `tail -f /var/log/messages`. -``` - -### Sonuç - -Bu komutu çalıştır: `tail -f /var/log/messages`. - -### Kod blokları - -Sonunda dil adıyla birlikte 3 geri-tırnak-işareti kullanın. - -<pre> -<code class="language-markdown">```php -<?php - -phpinfo(); - -?> -``` -</code> -</pre> - -### Sonuç - -``` -<?php - -phpinfo(); - -?> -``` - -Başlıklar ------- - -### Kaynak - -``` -# Başlık düzeyi 1 - -## Başlık düzeyi 2 - -### Başlık düzeyi 3 -``` - -### Sonuç - -# Başlık düzeyi 1 - -## Başlık düzeyi 2 - -### Başlık düzeyi 3 diff --git a/doc/tr_TR/tags.markdown b/doc/tr_TR/tags.markdown deleted file mode 100644 index 2bea9c15..00000000 --- a/doc/tr_TR/tags.markdown +++ /dev/null @@ -1,28 +0,0 @@ -Etiketler -==== - -Kanboard ile, bir veya birçok etiketi görevle ilişkilendirebilirsiniz. -Etiketleri genel olarak tüm projeler için veya yalnızca belirli bir proje için tanımlayabilirsiniz. - -![Tags on the board](../screenshots/tags-board.png) - -Görev formundan istediğiniz etiketleri girebilirsiniz: - -![Tags form](../screenshots/tags-task.png) - -Otomatik tamamlama formu, kullanılabilir etiketleri önermek için görünür. - -Etiketleri doğrudan görev formundan da oluşturabilirsiniz. -Varsayılan olarak, bir görev formundan etiketler oluşturduğunuzda, bunlar geçerli projeyle ilişkilendirilir: - -![Project Tags](../screenshots/tags-projects.png) - -Tüm etiketler proje ayarlarında yönetilebilir. - -Etiketleri tüm projeler için genel olarak tanımlamak için uygulama ayarlarına gidin: - -![Global Tags](../screenshots/tags-global.png) - -Görevleri etiketler temelinde aramak için "tag" özelliğini kullanmanız yeterlidir: - -![Search Tags](../screenshots/tags-search.png) diff --git a/doc/tr_TR/task-links.markdown b/doc/tr_TR/task-links.markdown deleted file mode 100644 index 4d2c9d0f..00000000 --- a/doc/tr_TR/task-links.markdown +++ /dev/null @@ -1,24 +0,0 @@ -İç Görev Bağlantıları -=================== - -Görevler önceden tanımlanmış ilişkilerle birlikte birbirine bağlanabilir: - -![Task Links](../screenshots/internal-task-links.png) - -Bu görevler projeler arasında bağlamak için de mümkündür. - -Varsayılan ilişkiler şunlardır: - -- **alakalı** -- **bloklar** | tarafından engellendi -- **tarafından engellendi**| bloklar -- **çoğaltır** | tarafından çoğaltılan -- **tarafından çoğaltılan** | çoğaltır -- **bir çocuğun ** | bir ebeveyni -- **'nın ebeveyni ** | bir çocuğu -- **dönüm noktası hedefliyor ** | bir dönüm noktası -- **bir dönüm noktası** | dönüm noktasını hedeflemek -- **düzeltmeler** | tarafından düzeltildi -- **tarafından düzeltildi** | düzeltmeler - -Bu etiketler uygulama ayarlarından değiştirilebilir. diff --git a/doc/tr_TR/tests.markdown b/doc/tr_TR/tests.markdown deleted file mode 100644 index 410a8513..00000000 --- a/doc/tr_TR/tests.markdown +++ /dev/null @@ -1,158 +0,0 @@ -Otomatik testler -=============== - -[PHPUnit](https://phpunit.de/), Kanboard'da otomatik testler yapmak için kullanılır. - -Sonuçların her yerde aynı olduğundan emin olmak için farklı veritabanlarında (Sqlite, Mysql ve PostgreSQL) testler çalıştırabilirsiniz. - -Gereksinimler ------------- - -- Linux/Unix machine -- PHP -- PHPUnit yüklü -- Mysql ve Postgresql (isteğe bağlı) -- Selenium (isteğe bağlı) -- Firefox (isteğe bağlı) - -Birim Testleri ----------- - -### Sqlite ile sınama - -Sqlite testlerinde bellek içi bir veritabanı kullanılır, dosya sisteminde hiçbir şey yazılmaz. - -PHPUnit yapılandırma dosyası `tests/units.sqlite.xml`. -Kanboard dizininizden `phpunit -c tests/units.sqlite.xml` komutunu çalıştırın. - -Örnek: - -```bash -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 ile Test - -Localhost'da MySQL veya MariaDb yüklü olmalıdır. - -Varsayılan olarak, bu kimlik bilgileri kullanılır: - -- Ana makine adı: **localhost** -- Kullanıcı adı: **kök** -- Şifre: yok -- Veritabanı: **kanboard_unit_test** - -Her yürütme için veritabanı silinir ve yeniden oluşturulur. - -PHPUnit yapılandırma dosyası `tests/units.postgres.xml` dir. -Kanboard dizininizden `phpunit -c `phpunit -c tests/units.postgres.xml` komutunu çalıştırın. - -### Postgresql ile test edin - -Postgresql'in localhost'a kurulmuş olması gerekir. - -Varsayılan olarak, bu kimlik bilgileri kullanılır: - -- Ana makine adı: **localhost** -- Kullanıcı adı: **postgres** -- Şifre: yok -- Veritabanı: **kanboard_unit_test** - -'Postgres` kullanıcısının veritabanlarını oluşturup açmasına izin verdiğinizden emin olun. -Veritabanı her yürütme için yeniden oluşturulur. - -PHPUnit yapılandırma dosyası `tests/units.postgres.xml` dir. -Kanboard dizininizden `phpunit -c tests/units.postgres.xml` komutunu çalıştırın. - -Entegrasyon Testleri ------------------ - -Entegrasyon testleri esas olarak API'yi test etmek için kullanılır. -Test paketleri, bir kapsayıcı içinde çalışan uygulamaya gerçek HTTP çağrıları yapıyor. - -### Gereksinimler - -- PHP -- Composer -- Unix işletim sistemi (Mac OS veya Linux) -- Docker -- Docker Compose - -### Uyum testlerini çalıştırmak - -Entegrasyon testleri Docker konteynerlerini kullanıyor. -Desteklenen her bir veritabanına karşı testleri çalıştırmak için kullanılabilecek 3 farklı ortam vardır. - -Her bir test paketini çalıştırmak için aşağıdaki komutları kullanabilirsiniz: - -```bash -# Run tests with Sqlite -make integration-test-sqlite - -# Run tests with Mysql -make integration-test-mysql - -# Run tests with Postgres -make integration-test-postgres -``` - -Kabul Deneyleri ----------------- - -Kabul testleri (bazen uçtan uca testler ve işlevsel testler olarak da bilinir), Selenium'u kullanan bir tarayıcıda UI'nın gerçek işlevselliğini test eder. - -Bu testleri çalıştırmak için [Selenium Standalone Server] (http://www.seleniumhq.org/download/) ve Firefox'un uyumlu bir sürümü yüklü olmalıdır. - -PHPUnit yapılandırma dosyası `tests / acceptance.xml` dir. -Selenyum ve Kanboard uygulaması çalışıyorken, Kanboard dizininizden `make test-browser` komutunu çalıştırın. Bu, test paketini başlatacak ve Firefox'un otomatik olarak açıldığını göreceksiniz ve kabul testlerinde belirtilen işlemleri uygulayacaksınız. - -Örnek: - -```bash -$ make test-browser -PHPUnit 4.8.26 by Sebastian Bergmann and contributors. - -.. - -Time: 5.59 seconds, Memory: 5.25MB - -OK (2 tests, 5 assertions) -``` - - -Travis-CI ile Sürekli Entegrasyon -------------------------------------- - -Her taahhüt ana depoda itildikten sonra, birim testleri PHP'nin 5 farklı versiyonu boyunca yürütülür: - -- PHP 7.0 -- PHP 5.6 -- PHP 5.5 -- PHP 5.4 -- PHP 5.3 - -Each version of PHP is tested against the 3 supported database: Sqlite, Mysql and Postgresql. - -The Travis config file `.travis.yml` is located on the root directory of Kanboard. - -PHP'nin her sürümü desteklenen 3 veritabanına karşı test edilmiştir: Sqlite, Mysql ve Postgresql. - -Travis yapılandırma dosyası `.travis.yml` , Kanboard'un kök dizininde bulunur. diff --git a/doc/tr_TR/time-tracking.markdown b/doc/tr_TR/time-tracking.markdown deleted file mode 100644 index ee825b11..00000000 --- a/doc/tr_TR/time-tracking.markdown +++ /dev/null @@ -1,43 +0,0 @@ -Zaman izleme -============= - -Zaman izleme bilgileri, görev seviyesinde veya alt görev seviyesinde tanımlanabilir. - -Görev zamanı izleme ------------------- - -![Task time tracking](../screenshots/task-time-tracking.png) - -Görevlerin iki alanı vardır: - -- Tahmini zaman -- Harcanan zaman - -Bu değerler çalışma saatlerini temsil eder ve manuel olarak ayarlanması gerekir. - -Alt görev zaman izleme ---------------------- - -![Subtask time tracking](../screenshots/subtask-time-tracking.png) - -Alt görevlerin "geçen süre" ve "zaman tahmini" alanları da vardır. - -Bu alanların değerini değiştirdiğinizde **görev zaman izleme değerleri otomatik olarak güncellenir ve tüm alt görev değerlerinin toplamı haline gelir**. - -Kanboard, her bir alt görev durumu değişikliği arasındaki zamanı ayrı bir tabloda kaydeder. - -- Alt görev durumunu **todo** dan **devam eden** ne olarak değiştirme başlangıç zamanını günlüğüne kaydeder -- Alt görev durumu **devam eden** dan **tamamlanmış** olarak değiştirildiğinde, bitiş saati günlüğe kaydedilir, ancak alt görevin ve görevin geöen süresi de güncellenir - -Tüm kayıtların dökümü görev görünümü sayfasında görünür: - -![Task timesheet](../screenshots/task-timesheet.png) - -Her bir alt görev için zamanlayıcı, istediği zaman durdurulabilir / başlatılabilir: - -![Subtask timer](../screenshots/subtask-timer.png) - -- Zamanlayıcı, alt görev durumuna bağlı değildir -- Zamanlayıcıyı her başlatışınızda, zaman takibi tablosunda yeni bir kayıt oluşturulur -- Saati durdurduğunuz her sefer, bitiş tarihi saat izleme tablosuna kaydedilir -- Hesaplanan geçen süre en yakın çeyreğe yuvarlanır (sadece Kanboard < 1.0.32 için) diff --git a/doc/tr_TR/transitions.markdown b/doc/tr_TR/transitions.markdown deleted file mode 100644 index 66c08dba..00000000 --- a/doc/tr_TR/transitions.markdown +++ /dev/null @@ -1,14 +0,0 @@ -Görev Geçişleri -================ - -Bir görevin sütunlar arasındaki her hareketi veritabanına kaydedilir. - -![Task Transitions](../screenshots/task-transitions.png) - -Görev görünümünden ulaşılabilir, şu bilgileri görebilirsiniz: - -- Eylem tarihi -- Kaynak kolonu -- Hedef kolon -- Yürütücü (görevi yerine getiren kullanıcılar) -- Başlangıç kolonunda geçen süre diff --git a/doc/tr_TR/translations.markdown b/doc/tr_TR/translations.markdown deleted file mode 100644 index 1038f489..00000000 --- a/doc/tr_TR/translations.markdown +++ /dev/null @@ -1,68 +0,0 @@ -Translations -============ - -Kanboard'u yeni bir dilde nasıl tercüme edebilirim? --------------------------------------------- - -- Çeviriler, `app/Locale` dizininde saklanır -- Her dil için bir alt dizin var; örneğin Fransızca'da `fr_FR`, İtalyanca'da `it_IT`, Türkçe'de `tr_TR` vb. -- Bir çeviri, bir anahtar-değer çifti içeren bir dizi-Array döndüren bir PHP dosyasıdır -- Anahtar, İngilizce orijinal metindir ve değer ilgili dildeki tercümedir -- **Fransızca çeviriler her zaman günceldir** -- Daima son sürümü kullanın (branch master) - -### Yeni çeviri oluştur: - -1. Yeni bir dizin yapın: `app/Locale/xx_XX` örneğin Kanada Fransızcası için `app/Locale/fr_CA` -2. Çeviri için yeni bir dosya oluşturun: `app/Locale/xx_XX/translations.php` -3. Fransızca yerel ayarların içeriğini kullanın ve değerleri değiştirin -4. `app/Model/Language.php` dosyasını güncelleyin -5. Her şey yolunda giderse, Kanboard'u yerel olarak kurun. -6. [Github ile çekme isteği-pull-request with Github](https://help.github.com/articles/using-pull-requests/) gönderin - -Mevcut bir çeviri nasıl güncellenir? --------------------------------------- - -1. Çeviri dosyasını açın `app/Locale/xx_XX/translations.php` -2. Kayıp çeviriler `//` ile yorumlanır ve değerler boş, sadece boşluk doldurun ve açıklamayı kaldırın. -3. Yerel kurulumunuz olan Kanboard'u kontrol edin ve bir [pull-request](https://help.github.com/articles/using-pull-requests/) gönderin. - -Uygulamaya yeni çevrilmiş metin nasıl eklenir? --------------------------------------------------- - -Çeviriler, kaynak kodunda aşağıdaki işlevlerle birlikte görüntülenir: - -- `t()`: HTML escaping-çıkışı olan metinleri görüntüle -- `e()`: HTML escaping-çıkışı olmadan metinleri görüntüle - -Kaynak kodunda daima İngilizce sürümünü kullanın. - -Metin dizeleri, öğeleri değiştirmek için `sprintf()` işlevini kullanır: - -- `%s` bir karakter-kelime-string yerine kullanılır -- `%d` bir tamsayıyı-integer değiştirmek için kullanılır - -Tüm formatlar için [PHP Belgeleri-documentation](http://php.net/sprintf). - -Uygulamalardaki eksik çevirileri nasıl bulabilirim? ------------------------------------------------------ - -Bir terminalden aşağıdaki komutu çalıştırın: - -```bash -./cli locale:compare -``` - -Eksik ve kullanılmayan tüm çeviriler ekranda görüntülenir. -Bunu Fransız yerel ayarına koyun ve diğer yerel ayarları eşzamanlayın (aşağıya bakın). - -Çeviri dosyalarını nasıl senkronize ederim? -------------------------------------- - -Bir Unix shell-kabuğundan şu komutu çalıştırın: - -```bash -./cli locale:sync -``` - -Fransızca çevirisi diğer yerel ayarlarda referans olarak kullanılır. diff --git a/doc/tr_TR/ubuntu-installation.markdown b/doc/tr_TR/ubuntu-installation.markdown deleted file mode 100644 index 2922dc4e..00000000 --- a/doc/tr_TR/ubuntu-installation.markdown +++ /dev/null @@ -1,74 +0,0 @@ -Ubuntu üzerinde Kanboard Kurulumu -================================ - -Ubuntu Xenial 16.04 LTS ------------------------ - -Apache ve PHP'yi kurun: - -```bash -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 -``` - -Kanboard'u kurun: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Ubuntu Trusty 14.04 LTS ------------------------ - -Apache ve PHP'yi kurun: - -```bash -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 -``` - -Kanboard'u kurun: - -```bash -cd /var/www/html - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Ubuntu Precise 12.04 LTS ------------------------- - -Apache ve PHP'yi kurun: - -```bash -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 -``` - -Kanboard'u kurun: - -```bash -cd /var/www - -# Download the latest release from https://github.com/kanboard/kanboard/releases -wget https://github.com/kanboard/kanboard/archive/v<version>.zip - -unzip kanboard-<version>.zip -chown -R www-data:www-data kanboard-<version>/data -rm kanboard-<version>.zip -``` - -Kanboard'un bazı özellikleri, [günlük arka plan işi-cronjob](cronjob.markdown) çalıştırmanızı gerektirir. diff --git a/doc/tr_TR/update.markdown b/doc/tr_TR/update.markdown deleted file mode 100644 index 1ca0a654..00000000 --- a/doc/tr_TR/update.markdown +++ /dev/null @@ -1,52 +0,0 @@ -Kanboard'u yeni bir sürüme güncelleyin -================================= - -Çoğu zaman, Kanboard'un daha yeni bir sürümüne yükseltilmesi sorunsuzdur. -İşlem, yalnızca mevcut veri klasörünüzü yeni Kanboard klasörüne kopyalamak olarak özetlenebilir. -Kanboard otomatik olarak veritabanı geçişlerini-transferlerini sizin için yapar. - -Güncellemeden önce yapılması gereken önemli şeyler --------------------------------------- - -- **Yeni sürüme geçmeden önce verilerinizin her zaman yedek alın** -- **Yedeklemenizin geçerli olup olmadığını kontrol edin!** -- Tekrar kontrol edin -- Değişikliklerin olup olmadığını kontrol etmek için daima [değişiklik geçmişini](https://github.com/kanboard/kanboard/blob/master/ChangeLog) okuyun -- Çalıştırıcıyı-worker kullanıyorsanız durdurun -- Web sunucusunu bakım moduna geçirin; böylece kullanıcılar güncelleme işlemi sırasında yazılımı kullanmazlar - -Arşivden (kararlı sürüm) ---------------------------------- - -1. Yeni arşivin sıkıştırmasını açın -2. `data` klasörünü yeni sıkıştırılması açılmış dizine kopyalayın -3. Özel ``config.php` dosyanız varsa kopyalayın. -4. Bazı eklentileri kurduysanız, en yeni sürümlerini kullanın -5. `data` dizininin web sunucusu kullanıcısı tarafından yazılabilir olduğundan emin olun -6. Test edin -7. Eski Kanboard dizininizi kaldırın - -Depodan-repository (geliştirme versiyonu) ------------------------------------------ - -1. `git pull` -2. Giriş yapın ve her şeyin yolunda olduğunu kontrol edin - -Not: Bu yöntem, **mevcut geliştirme sürümünü** yükleyecektir, bu versiyonu kullanmanız kendi sorumluluğunuzdadır. - -SQL geçişlerini el-ile-manuel olarak çalıştırma -------------------------------- - -Varsayılan olarak, SQL geçişleri otomatik olarak yürütülür. Her istekte şema sürümü kontrol edilir. -Bu şekilde, Kanboard'u başka bir sürüme yükselttiğinizde, veritabanı şeması sizin için güncellenir. - -Belirli bir yapılandırmanız olması durumunda bu davranışı devre dışı bırakmak isteyebilirsiniz. -Örneğin, birden çok işlem göçleri-transferleri aynı anda uygulamayı denerseniz, her işlem bir işlem içinde yürütülseler de eşzamanlılık sorunlarınız olabilir. - -Bu özelliği devre dışı bırakmak için, [config file](config.markdown) 'da `DB_RUN_MIGRATIONS` parametresini `false` olarak ayarlayın. - -Kanboard'u yükseltmeniz gerektiğinde, şu komutu çalıştırın: - -```bash -./cli db:migrate -``` diff --git a/doc/tr_TR/usage-examples.markdown b/doc/tr_TR/usage-examples.markdown deleted file mode 100644 index b2c95c8e..00000000 --- a/doc/tr_TR/usage-examples.markdown +++ /dev/null @@ -1,67 +0,0 @@ -Kullanım Örnekleri -============== - -Panolarınızı ticari faaliyetlerinize göre özelleştirebilirsiniz: - -Yazılım geliştirme --------------------- - -- Birikim -- Hazır -- Devam ediyor -- Onaylanacak -- Doğrulanmış -- Üretimde dağıtılmıştır - -Hata-Bug izleme ------------- - -- Bildirildi -- Onaylandı -- Devam ediyor -- Test edildi -- Onaylandı - -Satış ------ - -- Teslimatlar -- Toplantı -- Teklif -- Satın alma - -Yalın işletme yönetimi ------------------------- - -- Fikirler -- Geliştirme -- Tedbir -- Analiz -- Bitti - -İşe alım-İstihdam süreci ------------------- - -- İş başvuruları -- Adaylar -- Telefon ekranları -- Görüşmeler -- Çalışanlar - -Online mağazalar ------------- - -- Siparişler -- Paketleme -- Gönderilmeye hazır -- Kargoya verildi-Sevk edildi - -Fabrikada ------------ - -- Müşteri Siparişleri -- Montaj -- Testler -- Paketleme -- Kargo hazırlık -- Kargoya verildi-Sevk edildi diff --git a/doc/tr_TR/user-management.markdown b/doc/tr_TR/user-management.markdown deleted file mode 100644 index 4285c693..00000000 --- a/doc/tr_TR/user-management.markdown +++ /dev/null @@ -1,36 +0,0 @@ -Kullanıcı yönetimi -=============== - -Yeni kullanıcı ekle --------------- - -Yeni bir kullanıcı eklemek için bir yönetici olmalısınız. - -1. Sağ üst köşedeki açılır menüden **Kullanıcı Yönetimi** seçeneğine gidin -2. Üst kısımda bir bağlantı var **Yeni yerel kullanıcı** veya **Yeni uzak kullanıcı** -3. Formu doldurun ve kaydedin. - -![New user](../screenshots/new-user.png) - -Bir **yerel kullanıcı** oluşturduğunuzda, en azından bu değerleri belirtmeniz gerekir: - -- **kullanıcı adı**: Bu, kullanıcının benzersiz tanımlayıcısıdır (giriş) -- **şifre**: Kullanıcınızın şifresi en az 6 karakter olmalıdır - -**uzak kullanıcı** için yalnızca kullanıcı adı zorunludur. - -Kullanıcıları düzenle ----------- - -**kullanıcılar** menüsüne gittiğinizde, kullanıcıların listesine sahipsiniz. Bir kullanıcıyı değiştirmek için **bağlantıyı-link düzenle** ye tıklayınız. - -- Normal bir kullanıcısanız, yalnızca kendi profilinizi değiştirebilirsiniz -- Herhangi bir kullanıcıyı düzenleyebilmek için bir yönetici olmak zorundasınız. - -Kullanıcıları kaldır ------------- - -**kullanıcılar** menüsünden **kaldır** bağlantısını tıklayın. Bu bağlantı, yalnızca siz yönetici iseniz görünür. - -Belirli bir kullanıcıyı kaldırırsanız, **bu kişiye atanan görevler işlemden sonra atanmamış olacaktır**. - diff --git a/doc/tr_TR/user-mentions.markdown b/doc/tr_TR/user-mentions.markdown deleted file mode 100644 index abf3700f..00000000 --- a/doc/tr_TR/user-mentions.markdown +++ /dev/null @@ -1,17 +0,0 @@ -Kullanıcı Mentionları -============= - -Kanboard, birinden bahsedildiğinde bildirim gönderme olanağı sunar. - -Bir yorumda veya bir görevde birinin dikkatini çekmeniz gerekiyorsa, @ simgesini ve ardından kullanıcı adını kullanın. -Kanboard otomatik olarak bir kullanıcı listesi önerecektir: - -![User Mention](../screenshots/user-mentions.png) - -- Şu anda yalnızca görev açıklaması ve açıklama metin alanı bu özelliği etkinleştirmiştir. -- Kullanıcı, yalnızca görevler ve yorumlar oluşturma sırasında bahsediyor. -- Bildirilmek üzere bahsedilen kullanıcıların projenin bir üyesi olması gerekiyor. -- Birisi belirtildiğinde, bu kullanıcı bir bildirim alacaktır. -- @ kullanıcı adı yazısı genel kullanıcı profiliyle bağlantılıdır. - -Bildirim, kullanıcı ayarlarına göre gönderilir; doğru eklentileri yüklediyseniz, Slack / Hipchat / Jabber'de bir e-posta, web bildirimi veya bir mesaj olabilir. diff --git a/doc/tr_TR/user-types.markdown b/doc/tr_TR/user-types.markdown deleted file mode 100644 index 6df725bf..00000000 --- a/doc/tr_TR/user-types.markdown +++ /dev/null @@ -1,14 +0,0 @@ -Kullanıcı Tipleri -========== - -Kanboard'da iki tür kullanıcı vardır: - -| Tip | Açıklama | -|-----------------|-----------------------------------------------------------------------------------------| -| Yerel Kullanıcı | Kullanıcı şifresini Kanboard'un veritabanında saklar | -| Uzak Kullanıcı | Kullanıcı kimlik bilgileri başka bir sistem tarafından yönetilir (Örnek: LDAP sunucusu) | - -Uzak kullanıcılara örnekler: - -- LDAP kullanıcısı -- Ters proxy ile kimlik doğrulamasına tabi tutulmuş kullanıcılar diff --git a/doc/tr_TR/vagrant.markdown b/doc/tr_TR/vagrant.markdown deleted file mode 100644 index 33e9e261..00000000 --- a/doc/tr_TR/vagrant.markdown +++ /dev/null @@ -1,10 +0,0 @@ -Vagrant ile Kanboard çalıştırın -========================= - -Kanboard with Vagrant'ı çok kolay deneyebilirsiniz: - -- Git havuzundan projeyi klonlamak -- `vagrant up` yapın -- Uygulamaya, `http://localhost:8001/` URL'sini kullanarak erişebilirsiniz. - -Sanal makine PHP 7 ile Ubuntu 16.04 üzerine kurulmuştur. diff --git a/doc/tr_TR/webhooks.markdown b/doc/tr_TR/webhooks.markdown deleted file mode 100644 index 571b44b4..00000000 --- a/doc/tr_TR/webhooks.markdown +++ /dev/null @@ -1,487 +0,0 @@ -Web kancası-Webhooks -======== - -Web kancası-Webhooks harici uygulamalarla işlemleri gerçekleştirmek için kullanışlıdır. - -- Webhook'lar, basit bir URL'yi çağırarak bir görev oluşturmak için kullanılabilir (Bunu da API ile yapabilirsiniz) -- Kanboard'da bir olay meydana geldiğinde (görev yaratma, açıklama güncellendi, vb.) Harici bir URL otomatik olarak çağrılabilir - -Web kancası-Webhooks alıcı nasıl yazılır? ---------------------------------- - -Kanboard'un tüm dahili olayları harici bir URL'ye gönderilebilir. - -- Web kancası-Webhooks URL'si **Ayarlar> Web kancası-Webhooks> Web kancası-Webhooks URL** 'de tanımlanmalıdır. -- Bir olay tetiklendiğinde Kanboard önceden tanımlı URL'yi otomatik olarak çağırır -- Veriler JSON formatında kodlanır ve bir POST HTTP isteğiyle gönderilir -- Web kancası-Webhooks anahtarı-token da bir sorgu dizesi parametresi olarak gönderilir, böylece isteğin gerçekten Kanboard'dan geldiğini kontrol edebilirsiniz. -- **Özel URL'niz 1 saniyeden kısa bir sürede yanıt almalıdır**, bu istekler senkron (PHP sınırlaması) olup komut dosyası çok yavaşsa kullanıcı arayüzünü yavaşlatabilir! - -### Desteklenen etkinlikler listesi - -- 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 isteği örneği - -``` -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": "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" - } -} -``` - -Tüm etkinlik yükleri aşağıdaki biçimde: - -```json -{ - "event_name": "model.event_name", - "event_data": { - "key1": "value1", - "key2": "value2", - ... - } -} -``` - -`event_data` değerleri olaylar arasında normalize edilmek zorunda değildir. - -### Etkinlik yükü örnekleri - -Görev yaratma: - -```json -{ - "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 - } - } -} -``` - -Görev değişikliği: - -```json -{ - "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 - } - } -} -``` - -Görev güncelleme etkinlikleri, güncellenmiş değerleri içeren `changes` adı verilen bir alana sahiptir. - -Yorum yaratma: - -```json -{ - "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 - } - } -} -``` - -Alt görev yaratma: - -```json -{ - "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 - } - } -} -``` - -Dosya yükleme: - -```json -{ - "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 - } - } -} -``` - -Görev bağlantısı oluşturulması: - -```json -{ - "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 - } - } -} -``` diff --git a/doc/tr_TR/windows-apache-installation.markdown b/doc/tr_TR/windows-apache-installation.markdown deleted file mode 100644 index d45c1117..00000000 --- a/doc/tr_TR/windows-apache-installation.markdown +++ /dev/null @@ -1,130 +0,0 @@ -Windows Server ve Apache üzerinde Kurulum -========================================= - -Bu kılavuz, bir Windows Server'da Apache ve PHP ile adım adım Kanboard kurmanıza yardımcı olacaktır. - -Not: 64 bitlik bir platformunuz varsa "x64" seçin, aksi halde 32-bit sistemler için "x86" seçeneğini seçin. - -Visual C ++ Yeniden Dağıtılabilir-Redistributable Kurulum ---------------------------------------- - -PHP ve Apache Visual Studio ile derlenmiştir, bu kütüphaneyi henüz kurmadıysanız yüklemeniz gerekir. - -1. Kitaplığı [resmi Microsoft web sitesinden](http://www.microsoft.com/en-us/download/details.aspx?id=30679) indirin. -2. Yükleyicilerden `vcredist_x64.exe` veya `vcredist_x86.exe` yi platformunuza göre çalıştırın - -Apache kurulumu ---------------------------------------- - -1. Apache ikili-binary dosyasını [Apache Lounge](http://www.apachelounge.com/download/) adresinden indirin. -2. Apache24 ü `C:\Apache24` klasörününe sıkıştırılmış dosyaları açın. - -### Sunucu adını tanımla - -`C:\Apache24\conf\httpd.conf` dosyasını açın ve yönergeyi ekleyin: - -``` -ServerName localhost -``` - -### Apache hizmetini-service kur - -Bir komut istemi açın (`cmd.exe`) ve `C:\Apache24\bin` dizinine gidin: - -```bash -cd C:\Apache24\bin - -# Windows hizmetini-service yükle -httpd.exe -k install -``` - -### ApacheMonitor'i kur - -- `C:\Apache24\bin\ApacheMonitor.exe` dosyasına çift tıklayın veya başlangıç klasörüne koyun. -- Simgesine sağ tıklayın ve Apache'yi başlatın. - -### Apache kurulumunu kontrol edin - -http://localhost/ adresine giderseniz, "It works! / Çalışıyor!" metniyle birlikte boş bir sayfa görmeniz gerekir. - -PHP kurulumu ----------------- - -1. PHP'nin son kararlı sürümünü [resmi PHP web sitesinden](http://windows.php.net/download/) indirin, **İş Parçası Güvenli-Thread Safe** sürümünü seçin ve Apache ile aynı yapı türünü kullanın: x86 or x64 -2. `C:\php` klasörüne sıkıştırılmış dosyaları açın -3. PHP klasörüne gidin ve `php.ini-production` dosyasını `php.ini` olarak yeniden adlandırın - -`php.ini` yi düzenleyin: - -Uzantı dizininindeki yorum işaretlerini-Uncomment kaldırın: - -```ini -extension_dir = "C:/php/ext" -``` - -Şu PHP modüllerininden yorum işaretlerini-Uncomment kaldırın: - -```ini -extension=php_gd2.dll -extension=php_ldap.dll -extension=php_mbstring.dll -extension=php_openssl.dll -extension=php_pdo_sqlite.dll -``` - -Saat dilimini ayarlayın: - -```ini -date.timezone = Europe/Istanbul -``` - -Desteklenen saat dilimlerinin listesi [PHP belgeleri](http://php.net/manual/en/timezones.america.php) adresinde bulunabilir. - -Apache için PHP modülünü yükleyin: - -Şu yapılandırmayı `C:\Apache24\conf\httpd.conf` dosyasına ekleyin: - -``` -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'yi yeniden başlatın. - -PHP kurulumunuzu test edin: - -`C:\Apache24\htdocs` klasöründe `phpinfo.php` adlı bir dosya oluşturun: - -```php -<?php - -phpinfo(); - -?> -``` - -http://localhost/phpinfo.php adresine gidin ve PHP kurulumunuzla ilgili tüm bilgileri görmelisiniz. - -Kanboard kurulumu ---------------------- - -- Zipli dosyayı indirin -- Sıkıştırılmış arşiv dosyasının `C:\Apache24\htdocs\kanboard` klasöründe sıkıştırmasını açın -- Kanboard'u kullanmak için http://localhost/kanboard/ adresini web tarayıcınızı açın -- Varsayılan kimlik bilgileri **kullanıcı adı:admin/şifre:admin** - -Test edilmiş yapılandırma --------------------- - -- Windows 2008 R2 / Apache 2.4.12 / PHP 5.6.8 - -Not ------ - -- Kanboard'un bazı özellikleri, [günlük arka plan işi-cronjob](cronjob.markdown) çalıştırmanızı gerektirir. diff --git a/doc/tr_TR/windows-iis-installation.markdown b/doc/tr_TR/windows-iis-installation.markdown deleted file mode 100644 index 9d8d0d67..00000000 --- a/doc/tr_TR/windows-iis-installation.markdown +++ /dev/null @@ -1,67 +0,0 @@ -Windows 2008/2012 üzerinde IIS ile Yükleme -========================================== - -Bu kılavuz, Kanboard'un IIS ve PHP ile Windows Server'da adım adım kurulmasına yardımcı olacaktır. - -PHP kurulumu ----------------- - -- IIS'yi sunucunuza yükleyin (yeni bir rol ekleyin ve CGI/FastCGI'yi etkinleştirmeyi unutmayın) -- Resmi belgeleri izleyerek PHP'yi kurun: - - [Microsoft IIS 5.1 ve IIS 6.0](http://php.net/manual/tr/install.windows.iis6.php) - - [Microsoft IIS 7.0 ve sonrası](http://php.net/manual/en/install.windows.iis7.php) - - [PHP for Windows burada mevcuttur](http://windows.php.net/download/) - - -### PHP.ini - -En azından bu uzantıları `php.ini` dosyanızda bulmanız gerekir: - -```ini -extension=php_gd2.dll -extension=php_ldap.dll -extension=php_mbstring.dll -extension=php_openssl.dll -extension=php_pdo_sqlite.dll -``` - -Gerekli PHP uzantılarının tam listesi [gereksinimler sayfasında](requirements.markdown) dır. - -Saat dilimini ayarlamayı unutmayın: - -```ini -date.timezone = Europe/Istanbul -``` - -Desteklenen saat dilimleri listesi [PHP belgelerinde](http://php.net/manual/tr/timezones.europe.php) bulunabilir. - -Notlar: - -- PHP <5.4 kullanıyorsanız, php.ini dosyanızdaki kısa etiketleri etkinleştirmeniz gerekir -- Yukarıda belirtilen gerekli php uzantılarını etkinleştirmeyi unutmayın -- "MSVCP110.dll kütüphanesi eksik / the library MSVCP110.dll is missing" konusunda bir hata alırsanız, Microsoft web sitesinden Visual Studio için Visual C ++ Yeniden Dağıtılabilir (Visual C++ Redistributable for Visual Studio) dosyasını indirmeniz gerekebilir. - -IIS Modülleri ------------ - -Kanboard arşivi(sıkıştırılmış dosya) [URL yeniden yazma](nice-urls.markdown) özelliğini etkinleştirmek için bir `web.config` dosyası içerir. -Bu yapılandırma [IIS için yeniden yazma modülü-Rewrite module for IIS](http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module) gerektirir. - -Yeniden yazma modülünüz yoksa, IIS'den bir dahili sunucu hatası (500) alırsınız. -Kanboard'da okunabilir-hoş URL'lerle sahip olmak istemiyorsanız `web.config` dosyasını kaldırabilirsiniz. - -Kanboard kurulumu ---------------------- - -- Zip-arşivi(sıkıştırılmış dosya) dosyasını indirin -- Arşivi(sıkıştırılmış dosya) `C:\inetpub\wwwroot\kanboard` klasörüne sıkıştırılmış dosyaları açınız -- `veri 'dizininin IIS kullanıcısı tarafından yazılabilir olduğundan emin olun -- Kanboard'u kullanmak için web tarayıcınızı açın http: // localhost / kanboard / -- Varsayılan kimlik bilgileri **admin/admin** -- [URL yeniden yazma yapılandırması](nice-urls.markdown) - -Notlar ------ - -- Kanboard'un bazı özellikleri, [günlük arka plan işi-cronjob](cronjob.markdown) çalıştırmanızı gerektirir. - diff --git a/doc/tr_TR/worker.markdown b/doc/tr_TR/worker.markdown deleted file mode 100644 index 22827adb..00000000 --- a/doc/tr_TR/worker.markdown +++ /dev/null @@ -1,37 +0,0 @@ -Arka Plan Çalışanları-Workers -================== - -**Bu özellik deneyseldir**. - -Yapılandırmanıza bağlı olarak, bazı özellikler HTTP isteği ile aynı işlemde yürütülürse uygulamayı yavaşlatabilir. -Kanboard, bu görevleri gelen olayları dinleyen bir arka plan işçisine devredebilir. - -Kanboard'u yavaşlatabilecek özellik örneği: - -- Harici bir SMTP sunucusu üzerinden e-posta göndermek birkaç saniye sürebilir -- Dış hizmetleri bildirim gönderme - -Bu özellik isteğe bağlıdır ve sunucunuza bir sıra arka plan programının yüklenmesini gerektirir. - -### Beanstalk - -[Beanstalk](http://kr.github.io/beanstalkd/) basit, hızlı bir iş kuyruğu. - -- Beanstalk'u kurmak için, Linux dağıtımınızın paket yöneticisini kullanabilirsiniz -- [Beanstalk için Kanboard eklentisi](https://github.com/kanboard/plugin-beanstalk) -- Çalışanı Kanboard komut satırı aracıyla çalıştırın: `./cli worker` - -### RabbitMQ - -[RabbitMQ](https://www.rabbitmq.com/), yüksek kullanılabilirlikli altyapı için daha uygun olan sağlam bir mesajlaşma sistemidir. - -- Kurulum ve yapılandırma için RabbitMQ'nun resmi belgelerini takip edin -- [RabboardMQ için Kanboard eklentisi](https://github.com/kanboard/plugin-rabbitmq) -- Çalışanı Kanboard komut satırı aracıyla çalıştırın: `./cli worker` - -### Notlar - -- Kanboard çalışana bir süreç denetçisi (systemd, upstart veya supervisord) ile başlanmalıdır. -- Dosyaları yerel dosya sisteminde saklıyorsanız veya Sqlite'i kullanıyorsanız işlemin veri klasörüne erişmesi gerekir - - |