Add project description field.
Description is shown in a popup when hovering the 'information' icon, like column description, which is shown in project list on dashboard and in board's title. This is useful to document the categories and colors used in the project.
This commit is contained in:
@@ -127,6 +127,7 @@ class Board extends Base
|
|||||||
'swimlanes' => $this->board->getBoard($project['id']),
|
'swimlanes' => $this->board->getBoard($project['id']),
|
||||||
'categories' => $this->category->getList($project['id'], false),
|
'categories' => $this->category->getList($project['id'], false),
|
||||||
'title' => $project['name'],
|
'title' => $project['name'],
|
||||||
|
'description' => $project['description'],
|
||||||
'no_layout' => true,
|
'no_layout' => true,
|
||||||
'not_editable' => true,
|
'not_editable' => true,
|
||||||
'board_public_refresh_interval' => $this->config->get('board_public_refresh_interval'),
|
'board_public_refresh_interval' => $this->config->get('board_public_refresh_interval'),
|
||||||
@@ -187,6 +188,7 @@ class Board extends Base
|
|||||||
'swimlanes' => $this->board->getBoard($project['id']),
|
'swimlanes' => $this->board->getBoard($project['id']),
|
||||||
'categories' => $this->category->getList($project['id'], true, true),
|
'categories' => $this->category->getList($project['id'], true, true),
|
||||||
'title' => $project['name'],
|
'title' => $project['name'],
|
||||||
|
'description' => $project['description'],
|
||||||
'board_selector' => $board_selector,
|
'board_selector' => $board_selector,
|
||||||
'board_private_refresh_interval' => $this->config->get('board_private_refresh_interval'),
|
'board_private_refresh_interval' => $this->config->get('board_private_refresh_interval'),
|
||||||
'board_highlight_period' => $this->config->get('board_highlight_period'),
|
'board_highlight_period' => $this->config->get('board_highlight_period'),
|
||||||
|
|||||||
@@ -6,7 +6,12 @@ use PDO;
|
|||||||
use Core\Security;
|
use Core\Security;
|
||||||
use Model\Link;
|
use Model\Link;
|
||||||
|
|
||||||
const VERSION = 46;
|
const VERSION = 47;
|
||||||
|
|
||||||
|
function version_47($pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE projects ADD COLUMN description TEXT');
|
||||||
|
}
|
||||||
|
|
||||||
function version_46($pdo)
|
function version_46($pdo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,7 +6,12 @@ use PDO;
|
|||||||
use Core\Security;
|
use Core\Security;
|
||||||
use Model\Link;
|
use Model\Link;
|
||||||
|
|
||||||
const VERSION = 27;
|
const VERSION = 28;
|
||||||
|
|
||||||
|
function version_28($pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE projects ADD COLUMN description TEXT');
|
||||||
|
}
|
||||||
|
|
||||||
function version_27($pdo)
|
function version_27($pdo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6,7 +6,12 @@ use Core\Security;
|
|||||||
use PDO;
|
use PDO;
|
||||||
use Model\Link;
|
use Model\Link;
|
||||||
|
|
||||||
const VERSION = 45;
|
const VERSION = 46;
|
||||||
|
|
||||||
|
function version_46($pdo)
|
||||||
|
{
|
||||||
|
$pdo->exec('ALTER TABLE projects ADD COLUMN description TEXT');
|
||||||
|
}
|
||||||
|
|
||||||
function version_45($pdo)
|
function version_45($pdo)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -17,9 +17,15 @@
|
|||||||
<?php if ($this->isManager($project['id'])): ?>
|
<?php if ($this->isManager($project['id'])): ?>
|
||||||
<?= $this->a('<i class="fa fa-cog"></i>', 'project', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Settings')) ?>
|
<?= $this->a('<i class="fa fa-cog"></i>', 'project', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Settings')) ?>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
|
|
||||||
<?= $this->a('<i class="fa fa-calendar"></i>', 'calendar', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Calendar')) ?>
|
<?= $this->a('<i class="fa fa-calendar"></i>', 'calendar', 'show', array('project_id' => $project['id']), false, 'dashboard-table-link', t('Calendar')) ?>
|
||||||
|
|
||||||
<?= $this->a($this->e($project['name']), 'board', 'show', array('project_id' => $project['id'])) ?>
|
<?= $this->a($this->e($project['name']), 'board', 'show', array('project_id' => $project['id'])) ?>
|
||||||
|
<?php if (! empty($project['description'])): ?>
|
||||||
|
<span class="column-tooltip" title="<?= $this->markdown($project['description']) ?>">
|
||||||
|
<i class="fa fa-info-circle"></i>
|
||||||
|
</span>
|
||||||
|
<?php endif ?>
|
||||||
</td>
|
</td>
|
||||||
<td class="dashboard-project-stats">
|
<td class="dashboard-project-stats">
|
||||||
<?php foreach ($project['columns'] as $column): ?>
|
<?php foreach ($project['columns'] as $column): ?>
|
||||||
@@ -32,4 +38,4 @@
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<?= $paginator ?>
|
<?= $paginator ?>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
|
|||||||
@@ -35,7 +35,13 @@
|
|||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<header>
|
<header>
|
||||||
<nav>
|
<nav>
|
||||||
<h1><?= $this->a('K<span>B</span>', 'app', 'index', array(), false, 'logo', t('Dashboard')).' '.$this->summary($this->e($title)) ?></h1>
|
<h1><?= $this->a('K<span>B</span>', 'app', 'index', array(), false, 'logo', t('Dashboard')).' '.$this->summary($this->e($title)) ?>
|
||||||
|
<?php if (! empty($description)): ?>
|
||||||
|
<span class="column-tooltip" title="<?= $this->markdown($description) ?>">
|
||||||
|
<i class="fa fa-info-circle"></i>
|
||||||
|
</span>
|
||||||
|
<?php endif ?>
|
||||||
|
</h1>
|
||||||
<ul>
|
<ul>
|
||||||
<?php if (isset($board_selector) && ! empty($board_selector)): ?>
|
<?php if (isset($board_selector) && ! empty($board_selector)): ?>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
@@ -9,7 +9,28 @@
|
|||||||
<?= $this->formLabel(t('Name'), 'name') ?>
|
<?= $this->formLabel(t('Name'), 'name') ?>
|
||||||
<?= $this->formText('name', $values, $errors, array('required', 'maxlength="50"')) ?>
|
<?= $this->formText('name', $values, $errors, array('required', 'maxlength="50"')) ?>
|
||||||
|
|
||||||
|
<?= $this->formLabel(t('Description'), 'description') ?>
|
||||||
|
|
||||||
|
<div class="form-tabs">
|
||||||
|
|
||||||
|
<div class="write-area">
|
||||||
|
<?= $this->formTextarea('description', $values, $errors) ?>
|
||||||
|
</div>
|
||||||
|
<div class="preview-area">
|
||||||
|
<div class="markdown"></div>
|
||||||
|
</div>
|
||||||
|
<ul class="form-tabs-nav">
|
||||||
|
<li class="form-tab form-tab-selected">
|
||||||
|
<i class="fa fa-pencil-square-o fa-fw"></i><a id="markdown-write" href="#"><?= t('Write') ?></a>
|
||||||
|
</li>
|
||||||
|
<li class="form-tab">
|
||||||
|
<a id="markdown-preview" href="#"><i class="fa fa-eye fa-fw"></i><?= t('Preview') ?></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="form-help"><a href="http://kanboard.net/documentation/syntax-guide" target="_blank" rel="noreferrer"><?= t('Write your text in Markdown') ?></a></div>
|
||||||
|
|
||||||
<div class="form-actions">
|
<div class="form-actions">
|
||||||
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
|
<input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -39,7 +39,13 @@
|
|||||||
<?php if ($project['is_private']): ?>
|
<?php if ($project['is_private']): ?>
|
||||||
<i class="fa fa-lock fa-fw"></i>
|
<i class="fa fa-lock fa-fw"></i>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
|
|
||||||
<?= $this->a($this->e($project['name']), 'project', 'show', array('project_id' => $project['id'])) ?>
|
<?= $this->a($this->e($project['name']), 'project', 'show', array('project_id' => $project['id'])) ?>
|
||||||
|
<?php if (! empty($project['description'])): ?>
|
||||||
|
<span class="column-tooltip" title="<?= $this->markdown($project['description']) ?>">
|
||||||
|
<i class="fa fa-info-circle"></i>
|
||||||
|
</span>
|
||||||
|
<?php endif ?>
|
||||||
</td>
|
</td>
|
||||||
<td class="dashboard-project-stats">
|
<td class="dashboard-project-stats">
|
||||||
<?php foreach ($project['columns'] as $column): ?>
|
<?php foreach ($project['columns'] as $column): ?>
|
||||||
@@ -54,4 +60,4 @@
|
|||||||
<?= $paginator ?>
|
<?= $paginator ?>
|
||||||
<?php endif ?>
|
<?php endif ?>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -60,3 +60,13 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<?php endforeach ?>
|
<?php endforeach ?>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<?php if (! empty($project['description'])): ?>
|
||||||
|
<div class="page-header">
|
||||||
|
<h2><?= t('Description') ?></h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<article class="markdown">
|
||||||
|
<?= $this->markdown($project['description']) ?>
|
||||||
|
</article>
|
||||||
|
<?php endif ?>
|
||||||
|
|||||||
@@ -176,6 +176,7 @@ Response example:
|
|||||||
- Purpose: **Create a new project**
|
- Purpose: **Create a new project**
|
||||||
- Parameters:
|
- Parameters:
|
||||||
- **name** (string, required)
|
- **name** (string, required)
|
||||||
|
- **description** (string, optional)
|
||||||
- Result on success: **project_id**
|
- Result on success: **project_id**
|
||||||
- Result on failure: **false**
|
- Result on failure: **false**
|
||||||
|
|
||||||
@@ -235,7 +236,8 @@ Response example:
|
|||||||
"is_active": "1",
|
"is_active": "1",
|
||||||
"token": "",
|
"token": "",
|
||||||
"last_modified": "1410263246",
|
"last_modified": "1410263246",
|
||||||
"is_public": "0"
|
"is_public": "0",
|
||||||
|
"description": "A sample project"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -273,7 +275,8 @@ Response example:
|
|||||||
"is_active": "1",
|
"is_active": "1",
|
||||||
"token": "",
|
"token": "",
|
||||||
"last_modified": "0",
|
"last_modified": "0",
|
||||||
"is_public": "0"
|
"is_public": "0",
|
||||||
|
"description": "A sample project"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -309,7 +312,8 @@ Response example:
|
|||||||
"is_active": "1",
|
"is_active": "1",
|
||||||
"token": "",
|
"token": "",
|
||||||
"last_modified": "0",
|
"last_modified": "0",
|
||||||
"is_public": "0"
|
"is_public": "0",
|
||||||
|
"description": "PHP client project"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "1",
|
"id": "1",
|
||||||
@@ -317,7 +321,8 @@ Response example:
|
|||||||
"is_active": "1",
|
"is_active": "1",
|
||||||
"token": "",
|
"token": "",
|
||||||
"last_modified": "0",
|
"last_modified": "0",
|
||||||
"is_public": "0"
|
"is_public": "0",
|
||||||
|
"description": "Test project"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -332,6 +337,7 @@ Response example:
|
|||||||
- **is_active** (integer, optional)
|
- **is_active** (integer, optional)
|
||||||
- **token** (string, optional)
|
- **token** (string, optional)
|
||||||
- **is_public** (integer, optional)
|
- **is_public** (integer, optional)
|
||||||
|
- **description** (string, optional)
|
||||||
- Result on success: **true**
|
- Result on success: **true**
|
||||||
- Result on failure: **false**
|
- Result on failure: **false**
|
||||||
|
|
||||||
|
|||||||
10
jsonrpc.php
10
jsonrpc.php
@@ -22,13 +22,16 @@ $server->bind('enableProjectPublicAccess', $container['project'], 'enablePublicA
|
|||||||
$server->bind('disableProjectPublicAccess', $container['project'], 'disablePublicAccess');
|
$server->bind('disableProjectPublicAccess', $container['project'], 'disablePublicAccess');
|
||||||
$server->bind('getProjectActivity', $container['projectActivity'], 'getProjects');
|
$server->bind('getProjectActivity', $container['projectActivity'], 'getProjects');
|
||||||
|
|
||||||
$server->register('createProject', function($name) use ($container) {
|
$server->register('createProject', function($name, $description = null) use ($container) {
|
||||||
$values = array('name' => $name);
|
$values = array(
|
||||||
|
'name' => $name,
|
||||||
|
'description' => $description
|
||||||
|
);
|
||||||
list($valid,) = $container['project']->validateCreation($values);
|
list($valid,) = $container['project']->validateCreation($values);
|
||||||
return $valid ? $container['project']->create($values) : false;
|
return $valid ? $container['project']->create($values) : false;
|
||||||
});
|
});
|
||||||
|
|
||||||
$server->register('updateProject', function($id, $name, $is_active = null, $is_public = null, $token = null) use ($container) {
|
$server->register('updateProject', function($id, $name, $is_active = null, $is_public = null, $token = null, $description = null) use ($container) {
|
||||||
|
|
||||||
$values = array(
|
$values = array(
|
||||||
'id' => $id,
|
'id' => $id,
|
||||||
@@ -36,6 +39,7 @@ $server->register('updateProject', function($id, $name, $is_active = null, $is_p
|
|||||||
'is_active' => $is_active,
|
'is_active' => $is_active,
|
||||||
'is_public' => $is_public,
|
'is_public' => $is_public,
|
||||||
'token' => $token,
|
'token' => $token,
|
||||||
|
'description' => $description
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($values as $key => $value) {
|
foreach ($values as $key => $value) {
|
||||||
|
|||||||
Reference in New Issue
Block a user