Expose tags to the user interface (first prototype)

This commit is contained in:
Frederic Guillot
2016-06-24 15:43:34 -04:00
parent b2e92480c2
commit 18cb7ad0a4
26 changed files with 296 additions and 167 deletions

View File

@@ -18,6 +18,16 @@
</div>
<?php endif ?>
<?php if (! empty($task['tags'])): ?>
<div class="task-tags">
<ul>
<?php foreach ($task['tags'] as $tag): ?>
<li><?= $this->text->e($tag['name']) ?></li>
<?php endforeach ?>
</ul>
</div>
<?php endif ?>
<div class="task-board-icons">
<?php if ($task['score']): ?>
<span class="task-score" title="<?= t('Complexity') ?>">

View File

@@ -4,146 +4,157 @@
<?= $this->hook->render('template:task:details:top', array('task' => $task)) ?>
<div class="task-summary-container color-<?= $task['color_id'] ?>">
<div class="task-summary-column">
<ul class="no-bullet">
<li>
<strong><?= t('Status:') ?></strong>
<span>
<?php if ($task['is_active'] == 1): ?>
<?= t('open') ?>
<?php else: ?>
<?= t('closed') ?>
<div class="task-summary-columns">
<div class="task-summary-column">
<ul class="no-bullet">
<li>
<strong><?= t('Status:') ?></strong>
<span>
<?php if ($task['is_active'] == 1): ?>
<?= t('open') ?>
<?php else: ?>
<?= t('closed') ?>
<?php endif ?>
</span>
</li>
<li>
<strong><?= t('Priority:') ?></strong> <span><?= $task['priority'] ?></span>
</li>
<?php if (! empty($task['reference'])): ?>
<li>
<strong><?= t('Reference:') ?></strong> <span><?= $this->text->e($task['reference']) ?></span>
</li>
<?php endif ?>
</span>
</li>
<li>
<strong><?= t('Priority:') ?></strong> <span><?= $task['priority'] ?></span>
</li>
<?php if (! empty($task['reference'])): ?>
<li>
<strong><?= t('Reference:') ?></strong> <span><?= $this->text->e($task['reference']) ?></span>
</li>
<?php endif ?>
<?php if (! empty($task['score'])): ?>
<li>
<strong><?= t('Complexity:') ?></strong> <span><?= $this->text->e($task['score']) ?></span>
</li>
<?php endif ?>
<?php if ($project['is_public']): ?>
<li class="smaller">
<i class="fa fa-external-link fa-fw"></i>
<?= $this->url->link(t('Public link'), 'TaskViewController', 'readonly', array('task_id' => $task['id'], 'token' => $project['token']), false, '', '', true) ?>
</li>
<?php endif ?>
<?php if ($project['is_public'] && !$editable): ?>
<li class="smaller">
<i class="fa fa-th fa-fw"></i>
<?= $this->url->link(t('Back to the board'), 'BoardViewController', 'readonly', array('token' => $project['token'])) ?>
</li>
<?php endif ?>
<li class="smaller">
<?= $this->hook->render('template:task:details:first-column', array('task' => $task)) ?>
</ul>
</div>
<div class="task-summary-column">
<ul class="no-bullet">
<?php if (! empty($task['category_name'])): ?>
<li>
<strong><?= t('Category:') ?></strong>
<span><?= $this->text->e($task['category_name']) ?></span>
</li>
<?php endif ?>
<?php if (! empty($task['swimlane_name'])): ?>
<li>
<strong><?= t('Swimlane:') ?></strong>
<span><?= $this->text->e($task['swimlane_name']) ?></span>
</li>
<?php endif ?>
<li>
<strong><?= t('Column:') ?></strong>
<span><?= $this->text->e($task['column_title']) ?></span>
</li>
<li>
<strong><?= t('Position:') ?></strong>
<span><?= $task['position'] ?></span>
</li>
<?= $this->hook->render('template:task:details:second-column', array('task' => $task)) ?>
</ul>
</div>
<div class="task-summary-column">
<ul class="no-bullet">
<li>
<strong><?= t('Assignee:') ?></strong>
<span>
<?php if ($task['assignee_username']): ?>
<?= $this->text->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?php else: ?>
<?= t('not assigned') ?>
<?php if (! empty($task['score'])): ?>
<li>
<strong><?= t('Complexity:') ?></strong> <span><?= $this->text->e($task['score']) ?></span>
</li>
<?php endif ?>
</span>
</li>
<?php if ($task['creator_username']): ?>
<li>
<strong><?= t('Creator:') ?></strong>
<span><?= $this->text->e($task['creator_name'] ?: $task['creator_username']) ?></span>
<?php if ($project['is_public']): ?>
<li class="smaller">
<i class="fa fa-external-link fa-fw"></i>
<?= $this->url->link(t('Public link'), 'TaskViewController', 'readonly', array('task_id' => $task['id'], 'token' => $project['token']), false, '', '', true) ?>
</li>
<?php endif ?>
<?php if ($task['date_due']): ?>
<li>
<strong><?= t('Due date:') ?></strong>
<span><?= $this->dt->date($task['date_due']) ?></span>
</li>
<?php endif ?>
<?php if ($task['time_estimated']): ?>
<li>
<strong><?= t('Time estimated:') ?></strong>
<span><?= t('%s hours', $task['time_estimated']) ?></span>
</li>
<?php endif ?>
<?php if ($task['time_spent']): ?>
<li>
<strong><?= t('Time spent:') ?></strong>
<span><?= t('%s hours', $task['time_spent']) ?></span>
</li>
<?php endif ?>
<?php endif ?>
<?php if ($project['is_public'] && !$editable): ?>
<li class="smaller">
<i class="fa fa-th fa-fw"></i>
<?= $this->url->link(t('Back to the board'), 'BoardViewController', 'readonly', array('token' => $project['token'])) ?>
</li>
<?php endif ?>
<li class="smaller">
<?= $this->hook->render('template:task:details:third-column', array('task' => $task)) ?>
</ul>
</div>
<div class="task-summary-column">
<ul class="no-bullet">
<li>
<strong><?= t('Created:') ?></strong>
<span><?= $this->dt->datetime($task['date_creation']) ?></span>
</li>
<li>
<strong><?= t('Modified:') ?></strong>
<span><?= $this->dt->datetime($task['date_modification']) ?></span>
</li>
<?php if ($task['date_completed']): ?>
<li>
<strong><?= t('Completed:') ?></strong>
<span><?= $this->dt->datetime($task['date_completed']) ?></span>
</li>
<?php endif ?>
<?php if ($task['date_started']): ?>
<li>
<strong><?= t('Started:') ?></strong>
<span><?= $this->dt->datetime($task['date_started']) ?></span>
</li>
<?php endif ?>
<?php if ($task['date_moved']): ?>
<li>
<strong><?= t('Moved:') ?></strong>
<span><?= $this->dt->datetime($task['date_moved']) ?></span>
</li>
<?php endif ?>
<?= $this->hook->render('template:task:details:first-column', array('task' => $task)) ?>
</ul>
</div>
<div class="task-summary-column">
<ul class="no-bullet">
<?php if (! empty($task['category_name'])): ?>
<li>
<strong><?= t('Category:') ?></strong>
<span><?= $this->text->e($task['category_name']) ?></span>
</li>
<?php endif ?>
<?php if (! empty($task['swimlane_name'])): ?>
<li>
<strong><?= t('Swimlane:') ?></strong>
<span><?= $this->text->e($task['swimlane_name']) ?></span>
</li>
<?php endif ?>
<li>
<strong><?= t('Column:') ?></strong>
<span><?= $this->text->e($task['column_title']) ?></span>
</li>
<li>
<strong><?= t('Position:') ?></strong>
<span><?= $task['position'] ?></span>
</li>
<?= $this->hook->render('template:task:details:fourth-column', array('task' => $task)) ?>
</ul>
<?= $this->hook->render('template:task:details:second-column', array('task' => $task)) ?>
</ul>
</div>
<div class="task-summary-column">
<ul class="no-bullet">
<li>
<strong><?= t('Assignee:') ?></strong>
<span>
<?php if ($task['assignee_username']): ?>
<?= $this->text->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?php else: ?>
<?= t('not assigned') ?>
<?php endif ?>
</span>
</li>
<?php if ($task['creator_username']): ?>
<li>
<strong><?= t('Creator:') ?></strong>
<span><?= $this->text->e($task['creator_name'] ?: $task['creator_username']) ?></span>
</li>
<?php endif ?>
<?php if ($task['date_due']): ?>
<li>
<strong><?= t('Due date:') ?></strong>
<span><?= $this->dt->date($task['date_due']) ?></span>
</li>
<?php endif ?>
<?php if ($task['time_estimated']): ?>
<li>
<strong><?= t('Time estimated:') ?></strong>
<span><?= t('%s hours', $task['time_estimated']) ?></span>
</li>
<?php endif ?>
<?php if ($task['time_spent']): ?>
<li>
<strong><?= t('Time spent:') ?></strong>
<span><?= t('%s hours', $task['time_spent']) ?></span>
</li>
<?php endif ?>
<?= $this->hook->render('template:task:details:third-column', array('task' => $task)) ?>
</ul>
</div>
<div class="task-summary-column">
<ul class="no-bullet">
<li>
<strong><?= t('Created:') ?></strong>
<span><?= $this->dt->datetime($task['date_creation']) ?></span>
</li>
<li>
<strong><?= t('Modified:') ?></strong>
<span><?= $this->dt->datetime($task['date_modification']) ?></span>
</li>
<?php if ($task['date_completed']): ?>
<li>
<strong><?= t('Completed:') ?></strong>
<span><?= $this->dt->datetime($task['date_completed']) ?></span>
</li>
<?php endif ?>
<?php if ($task['date_started']): ?>
<li>
<strong><?= t('Started:') ?></strong>
<span><?= $this->dt->datetime($task['date_started']) ?></span>
</li>
<?php endif ?>
<?php if ($task['date_moved']): ?>
<li>
<strong><?= t('Moved:') ?></strong>
<span><?= $this->dt->datetime($task['date_moved']) ?></span>
</li>
<?php endif ?>
<?= $this->hook->render('template:task:details:fourth-column', array('task' => $task)) ?>
</ul>
</div>
</div>
<?php if (! empty($tags)): ?>
<div class="task-tags">
<ul>
<?php foreach ($tags as $tag): ?>
<li><?= $this->text->e($tag) ?></li>
<?php endforeach ?>
</ul>
</div>
<?php endif ?>
</div>
<?php if ($editable && empty($task['date_started'])): ?>

