summaryrefslogtreecommitdiff
path: root/app/Template/board
diff options
context:
space:
mode:
authorMax Kamashev <kamashev@gollard.ru>2015-09-30 09:19:33 +0300
committerMax Kamashev <kamashev@gollard.ru>2015-09-30 09:19:33 +0300
commitcabcdc9d9e58d279ac6a5992ae5202568ed4d24e (patch)
treeeebdc4ec16eb7dc2ed0edd953321fa3e02869f34 /app/Template/board
parent930406bf70e42413a83114b9530b3f63ccf9419f (diff)
parent421e8751ebca5b566ecbd8d08e9d56b93ce81ffa (diff)
Merge branch 'master' of https://github.com/fguillot/kanboard into 1245_bug_with_subtask_timer
Diffstat (limited to 'app/Template/board')
-rw-r--r--app/Template/board/table_column.php51
-rw-r--r--app/Template/board/table_container.php35
-rw-r--r--app/Template/board/table_swimlane.php120
-rw-r--r--app/Template/board/table_tasks.php31
-rw-r--r--app/Template/board/task_menu.php6
-rw-r--r--app/Template/board/task_private.php10
-rw-r--r--app/Template/board/tooltip_tasklinks.php1
-rw-r--r--app/Template/board/view_private.php (renamed from app/Template/board/private_view.php)0
-rw-r--r--app/Template/board/view_public.php (renamed from app/Template/board/public_view.php)0
9 files changed, 143 insertions, 111 deletions
diff --git a/app/Template/board/table_column.php b/app/Template/board/table_column.php
new file mode 100644
index 00000000..da8db52d
--- /dev/null
+++ b/app/Template/board/table_column.php
@@ -0,0 +1,51 @@
+<!-- column titles -->
+<?php ?>
+<tr>
+ <?php foreach ($swimlane['columns'] as $column): ?>
+ <th class="board-column-header board-column-header-<?= $column['id'] ?>" data-column-id="<?= $column['id'] ?>">
+
+ <!-- column in collapsed mode -->
+ <div class="board-column-collapsed">
+ <span title="<?= t('Task count') ?>" class="board-column-header-task-count" title="<?= t('Show this column') ?>">
+ <span id="task-number-column-<?= $column['id'] ?>"><?= $column['nb_column_tasks'] ?></span>
+ </span>
+ </div>
+
+ <!-- column in expanded mode -->
+ <div class="board-column-expanded">
+ <?php if (! $not_editable): ?>
+ <div class="board-add-icon">
+ <?= $this->url->link('+', 'taskcreation', 'create', array('project_id' => $column['project_id'], 'column_id' => $column['id'], 'swimlane_id' => $swimlane['id']), false, 'popover', t('Add a new task')) ?>
+ </div>
+ <?php endif ?>
+
+ <span class="board-column-title" data-column-id="<?= $column['id'] ?>" title="<?= t('Hide this column') ?>">
+ <?= $this->e($column['title']) ?>
+ </span>
+
+ <?php if (! $not_editable && ! empty($column['description'])): ?>
+ <span class="tooltip pull-right" title='<?= $this->e($this->text->markdown($column['description'])) ?>'>
+ <i class="fa fa-info-circle"></i>
+ </span>
+ <?php endif ?>
+
+ <?php if (! empty($column['score'])): ?>
+ <span class="pull-right" title="<?= t('Score') ?>">
+ <?= $column['total_score'] ?>
+ </span>
+ <?php endif ?>
+
+ <span title="<?= t('Total number of tasks in this column across all swimlanes') ?>" class="board-column-header-task-count">
+ (<span id="task-number-column-<?= $column['id'] ?>"><?= $column['nb_column_tasks'] ?></span>)
+ </span>
+
+ <?php if ($column['task_limit']): ?>
+ <span title="<?= t('Task limit') ?>">
+ (<span id="task-number-column-<?= $column['id'] ?>"><?= $this->e($column['task_limit']) ?></span>)
+ </span>
+ <?php endif ?>
+ </div>
+
+ </th>
+ <?php endforeach ?>
+</tr>
diff --git a/app/Template/board/table_container.php b/app/Template/board/table_container.php
index 98b40eb4..83587c44 100644
--- a/app/Template/board/table_container.php
+++ b/app/Template/board/table_container.php
@@ -13,18 +13,37 @@
>
<?php endif ?>
- <?php foreach ($swimlanes as $swimlane): ?>
+ <?php foreach ($swimlanes as $index => $swimlane): ?>
<?php if (empty($swimlane['columns'])): ?>
<p class="alert alert-error"><?= t('There is no column in your project!') ?></p>
<?php break ?>
<?php else: ?>
- <?= $this->render('board/table_swimlane', array(
- 'project' => $project,
- 'swimlane' => $swimlane,
- 'board_highlight_period' => $board_highlight_period,
- 'hide_swimlane' => count($swimlanes) === 1,
- 'not_editable' => isset($not_editable),
- )) ?>
+ <?php if ($index === 0): ?>
+ <?= $this->render('board/table_column', array(
+ 'swimlane' => $swimlane,
+ 'not_editable' => isset($not_editable),
+ )) ?>
+ <?php endif ?>
+
+ <?php if (! ($swimlane['nb_tasks'] === 0 && isset($not_editable))): ?>
+
+ <?php if ($swimlane['nb_swimlanes'] > 1): ?>
+ <?= $this->render('board/table_swimlane', array(
+ 'project' => $project,
+ 'swimlane' => $swimlane,
+ 'not_editable' => isset($not_editable),
+ )) ?>
+ <?php endif ?>
+
+ <?= $this->render('board/table_tasks', array(
+ 'project' => $project,
+ 'swimlane' => $swimlane,
+ 'not_editable' => isset($not_editable),
+ 'board_highlight_period' => $board_highlight_period,
+ )) ?>
+
+ <?php endif ?>
+
<?php endif ?>
<?php endforeach ?>
</table>
diff --git a/app/Template/board/table_swimlane.php b/app/Template/board/table_swimlane.php
index 1caa920d..dd38fc97 100644
--- a/app/Template/board/table_swimlane.php
+++ b/app/Template/board/table_swimlane.php
@@ -1,104 +1,26 @@
+<!-- swimlane -->
<tr id="swimlane-<?= $swimlane['id'] ?>">
- <!-- swimlane toggle -->
- <?php if (! $hide_swimlane): ?>
- <th class="board-swimlane-header">
- <?php if (! $not_editable): ?>
- <a href="#" class="board-swimlane-toggle" data-swimlane-id="<?= $swimlane['id'] ?>">
- <i class="fa fa-minus-circle hide-icon-swimlane-<?= $swimlane['id'] ?>"></i>
- <i class="fa fa-plus-circle show-icon-swimlane-<?= $swimlane['id'] ?>" style="display: none"></i>
- </a>
-
- <?php if (! empty($swimlane['description'])): ?>
- <span
- title="<?= t('Description') ?>"
- class="tooltip"
- data-href="<?= $this->url->href('board', 'swimlane', array('swimlane_id' => $swimlane['id'], 'project_id' => $project['id'])) ?>">
- <i class="fa fa-info-circle"></i>
- </span>
- <?php endif ?>
-
- <span title="<?= t('Task count') ?>" class="board-column-header-task-count swimlane-task-count-<?= $swimlane['id'] ?>">
- (<?= $swimlane['nb_tasks'] ?>)
- </span>
-
- <span class="board-swimlane-toggle-title show-icon-swimlane-<?= $swimlane['id'] ?>"><?= $this->e($swimlane['name']) ?></span>
- <?php endif ?>
- </th>
- <?php endif ?>
-
- <!-- column header title -->
- <?php foreach ($swimlane['columns'] as $column): ?>
- <th class="board-column-header board-column-header-<?= $column['id'] ?>" data-column-id="<?= $column['id'] ?>">
- <div class="board-column-collapsed">
- <span title="<?= t('Task count') ?>" class="board-column-header-task-count" title="<?= t('Show this column') ?>">
- <span id="task-number-column-<?= $column['id'] ?>"><?= $column['nb_tasks'] ?></span>
- </span>
- </div>
- <div class="board-column-expanded">
- <?php if (! $not_editable): ?>
- <div class="board-add-icon">
- <?= $this->url->link('+', 'taskcreation', 'create', array('project_id' => $column['project_id'], 'column_id' => $column['id'], 'swimlane_id' => $swimlane['id']), false, 'popover', t('Add a new task')) ?>
- </div>
- <?php endif ?>
-
- <span class="board-column-title" data-column-id="<?= $column['id'] ?>" title="<?= t('Hide this column') ?>">
- <?= $this->e($column['title']) ?>
+ <th class="board-swimlane-header" colspan="<?= $swimlane['nb_columns'] ?>">
+ <?php if (! $not_editable): ?>
+ <a href="#" class="board-swimlane-toggle" data-swimlane-id="<?= $swimlane['id'] ?>">
+ <i class="fa fa-chevron-circle-up hide-icon-swimlane-<?= $swimlane['id'] ?>" title="<?= t('Collapse swimlane') ?>"></i>
+ <i class="fa fa-chevron-circle-down show-icon-swimlane-<?= $swimlane['id'] ?>" title="<?= t('Expand swimlane') ?>" style="display: none"></i>
+ </a>
+ <?php endif ?>
+
+ <?= $this->e($swimlane['name']) ?>
+
+ <?php if (! $not_editable && ! empty($swimlane['description'])): ?>
+ <span
+ title="<?= t('Description') ?>"
+ class="tooltip"
+ data-href="<?= $this->url->href('board', 'swimlane', array('swimlane_id' => $swimlane['id'], 'project_id' => $project['id'])) ?>">
+ <i class="fa fa-info-circle"></i>
</span>
+ <?php endif ?>
- <?php if (! $not_editable && ! empty($column['description'])): ?>
- <span class="tooltip pull-right" title='<?= $this->e($this->text->markdown($column['description'])) ?>'>
- <i class="fa fa-info-circle"></i>
- </span>
- <?php endif ?>
-
- <?php if (! empty($column['score'])): ?>
- <span class="pull-right" title="<?= t('Score') ?>">
- <?= $column['score'] ?>&nbsp;
- </span>
- <?php endif ?>
-
- <?php if ($column['task_limit']): ?>
- <span title="<?= t('Task limit') ?>">
- (<span id="task-number-column-<?= $column['id'] ?>"><?= $column['nb_tasks'] ?></span>/<?= $this->e($column['task_limit']) ?>)
- </span>
- <?php else: ?>
- <span title="<?= t('Task count') ?>" class="board-column-header-task-count">
- (<span id="task-number-column-<?= $column['id'] ?>"><?= $column['nb_tasks'] ?></span>)
- </span>
- <?php endif ?>
- </div>
+ <span title="<?= t('Task count') ?>" class="board-column-header-task-count swimlane-task-count-<?= $swimlane['id'] ?>">
+ (<?= $swimlane['nb_tasks'] ?>)
+ </span>
</th>
- <?php endforeach ?>
</tr>
-<tr class="board-swimlane swimlane-row-<?= $swimlane['id'] ?>">
-
- <!-- swimlane title -->
- <?php if (! $hide_swimlane): ?>
- <th class="board-swimlane-title">
- <?= $this->e($swimlane['name']) ?>
- </th>
- <?php endif ?>
-
- <!-- task list -->
- <?php foreach ($swimlane['columns'] as $column): ?>
- <td class="board-column-<?= $column['id'] ?> <?= $column['task_limit'] && $column['nb_tasks'] > $column['task_limit'] ? 'board-task-list-limit' : '' ?>">
- <div class="board-task-list board-column-expanded" data-column-id="<?= $column['id'] ?>" data-swimlane-id="<?= $swimlane['id'] ?>" data-task-limit="<?= $column['task_limit'] ?>">
- <?php foreach ($column['tasks'] as $task): ?>
- <?= $this->render($not_editable ? 'board/task_public' : 'board/task_private', array(
- 'project' => $project,
- 'task' => $task,
- 'board_highlight_period' => $board_highlight_period,
- 'not_editable' => $not_editable,
- )) ?>
- <?php endforeach ?>
- </div>
- <div class="board-column-collapsed">
- <div class="board-rotation-wrapper">
- <div class="board-column-title board-rotation" data-column-id="<?= $column['id'] ?>" title="<?= t('Show this column') ?>">
- <?= $this->e($column['title']) ?>
- </div>
- </div>
- </div>
- </td>
- <?php endforeach ?>
-</tr> \ No newline at end of file
diff --git a/app/Template/board/table_tasks.php b/app/Template/board/table_tasks.php
new file mode 100644
index 00000000..edb4d323
--- /dev/null
+++ b/app/Template/board/table_tasks.php
@@ -0,0 +1,31 @@
+<!-- task row -->
+<tr class="board-swimlane swimlane-row-<?= $swimlane['id'] ?>">
+ <?php foreach ($swimlane['columns'] as $column): ?>
+ <td class="
+ board-column-<?= $column['id'] ?>
+ <?= $column['task_limit'] > 0 && $column['nb_tasks'] > $column['task_limit'] ? 'board-task-list-limit' : '' ?>
+ ">
+
+ <!-- tasks list -->
+ <div class="board-task-list board-column-expanded" data-column-id="<?= $column['id'] ?>" data-swimlane-id="<?= $swimlane['id'] ?>" data-task-limit="<?= $column['task_limit'] ?>">
+ <?php foreach ($column['tasks'] as $task): ?>
+ <?= $this->render($not_editable ? 'board/task_public' : 'board/task_private', array(
+ 'project' => $project,
+ 'task' => $task,
+ 'board_highlight_period' => $board_highlight_period,
+ 'not_editable' => $not_editable,
+ )) ?>
+ <?php endforeach ?>
+ </div>
+
+ <!-- column in collapsed mode (rotated text) -->
+ <div class="board-column-collapsed">
+ <div class="board-rotation-wrapper">
+ <div class="board-column-title board-rotation" data-column-id="<?= $column['id'] ?>" title="<?= t('Show this column') ?>">
+ <i class="fa fa-chevron-circle-up tooltip" title="<?= $this->e($column['title']) ?>"></i> <?= $this->e($column['title']) ?>
+ </div>
+ </div>
+ </div>
+ </td>
+ <?php endforeach ?>
+</tr>
diff --git a/app/Template/board/task_menu.php b/app/Template/board/task_menu.php
index 1434a1a0..3eb35705 100644
--- a/app/Template/board/task_menu.php
+++ b/app/Template/board/task_menu.php
@@ -8,6 +8,10 @@
<li><i class="fa fa-comment-o fa-fw"></i>&nbsp;<?= $this->url->link(t('Add a comment'), 'comment', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?></li>
<li><i class="fa fa-code-fork fa-fw"></i>&nbsp;<?= $this->url->link(t('Add a link'), 'tasklink', 'create', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?></li>
<li><i class="fa fa-camera fa-fw"></i>&nbsp;<?= $this->url->link(t('Add a screenshot'), 'board', 'screenshot', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?></li>
- <li><i class="fa fa-close fa-fw"></i>&nbsp;<?= $this->url->link(t('Close this task'), 'taskstatus', 'close', array('task_id' => $task['id'], 'project_id' => $task['project_id'], 'redirect' => 'board'), false, 'popover') ?></li>
+ <?php if ($task['is_active'] == 1): ?>
+ <li><i class="fa fa-close fa-fw"></i>&nbsp;<?= $this->url->link(t('Close this task'), 'taskstatus', 'close', array('task_id' => $task['id'], 'project_id' => $task['project_id'], 'redirect' => 'board'), false, 'popover') ?></li>
+ <?php else: ?>
+ <li><i class="fa fa-check-square-o fa-fw"></i>&nbsp;<?= $this->url->link(t('Open this task'), 'taskstatus', 'open', array('task_id' => $task['id'], 'project_id' => $task['project_id'], 'redirect' => 'board'), false, 'popover') ?></li>
+ <?php endif ?>
</ul>
</span> \ No newline at end of file
diff --git a/app/Template/board/task_private.php b/app/Template/board/task_private.php
index a6c8a9e1..da993fdd 100644
--- a/app/Template/board/task_private.php
+++ b/app/Template/board/task_private.php
@@ -9,10 +9,11 @@
data-task-url="<?= $this->url->href('task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>">
<div class="task-board-sort-handle" style="display: none;"><i class="fa fa-arrows-alt"></i></div>
- <?= $this->render('board/task_menu', array('task' => $task)) ?>
- <?php if ($this->board->isCollapsed($project['id'])): ?>
+ <?php if ($this->board->isCollapsed($task['project_id'])): ?>
<div class="task-board-collapsed">
+ <?= $this->render('board/task_menu', array('task' => $task)) ?>
+
<?php if (! empty($task['assignee_username'])): ?>
<span title="<?= $this->e($task['assignee_name'] ?: $task['assignee_username']) ?>">
<?= $this->e($this->user->getInitials($task['assignee_name'] ?: $task['assignee_username'])) ?>
@@ -22,6 +23,7 @@
</div>
<?php else: ?>
<div class="task-board-expanded">
+ <?= $this->render('board/task_menu', array('task' => $task)) ?>
<?php if ($task['reference']): ?>
<span class="task-board-reference" title="<?= t('Reference') ?>">
@@ -29,9 +31,10 @@
</span>
<?php endif ?>
+ <?php if (! empty($task['owner_id'])): ?>
<span class="task-board-user <?= $this->user->isCurrentUser($task['owner_id']) ? 'task-board-current-user' : '' ?>">
<?= $this->url->link(
- (! empty($task['owner_id']) ? ($task['assignee_name'] ?: $task['assignee_username']) : t('Nobody assigned')),
+ $task['assignee_name'] ?: $task['assignee_username'],
'board',
'changeAssignee',
array('task_id' => $task['id'], 'project_id' => $task['project_id']),
@@ -40,6 +43,7 @@
t('Change assignee')
) ?>
</span>
+ <?php endif ?>
<?php if ($task['is_active'] == 1): ?>
<div class="task-board-days">
diff --git a/app/Template/board/tooltip_tasklinks.php b/app/Template/board/tooltip_tasklinks.php
index 25aa91aa..5991fecc 100644
--- a/app/Template/board/tooltip_tasklinks.php
+++ b/app/Template/board/tooltip_tasklinks.php
@@ -3,6 +3,7 @@
<?php foreach($links as $link): ?>
<li>
<strong><?= t($link['label']) ?></strong>
+ [<i><?= $link['project_name'] ?></i>]
<?= $this->url->link(
$this->e('#'.$link['task_id'].' - '.$link['title']),
'task', 'show', array('task_id' => $link['task_id'], 'project_id' => $link['project_id']),
diff --git a/app/Template/board/private_view.php b/app/Template/board/view_private.php
index d4c2c651..d4c2c651 100644
--- a/app/Template/board/private_view.php
+++ b/app/Template/board/view_private.php
diff --git a/app/Template/board/public_view.php b/app/Template/board/view_public.php
index aea72031..aea72031 100644
--- a/app/Template/board/public_view.php
+++ b/app/Template/board/view_public.php