Save task list order in user session
This commit is contained in:
@@ -35,11 +35,16 @@ class TaskListController extends BaseController
|
||||
$formatter = $this->taskListFormatter;
|
||||
}
|
||||
|
||||
list($order, $direction) = $this->userSession->getListOrder($project['id']);
|
||||
$direction = $this->request->getStringParam('direction', $direction);
|
||||
$order = $this->request->getStringParam('order', $order);
|
||||
$this->userSession->setListOrder($project['id'], $order, $direction);
|
||||
|
||||
$paginator = $this->paginator
|
||||
->setUrl('TaskListController', 'show', array('project_id' => $project['id']))
|
||||
->setMax(30)
|
||||
->setOrder(TaskModel::TABLE.'.id')
|
||||
->setDirection('DESC')
|
||||
->setOrder($order)
|
||||
->setDirection($direction)
|
||||
->setFormatter($formatter)
|
||||
->setQuery($this->taskLexer
|
||||
->build($search)
|
||||
|
||||
@@ -240,4 +240,35 @@ class UserSession extends Base
|
||||
{
|
||||
session_set('filters:'.$projectID, $filters);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get project list order from the session
|
||||
*
|
||||
* @access public
|
||||
* @param integer $projectID
|
||||
* @return array
|
||||
*/
|
||||
public function getListOrder($projectID)
|
||||
{
|
||||
$default = ['tasks.id', 'DESC'];
|
||||
|
||||
if (! session_exists('listOrder:'.$projectID)) {
|
||||
return $default;
|
||||
}
|
||||
|
||||
return session_get('listOrder:'.$projectID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save project list order in the session
|
||||
*
|
||||
* @access public
|
||||
* @param integer $projectID
|
||||
* @param string $listOrder
|
||||
* @param string $listDirection
|
||||
*/
|
||||
public function setListOrder($projectID, $listOrder, $listDirection)
|
||||
{
|
||||
session_set('listOrder:'.$projectID, [$listOrder, $listDirection]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user