summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorashbike <helloashbike@gmail.com>2015-02-09 21:30:08 +0530
committerFrederic Guillot <fred@kanboard.net>2015-02-09 21:14:53 -0500
commit77a307e4ff8cfb4afcd34990b147f0ad38dfc558 (patch)
tree8d975fdece45597c8d8ad6bdd5ceea80c14ca842
parent6fbcbfb001bbd972f2f958d591f4586d2a2ea468 (diff)
- Markdown supported in column description.
- Project > Edit Board and Project Summary pages now show description as tooltip. - Project > Edit Board shows textarea with markdown preview. Edit column also shows markdown preview. - Fixed bug while adding a new column inserts description as column limit.
-rw-r--r--app/Controller/Board.php2
-rw-r--r--app/Model/Board.php4
-rw-r--r--app/Template/board/edit.php34
-rw-r--r--app/Template/board/edit_column.php19
-rw-r--r--app/Template/board/swimlane.php8
-rw-r--r--app/Template/project/show.php11
-rw-r--r--assets/css/src/tooltip.css7
-rw-r--r--assets/js/src/base.js7
-rw-r--r--assets/js/src/board.js8
9 files changed, 74 insertions, 26 deletions
diff --git a/app/Controller/Board.php b/app/Controller/Board.php
index c9622f86..758dea1e 100644
--- a/app/Controller/Board.php
+++ b/app/Controller/Board.php
@@ -283,7 +283,7 @@ class Board extends Base
if ($valid) {
- if ($this->board->addColumn($project['id'], $data['title'],$data['description'])) {
+ if ($this->board->addColumn($project['id'], $data['title'],$data['task_limit'],$data['description'])) {
$this->session->flash(t('Board updated successfully.'));
$this->response->redirect('?controller=board&action=edit&project_id='.$project['id']);
}
diff --git a/app/Model/Board.php b/app/Model/Board.php
index 2b07ca46..8a344f7f 100644
--- a/app/Model/Board.php
+++ b/app/Model/Board.php
@@ -118,7 +118,7 @@ class Board extends Base
$values = array(
'project_id' => $project_id,
'title' => $title,
- 'task_limit' => $task_limit,
+ 'task_limit' => intval($task_limit),
'position' => $this->getLastColumnPosition($project_id) + 1,
'description' => $description,
);
@@ -140,7 +140,7 @@ class Board extends Base
{
return $this->db->table(self::TABLE)->eq('id', $column_id)->update(array(
'title' => $title,
- 'task_limit' => $task_limit,
+ 'task_limit' => intval($task_limit),
'description' => $description,
));
}
diff --git a/app/Template/board/edit.php b/app/Template/board/edit.php
index 25a8eded..75f2b4f5 100644
--- a/app/Template/board/edit.php
+++ b/app/Template/board/edit.php
@@ -6,16 +6,20 @@
<table>
<tr>
<th><?= t('Column title') ?></th>
- <th><?= t('Description') ?></th>
<th><?= t('Task limit') ?></th>
<th><?= t('Actions') ?></th>
</tr>
<?php foreach ($columns as $column): ?>
<tr>
- <td class="column-30"><?= $this->e($column['title']) ?></td>
- <td><?= $this->e($column['description']) ?></td>
+ <td class="column-60"><?= $this->e($column['title']) ?>
+ <?php if (! empty($column['description'])): ?>
+ <span class="column-tooltip" title="<?= $this->markdown($column['description']) ?>">
+ <i class="fa fa-info-circle"></i>
+ </span>
+ <?php endif ?>
+ </td>
<td class="column-10"><?= $this->e($column['task_limit']) ?></td>
- <td class="column-20">
+ <td class="column-30">
<ul>
<li>
<?= $this->a(t('Edit'), 'board', 'editColumn', array('project_id' => $project['id'], 'column_id' => $column['id'])) ?>
@@ -48,8 +52,28 @@
<?= $this->formLabel(t('Title'), 'title') ?>
<?= $this->formText('title', $values, $errors, array('required', 'maxlength="50"')) ?>
+
+ <?= $this->formLabel(t('Task limit'), 'task_limit') ?>
+ <?= $this->formNumber('task_limit', $values, $errors) ?>
+
<?= $this->formLabel(t('Description'), 'description') ?>
- <?= $this->formTextarea('description', $values, $errors) ?>
+
+ <div class="form-tabs">
+ <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 class="write-area">
+ <?= $this->formTextarea('description', $values, $errors) ?>
+ </div>
+ <div class="preview-area">
+ <div class="markdown"></div>
+ </div>
+ </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">
diff --git a/app/Template/board/edit_column.php b/app/Template/board/edit_column.php
index 0d41bfbe..397e1d23 100644
--- a/app/Template/board/edit_column.php
+++ b/app/Template/board/edit_column.php
@@ -16,7 +16,24 @@
<?= $this->formNumber('task_limit', $values, $errors) ?>
<?= $this->formLabel(t('Description'), 'description') ?>
- <?= $this->formTextarea('description', $values, $errors) ?>
+
+ <div class="form-tabs">
+ <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 class="write-area">
+ <?= $this->formTextarea('description', $values, $errors) ?>
+ </div>
+ <div class="preview-area">
+ <div class="markdown"></div>
+ </div>
+ </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"/>
diff --git a/app/Template/board/swimlane.php b/app/Template/board/swimlane.php
index 3e808bf2..23e170d9 100644
--- a/app/Template/board/swimlane.php
+++ b/app/Template/board/swimlane.php
@@ -24,13 +24,11 @@
<?= $this->a('+', 'task', 'create', array('project_id' => $column['project_id'], 'column_id' => $column['id'], 'swimlane_id' => $swimlane['id']), false, 'task-creation-popover', t('Add a new task')) ?>
</div>
<?php endif ?>
-
+ <?= $this->e($column['title']) ?>
<?php if (! empty($column['description'])): ?>
- <span class="column-tooltip" title="<?= $this->e($column['description']) ?>">
- <?= $this->e($column['title']) ?>
+ <span class="column-tooltip pull-right" title="<?= $this->markdown($column['description']) ?>">
+ <i class="fa fa-info-circle"></i>
</span>
- <?php else: ?>
- <?= $this->e($column['title']) ?>
<?php endif ?>
<?php if ($column['task_limit']): ?>
diff --git a/app/Template/project/show.php b/app/Template/project/show.php
index 486be643..888eea2a 100644
--- a/app/Template/project/show.php
+++ b/app/Template/project/show.php
@@ -41,15 +41,18 @@
</div>
<table class="table-stripped">
<tr>
- <th class="column-30"><?= t('Column') ?></th>
- <th><?= t('Description') ?></th>
+ <th class="column-60"><?= t('Column') ?></th>
<th class="column-20"><?= t('Task limit') ?></th>
<th class="column-20"><?= t('Active tasks') ?></th>
</tr>
<?php foreach ($stats['columns'] as $column): ?>
<tr>
- <td><?= $this->e($column['title']) ?></td>
- <td><?= $this->e($column['description']) ?></td>
+ <td><?= $this->e($column['title']) ?>
+ <?php if (! empty($column['description'])): ?>
+ <span class="column-tooltip" title="<?= $this->markdown($column['description']) ?>">
+ <i class="fa fa-info-circle"></i>
+ </span>
+ <?php endif ?></td>
<td><?= $column['task_limit'] ?: '∞' ?></td>
<td><?= $column['nb_active_tasks'] ?></td>
</tr>
diff --git a/assets/css/src/tooltip.css b/assets/css/src/tooltip.css
index 625b7532..a940bc16 100644
--- a/assets/css/src/tooltip.css
+++ b/assets/css/src/tooltip.css
@@ -62,4 +62,9 @@ div.ui-tooltip {
.tooltip-large {
width: 550px;
-} \ No newline at end of file
+}
+
+.column-tooltip {
+ color: #999;
+ font-size: 0.95em;
+}
diff --git a/assets/js/src/base.js b/assets/js/src/base.js
index 090f0656..cf8de7df 100644
--- a/assets/js/src/base.js
+++ b/assets/js/src/base.js
@@ -187,6 +187,13 @@ var Kanboard = (function() {
Mousetrap.bind("ctrl+enter", function() {
$("form").submit();
});
+
+ // Tooltip for column description
+ $(".column-tooltip").tooltip({
+ content: function(e) {
+ return '<div class="markdown">'+$(this).attr("title")+'</div>';
+ }
+ });
$.datepicker.setDefaults($.datepicker.regional[$("body").data("js-lang")]);
diff --git a/assets/js/src/board.js b/assets/js/src/board.js
index 696e2145..2a51eef4 100644
--- a/assets/js/src/board.js
+++ b/assets/js/src/board.js
@@ -50,13 +50,6 @@ Kanboard.Board = (function() {
// Description popover
$(".task-description-popover").click(on_popover);
- // Tooltip for column description
- $(".column-tooltip").tooltip({
- content: function(e) {
- return $(this).attr("title");
- }
- });
-
// Tooltips for tasks
$(".task-board-tooltip").tooltip({
track: false,
@@ -279,6 +272,7 @@ Kanboard.Board = (function() {
filter_load_events();
keyboard_shortcuts();
}
+
});
})();