View File

@@ -1,5 +1,10 @@
<section id="main" class="public-task">
<?= $this->render('task/details', array('task' => $task, 'project' => $project, 'editable' => false)) ?>
<?= $this->render('task/details', array(
'task' => $task,
'tags' => $tags,
'project' => $project,
'editable' => false,
)) ?>
<?= $this->render('task/description', array(
'task' => $task,

View File

@@ -2,6 +2,7 @@
<?= $this->render('task/details', array(
'task' => $task,
'tags' => $tags,
'project' => $project,
'editable' => $this->user->hasProjectAccess('TaskModificationController', 'edit', $project['id']),
)) ?>

View File

@@ -7,8 +7,7 @@
<?= $this->form->csrf() ?>
<div class="form-column">
<?= $this->form->label(t('Title'), 'title') ?>
<?= $this->form->text('title', $values, $errors, array('autofocus', 'required', 'maxlength="200"', 'tabindex="1"'), 'form-input-large') ?>
<?= $this->task->selectTitle($values, $errors) ?>
<?= $this->form->label(t('Description'), 'description') ?>
<?= $this->form->textarea(
@@ -23,6 +22,7 @@
'markdown-editor'
) ?>
<?= $this->task->selectTags($project) ?>
<?= $this->render('task/color_picker', array('colors_list' => $colors_list, 'values' => $values)) ?>
<?php if (! isset($duplicate)): ?>

View File

@@ -8,12 +8,11 @@
<?= $this->form->hidden('position', $values) ?>
<div class="form-column">
<?= $this->form->label(t('Title'), 'title') ?>
<?= $this->form->text('title', $values, $errors, array('autofocus', 'required', 'maxlength="200"', 'tabindex="1"'), 'form-input-large') ?>
<?= $this->task->selectTitle($values, $errors) ?>
<?= $this->form->label(t('Description'), 'description') ?>
<?= $this->form->textarea('description', $values, $errors, array('placeholder="'.t('Leave a description').'"', 'tabindex="2"'), 'markdown-editor') ?>
<?= $this->task->selectTags($project) ?>
<?= $this->render('task/color_picker', array('colors_list' => $colors_list, 'values' => $values)) ?>
</div>

View File

@@ -7,8 +7,8 @@
<?= $this->form->hidden('project_id', $values) ?>
<div class="form-column">
<?= $this->form->label(t('Title'), 'title') ?>
<?= $this->form->text('title', $values, $errors, array('autofocus', 'required', 'maxlength="200"', 'tabindex="1"')) ?>
<?= $this->task->selectTitle($values, $errors) ?>
<?= $this->task->selectTags($project, $tags) ?>
<?= $this->task->selectAssignee($users_list, $values, $errors) ?>
<?= $this->task->selectCategory($categories_list, $values, $errors) ?>
<?= $this->task->selectPriority($project, $values) ?>