summaryrefslogtreecommitdiff
path: root/app/Template
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-09-11 16:08:03 -0400
committerFrederic Guillot <fred@kanboard.net>2016-09-11 16:08:03 -0400
commitd8f6d8568396816a6bfaca1e01211384e803cf91 (patch)
tree16d735faa3f6f9aafb6c78650470e77347cae1ab /app/Template
parenta0227cad69aff9486fba1d7b2a19e6da97450100 (diff)
Add project restrictions for custom roles
Diffstat (limited to 'app/Template')
-rw-r--r--app/Template/project_role/show.php21
-rw-r--r--app/Template/project_role_restriction/create.php19
-rw-r--r--app/Template/project_role_restriction/remove.php14
-rw-r--r--app/Template/task/dropdown.php2
-rw-r--r--app/Template/task/sidebar.php2
5 files changed, 53 insertions, 5 deletions
diff --git a/app/Template/project_role/show.php b/app/Template/project_role/show.php
index 5fbd413b..595416ac 100644
--- a/app/Template/project_role/show.php
+++ b/app/Template/project_role/show.php
@@ -20,6 +20,10 @@
<ul>
<li>
<i class="fa fa-plus fa-fw" aria-hidden="true"></i>
+ <?= $this->url->link(t('Add a new project restriction'), 'ProjectRoleRestrictionController', 'create', array('project_id' => $project['id'], 'role_id' => $role['role_id']), false, 'popover') ?>
+ </li>
+ <li>
+ <i class="fa fa-plus fa-fw" aria-hidden="true"></i>
<?= $this->url->link(t('Add a new column restriction'), 'ColumnMoveRestrictionController', 'create', array('project_id' => $project['id'], 'role_id' => $role['role_id']), false, 'popover') ?>
</li>
<li>
@@ -33,15 +37,26 @@
<?= t('Actions') ?>
</th>
</tr>
- <?php if (empty($role['restrictions'])): ?>
+ <?php if (empty($role['project_restrictions']) && empty($role['column_restrictions'])): ?>
<tr>
<td colspan="2"><?= t('There is no restriction for this role.') ?></td>
</tr>
<?php else: ?>
- <?php foreach ($role['restrictions'] as $restriction): ?>
+ <?php foreach ($role['project_restrictions'] as $restriction): ?>
+ <tr>
+ <td>
+ <?= $this->text->e($restriction['title']) ?>
+ </td>
+ <td>
+ <i class="fa fa-trash-o fa-fw" aria-hidden="true"></i>
+ <?= $this->url->link(t('Remove'), 'ProjectRoleRestrictionController', 'confirm', array('project_id' => $project['id'], 'restriction_id' => $restriction['restriction_id']), false, 'popover') ?>
+ </td>
+ </tr>
+ <?php endforeach ?>
+ <?php foreach ($role['column_restrictions'] as $restriction): ?>
<tr>
<td>
- <?= t('Moving task from the column "%s" to "%s" is permitted', $restriction['src_column_title'], $restriction['dst_column_title']) ?>
+ <?= t('Only moving task from the column "%s" to "%s" is permitted', $restriction['src_column_title'], $restriction['dst_column_title']) ?>
</td>
<td>
<i class="fa fa-trash-o fa-fw" aria-hidden="true"></i>
diff --git a/app/Template/project_role_restriction/create.php b/app/Template/project_role_restriction/create.php
new file mode 100644
index 00000000..f49eafb3
--- /dev/null
+++ b/app/Template/project_role_restriction/create.php
@@ -0,0 +1,19 @@
+<section id="main">
+ <div class="page-header">
+ <h2><?= t('New project restriction for the role "%s"', $role['role']) ?></h2>
+ </div>
+ <form class="popover-form" method="post" action="<?= $this->url->href('ProjectRoleRestrictionController', 'save', array('project_id' => $project['id'])) ?>" autocomplete="off">
+ <?= $this->form->csrf() ?>
+ <?= $this->form->hidden('project_id', $values) ?>
+ <?= $this->form->hidden('role_id', $values) ?>
+
+ <?= $this->form->label(t('Restriction'), 'rule') ?>
+ <?= $this->form->select('rule', $restrictions, $values, $errors) ?>
+
+ <div class="form-actions">
+ <button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
+ <?= t('or') ?>
+ <?= $this->url->link(t('cancel'), 'ProjectRoleController', 'show', array(), false, 'close-popover') ?>
+ </div>
+ </form>
+</section>
diff --git a/app/Template/project_role_restriction/remove.php b/app/Template/project_role_restriction/remove.php
new file mode 100644
index 00000000..db1148e1
--- /dev/null
+++ b/app/Template/project_role_restriction/remove.php
@@ -0,0 +1,14 @@
+<div class="page-header">
+ <h2><?= t('Remove a project restriction') ?></h2>
+</div>
+
+<div class="confirm">
+ <p class="alert alert-info">
+ <?= t('Do you really want to remove this project restriction: "%s"?', $this->text->in($restriction['rule'], $restrictions)) ?>
+ </p>
+
+ <div class="form-actions">
+ <?= $this->url->link(t('Yes'), 'ProjectRoleRestrictionController', 'remove', array('project_id' => $project['id'], 'restriction_id' => $restriction['restriction_id']), true, 'btn btn-red') ?>
+ <?= t('or') ?> <?= $this->url->link(t('cancel'), 'ProjectRoleController', 'show', array('project_id' => $project['id']), false, 'close-popover') ?>
+ </div>
+</div>
diff --git a/app/Template/task/dropdown.php b/app/Template/task/dropdown.php
index 95c7a88c..19c8316e 100644
--- a/app/Template/task/dropdown.php
+++ b/app/Template/task/dropdown.php
@@ -43,7 +43,7 @@
<i class="fa fa-clone fa-fw"></i>
<?= $this->url->link(t('Move to another project'), 'TaskDuplicationController', 'move', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
</li>
- <?php if ($this->user->canRemoveTask($task)): ?>
+ <?php if ($this->projectRole->canRemoveTask($task)): ?>
<li>
<i class="fa fa-trash-o fa-fw"></i>
<?= $this->url->link(t('Remove'), 'TaskSuppressionController', 'confirm', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
diff --git a/app/Template/task/sidebar.php b/app/Template/task/sidebar.php
index de0750ff..827c2f39 100644
--- a/app/Template/task/sidebar.php
+++ b/app/Template/task/sidebar.php
@@ -93,7 +93,7 @@
<?= $this->url->link(t('Open this task'), 'TaskStatusController', 'open', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, 'popover') ?>
</li>
<?php endif ?>
- <?php if ($this->user->canRemoveTask($task)): ?>
+ <?php if ($this->projectRole->canRemoveTask($task)): ?>
<li>
<i class="fa fa-trash-o fa-fw"></i>
<?= $this->url->link(t('Remove'), 'TaskSuppressionController', 'confirm', array('task_id' => $task['id'], 'project_id' => $task['project_id'], 'redirect' => 'board'), false, 'popover') ?>