summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2017-01-08 12:16:05 -0500
committerFrederic Guillot <fred@kanboard.net>2017-01-08 12:16:05 -0500
commite377f450ad9a97ae9031d852e9195b9092d3e9db (patch)
tree235f505e6c2136ba713e3bf642ece335fd98254f
parentbb222a79cd6a663dcbb78dc34cff2405cb16f3c2 (diff)
Open form to create customer filters in modal box
-rw-r--r--ChangeLog1
-rw-r--r--app/Controller/CustomFilterController.php29
-rw-r--r--app/Template/custom_filter/create.php (renamed from app/Template/custom_filter/add.php)7
-rw-r--r--app/Template/custom_filter/index.php90
-rw-r--r--app/Template/project_header/dropdown.php2
5 files changed, 72 insertions, 57 deletions
diff --git a/ChangeLog b/ChangeLog
index eb3d4042..068f5ecf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,7 @@ Improvements:
* Add helpers to open modal boxes
* Make icons clickable in menus
* Open task import in modal box
+* Open form to create customer filters in modal box
Version 1.0.36 (Dec 30, 2016)
-----------------------------
diff --git a/app/Controller/CustomFilterController.php b/app/Controller/CustomFilterController.php
index e5f674cd..b0b2daff 100644
--- a/app/Controller/CustomFilterController.php
+++ b/app/Controller/CustomFilterController.php
@@ -18,17 +18,13 @@ class CustomFilterController extends BaseController
* Display list of filters
*
* @access public
- * @param array $values
- * @param array $errors
* @throws \Kanboard\Core\Controller\PageNotFoundException
*/
- public function index(array $values = array(), array $errors = array())
+ public function index()
{
$project = $this->getProject();
$this->response->html($this->helper->layout->project('custom_filter/index', array(
- 'values' => $values + array('project_id' => $project['id']),
- 'errors' => $errors,
'project' => $project,
'custom_filters' => $this->customFilterModel->getAll($project['id'], $this->userSession->getId()),
'title' => t('Custom filters'),
@@ -36,6 +32,24 @@ class CustomFilterController extends BaseController
}
/**
+ * Show creation form for custom filters
+ *
+ * @access public
+ * @param array $values
+ * @param array $errors
+ */
+ public function create(array $values = array(), array $errors = array())
+ {
+ $project = $this->getProject();
+
+ $this->response->html($this->template->render('custom_filter/create', array(
+ 'values' => $values + array('project_id' => $project['id']),
+ 'errors' => $errors,
+ 'project' => $project,
+ )));
+ }
+
+ /**
* Save a new custom filter
*
* @access public
@@ -52,13 +66,14 @@ class CustomFilterController extends BaseController
if ($valid) {
if ($this->customFilterModel->create($values) !== false) {
$this->flash->success(t('Your custom filter have been created successfully.'));
- return $this->response->redirect($this->helper->url->to('CustomFilterController', 'index', array('project_id' => $project['id'])));
+ $this->response->redirect($this->helper->url->to('CustomFilterController', 'index', array('project_id' => $project['id'])), true);
+ return;
} else {
$this->flash->failure(t('Unable to create your custom filter.'));
}
}
- return $this->index($values, $errors);
+ $this->create($values, $errors);
}
/**
diff --git a/app/Template/custom_filter/add.php b/app/Template/custom_filter/create.php
index 0b91226a..24e896ee 100644
--- a/app/Template/custom_filter/add.php
+++ b/app/Template/custom_filter/create.php
@@ -2,12 +2,11 @@
<h2><?= t('Add a new filter') ?></h2>
</div>
<form method="post" action="<?= $this->url->href('CustomFilterController', 'save', array('project_id' => $project['id'])) ?>" autocomplete="off">
-
<?= $this->form->csrf() ?>
<?= $this->form->hidden('project_id', $values) ?>
<?= $this->form->label(t('Name'), 'name') ?>
- <?= $this->form->text('name', $values, $errors, array('required', 'maxlength="100"')) ?>
+ <?= $this->form->text('name', $values, $errors, array('autofocus', 'required', 'maxlength="100"')) ?>
<?= $this->form->label(t('Filter'), 'filter') ?>
<?= $this->form->text('filter', $values, $errors, array('required', 'maxlength="100"')) ?>
@@ -18,7 +17,5 @@
<?= $this->form->checkbox('append', t('Append filter (instead of replacement)'), 1) ?>
- <div class="form-actions">
- <button type="submit" class="btn btn-blue"><?= t('Save') ?></button>
- </div>
+ <?= $this->modal->submitButtons() ?>
</form>
diff --git a/app/Template/custom_filter/index.php b/app/Template/custom_filter/index.php
index 95356e64..d8d1c8e0 100644
--- a/app/Template/custom_filter/index.php
+++ b/app/Template/custom_filter/index.php
@@ -1,51 +1,53 @@
<?php if (! empty($custom_filters)): ?>
<div class="page-header">
<h2><?= t('Custom filters') ?></h2>
+ <ul>
+ <li>
+ <?= $this->modal->medium('filter', t('Add custom filters'), 'CustomFilterController', 'create', array('project_id' => $project['id'])) ?>
+ </li>
+ </ul>
</div>
-<div>
- <table class="table-striped table-scrolling">
- <tr>
- <th class="column-15"><?= t('Name') ?></th>
- <th class="column-30"><?= t('Filter') ?></th>
- <th class="column-10"><?= t('Shared') ?></th>
- <th class="column-15"><?= t('Append/Replace') ?></th>
- <th class="column-25"><?= t('Owner') ?></th>
- <th class="column-5"><?= t('Actions') ?></th>
- </tr>
- <?php foreach ($custom_filters as $filter): ?>
- <tr>
- <td><?= $this->text->e($filter['name']) ?></td>
- <td><?= $this->text->e($filter['filter']) ?></td>
- <td>
- <?php if ($filter['is_shared'] == 1): ?>
- <?= t('Yes') ?>
- <?php else: ?>
- <?= t('No') ?>
+<table class="table-striped table-scrolling">
+ <tr>
+ <th class="column-15"><?= t('Name') ?></th>
+ <th class="column-30"><?= t('Filter') ?></th>
+ <th class="column-10"><?= t('Shared') ?></th>
+ <th class="column-15"><?= t('Append/Replace') ?></th>
+ <th class="column-25"><?= t('Owner') ?></th>
+ <th class="column-5"><?= t('Actions') ?></th>
+ </tr>
+<?php foreach ($custom_filters as $filter): ?>
+ <tr>
+ <td><?= $this->text->e($filter['name']) ?></td>
+ <td><?= $this->text->e($filter['filter']) ?></td>
+ <td>
+ <?php if ($filter['is_shared'] == 1): ?>
+ <?= t('Yes') ?>
+ <?php else: ?>
+ <?= t('No') ?>
+ <?php endif ?>
+ </td>
+ <td>
+ <?php if ($filter['append'] == 1): ?>
+ <?= t('Append') ?>
+ <?php else: ?>
+ <?= t('Replace') ?>
+ <?php endif ?>
+ </td>
+ <td><?= $this->text->e($filter['owner_name'] ?: $filter['owner_username']) ?></td>
+ <td>
+ <?php if ($filter['user_id'] == $this->user->getId() || $this->user->hasProjectAccess('CustomFilterController', 'edit', $project['id'])): ?>
+ <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->modal->medium('edit', t('Edit'), 'CustomFilterController', 'edit', array('project_id' => $filter['project_id'], 'filter_id' => $filter['id'])) ?></li>
+ <li><?= $this->modal->confirm('trash-o', t('Remove'), 'CustomFilterController', 'confirm', array('project_id' => $filter['project_id'], 'filter_id' => $filter['id'])) ?></li>
+ </ul>
+ </div>
<?php endif ?>
- </td>
- <td>
- <?php if ($filter['append'] == 1): ?>
- <?= t('Append') ?>
- <?php else: ?>
- <?= t('Replace') ?>
- <?php endif ?>
- </td>
- <td><?= $this->text->e($filter['owner_name'] ?: $filter['owner_username']) ?></td>
- <td>
- <?php if ($filter['user_id'] == $this->user->getId() || $this->user->hasProjectAccess('CustomFilterController', 'edit', $project['id'])): ?>
- <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->modal->medium('edit', t('Edit'), 'CustomFilterController', 'edit', array('project_id' => $filter['project_id'], 'filter_id' => $filter['id'])) ?></li>
- <li><?= $this->modal->confirm('trash-o', t('Remove'), 'CustomFilterController', 'confirm', array('project_id' => $filter['project_id'], 'filter_id' => $filter['id'])) ?></li>
- </ul>
- </div>
- <?php endif ?>
- </td>
- </tr>
- <?php endforeach ?>
- </table>
-</div>
+ </td>
+ </tr>
+<?php endforeach ?>
+</table>
<?php endif ?>
-<?= $this->render('custom_filter/add', array('project' => $project, 'values' => $values, 'errors' => $errors)) ?>
diff --git a/app/Template/project_header/dropdown.php b/app/Template/project_header/dropdown.php
index 7fcdfb55..3f11838d 100644
--- a/app/Template/project_header/dropdown.php
+++ b/app/Template/project_header/dropdown.php
@@ -32,7 +32,7 @@
<?php if ($this->user->hasProjectAccess('CustomFilterController', 'index', $project['id'])): ?>
<li>
- <?= $this->url->icon('filter', t('Custom filters'), 'CustomFilterController', 'index', array('project_id' => $project['id'])) ?>
+ <?= $this->modal->medium('filter', t('Add custom filters'), 'CustomFilterController', 'create', array('project_id' => $project['id'])) ?>
</li>
<?php endif ?>