diff options
-rw-r--r-- | app/Controller/Board.php | 2 | ||||
-rw-r--r-- | app/Schema/Mysql.php | 7 | ||||
-rw-r--r-- | app/Schema/Postgres.php | 7 | ||||
-rw-r--r-- | app/Schema/Sqlite.php | 7 | ||||
-rw-r--r-- | app/Template/app/projects.php | 10 | ||||
-rw-r--r-- | app/Template/layout.php | 8 | ||||
-rw-r--r-- | app/Template/project/edit.php | 23 | ||||
-rw-r--r-- | app/Template/project/index.php | 8 | ||||
-rw-r--r-- | app/Template/project/show.php | 10 | ||||
-rw-r--r-- | docs/api-json-rpc.markdown | 14 | ||||
-rw-r--r-- | jsonrpc.php | 10 |
11 files changed, 91 insertions, 15 deletions
diff --git a/app/Controller/Board.php b/app/Controller/Board.php index 90b7f357..a6e002f2 100644 --- a/app/Controller/Board.php +++ b/app/Controller/Board.php @@ -127,6 +127,7 @@ class Board extends Base 'swimlanes' => $this->board->getBoard($project['id']), 'categories' => $this->category->getList($project['id'], false), 'title' => $project['name'], + 'description' => $project['description'], 'no_layout' => true, 'not_editable' => true, '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']), 'categories' => $this->category->getList($project['id'], true, true), 'title' => $project['name'], + 'description' => $project['description'], 'board_selector' => $board_selector, 'board_private_refresh_interval' => $this->config->get('board_private_refresh_interval'), 'board_highlight_period' => $this->config->get('board_highlight_period'), diff --git a/app/Schema/Mysql.php b/app/Schema/Mysql.php index 947a62b3..eeab24d6 100644 --- a/app/Schema/Mysql.php +++ b/app/Schema/Mysql.php @@ -6,7 +6,12 @@ use PDO; use Core\Security; 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) { diff --git a/app/Schema/Postgres.php b/app/Schema/Postgres.php index 027401ff..c3e8fbda 100644 --- a/app/Schema/Postgres.php +++ b/app/Schema/Postgres.php @@ -6,7 +6,12 @@ use PDO; use Core\Security; 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) { diff --git a/app/Schema/Sqlite.php b/app/Schema/Sqlite.php index c6dec33f..eefa0ae1 100644 --- a/app/Schema/Sqlite.php +++ b/app/Schema/Sqlite.php @@ -6,7 +6,12 @@ use Core\Security; use PDO; 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) { diff --git a/app/Template/app/projects.php b/app/Template/app/projects.php index 4740c4b8..c3a39a83 100644 --- a/app/Template/app/projects.php +++ b/app/Template/app/projects.php @@ -17,9 +17,15 @@ <?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')) ?> <?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($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 class="dashboard-project-stats"> <?php foreach ($project['columns'] as $column): ?> @@ -32,4 +38,4 @@ </table> <?= $paginator ?> -<?php endif ?>
\ No newline at end of file +<?php endif ?> diff --git a/app/Template/layout.php b/app/Template/layout.php index ad4c4084..7adb0559 100644 --- a/app/Template/layout.php +++ b/app/Template/layout.php @@ -35,7 +35,13 @@ <?php else: ?> <header> <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> <?php if (isset($board_selector) && ! empty($board_selector)): ?> <li> diff --git a/app/Template/project/edit.php b/app/Template/project/edit.php index a1b945cd..37b03fe1 100644 --- a/app/Template/project/edit.php +++ b/app/Template/project/edit.php @@ -9,7 +9,28 @@ <?= $this->formLabel(t('Name'), 'name') ?> <?= $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"> <input type="submit" value="<?= t('Save') ?>" class="btn btn-blue"/> </div> -</form>
\ No newline at end of file +</form> diff --git a/app/Template/project/index.php b/app/Template/project/index.php index a36a9ce1..50ca0435 100644 --- a/app/Template/project/index.php +++ b/app/Template/project/index.php @@ -39,7 +39,13 @@ <?php if ($project['is_private']): ?> <i class="fa fa-lock fa-fw"></i> <?php endif ?> + <?= $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 class="dashboard-project-stats"> <?php foreach ($project['columns'] as $column): ?> @@ -54,4 +60,4 @@ <?= $paginator ?> <?php endif ?> </section> -</section>
\ No newline at end of file +</section> diff --git a/app/Template/project/show.php b/app/Template/project/show.php index b8bfd510..b0003370 100644 --- a/app/Template/project/show.php +++ b/app/Template/project/show.php @@ -60,3 +60,13 @@ </tr> <?php endforeach ?> </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 ?> diff --git a/docs/api-json-rpc.markdown b/docs/api-json-rpc.markdown index fcf1f989..eba47dc7 100644 --- a/docs/api-json-rpc.markdown +++ b/docs/api-json-rpc.markdown @@ -176,6 +176,7 @@ Response example: - Purpose: **Create a new project** - Parameters: - **name** (string, required) + - **description** (string, optional) - Result on success: **project_id** - Result on failure: **false** @@ -235,7 +236,8 @@ Response example: "is_active": "1", "token": "", "last_modified": "1410263246", - "is_public": "0" + "is_public": "0", + "description": "A sample project" } } ``` @@ -273,7 +275,8 @@ Response example: "is_active": "1", "token": "", "last_modified": "0", - "is_public": "0" + "is_public": "0", + "description": "A sample project" } } ``` @@ -309,7 +312,8 @@ Response example: "is_active": "1", "token": "", "last_modified": "0", - "is_public": "0" + "is_public": "0", + "description": "PHP client project" }, { "id": "1", @@ -317,7 +321,8 @@ Response example: "is_active": "1", "token": "", "last_modified": "0", - "is_public": "0" + "is_public": "0", + "description": "Test project" } ] } @@ -332,6 +337,7 @@ Response example: - **is_active** (integer, optional) - **token** (string, optional) - **is_public** (integer, optional) + - **description** (string, optional) - Result on success: **true** - Result on failure: **false** diff --git a/jsonrpc.php b/jsonrpc.php index 1fd60550..03f007c2 100644 --- a/jsonrpc.php +++ b/jsonrpc.php @@ -22,13 +22,16 @@ $server->bind('enableProjectPublicAccess', $container['project'], 'enablePublicA $server->bind('disableProjectPublicAccess', $container['project'], 'disablePublicAccess'); $server->bind('getProjectActivity', $container['projectActivity'], 'getProjects'); -$server->register('createProject', function($name) use ($container) { - $values = array('name' => $name); +$server->register('createProject', function($name, $description = null) use ($container) { + $values = array( + 'name' => $name, + 'description' => $description + ); list($valid,) = $container['project']->validateCreation($values); 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( 'id' => $id, @@ -36,6 +39,7 @@ $server->register('updateProject', function($id, $name, $is_active = null, $is_p 'is_active' => $is_active, 'is_public' => $is_public, 'token' => $token, + 'description' => $description ); foreach ($values as $key => $value) { |