Add projects search

This commit is contained in:
Frederic Guillot 2017-11-16 14:53:05 -08:00
parent bda7f38ceb
commit 2eeca3db3a
4 changed files with 20 additions and 3 deletions

View File

@ -9,7 +9,7 @@ Breaking changes:
New features: New features:
* Add predefined templates for task descriptions * Add predefined templates for task descriptions
* Add user and group search box * Add users, groups and projects search
* Romanian translation * Romanian translation
Improvements: Improvements:

View File

@ -24,7 +24,7 @@ class GroupListController extends BaseController
$query = $this->groupModel->getQuery(); $query = $this->groupModel->getQuery();
if ($search !== '') { if ($search !== '') {
$query->ilike('name', '%'.$search.'%'); $query->ilike('groups.name', '%'.$search.'%');
} }
$paginator = $this->paginator $paginator = $this->paginator

View File

@ -23,16 +23,24 @@ class ProjectListController extends BaseController
$projectIds = $this->projectPermissionModel->getProjectIds($this->userSession->getId()); $projectIds = $this->projectPermissionModel->getProjectIds($this->userSession->getId());
} }
$query = $this->projectModel->getQueryByProjectIds($projectIds);
$search = $this->request->getStringParam('search');
if ($search !== '') {
$query->ilike('projects.name', '%' . $search . '%');
}
$paginator = $this->paginator $paginator = $this->paginator
->setUrl('ProjectListController', 'show') ->setUrl('ProjectListController', 'show')
->setMax(20) ->setMax(20)
->setOrder('name') ->setOrder('name')
->setQuery($this->projectModel->getQueryByProjectIds($projectIds)) ->setQuery($query)
->calculate(); ->calculate();
$this->response->html($this->helper->layout->app('project_list/listing', array( $this->response->html($this->helper->layout->app('project_list/listing', array(
'paginator' => $paginator, 'paginator' => $paginator,
'title' => t('Projects') . ' (' . $paginator->getTotal() . ')', 'title' => t('Projects') . ' (' . $paginator->getTotal() . ')',
'values' => array('search' => $search),
))); )));
} }
} }

View File

@ -21,6 +21,15 @@
<?= $this->hook->render('template:project-list:menu:after') ?> <?= $this->hook->render('template:project-list:menu:after') ?>
</ul> </ul>
</div> </div>
<div class="margin-bottom">
<form method="get" action="<?= $this->url->dir() ?>" class="search">
<?= $this->form->hidden('controller', array('controller' => 'ProjectListController')) ?>
<?= $this->form->hidden('action', array('action' => 'show')) ?>
<?= $this->form->text('search', $values, array(), array('placeholder="'.t('Search').'"')) ?>
</form>
</div>
<?php if ($paginator->isEmpty()): ?> <?php if ($paginator->isEmpty()): ?>
<p class="alert"><?= t('There is no project.') ?></p> <p class="alert"><?= t('There is no project.') ?></p>
<?php else: ?> <?php else: ?>