Use same layout as task listing for task search

This commit is contained in:
Frederic Guillot 2017-03-11 18:08:25 -05:00
parent 748f1c09fb
commit bb9e791657
6 changed files with 115 additions and 145 deletions

View File

@ -9,6 +9,7 @@ Improvements:
* Render QR code for TwoFactor authentication without Google Chart API
* Add toggle button to show/hide subtasks in task list view
* Use same layout as task listing for task search
* Display tags in task list view
* Make user actions available from contextual menu
* Change users and groups list layout

View File

@ -3,6 +3,7 @@
namespace Kanboard\Controller;
use Kanboard\Filter\TaskProjectsFilter;
use Kanboard\Model\TaskModel;
/**
* Search Controller
@ -21,11 +22,12 @@ class SearchController extends BaseController
$paginator = $this->paginator
->setUrl('SearchController', 'index', array('search' => $search))
->setMax(30)
->setOrder('tasks.id')
->setOrder(TaskModel::TABLE.'.id')
->setDirection('DESC');
if ($search !== '' && ! empty($projects)) {
$paginator
->setFormatter($this->taskListFormatter)
->setQuery($this->taskLexer
->build($search)
->withFilter(new TaskProjectsFilter(array_keys($projects)))

View File

@ -1,4 +1,3 @@
<section id="main">
<div class="page-header">
<ul>
<li>
@ -7,7 +6,7 @@
</ul>
</div>
<div class="filter-box">
<div class="filter-box margin-bottom">
<form method="get" action="<?= $this->url->dir() ?>" class="search">
<?= $this->form->hidden('controller', $values) ?>
<?= $this->form->hidden('action', $values) ?>
@ -37,9 +36,5 @@
<?php elseif (! empty($values['search']) && $nb_events === 0): ?>
<p class="alert"><?= t('Nothing found.') ?></p>
<?php else: ?>
<div class="margin-top">
<?= $this->render('event/events', array('events' => $events)) ?>
</div>
<?php endif ?>
</section>

View File

@ -1,4 +1,3 @@
<section id="main">
<div class="page-header">
<ul>
<li>
@ -7,7 +6,7 @@
</ul>
</div>
<div class="filter-box">
<div class="filter-box margin-bottom">
<form method="get" action="<?= $this->url->dir() ?>" class="search">
<?= $this->form->hidden('controller', $values) ?>
<?= $this->form->hidden('action', $values) ?>
@ -43,5 +42,3 @@
'paginator' => $paginator,
)) ?>
<?php endif ?>
</section>

View File

@ -1,58 +1,31 @@
<table class="table-small table-scrolling margin-top">
<tr>
<th class="column-5"><?= $paginator->order(t('Id'), 'tasks.id') ?></th>
<th class="column-8"><?= $paginator->order(t('Project'), 'tasks.project_id') ?></th>
<th class="column-10"><?= $paginator->order(t('Swimlane'), 'tasks.swimlane_id') ?></th>
<th class="column-10"><?= $paginator->order(t('Column'), 'tasks.column_id') ?></th>
<th class="column-10"><?= $paginator->order(t('Category'), 'tasks.category_id') ?></th>
<th><?= $paginator->order(t('Title'), 'tasks.title') ?></th>
<th class="column-10"><?= $paginator->order(t('Assignee'), 'users.username') ?></th>
<th class="column-10"><?= $paginator->order(t('Due date'), 'tasks.date_due') ?></th>
<th class="column-5"><?= $paginator->order(t('Status'), 'tasks.is_active') ?></th>
</tr>
<div class="table-list">
<?= $this->render('task_list/header', array(
'paginator' => $paginator,
)) ?>
<?php foreach ($paginator->getCollection() as $task): ?>
<tr>
<td class="color-<?= $task['color_id'] ?>">
<?php if ($this->user->hasProjectAccess('TaskModificationController', 'edit', $task['project_id'])): ?>
<?= $this->render('task/dropdown', array('task' => $task)) ?>
<?php else: ?>
#<?= $task['id'] ?>
<?php endif ?>
</td>
<td>
<?= $this->url->link($this->text->e($task['project_name']), 'BoardViewController', 'show', array('project_id' => $task['project_id'])) ?>
</td>
<td>
<?= $this->text->e($task['swimlane_name']) ?>
</td>
<td>
<?= $this->text->e($task['column_name']) ?>
</td>
<td>
<?= $this->text->e($task['category_name']) ?>
</td>
<td>
<?= $this->url->link($this->text->e($task['title']), 'TaskViewController', 'show', array('task_id' => $task['id'], 'project_id' => $task['project_id']), false, '', t('View this task')) ?>
</td>
<td>
<?php if ($task['assignee_username']): ?>
<?= $this->text->e($task['assignee_name'] ?: $task['assignee_username']) ?>
<?php else: ?>
<?= t('Unassigned') ?>
<?php endif ?>
</td>
<td>
<?= $this->dt->date($task['date_due']) ?>
</td>
<td>
<?php if ($task['is_active'] == \Kanboard\Model\TaskModel::STATUS_OPEN): ?>
<?= t('Open') ?>
<?php else: ?>
<?= t('Closed') ?>
<?php endif ?>
</td>
</tr>
<div class="table-list-row color-<?= $task['color_id'] ?>">
<?= $this->render('task_list/task_title', array(
'task' => $task,
)) ?>
<?= $this->render('task_list/task_details', array(
'task' => $task,
)) ?>
<?= $this->render('task_list/task_avatars', array(
'task' => $task,
)) ?>
<?= $this->render('task_list/task_icons', array(
'task' => $task,
)) ?>
<?= $this->render('task_list/task_subtasks', array(
'task' => $task,
)) ?>
</div>
<?php endforeach ?>
</table>
</div>
<?= $paginator ?>

View File

@ -7,11 +7,13 @@
<?php endif ?>
</div>
<div class="table-list-header-menu">
<?php if (isset($project)): ?>
<?php if ($this->user->hasSubtaskListActivated()): ?>
<?= $this->url->icon('tasks', t('Hide subtasks'), 'TaskListController', 'show', array('project_id' => $project['id'], 'hide_subtasks' => 1)) ?>
<?php else: ?>
<?= $this->url->icon('tasks', t('Show subtasks'), 'TaskListController', 'show', array('project_id' => $project['id'], 'show_subtasks' => 1)) ?>
<?php endif ?>
<?php endif ?>
<?= $this->render('task_list/sort_menu', array('paginator' => $paginator)) ?>
</div>