Add toggle button to show/hide subtasks in task list view

This commit is contained in:
Frederic Guillot
2017-02-26 19:30:02 -05:00
parent 4f325193be
commit f3deb6492a
28 changed files with 257 additions and 89 deletions

View File

@@ -8,7 +8,7 @@
<?php foreach ($subtasks as $subtask): ?>
<tr>
<td>
<?= $this->subtask->toggleStatus($subtask, $task['project_id']) ?>
<?= $this->subtask->renderToggleStatus($task, $subtask) ?>
</td>
<?= $this->hook->render('template:board:tooltip:subtasks:rows', array('subtask' => $subtask)) ?>
<td>

View File

@@ -25,7 +25,7 @@
<?= $this->url->link($this->text->e($subtask['task_name']), 'TaskViewController', 'show', array('task_id' => $subtask['task_id'], 'project_id' => $subtask['project_id'])) ?>
</td>
<td>
<?= $this->subtask->toggleStatus($subtask, $subtask['project_id']) ?>
<?= $this->subtask->renderToggleStatus(array('project_id' => $subtask['project_id']), $subtask) ?>
</td>
<?= $this->hook->render('template:dashboard:subtasks:rows', array('subtask' => $subtask)) ?>
<td>

View File

@@ -21,9 +21,9 @@
'task' => $task,
'subtask' => $subtask,
)) ?>
<?= $this->subtask->toggleStatus($subtask, $task['project_id'], true) ?>
<?= $this->subtask->renderToggleStatus($task, $subtask, true) ?>
<?php else: ?>
<?= $this->subtask->getTitle($subtask) ?>
<?= $this->subtask->renderTitle($subtask) ?>
<?php endif ?>
</td>
<td>
@@ -33,22 +33,10 @@
</td>
<?= $this->hook->render('template:subtask:table:rows', array('subtask' => $subtask)) ?>
<td>
<?php if (! empty($subtask['time_spent'])): ?>
<strong><?= $this->text->e($subtask['time_spent']).'h' ?></strong> <?= t('spent') ?>
<?php endif ?>
<?php if (! empty($subtask['time_estimated'])): ?>
<strong><?= $this->text->e($subtask['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<?php endif ?>
<?php if ($editable && $subtask['user_id'] == $this->user->getId()): ?>
<?php if ($subtask['is_timer_started']): ?>
<?= $this->url->icon('pause', t('Stop timer'), 'SubtaskStatusController', 'timer', array('timer' => 'stop', 'project_id' => $task['project_id'], 'task_id' => $subtask['task_id'], 'subtask_id' => $subtask['id']), false, 'subtask-toggle-timer') ?>
(<?= $this->dt->age($subtask['timer_start_date']) ?>)
<?php else: ?>
<?= $this->url->icon('play-circle-o', t('Start timer'), 'SubtaskStatusController', 'timer', array('timer' => 'start', 'project_id' => $task['project_id'], 'task_id' => $subtask['task_id'], 'subtask_id' => $subtask['id']), false, 'subtask-toggle-timer') ?>
<?php endif ?>
<?php endif ?>
<?= $this->render('subtask/timer', array(
'task' => $task,
'subtask' => $subtask,
)) ?>
</td>
</tr>
<?php endforeach ?>

View File

@@ -0,0 +1,13 @@
<span class="subtask-time-tracking">
<?php if (! empty($subtask['time_spent'])): ?>
<strong><?= $this->text->e($subtask['time_spent']).'h' ?></strong> <?= t('spent') ?>
<?php endif ?>
<?php if (! empty($subtask['time_estimated'])): ?>
<strong><?= $this->text->e($subtask['time_estimated']).'h' ?></strong> <?= t('estimated') ?>
<?php endif ?>
<?php if ($this->user->hasProjectAccess('SubtaskController', 'edit', $task['project_id']) && $subtask['user_id'] == $this->user->getId()): ?>
<?= $this->subtask->renderTimer($task, $subtask) ?>
<?php endif ?>
</span>

View File

@@ -7,6 +7,12 @@
<?php endif ?>
</div>
<div class="table-list-header-menu">
<?php if ($this->user->hasSubtaskListActivated()): ?>
<?= $this->url->icon('tasks', t('Hide subtasks'), 'TaskListController', 'show', array('project_id' => $project['id'], 'hide_subtasks' => 1)) ?>
<?php else: ?>
<?= $this->url->icon('tasks', t('Show subtasks'), 'TaskListController', 'show', array('project_id' => $project['id'], 'show_subtasks' => 1)) ?>
<?php endif ?>
<?= $this->render('task_list/sort_menu', array('paginator' => $paginator)) ?>
</div>
</div>

View File

@@ -5,7 +5,11 @@
<p class="alert"><?= t('No tasks found.') ?></p>
<?php elseif (! $paginator->isEmpty()): ?>
<div class="table-list">
<?= $this->render('task_list/header', array('paginator' => $paginator)) ?>
<?= $this->render('task_list/header', array(
'paginator' => $paginator,
'project' => $project,
)) ?>
<?php foreach ($paginator->getCollection() as $task): ?>
<div class="table-list-row color-<?= $task['color_id'] ?>">
<?= $this->render('task_list/task_title', array(
@@ -21,8 +25,11 @@
)) ?>
<?= $this->render('task_list/task_icons', array(
'project' => $project,
'task' => $task,
'task' => $task,
)) ?>
<?= $this->render('task_list/task_subtasks', array(
'task' => $task,
)) ?>
</div>
<?php endforeach ?>

View File

@@ -0,0 +1,22 @@
<?php if (! empty($task['subtasks'])): ?>
<div class="task-list-subtasks">
<?php foreach ($task['subtasks'] as $subtask): ?>
<div class="task-list-subtask">
<span class="subtask-cell column-50">
<?= $this->subtask->renderToggleStatus($task, $subtask) ?>
</span>
<span class="subtask-cell column-20 subtask-assignee">
<?php if (! empty($subtask['username'])): ?>
<?= $this->text->e($subtask['name'] ?: $subtask['username']) ?>
<?php endif ?>
</span>
<span class="subtask-cell subtask-time-tracking-cell">
<?= $this->render('subtask/timer', array(
'task' => $task,
'subtask' => $subtask,
)) ?>
</span>
</div>
<?php endforeach ?>
</div>
<?php endif ?>