mirror of
https://github.com/chylex/Lightning-Tracker.git
synced 2025-03-13 00:15:44 +01:00
Move pagination elements per page property to a cookie
This commit is contained in:
parent
dcaaa09224
commit
0671789417
src
Database/Filters
Pages
Components/Table/Elements
Models
@ -7,8 +7,6 @@ use LogicException;
|
||||
use PDOStatement;
|
||||
|
||||
abstract class AbstractFilter{
|
||||
public const GET_PAGE = 'page';
|
||||
|
||||
protected const OP_EQ = 'eq';
|
||||
protected const OP_LIKE = 'like';
|
||||
|
||||
|
@ -4,12 +4,18 @@ declare(strict_types = 1);
|
||||
namespace Database\Filters;
|
||||
|
||||
class Pagination{
|
||||
public const GET_PAGE = 'page';
|
||||
public const COOKIE_ELEMENTS = 'pagination_elements';
|
||||
|
||||
public static function empty(): self{
|
||||
return new self(1, 0, 1);
|
||||
}
|
||||
|
||||
public static function fromGet(string $key, int $total_elements, int $elements_per_page): self{
|
||||
return new self((int)($_GET[$key] ?? 1), $total_elements, $elements_per_page);
|
||||
public static function fromGlobals(int $total_elements): self{
|
||||
$current_page = (int)($_GET[self::GET_PAGE] ?? 1);
|
||||
$elements_per_page = (int)($_COOKIE[self::COOKIE_ELEMENTS] ?? 15);
|
||||
|
||||
return new self($current_page, $total_elements, $elements_per_page);
|
||||
}
|
||||
|
||||
private int $current_page;
|
||||
|
@ -3,7 +3,6 @@ declare(strict_types = 1);
|
||||
|
||||
namespace Pages\Components\Table\Elements;
|
||||
|
||||
use Database\Filters\AbstractFilter;
|
||||
use Database\Filters\Pagination;
|
||||
use Pages\IViewable;
|
||||
use Routing\Request;
|
||||
@ -71,7 +70,7 @@ HTML;
|
||||
|
||||
private function echoPageNumber(int $page, string $text): void{
|
||||
$active = $this->pagination->getCurrentPage() === $page ? ' class="active"' : '';
|
||||
$link = BASE_URL_ENC.'/'.$this->req->pathWithGet(AbstractFilter::GET_PAGE, $page);
|
||||
$link = BASE_URL_ENC.'/'.$this->req->pathWithGet(Pagination::GET_PAGE, $page);
|
||||
|
||||
echo <<<HTML
|
||||
<li$active>
|
||||
@ -81,7 +80,7 @@ HTML;
|
||||
}
|
||||
|
||||
private function echoPageIcon(int $page, string $icon): void{
|
||||
$link = BASE_URL_ENC.'/'.$this->req->pathWithGet(AbstractFilter::GET_PAGE, $page);
|
||||
$link = BASE_URL_ENC.'/'.$this->req->pathWithGet(Pagination::GET_PAGE, $page);
|
||||
|
||||
echo <<<HTML
|
||||
<li>
|
||||
|
@ -4,7 +4,6 @@ declare(strict_types = 1);
|
||||
namespace Pages\Models\Root;
|
||||
|
||||
use Database\DB;
|
||||
use Database\Filters\AbstractFilter;
|
||||
use Database\Filters\Pagination;
|
||||
use Database\Filters\Types\TrackerFilter;
|
||||
use Database\Objects\UserProfile;
|
||||
@ -31,8 +30,6 @@ class TrackersModel extends BasicRootPageModel{
|
||||
public const PERM_ADD = 'trackers.add';
|
||||
public const PERM_EDIT = 'trackers.edit';
|
||||
|
||||
private const TRACKERS_PER_PAGE = 15;
|
||||
|
||||
private Permissions $perms;
|
||||
private TableComponent $table;
|
||||
private ?FormComponent $form;
|
||||
@ -81,7 +78,7 @@ class TrackersModel extends BasicRootPageModel{
|
||||
$trackers = new TrackerTable(DB::get());
|
||||
$total_count = $trackers->countTrackers($filter);
|
||||
|
||||
$pagination = Pagination::fromGet(AbstractFilter::GET_PAGE, $total_count, self::TRACKERS_PER_PAGE);
|
||||
$pagination = Pagination::fromGlobals($total_count);
|
||||
$filter = $filter->page($pagination);
|
||||
|
||||
foreach($trackers->listTrackers($filter) as $tracker){
|
||||
|
@ -4,7 +4,6 @@ declare(strict_types = 1);
|
||||
namespace Pages\Models\Root;
|
||||
|
||||
use Database\DB;
|
||||
use Database\Filters\AbstractFilter;
|
||||
use Database\Filters\Pagination;
|
||||
use Database\Filters\Types\UserFilter;
|
||||
use Database\SQL;
|
||||
@ -31,8 +30,6 @@ class UsersModel extends BasicRootPageModel{
|
||||
public const PERM_ADD = 'users.add';
|
||||
public const PERM_EDIT = 'users.edit';
|
||||
|
||||
private const USERS_PER_PAGE = 15;
|
||||
|
||||
private Permissions $perms;
|
||||
private TableComponent $table;
|
||||
private ?FormComponent $form;
|
||||
@ -99,7 +96,7 @@ class UsersModel extends BasicRootPageModel{
|
||||
$users = new UserTable(DB::get());
|
||||
$total_count = $users->countUsers();
|
||||
|
||||
$pagination = Pagination::fromGet(AbstractFilter::GET_PAGE, $total_count, self::USERS_PER_PAGE);
|
||||
$pagination = Pagination::fromGlobals($total_count);
|
||||
$filter = $filter->page($pagination);
|
||||
|
||||
foreach($users->listUsers($filter) as $user){
|
||||
|
@ -4,7 +4,6 @@ declare(strict_types = 1);
|
||||
namespace Pages\Models\Tracker;
|
||||
|
||||
use Database\DB;
|
||||
use Database\Filters\AbstractFilter;
|
||||
use Database\Filters\Pagination;
|
||||
use Database\Filters\Types\IssueFilter;
|
||||
use Database\Objects\TrackerInfo;
|
||||
@ -19,8 +18,6 @@ use Routing\Request;
|
||||
use Session\Permissions;
|
||||
|
||||
class IssuesModel extends BasicTrackerPageModel{
|
||||
private const ISSUES_PER_PAGE = 15;
|
||||
|
||||
public const PERM_CREATE = 'issues.create';
|
||||
public const PERM_EDIT_ALL = 'issues.edit.all';
|
||||
public const PERM_DELETE_ALL = 'issues.delete.all';
|
||||
@ -57,7 +54,7 @@ class IssuesModel extends BasicTrackerPageModel{
|
||||
$issues = new IssueTable(DB::get(), $tracker);
|
||||
$total_count = $issues->countIssues($filter);
|
||||
|
||||
$pagination = Pagination::fromGet(AbstractFilter::GET_PAGE, $total_count, self::ISSUES_PER_PAGE);
|
||||
$pagination = Pagination::fromGlobals($total_count);
|
||||
$filter = $filter->page($pagination);
|
||||
|
||||
foreach($issues->listIssues($filter) as $issue){
|
||||
|
@ -4,7 +4,6 @@ declare(strict_types = 1);
|
||||
namespace Pages\Models\Tracker;
|
||||
|
||||
use Database\DB;
|
||||
use Database\Filters\AbstractFilter;
|
||||
use Database\Filters\Pagination;
|
||||
use Database\Filters\Types\TrackerMemberFilter;
|
||||
use Database\Objects\TrackerInfo;
|
||||
@ -29,8 +28,6 @@ class MembersModel extends BasicTrackerPageModel{
|
||||
public const PERM_LIST = 'members.list';
|
||||
public const PERM_MANAGE = 'members.manage';
|
||||
|
||||
private const USERS_PER_PAGE = 15;
|
||||
|
||||
private Permissions $perms;
|
||||
private TableComponent $table;
|
||||
private ?FormComponent $form;
|
||||
@ -92,7 +89,7 @@ class MembersModel extends BasicTrackerPageModel{
|
||||
$members = new TrackerMemberTable(DB::get(), $tracker);
|
||||
$total_count = $members->countMembers($filter);
|
||||
|
||||
$pagination = Pagination::fromGet(AbstractFilter::GET_PAGE, $total_count, self::USERS_PER_PAGE);
|
||||
$pagination = Pagination::fromGlobals($total_count);
|
||||
$filter = $filter->page($pagination);
|
||||
|
||||
foreach($members->listMembers($filter) as $member){
|
||||
|
@ -4,7 +4,6 @@ declare(strict_types = 1);
|
||||
namespace Pages\Models\Tracker;
|
||||
|
||||
use Database\DB;
|
||||
use Database\Filters\AbstractFilter;
|
||||
use Database\Filters\Pagination;
|
||||
use Database\Filters\Types\MilestoneFilter;
|
||||
use Database\Objects\TrackerInfo;
|
||||
@ -36,8 +35,6 @@ class MilestonesModel extends BasicTrackerPageModel{
|
||||
|
||||
public const PERM_EDIT = 'milestones.edit';
|
||||
|
||||
private const MILESTONES_PER_PAGE = 15;
|
||||
|
||||
private Permissions $perms;
|
||||
private TableComponent $table;
|
||||
private ?FormComponent $form;
|
||||
@ -79,7 +76,7 @@ class MilestonesModel extends BasicTrackerPageModel{
|
||||
$milestones = new MilestoneTable(DB::get(), $this->getTracker());
|
||||
$total_count = $milestones->countMilestones($filter);
|
||||
|
||||
$pagination = Pagination::fromGet(AbstractFilter::GET_PAGE, $total_count, self::MILESTONES_PER_PAGE);
|
||||
$pagination = Pagination::fromGlobals($total_count);
|
||||
$filter = $filter->page($pagination);
|
||||
|
||||
$active_milestone = $this->getActiveMilestone();
|
||||
|
Loading…
Reference in New Issue
Block a user