summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/api-swimlane-procedures.markdown2
-rw-r--r--doc/api-task-procedures.markdown138
-rw-r--r--doc/config.markdown11
-rw-r--r--doc/es_ES/2fa.markdown33
-rw-r--r--doc/es_ES/analytics.markdown59
-rw-r--r--doc/es_ES/api-json-rpc.markdown69
-rw-r--r--doc/es_ES/bruteforce-protection.markdown26
-rw-r--r--doc/es_ES/debian-installation.markdown65
-rw-r--r--doc/es_ES/user-mentions.markdown18
-rw-r--r--doc/plugin-hooks.markdown48
10 files changed, 467 insertions, 2 deletions
diff --git a/doc/api-swimlane-procedures.markdown b/doc/api-swimlane-procedures.markdown
index c58e56c9..d7c1e28f 100644
--- a/doc/api-swimlane-procedures.markdown
+++ b/doc/api-swimlane-procedures.markdown
@@ -373,7 +373,7 @@ Response example:
## disableSwimlane
-- Purpose: **Enable a swimlane**
+- Purpose: **Disable a swimlane**
- Parameters:
- **project_id** (integer, required)
- **swimlane_id** (integer, required)
diff --git a/doc/api-task-procedures.markdown b/doc/api-task-procedures.markdown
index 934b1e09..2897c81a 100644
--- a/doc/api-task-procedures.markdown
+++ b/doc/api-task-procedures.markdown
@@ -695,3 +695,141 @@ Response example:
]
}
```
+
+## 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/config.markdown b/doc/config.markdown
index e51fd54a..853fa6f2 100644
--- a/doc/config.markdown
+++ b/doc/config.markdown
@@ -37,6 +37,17 @@ Folder for uploaded files
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
--------------------------
diff --git a/doc/es_ES/2fa.markdown b/doc/es_ES/2fa.markdown
new file mode 100644
index 00000000..18e13b88
--- /dev/null
+++ b/doc/es_ES/2fa.markdown
@@ -0,0 +1,33 @@
+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://fedorahosted.org/freeotp/) (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](https://kanboard.net/screenshots/documentation/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.markdown b/doc/es_ES/analytics.markdown
new file mode 100644
index 00000000..b2a3d7ae
--- /dev/null
+++ b/doc/es_ES/analytics.markdown
@@ -0,0 +1,59 @@
+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](https://kanboard.net/screenshots/documentation/user-repartition.png)
+
+Esta gráfico de sectores muestra el numero de tareas abiertas asignadas por usuario.
+
+Distribución de tareas
+----------------------
+
+![Task distribution](https://kanboard.net/screenshots/documentation/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](https://kanboard.net/screenshots/documentation/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-json-rpc.markdown b/doc/es_ES/api-json-rpc.markdown
new file mode 100644
index 00000000..23088890
--- /dev/null
+++ b/doc/es_ES/api-json-rpc.markdown
@@ -0,0 +1,69 @@
+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/bruteforce-protection.markdown b/doc/es_ES/bruteforce-protection.markdown
new file mode 100644
index 00000000..2a08fc27
--- /dev/null
+++ b/doc/es_ES/bruteforce-protection.markdown
@@ -0,0 +1,26 @@
+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/debian-installation.markdown b/doc/es_ES/debian-installation.markdown
new file mode 100644
index 00000000..5636744b
--- /dev/null
+++ b/doc/es_ES/debian-installation.markdown
@@ -0,0 +1,65 @@
+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
+wget https://kanboard.net/kanboard-latest.zip
+unzip kanboard-latest.zip
+chown -R www-data:www-data kanboard/data
+rm kanboard-latest.zip
+```
+
+Debian 7 (Wheezy)
+-----------------
+
+Instalar Apache y PHP
+
+```bash
+apt-get update
+apt-get install -y php5 php5-sqlite php5-gd unzip
+```
+
+Instalar Kanboard
+
+```bash
+cd /var/www
+wget https://kanboard.net/kanboard-latest.zip
+unzip kanboard-latest.zip
+chown -R www-data:www-data kanboard/data
+rm kanboard-latest.zip
+```
+
+Debian 6 (Squeeze)
+------------------
+
+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
+wget https://kanboard.net/kanboard-latest.zip
+unzip kanboard-latest.zip
+chown -R www-data:www-data kanboard/data
+rm kanboard-latest.zip
+```
diff --git a/doc/es_ES/user-mentions.markdown b/doc/es_ES/user-mentions.markdown
new file mode 100644
index 00000000..1d7410e3
--- /dev/null
+++ b/doc/es_ES/user-mentions.markdown
@@ -0,0 +1,18 @@
+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/plugin-hooks.markdown b/doc/plugin-hooks.markdown
index 787c62df..b5d25a40 100644
--- a/doc/plugin-hooks.markdown
+++ b/doc/plugin-hooks.markdown
@@ -105,7 +105,7 @@ class Plugin extends Base
{
public function initialize()
{
- $this->hook->on('template:layout:css', 'plugins/Css/skin.css');
+ $this->hook->on('template:layout:css', array('template' => 'plugins/Css/skin.css'));
}
}
```
@@ -115,6 +115,33 @@ 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: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:modification:prepare` | Alter form values before to edit a task |
+
+
Template Hooks
--------------
@@ -126,6 +153,22 @@ Example to add new content in the dashboard sidebar:
$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.
@@ -161,6 +204,7 @@ List of template hooks:
| `template:config:email` | Email settings page |
| `template:config:integrations` | Integration page in global settings |
| `template:dashboard:sidebar` | Sidebar on dashboard page |
+| `template:dashboard:show` | Main page of the dashboard |
| `template:export:sidebar` | Sidebar on export pages |
| `template:import:sidebar` | Sidebar on import pages |
| `template:header:dropdown` | Page header dropdown menu (user avatar icon) |
@@ -174,6 +218,8 @@ List of template hooks:
| `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:task:layout:top` | Task layout top (after page header) |
| `template:task:details:top` | Task summary top |
| `template:task:details:bottom` | Task summary bottom |