diff options
Diffstat (limited to 'app/Template/task_internal_link')
-rw-r--r-- | app/Template/task_internal_link/create.php | 33 | ||||
-rw-r--r-- | app/Template/task_internal_link/edit.php | 34 | ||||
-rw-r--r-- | app/Template/task_internal_link/remove.php | 15 | ||||
-rw-r--r-- | app/Template/task_internal_link/show.php | 14 | ||||
-rw-r--r-- | app/Template/task_internal_link/table.php | 85 |
5 files changed, 181 insertions, 0 deletions
diff --git a/app/Template/task_internal_link/create.php b/app/Template/task_internal_link/create.php new file mode 100644 index 00000000..94dcdd66 --- /dev/null +++ b/app/Template/task_internal_link/create.php @@ -0,0 +1,33 @@ +<div class="page-header"> + <h2><?= t('Add a new link') ?></h2> +</div> + +<form class="popover-form" action="<?= $this->url->href('TaskInternalLink', 'save', array('task_id' => $task['id'], 'project_id' => $task['project_id'])) ?>" method="post" autocomplete="off"> + + <?= $this->form->csrf() ?> + <?= $this->form->hidden('task_id', array('task_id' => $task['id'])) ?> + <?= $this->form->hidden('opposite_task_id', $values) ?> + + <?= $this->form->label(t('Label'), 'link_id') ?> + <?= $this->form->select('link_id', $labels, $values, $errors) ?> + + <?= $this->form->label(t('Task'), 'title') ?> + <?= $this->form->text( + 'title', + $values, + $errors, + array( + 'required', + 'placeholder="'.t('Start to type task title...').'"', + 'title="'.t('Start to type task title...').'"', + 'data-dst-field="opposite_task_id"', + 'data-search-url="'.$this->url->href('TaskHelper', 'autocomplete', array('exclude_task_id' => $task['id'])).'"', + ), + 'autocomplete') ?> + + <div class="form-actions"> + <button type="submit" class="btn btn-blue"><?= t('Save') ?></button> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'close-popover') ?> + </div> +</form>
\ No newline at end of file diff --git a/app/Template/task_internal_link/edit.php b/app/Template/task_internal_link/edit.php new file mode 100644 index 00000000..03622df7 --- /dev/null +++ b/app/Template/task_internal_link/edit.php @@ -0,0 +1,34 @@ +<div class="page-header"> + <h2><?= t('Edit link') ?></h2> +</div> + +<form action="<?= $this->url->href('TaskInternalLink', 'update', array('task_id' => $task['id'], 'project_id' => $task['project_id'], 'link_id' => $task_link['id'])) ?>" method="post" autocomplete="off"> + + <?= $this->form->csrf() ?> + <?= $this->form->hidden('id', $values) ?> + <?= $this->form->hidden('task_id', $values) ?> + <?= $this->form->hidden('opposite_task_id', $values) ?> + + <?= $this->form->label(t('Label'), 'link_id') ?> + <?= $this->form->select('link_id', $labels, $values, $errors) ?> + + <?= $this->form->label(t('Task'), 'title') ?> + <?= $this->form->text( + 'title', + $values, + $errors, + array( + 'required', + 'placeholder="'.t('Start to type task title...').'"', + 'title="'.t('Start to type task title...').'"', + 'data-dst-field="opposite_task_id"', + 'data-search-url="'.$this->url->href('TaskHelper', 'autocomplete', array('exclude_task_id' => $task['id'])).'"', + ), + 'autocomplete') ?> + + <div class="form-actions"> + <button type="submit" class="btn btn-blue"><?= t('Save') ?></button> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'close-popover') ?> + </div> +</form>
\ No newline at end of file diff --git a/app/Template/task_internal_link/remove.php b/app/Template/task_internal_link/remove.php new file mode 100644 index 00000000..82156ece --- /dev/null +++ b/app/Template/task_internal_link/remove.php @@ -0,0 +1,15 @@ +<div class="page-header"> + <h2><?= t('Remove a link') ?></h2> +</div> + +<div class="confirm"> + <p class="alert alert-info"> + <?= t('Do you really want to remove this link with task #%d?', $link['opposite_task_id']) ?> + </p> + + <div class="form-actions"> + <?= $this->url->link(t('Yes'), 'TaskInternalLink', 'remove', array('link_id' => $link['id'], 'task_id' => $task['id'], 'project_id' => $task['project_id']), true, 'btn btn-red') ?> + <?= t('or') ?> + <?= $this->url->link(t('cancel'), 'task', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'close-popover') ?> + </div> +</div>
\ No newline at end of file diff --git a/app/Template/task_internal_link/show.php b/app/Template/task_internal_link/show.php new file mode 100644 index 00000000..cc05429c --- /dev/null +++ b/app/Template/task_internal_link/show.php @@ -0,0 +1,14 @@ +<section class="accordion-section <?= empty($links) ? 'accordion-collapsed' : '' ?>"> + <div class="accordion-title"> + <h3><a href="#" class="fa accordion-toggle"></a> <?= t('Internal links') ?></h3> + </div> + <div class="accordion-content"> + <?= $this->render('task_internal_link/table', array( + 'links' => $links, + 'task' => $task, + 'project' => $project, + 'editable' => $editable, + 'is_public' => $is_public, + )) ?> + </div> +</section> diff --git a/app/Template/task_internal_link/table.php b/app/Template/task_internal_link/table.php new file mode 100644 index 00000000..8f25b29b --- /dev/null +++ b/app/Template/task_internal_link/table.php @@ -0,0 +1,85 @@ +<?php if (! empty($links)): ?> +<table class="task-links-table table-stripped"> + <?php foreach ($links as $label => $grouped_links): ?> + <?php $hide_td = false ?> + <?php foreach ($grouped_links as $link): ?> + <?php if (! $hide_td): ?> + <tr> + <td class="column-40" colspan="2"> + <?= t('This task') ?> + <strong><?= t($label) ?></strong> + <span class="task-links-task-count">(<?= count($grouped_links) ?>)</span> + </td> + <th><?= t('Assignee') ?></th> + <th><?= t('Time tracking') ?></th> + <?php if ($editable): ?> + <th class="column-5"></th> + <?php endif ?> + </tr> + <?php $hide_td = true ?> + <?php endif ?> + + <tr> + <td> + <?php if ($is_public): ?> + <?= $this->url->link( + $this->text->e('#'.$link['task_id'].' '.$link['title']), + 'task', + 'readonly', + array('task_id' => $link['task_id'], 'token' => $project['token']), + false, + $link['is_active'] ? '' : 'task-link-closed' + ) ?> + <?php else: ?> + <?= $this->url->link( + $this->text->e('#'.$link['task_id'].' '.$link['title']), + 'task', + 'show', + array('task_id' => $link['task_id'], 'project_id' => $link['project_id']), + false, + $link['is_active'] ? '' : 'task-link-closed' + ) ?> + <?php endif ?> + + <?php if ($link['project_id'] != $project['id']): ?> + <br> + <?= $this->text->e($link['project_name']) ?> + <?php endif ?> + </td> + <td> + <?= $this->text->e($link['column_title']) ?> + </td> + <td> + <?php if (! empty($link['task_assignee_username'])): ?> + <?php if ($editable): ?> + <?= $this->url->link($this->text->e($link['task_assignee_name'] ?: $link['task_assignee_username']), 'user', 'show', array('user_id' => $link['task_assignee_id'])) ?> + <?php else: ?> + <?= $this->text->e($link['task_assignee_name'] ?: $link['task_assignee_username']) ?> + <?php endif ?> + <?php endif ?> + </td> + <td> + <?php if (! empty($link['task_time_spent'])): ?> + <strong><?= $this->text->e($link['task_time_spent']).'h' ?></strong> <?= t('spent') ?> + <?php endif ?> + + <?php if (! empty($link['task_time_estimated'])): ?> + <strong><?= $this->text->e($link['task_time_estimated']).'h' ?></strong> <?= t('estimated') ?> + <?php endif ?> + </td> + <?php if ($editable && $this->user->hasProjectAccess('Tasklink', 'edit', $task['project_id'])): ?> + <td> + <div class="dropdown"> + <a href="#" class="dropdown-menu dropdown-menu-link-icon"><i class="fa fa-cog fa-fw"></i><i class="fa fa-caret-down"></i></a> + <ul> + <li><?= $this->url->link(t('Edit'), 'TaskInternalLink', 'edit', array('link_id' => $link['id'], 'task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?></li> + <li><?= $this->url->link(t('Remove'), 'TaskInternalLink', 'confirm', array('link_id' => $link['id'], 'task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?></li> + </ul> + </div> + </td> + <?php endif ?> + </tr> + <?php endforeach ?> + <?php endforeach ?> +</table> +<?php endif ?>
\ No newline at end of file |