fix pagination and collections

This commit is contained in:
envoyr
2022-02-25 21:56:12 +01:00
parent fb6660b78a
commit c48a22a58e
6 changed files with 38 additions and 45 deletions

View File

@@ -41,20 +41,16 @@ if ($page == 'overview' || $page == 'domains') {
try { try {
$domain_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.domains.php'; $domain_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.domains.php';
$list = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\SubDomains::class, $userinfo)) $collection = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\SubDomains::class, $userinfo))
//->addParam(['sql_search' => ['d.parentdomainid' => $parentdomain_id]]) //->addParam(['sql_search' => ['d.parentdomainid' => $parentdomain_id]])
->withPagination($domain_list_data['domain_list']['columns']) ->withPagination($domain_list_data['domain_list']['columns']);
->getList(); $parentDomainCollection = (new \Froxlor\UI\Collection(SubDomains::class, $userinfo, ['sql_search' => ['d.parentdomainid' => 0]]));
} catch (Exception $e) { } catch (Exception $e) {
\Froxlor\UI\Response::dynamic_error($e->getMessage()); \Froxlor\UI\Response::dynamic_error($e->getMessage());
} }
$json_result = SubDomains::getLocal($userinfo, ['sql_search' => ['d.parentdomainid' => 0]])->listing();
$result = json_decode($json_result, true)['data'];
$parentdomains_count = $result['count'];
$actions_links = false; $actions_links = false;
if (($userinfo['subdomains_used'] < $userinfo['subdomains'] || $userinfo['subdomains'] == '-1') && $parentdomains_count != 0) { if (($userinfo['subdomains_used'] < $userinfo['subdomains'] || $userinfo['subdomains'] == '-1') && $parentDomainCollection->count() != 0) {
$actions_links = [[ $actions_links = [[
'href' => $linker->getLink(['section' => 'domains', 'page' => 'domains', 'action' => 'add']), 'href' => $linker->getLink(['section' => 'domains', 'page' => 'domains', 'action' => 'add']),
'label' => $lng['domains']['subdomain_add'] 'label' => $lng['domains']['subdomain_add']
@@ -62,7 +58,7 @@ if ($page == 'overview' || $page == 'domains') {
} }
UI::twigBuffer('user/table.html.twig', [ UI::twigBuffer('user/table.html.twig', [
'listing' => \Froxlor\UI\Listing::format($list, $domain_list_data['domain_list']), 'listing' => \Froxlor\UI\Listing::format($collection, $domain_list_data['domain_list']),
'actions_links' => $actions_links, 'actions_links' => $actions_links,
'entity_info' => $lng['domains']['description'] 'entity_info' => $lng['domains']['description']
]); ]);

View File

@@ -40,9 +40,8 @@ if ($page == 'overview' || $page == 'emails') {
try { try {
$email_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.emails.php'; $email_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.emails.php';
$list = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\Emails::class, $userinfo)) $collection = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\Emails::class, $userinfo))
->withPagination($email_list_data['email_list']['columns']) ->withPagination($email_list_data['email_list']['columns']);
->getList();
} catch (Exception $e) { } catch (Exception $e) {
\Froxlor\UI\Response::dynamic_error($e->getMessage()); \Froxlor\UI\Response::dynamic_error($e->getMessage());
} }
@@ -66,7 +65,7 @@ if ($page == 'overview' || $page == 'emails') {
} }
UI::twigBuffer('user/table.html.twig', [ UI::twigBuffer('user/table.html.twig', [
'listing' => \Froxlor\UI\Listing::format($list, $email_list_data['email_list']), 'listing' => \Froxlor\UI\Listing::format($collection, $email_list_data['email_list']),
'actions_links' => $actions_links, 'actions_links' => $actions_links,
'entity_info' => $lng['emails']['description'] 'entity_info' => $lng['emails']['description']
]); ]);

View File

@@ -48,15 +48,14 @@ if ($page == 'overview' || $page == 'htpasswds') {
); );
try { try {
$htpasswd_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.htpasswd.php'; $htpasswd_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.htpasswd.php';
$list = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\DirProtections::class, $userinfo)) $collection = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\DirProtections::class, $userinfo))
->withPagination($htpasswd_list_data['htpasswd_list']['columns']) ->withPagination($htpasswd_list_data['htpasswd_list']['columns']);
->getList();
} catch (Exception $e) { } catch (Exception $e) {
\Froxlor\UI\Response::dynamic_error($e->getMessage()); \Froxlor\UI\Response::dynamic_error($e->getMessage());
} }
UI::twigBuffer('user/table.html.twig', [ UI::twigBuffer('user/table.html.twig', [
'listing' => \Froxlor\UI\Listing::format($list, $htpasswd_list_data['htpasswd_list']), 'listing' => \Froxlor\UI\Listing::format($collection, $htpasswd_list_data['htpasswd_list']),
'actions_links' => [[ 'actions_links' => [[
'href' => $linker->getLink(['section' => 'extras', 'page' => 'htpasswds', 'action' => 'add']), 'href' => $linker->getLink(['section' => 'extras', 'page' => 'htpasswds', 'action' => 'add']),
'label' => $lng['extras']['directoryprotection_add'] 'label' => $lng['extras']['directoryprotection_add']
@@ -170,15 +169,14 @@ if ($page == 'overview' || $page == 'htpasswds') {
try { try {
$htaccess_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.htaccess.php'; $htaccess_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.htaccess.php';
$list = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\DirOptions::class, $userinfo)) $collection = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\DirOptions::class, $userinfo))
->withPagination($htaccess_list_data['htaccess_list']['columns']) ->withPagination($htaccess_list_data['htaccess_list']['columns']);
->getList();
} catch (Exception $e) { } catch (Exception $e) {
\Froxlor\UI\Response::dynamic_error($e->getMessage()); \Froxlor\UI\Response::dynamic_error($e->getMessage());
} }
UI::twigBuffer('user/table.html.twig', [ UI::twigBuffer('user/table.html.twig', [
'listing' => \Froxlor\UI\Listing::format($list, $htaccess_list_data['htaccess_list']), 'listing' => \Froxlor\UI\Listing::format($collection, $htaccess_list_data['htaccess_list']),
'add_link' => [ 'add_link' => [
'href' => $linker->getLink(['section' => 'extras', 'page' => 'htaccess', 'action' => 'add']), 'href' => $linker->getLink(['section' => 'extras', 'page' => 'htaccess', 'action' => 'add']),
'label' => $lng['extras']['pathoptions_add'] 'label' => $lng['extras']['pathoptions_add']

View File

@@ -37,9 +37,8 @@ if ($page == 'overview' || $page == 'accounts') {
$log->logAction(\Froxlor\FroxlorLogger::USR_ACTION, LOG_NOTICE, "viewed customer_ftp::accounts"); $log->logAction(\Froxlor\FroxlorLogger::USR_ACTION, LOG_NOTICE, "viewed customer_ftp::accounts");
try { try {
$ftp_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.ftps.php'; $ftp_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.ftps.php';
$list = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\Ftps::class, $userinfo)) $collection = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\Ftps::class, $userinfo))
->withPagination($ftp_list_data['ftp_list']['columns']) ->withPagination($ftp_list_data['ftp_list']['columns']);
->getList();
} catch (Exception $e) { } catch (Exception $e) {
\Froxlor\UI\Response::dynamic_error($e->getMessage()); \Froxlor\UI\Response::dynamic_error($e->getMessage());
} }
@@ -53,7 +52,7 @@ if ($page == 'overview' || $page == 'accounts') {
} }
UI::twigBuffer('user/table.html.twig', [ UI::twigBuffer('user/table.html.twig', [
'listing' => \Froxlor\UI\Listing::format($list, $ftp_list_data['ftp_list']), 'listing' => \Froxlor\UI\Listing::format($collection, $ftp_list_data['ftp_list']),
'actions_links' => $actions_links, 'actions_links' => $actions_links,
'entity_info' => $lng['ftp']['description'] 'entity_info' => $lng['ftp']['description']
]); ]);

View File

@@ -48,9 +48,8 @@ if ($page == 'overview' || $page == 'mysqls') {
try { try {
$mysql_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.mysqls.php'; $mysql_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/customer/tablelisting.mysqls.php';
$list = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\Mysqls::class, $userinfo)) $collection = (new \Froxlor\UI\Collection(\Froxlor\Api\Commands\Mysqls::class, $userinfo))
->withPagination($mysql_list_data['mysql_list']['columns']) ->withPagination($mysql_list_data['mysql_list']['columns']);
->getList();
} catch (Exception $e) { } catch (Exception $e) {
\Froxlor\UI\Response::dynamic_error($e->getMessage()); \Froxlor\UI\Response::dynamic_error($e->getMessage());
} }
@@ -68,7 +67,7 @@ if ($page == 'overview' || $page == 'mysqls') {
} }
UI::twigBuffer('user/table.html.twig', [ UI::twigBuffer('user/table.html.twig', [
'listing' => \Froxlor\UI\Listing::format($list, $mysql_list_data['mysql_list']), 'listing' => \Froxlor\UI\Listing::format($collection, $mysql_list_data['mysql_list']),
'actions_links' => $actions_links, 'actions_links' => $actions_links,
'entity_info' => $lng['mysql']['description'] 'entity_info' => $lng['mysql']['description']
]); ]);

View File

@@ -1,4 +1,5 @@
{% macro paging(pagination) %} {% macro paging(pagination) %}
{% if pagination.last_page > 1 %}
<div class="card-footer border-top"> <div class="card-footer border-top">
{% if pagination.current_page >= pagination.last_page %} {% if pagination.current_page >= pagination.last_page %}
<a href="?s={{ s }}&page={{ page }}&action={{ action }}&pageno=1">&laquo;</a> <a href="?s={{ s }}&page={{ page }}&action={{ action }}&pageno=1">&laquo;</a>
@@ -13,6 +14,7 @@
<a href="?s={{ s }}&page={{ page }}&action={{ action }}&pageno={{ pagination.last_page }}">&raquo;</a> <a href="?s={{ s }}&page={{ page }}&action={{ action }}&pageno={{ pagination.last_page }}">&raquo;</a>
{% endif %} {% endif %}
</div> </div>
{% endif %}
{% endmacro %} {% endmacro %}
{% macro titlesorting(pagination, key, th) %} {% macro titlesorting(pagination, key, th) %}