Added Paginator helper. Issue #123.
This commit is contained in:
parent
65e38d6428
commit
3ab04a6503
4 changed files with 91 additions and 64 deletions
|
|
@ -6,6 +6,7 @@ use b8;
|
|||
use b8\Exception\HttpException\NotFoundException;
|
||||
use b8\Form;
|
||||
use b8\Store;
|
||||
use JasonGrimes\Paginator;
|
||||
use PHPCensor;
|
||||
use PHPCensor\BuildFactory;
|
||||
use PHPCensor\Helper\Github;
|
||||
|
|
@ -95,7 +96,7 @@ class ProjectController extends PHPCensor\Controller
|
|||
|
||||
$perPage = $_SESSION['php-censor-user']->getFinalPerPage();
|
||||
$builds = $this->getLatestBuildsHtml($projectId, $environment, $branch, (($page - 1) * $perPage), $perPage);
|
||||
$pages = $builds[1] == 0 ? 1 : ceil($builds[1] / $perPage);
|
||||
$pages = $builds[1] == 0 ? 1 : (integer)ceil($builds[1] / $perPage);
|
||||
|
||||
if ($page > $pages) {
|
||||
$response = new RedirectResponse();
|
||||
|
|
@ -104,6 +105,19 @@ class ProjectController extends PHPCensor\Controller
|
|||
return $response;
|
||||
}
|
||||
|
||||
$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;
|
||||
|
|
@ -112,8 +126,8 @@ class ProjectController extends PHPCensor\Controller
|
|||
$this->view->environment = urldecode($environment);
|
||||
$this->view->environments = $project->getEnvironmentsNames();
|
||||
$this->view->page = $page;
|
||||
$this->view->pages = $pages;
|
||||
$this->view->perPage = $perPage;
|
||||
$this->view->paginator = $paginator;
|
||||
|
||||
$this->layout->title = $project->getTitle();
|
||||
$this->layout->subtitle = '';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,12 @@
|
|||
<?php use PHPCensor\Helper\Lang; ?>
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @var \JasonGrimes\Paginator $paginator
|
||||
*/
|
||||
|
||||
use PHPCensor\Helper\Lang;
|
||||
|
||||
?>
|
||||
<script>
|
||||
var PROJECT_ID = <?= $project->getId(); ?>;
|
||||
var PROJECT_ENVIRONMENT = '<?= $environment; ?>';
|
||||
|
|
@ -116,68 +124,27 @@
|
|||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php
|
||||
<div>
|
||||
<ul class="pagination">
|
||||
<?php if ($paginator->getPrevUrl()): ?>
|
||||
<li><a href="<?php echo $paginator->getPrevUrl(); ?>"><?= Lang::get('prev_link'); ?></a></li>
|
||||
<?php endif; ?>
|
||||
|
||||
print '<div><ul class="pagination">';
|
||||
<?php foreach ($paginator->getPages() as $pageArray): ?>
|
||||
<?php if ($pageArray['url']): ?>
|
||||
<li <?php echo $pageArray['isCurrent'] ? 'class="active"' : ''; ?>>
|
||||
<a href="<?php echo $pageArray['url']; ?>"><?php echo $pageArray['num']; ?></a>
|
||||
</li>
|
||||
<?php else: ?>
|
||||
<li class="disabled"><span><?php echo $pageArray['num']; ?></span></li>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; ?>
|
||||
|
||||
$project_url = APP_URL . 'project/view/' . $project->getId();
|
||||
$params = [];
|
||||
|
||||
if (!empty($branch)) {
|
||||
$params['branch'] = $branch;
|
||||
}
|
||||
|
||||
if (!empty($environment)) {
|
||||
$params['environment'] = $environment;
|
||||
}
|
||||
|
||||
if ($page > 1) {
|
||||
print '<li><a href="' . $project_url . '?' . http_build_query(array_merge($params, ['page' => ($page - 1)])) . '">' . Lang::get('prev_link') . '</a></li>';
|
||||
}
|
||||
|
||||
if ($pages > 1) {
|
||||
|
||||
$start = $page - 3;
|
||||
|
||||
if ($start <= 0) {
|
||||
$start = 1;
|
||||
}
|
||||
|
||||
$end = $page + 3;
|
||||
|
||||
if ($end > $pages) {
|
||||
$end = $pages;
|
||||
}
|
||||
|
||||
if ($start > 1) {
|
||||
print '<li><a href="' . $project_url . '?' . http_build_query($params) . '">1...</a></li>';
|
||||
}
|
||||
|
||||
for($i = $start; $i <= $end; $i++)
|
||||
{
|
||||
if ($pages > $end && $i == $pages) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($i == $page) {
|
||||
print '<li class="bg-blue"><span>' . $i . '</span></li>';
|
||||
} else {
|
||||
print '<li><a href="' . $project_url . '?' . http_build_query(array_merge($params, ['page' => $i])) . '">' . $i . '</a></li>';
|
||||
}
|
||||
}
|
||||
|
||||
if ($pages > $end) {
|
||||
print '<li><a href="' . $project_url . '?' . http_build_query(array_merge($params, ['page' => $pages])) . '">...' . $pages . '</a></li>';
|
||||
}
|
||||
}
|
||||
|
||||
if ($page < ($pages - 1)) {
|
||||
print '<li><a href="' . $project_url . '?' . http_build_query(array_merge($params, ['page' => ($page == $pages) ? $pages : ($page + 1)])) . '">' . Lang::get('next_link') . '</a></li>';
|
||||
}
|
||||
|
||||
print '</ul></div>';
|
||||
|
||||
?>
|
||||
<?php if ($paginator->getNextUrl()): ?>
|
||||
<li><a href="<?php echo $paginator->getNextUrl(); ?>"><?= Lang::get('prev_link'); ?></a></li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 col-md-4 col-sm-4">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue