summaryrefslogtreecommitdiff
path: root/app/Template/task_internal_link
diff options
context:
space:
mode:
Diffstat (limited to 'app/Template/task_internal_link')
-rw-r--r--app/Template/task_internal_link/create.php33
-rw-r--r--app/Template/task_internal_link/edit.php34
-rw-r--r--app/Template/task_internal_link/remove.php15
-rw-r--r--app/Template/task_internal_link/show.php14
-rw-r--r--app/Template/task_internal_link/table.php85
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