Added Paginator for build errors. Issue #85.
This commit is contained in:
parent
11cff52e89
commit
6b102f214e
8 changed files with 190 additions and 117 deletions
|
|
@ -94,30 +94,18 @@ class ProjectController extends PHPCensor\Controller
|
|||
throw new NotFoundException(Lang::get('project_x_not_found', $projectId));
|
||||
}
|
||||
|
||||
$perPage = $_SESSION['php-censor-user']->getFinalPerPage();
|
||||
/** @var PHPCensor\Model\User $user */
|
||||
$user = $_SESSION['php-censor-user'];
|
||||
$perPage = $user->getFinalPerPage();
|
||||
$builds = $this->getLatestBuildsHtml($projectId, $environment, $branch, (($page - 1) * $perPage), $perPage);
|
||||
$pages = $builds[1] == 0 ? 1 : (integer)ceil($builds[1] / $perPage);
|
||||
$pages = ($builds[1] === 0)
|
||||
? 1
|
||||
: (integer)ceil($builds[1] / $perPage);
|
||||
|
||||
if ($page > $pages) {
|
||||
$response = new RedirectResponse();
|
||||
$response->setHeader('Location', APP_URL . 'project/view/' . $projectId);
|
||||
|
||||
return $response;
|
||||
$page = $pages;
|
||||
}
|
||||
|
||||
$urlPattern = APP_URL . 'project/view/' . $project->getId();
|
||||
$params = [];
|
||||
if (!empty($branch)) {
|
||||
$params['branch'] = $branch;
|
||||
}
|
||||
|
||||
if (!empty($environment)) {
|
||||
$params['environment'] = $environment;
|
||||
}
|
||||
|
||||
$urlPattern = $urlPattern . '?' . str_replace('%28%3Anum%29', '(:num)', http_build_query(array_merge($params, ['page' => '(:num)'])));
|
||||
$paginator = new Paginator($builds[1], $perPage, $page, $urlPattern);
|
||||
|
||||
$this->view->builds = $builds[0];
|
||||
$this->view->total = $builds[1];
|
||||
$this->view->project = $project;
|
||||
|
|
@ -127,7 +115,7 @@ class ProjectController extends PHPCensor\Controller
|
|||
$this->view->environments = $project->getEnvironmentsNames();
|
||||
$this->view->page = $page;
|
||||
$this->view->perPage = $perPage;
|
||||
$this->view->paginator = $paginator;
|
||||
$this->view->paginator = $this->getPaginatorHtml($projectId, $branch, $environment, $builds[1], $perPage, $page);
|
||||
|
||||
$this->layout->title = $project->getTitle();
|
||||
$this->layout->subtitle = '';
|
||||
|
|
@ -141,6 +129,38 @@ class ProjectController extends PHPCensor\Controller
|
|||
return $this->view->render();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $projectId
|
||||
* @param string $branch
|
||||
* @param string $environment
|
||||
* @param integer $total
|
||||
* @param integer $perPage
|
||||
* @param integer $page
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getPaginatorHtml($projectId, $branch, $environment, $total, $perPage, $page)
|
||||
{
|
||||
$view = new b8\View('pagination');
|
||||
|
||||
$urlPattern = APP_URL . 'project/view/' . $projectId;
|
||||
$params = [];
|
||||
if (!empty($branch)) {
|
||||
$params['branch'] = $branch;
|
||||
}
|
||||
|
||||
if (!empty($environment)) {
|
||||
$params['environment'] = $environment;
|
||||
}
|
||||
|
||||
$urlPattern = $urlPattern . '?' . str_replace('%28%3Anum%29', '(:num)', http_build_query(array_merge($params, ['page' => '(:num)'])));
|
||||
$paginator = new Paginator($total, $perPage, $page, $urlPattern);
|
||||
|
||||
$view->paginator = $paginator;
|
||||
|
||||
return $view->render();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new pending build for a project.
|
||||
*
|
||||
|
|
@ -259,9 +279,12 @@ class ProjectController extends PHPCensor\Controller
|
|||
$build = BuildFactory::getBuild($build);
|
||||
}
|
||||
|
||||
$view->builds = $builds['items'];
|
||||
$view->builds = $builds['items'];
|
||||
|
||||
return [$view->render(), $builds['count']];
|
||||
return [
|
||||
$view->render(),
|
||||
(integer)$builds['count']
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue