add default-sorting of listings in frontend

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann 2022-09-30 09:44:11 +02:00
parent fa826aa87e
commit e944a886b6
No known key found for this signature in database
GPG Key ID: C121F97338D7A352
40 changed files with 51 additions and 26 deletions

View File

@ -48,7 +48,7 @@ if (($page == 'admins' || $page == 'overview') && $userinfo['change_serversettin
try { try {
$admin_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.admins.php'; $admin_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.admins.php';
$collection = (new Collection(Admins::class, $userinfo)) $collection = (new Collection(Admins::class, $userinfo))
->withPagination($admin_list_data['admin_list']['columns']); ->withPagination($admin_list_data['admin_list']['columns'], $admin_list_data['admin_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -43,7 +43,7 @@ if ($page == 'cronjobs' || $page == 'overview') {
try { try {
$cron_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.cronjobs.php'; $cron_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.cronjobs.php';
$collection = (new Collection(Cronjobs::class, $userinfo)) $collection = (new Collection(Cronjobs::class, $userinfo))
->withPagination($cron_list_data['cron_list']['columns']); ->withPagination($cron_list_data['cron_list']['columns'], $cron_list_data['cron_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -51,7 +51,7 @@ if (($page == 'customers' || $page == 'overview') && $userinfo['customers'] != '
try { try {
$customer_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.customers.php'; $customer_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.customers.php';
$collection = (new Collection(Customers::class, $userinfo, ['show_usages' => true])) $collection = (new Collection(Customers::class, $userinfo, ['show_usages' => true]))
->withPagination($customer_list_data['customer_list']['columns']); ->withPagination($customer_list_data['customer_list']['columns'], $customer_list_data['customer_list']['default_sorting']);
if ($userinfo['change_serversettings']) { if ($userinfo['change_serversettings']) {
$collection->has('admin', Admins::class, 'adminid', 'adminid'); $collection->has('admin', Admins::class, 'adminid', 'adminid');
} }

View File

@ -57,7 +57,7 @@ if ($page == 'domains' || $page == 'overview') {
$domain_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.domains.php'; $domain_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.domains.php';
$collection = (new Collection(Domains::class, $userinfo)) $collection = (new Collection(Domains::class, $userinfo))
->has('customer', Customers::class, 'customerid', 'customerid') ->has('customer', Customers::class, 'customerid', 'customerid')
->withPagination($domain_list_data['domain_list']['columns']); ->withPagination($domain_list_data['domain_list']['columns'], $domain_list_data['domain_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -45,7 +45,7 @@ if ($page == 'ipsandports' || $page == 'overview') {
try { try {
$ipsandports_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.ipsandports.php'; $ipsandports_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.ipsandports.php';
$collection = (new Collection(IpsAndPorts::class, $userinfo)) $collection = (new Collection(IpsAndPorts::class, $userinfo))
->withPagination($ipsandports_list_data['ipsandports_list']['columns']); ->withPagination($ipsandports_list_data['ipsandports_list']['columns'], $ipsandports_list_data['ipsandports_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -38,8 +38,7 @@ if ($page == 'log' && $userinfo['change_serversettings'] == '1') {
try { try {
$syslog_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.syslog.php'; $syslog_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.syslog.php';
$collection = (new Collection(SysLog::class, $userinfo)) $collection = (new Collection(SysLog::class, $userinfo))
->addParam(['sql_orderby' => ['date' => 'DESC']]) ->withPagination($syslog_list_data['syslog_list']['columns'], $syslog_list_data['syslog_list']['default_sorting']);
->withPagination($syslog_list_data['syslog_list']['columns']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -45,7 +45,7 @@ if ($page == 'mysqlserver' || $page == 'overview') {
try { try {
$mysqlserver_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.mysqlserver.php'; $mysqlserver_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.mysqlserver.php';
$collection = (new Collection(MysqlServer::class, $userinfo)) $collection = (new Collection(MysqlServer::class, $userinfo))
->withPagination($mysqlserver_list_data['mysqlserver_list']['columns']); ->withPagination($mysqlserver_list_data['mysqlserver_list']['columns'], $mysqlserver_list_data['mysqlserver_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -44,7 +44,7 @@ if ($page == 'overview') {
try { try {
$phpconf_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.phpconfigs.php'; $phpconf_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.phpconfigs.php';
$collection = (new Collection(PhpSettings::class, $userinfo, ['with_subdomains' => true])) $collection = (new Collection(PhpSettings::class, $userinfo, ['with_subdomains' => true]))
->withPagination($phpconf_list_data['phpconf_list']['columns']); ->withPagination($phpconf_list_data['phpconf_list']['columns'], $phpconf_list_data['phpconf_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }
@ -180,7 +180,7 @@ if ($page == 'overview') {
try { try {
$fpmconf_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.fpmconfigs.php'; $fpmconf_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.fpmconfigs.php';
$collection = (new Collection(FpmDaemons::class, $userinfo)) $collection = (new Collection(FpmDaemons::class, $userinfo))
->withPagination($fpmconf_list_data['fpmconf_list']['columns']); ->withPagination($fpmconf_list_data['fpmconf_list']['columns'], $fpmconf_list_data['fpmconf_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -48,7 +48,7 @@ if ($page == '' || $page == 'overview') {
try { try {
$plan_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.plans.php'; $plan_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/admin/tablelisting.plans.php';
$collection = (new Collection(HostingPlans::class, $userinfo)) $collection = (new Collection(HostingPlans::class, $userinfo))
->withPagination($plan_list_data['plan_list']['columns']); ->withPagination($plan_list_data['plan_list']['columns'], $plan_list_data['plan_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -57,8 +57,7 @@ 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';
$collection = (new Collection(SubDomains::class, $userinfo)) $collection = (new Collection(SubDomains::class, $userinfo))
//->addParam(['sql_search' => ['d.parentdomainid' => $parentdomain_id]]) ->withPagination($domain_list_data['domain_list']['columns'], $domain_list_data['domain_list']['default_sorting']);
->withPagination($domain_list_data['domain_list']['columns']);
$parentDomainCollection = (new Collection(SubDomains::class, $userinfo, ['sql_search' => ['d.parentdomainid' => 0]])); $parentDomainCollection = (new Collection(SubDomains::class, $userinfo, ['sql_search' => ['d.parentdomainid' => 0]]));
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());

View File

@ -55,7 +55,7 @@ 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';
$collection = (new Collection(Emails::class, $userinfo)) $collection = (new Collection(Emails::class, $userinfo))
->withPagination($email_list_data['email_list']['columns']); ->withPagination($email_list_data['email_list']['columns'], $email_list_data['email_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -63,7 +63,7 @@ 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';
$collection = (new Collection(DirProtections::class, $userinfo)) $collection = (new Collection(DirProtections::class, $userinfo))
->withPagination($htpasswd_list_data['htpasswd_list']['columns']); ->withPagination($htpasswd_list_data['htpasswd_list']['columns'], $htpasswd_list_data['htpasswd_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }
@ -180,7 +180,7 @@ 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';
$collection = (new Collection(DirOptions::class, $userinfo)) $collection = (new Collection(DirOptions::class, $userinfo))
->withPagination($htaccess_list_data['htaccess_list']['columns']); ->withPagination($htaccess_list_data['htaccess_list']['columns'], $htaccess_list_data['htaccess_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -51,7 +51,7 @@ if ($page == 'overview' || $page == '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';
$collection = (new Collection(Ftps::class, $userinfo)) $collection = (new Collection(Ftps::class, $userinfo))
->withPagination($ftp_list_data['ftp_list']['columns']); ->withPagination($ftp_list_data['ftp_list']['columns'], $ftp_list_data['ftp_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -43,8 +43,7 @@ if ($page == 'log') {
try { try {
$syslog_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.syslog.php'; $syslog_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.syslog.php';
$collection = (new Collection(SysLog::class, $userinfo)) $collection = (new Collection(SysLog::class, $userinfo))
->addParam(['sql_orderby' => ['date' => 'DESC']]) ->withPagination($syslog_list_data['syslog_list']['columns'], $syslog_list_data['syslog_list']['default_sorting']);
->withPagination($syslog_list_data['syslog_list']['columns']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -60,7 +60,7 @@ 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';
$collection = (new Collection(Mysqls::class, $userinfo)) $collection = (new Collection(Mysqls::class, $userinfo))
->withPagination($mysql_list_data['mysql_list']['columns']); ->withPagination($mysql_list_data['mysql_list']['columns'], $mysql_list_data['mysql_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -104,7 +104,7 @@ if ($action == 'add_record' && !empty($_POST)) {
try { try {
$dns_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.dns.php'; $dns_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.dns.php';
$collection = (new Collection(DomainZones::class, $userinfo, ['id' => $domain_id])) $collection = (new Collection(DomainZones::class, $userinfo, ['id' => $domain_id]))
->withPagination($dns_list_data['dns_list']['columns']); ->withPagination($dns_list_data['dns_list']['columns'], $dns_list_data['dns_list']['default_sorting']);
} catch (Exception $e) { } catch (Exception $e) {
Response::dynamicError($e->getMessage()); Response::dynamicError($e->getMessage());
} }

View File

@ -109,7 +109,7 @@ class Collection
return $this; return $this;
} }
public function withPagination(array $columns): Collection public function withPagination(array $columns, array $default_sorting = []): Collection
{ {
// Get only searchable columns // Get only searchable columns
/* /*
@ -122,7 +122,7 @@ class Collection
*/ */
// Prepare pagination // Prepare pagination
$this->pagination = new Pagination($columns, $this->count(), (int)Settings::Get('panel.paging')); $this->pagination = new Pagination($columns, $this->count(), (int)Settings::Get('panel.paging'), $default_sorting);
$this->params = array_merge($this->params, $this->pagination->getApiCommandParams()); $this->params = array_merge($this->params, $this->pagination->getApiCommandParams());
return $this; return $this;

View File

@ -54,8 +54,9 @@ class Pagination
* @param array $fields * @param array $fields
* @param int $total_entries * @param int $total_entries
* @param int $perPage * @param int $perPage
* @param array $default_sorting array of key=sortfield,value=sortorder for default sorting
*/ */
public function __construct(array $fields = [], int $total_entries = 0, int $perPage = 20) public function __construct(array $fields = [], int $total_entries = 0, int $perPage = 20, array $default_sorting = [])
{ {
$this->fields = $fields; $this->fields = $fields;
$this->entries = $total_entries; $this->entries = $total_entries;
@ -87,8 +88,14 @@ class Pagination
$this->sortfield = $_REQUEST['sortfield']; $this->sortfield = $_REQUEST['sortfield'];
$this->addOrderBy($this->sortfield, $this->sortorder); $this->addOrderBy($this->sortfield, $this->sortorder);
} else { } else {
// add default ordering by given order
if (!empty($default_sorting)) {
$this->sortfield = array_key_first($default_sorting);
$this->sortorder = array_shift($default_sorting) ?? $this->sortorder;
$this->addOrderBy($this->sortfield, $this->sortorder);
}
// add default ordering by given fields // add default ordering by given fields
if (count($fields) > 0) { if (count($fields) > 0 && empty($this->sortfield)) {
$orderfields = array_keys($fields); $orderfields = array_keys($fields);
$this->sortfield = $orderfields[0]; $this->sortfield = $orderfields[0];
$this->addOrderBy($orderfields[0], $this->sortorder); $this->addOrderBy($orderfields[0], $this->sortorder);

View File

@ -36,6 +36,7 @@ return [
'title' => lng('admin.admin'), 'title' => lng('admin.admin'),
'icon' => 'fa-solid fa-user', 'icon' => 'fa-solid fa-user',
'self_overview' => ['section' => 'admins', 'page' => 'admins'], 'self_overview' => ['section' => 'admins', 'page' => 'admins'],
'default_sorting' => ['loginname' => 'asc'],
'columns' => [ 'columns' => [
'adminid' => [ 'adminid' => [
'label' => 'ID', 'label' => 'ID',

View File

@ -30,6 +30,7 @@ return [
'cron_list' => [ 'cron_list' => [
'title' => lng('admin.cron.cronsettings'), 'title' => lng('admin.cron.cronsettings'),
'icon' => 'fa-solid fa-clock-rotate-left', 'icon' => 'fa-solid fa-clock-rotate-left',
'default_sorting' => ['c.id' => 'asc'],
'columns' => [ 'columns' => [
'c.desc_lng_key' => [ 'c.desc_lng_key' => [
'label' => lng('cron.description'), 'label' => lng('cron.description'),

View File

@ -36,6 +36,7 @@ return [
'description' => lng('admin.customers_list_desc'), 'description' => lng('admin.customers_list_desc'),
'icon' => 'fa-solid fa-user', 'icon' => 'fa-solid fa-user',
'self_overview' => ['section' => 'customers', 'page' => 'customers'], 'self_overview' => ['section' => 'customers', 'page' => 'customers'],
'default_sorting' => ['c.name' => 'asc'],
'columns' => [ 'columns' => [
'c.customerid' => [ 'c.customerid' => [
'label' => 'ID', 'label' => 'ID',

View File

@ -35,6 +35,7 @@ return [
'icon' => 'fa-solid fa-globe', 'icon' => 'fa-solid fa-globe',
'empty_msg' => $customerCollection->count() == 0 ? lng('admin.domain_nocustomeraddingavailable') : '', 'empty_msg' => $customerCollection->count() == 0 ? lng('admin.domain_nocustomeraddingavailable') : '',
'self_overview' => ['section' => 'domains', 'page' => 'domains'], 'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'default_sorting' => ['d.domain_ace' => 'asc'],
'columns' => [ 'columns' => [
'd.id' => [ 'd.id' => [
'label' => 'ID', 'label' => 'ID',

View File

@ -30,6 +30,7 @@ return [
'title' => lng('admin.templates.filetemplates'), 'title' => lng('admin.templates.filetemplates'),
'icon' => 'fa-solid fa-file-lines', 'icon' => 'fa-solid fa-file-lines',
'self_overview' => ['section' => 'templates', 'page' => 'email'], 'self_overview' => ['section' => 'templates', 'page' => 'email'],
'default_sorting' => ['template' => 'asc'],
'columns' => [ 'columns' => [
'template' => [ 'template' => [
'label' => lng('admin.templates.action'), 'label' => lng('admin.templates.action'),

View File

@ -32,6 +32,7 @@ return [
'title' => lng('menue.phpsettings.fpmdaemons'), 'title' => lng('menue.phpsettings.fpmdaemons'),
'icon' => 'fa-brands fa-php', 'icon' => 'fa-brands fa-php',
'self_overview' => ['section' => 'phpsettings', 'page' => 'fpmdaemons'], 'self_overview' => ['section' => 'phpsettings', 'page' => 'fpmdaemons'],
'default_sorting' => ['description' => 'asc'],
'columns' => [ 'columns' => [
'id' => [ 'id' => [
'label' => 'ID', 'label' => 'ID',

View File

@ -32,6 +32,7 @@ return [
'title' => lng('admin.integritycheck'), 'title' => lng('admin.integritycheck'),
'icon' => 'fa-solid fa-circle-check', 'icon' => 'fa-solid fa-circle-check',
'self_overview' => ['section' => 'settings', 'page' => 'integritycheck'], 'self_overview' => ['section' => 'settings', 'page' => 'integritycheck'],
'default_sorting' => ['displayid' => 'asc'],
'columns' => [ 'columns' => [
'displayid' => [ 'displayid' => [
'label' => 'ID', 'label' => 'ID',

View File

@ -32,6 +32,7 @@ return [
'title' => lng('admin.ipsandports.ipsandports'), 'title' => lng('admin.ipsandports.ipsandports'),
'icon' => 'fa-solid fa-ethernet', 'icon' => 'fa-solid fa-ethernet',
'self_overview' => ['section' => 'ipsandports', 'page' => 'ipsandports'], 'self_overview' => ['section' => 'ipsandports', 'page' => 'ipsandports'],
'default_sorting' => ['ip' => 'asc'],
'columns' => [ 'columns' => [
'ip' => [ 'ip' => [
'label' => lng('admin.ipsandports.ip'), 'label' => lng('admin.ipsandports.ip'),

View File

@ -30,6 +30,7 @@ return [
'title' => lng('admin.templates.templates'), 'title' => lng('admin.templates.templates'),
'icon' => 'fa-solid fa-envelope', 'icon' => 'fa-solid fa-envelope',
'self_overview' => ['section' => 'templates', 'page' => 'email'], 'self_overview' => ['section' => 'templates', 'page' => 'email'],
'default_sorting' => ['template' => 'asc'],
'columns' => [ 'columns' => [
'language' => [ 'language' => [
'label' => lng('login.language'), 'label' => lng('login.language'),

View File

@ -31,6 +31,7 @@ return [
'title' => lng('admin.mysqlserver.mysqlserver'), 'title' => lng('admin.mysqlserver.mysqlserver'),
'icon' => 'fa-solid fa-server', 'icon' => 'fa-solid fa-server',
'self_overview' => ['section' => 'mysqlserver', 'page' => 'mysqlserver'], 'self_overview' => ['section' => 'mysqlserver', 'page' => 'mysqlserver'],
'default_sorting' => ['caption' => 'asc'],
'columns' => [ 'columns' => [
'id' => [ 'id' => [
'label' => lng('admin.mysqlserver.dbserver'), 'label' => lng('admin.mysqlserver.dbserver'),

View File

@ -33,6 +33,7 @@ return [
'title' => lng('menue.phpsettings.maintitle'), 'title' => lng('menue.phpsettings.maintitle'),
'icon' => 'fa-brands fa-php', 'icon' => 'fa-brands fa-php',
'self_overview' => ['section' => 'phpsettings', 'page' => 'overview'], 'self_overview' => ['section' => 'phpsettings', 'page' => 'overview'],
'default_sorting' => ['c.description' => 'asc'],
'columns' => [ 'columns' => [
'c.id' => [ 'c.id' => [
'label' => 'ID', 'label' => 'ID',

View File

@ -31,6 +31,7 @@ return [
'title' => lng('admin.plans.plans'), 'title' => lng('admin.plans.plans'),
'icon' => 'fa-solid fa-clipboard-list', 'icon' => 'fa-solid fa-clipboard-list',
'self_overview' => ['section' => 'plans', 'page' => 'overview'], 'self_overview' => ['section' => 'plans', 'page' => 'overview'],
'default_sorting' => ['p.name' => 'asc'],
'columns' => [ 'columns' => [
'p.id' => [ 'p.id' => [
'label' => 'ID', 'label' => 'ID',

View File

@ -32,6 +32,7 @@ return [
'title' => lng('error.customerhasongoingbackupjob'), 'title' => lng('error.customerhasongoingbackupjob'),
'icon' => 'fa-solid fa-server', 'icon' => 'fa-solid fa-server',
'self_overview' => ['section' => 'extras', 'page' => 'backup'], 'self_overview' => ['section' => 'extras', 'page' => 'backup'],
'default_sorting' => ['destdir' => 'asc'],
'columns' => [ 'columns' => [
'destdir' => [ 'destdir' => [
'label' => lng('panel.path'), 'label' => lng('panel.path'),

View File

@ -33,6 +33,7 @@ return [
'title' => lng('admin.domains'), 'title' => lng('admin.domains'),
'icon' => 'fa-solid fa-globe', 'icon' => 'fa-solid fa-globe',
'self_overview' => ['section' => 'domains', 'page' => 'domains'], 'self_overview' => ['section' => 'domains', 'page' => 'domains'],
'default_sorting' => ['d.domain_ace' => 'asc'],
'columns' => [ 'columns' => [
'd.domain_ace' => [ 'd.domain_ace' => [
'label' => lng('domains.domainname'), 'label' => lng('domains.domainname'),

View File

@ -33,6 +33,7 @@ return [
'title' => lng('menue.email.emails'), 'title' => lng('menue.email.emails'),
'icon' => 'fa-solid fa-envelope', 'icon' => 'fa-solid fa-envelope',
'self_overview' => ['section' => 'email', 'page' => 'emails'], 'self_overview' => ['section' => 'email', 'page' => 'emails'],
'default_sorting' => ['m.email_full' => 'asc'],
'columns' => [ 'columns' => [
'm.email_full' => [ 'm.email_full' => [
'label' => lng('emails.emailaddress'), 'label' => lng('emails.emailaddress'),

View File

@ -32,6 +32,7 @@ return [
'title' => lng('menue.ftp.accounts'), 'title' => lng('menue.ftp.accounts'),
'icon' => 'fa-solid fa-users', 'icon' => 'fa-solid fa-users',
'self_overview' => ['section' => 'ftp', 'page' => 'accounts'], 'self_overview' => ['section' => 'ftp', 'page' => 'accounts'],
'default_sorting' => ['username' => 'asc'],
'columns' => [ 'columns' => [
'username' => [ 'username' => [
'label' => lng('login.username'), 'label' => lng('login.username'),

View File

@ -32,6 +32,7 @@ return [
'title' => lng('menue.extras.pathoptions'), 'title' => lng('menue.extras.pathoptions'),
'icon' => 'fa-solid fa-folder', 'icon' => 'fa-solid fa-folder',
'self_overview' => ['section' => 'extras', 'page' => 'htaccess'], 'self_overview' => ['section' => 'extras', 'page' => 'htaccess'],
'default_sorting' => ['path' => 'asc'],
'columns' => [ 'columns' => [
'path' => [ 'path' => [
'label' => lng('panel.path'), 'label' => lng('panel.path'),

View File

@ -31,6 +31,7 @@ return [
'title' => lng('menue.extras.directoryprotection'), 'title' => lng('menue.extras.directoryprotection'),
'icon' => 'fa-solid fa-lock', 'icon' => 'fa-solid fa-lock',
'self_overview' => ['section' => 'extras', 'page' => 'htpasswds'], 'self_overview' => ['section' => 'extras', 'page' => 'htpasswds'],
'default_sorting' => ['path' => 'asc'],
'columns' => [ 'columns' => [
'username' => [ 'username' => [
'label' => lng('login.username'), 'label' => lng('login.username'),

View File

@ -32,6 +32,7 @@ return [
'title' => lng('menue.mysql.databases'), 'title' => lng('menue.mysql.databases'),
'icon' => 'fa-solid fa-database', 'icon' => 'fa-solid fa-database',
'self_overview' => ['section' => 'mysql', 'page' => 'mysqls'], 'self_overview' => ['section' => 'mysql', 'page' => 'mysqls'],
'default_sorting' => ['databasename' => 'asc'],
'columns' => [ 'columns' => [
'databasename' => [ 'databasename' => [
'label' => lng('mysql.databasename'), 'label' => lng('mysql.databasename'),

View File

@ -32,6 +32,7 @@ return [
'title' => lng('domains.ssl_certificates'), 'title' => lng('domains.ssl_certificates'),
'icon' => 'fa-solid fa-shield', 'icon' => 'fa-solid fa-shield',
'self_overview' => ['section' => 'domains', 'page' => 'sslcertificates'], 'self_overview' => ['section' => 'domains', 'page' => 'sslcertificates'],
'default_sorting' => ['domains.domain_ace' => 'asc'],
'columns' => [ 'columns' => [
'd.domain' => [ 'd.domain' => [
'label' => lng('domains.domainname'), 'label' => lng('domains.domainname'),

View File

@ -32,6 +32,7 @@ return [
'title' => lng('menue.logger.logger'), 'title' => lng('menue.logger.logger'),
'icon' => 'fa-solid fa-file-lines', 'icon' => 'fa-solid fa-file-lines',
'self_overview' => ['section' => 'logger', 'page' => 'log'], 'self_overview' => ['section' => 'logger', 'page' => 'log'],
'default_sorting' => ['date' => 'desc'],
'columns' => [ 'columns' => [
'date' => [ 'date' => [
'label' => lng('logger.date'), 'label' => lng('logger.date'),

View File

@ -62,7 +62,7 @@ $log->logAction(FroxlorLogger::USR_ACTION, LOG_NOTICE, "viewed domains::ssl_cert
try { try {
$certificates_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.sslcertificates.php'; $certificates_list_data = include_once dirname(__FILE__) . '/lib/tablelisting/tablelisting.sslcertificates.php';
$collection = (new Collection(Certificates::class, $userinfo)) $collection = (new Collection(Certificates::class, $userinfo))
->withPagination($certificates_list_data['sslcertificates_list']['columns']); ->withPagination($certificates_list_data['sslcertificates_list']['columns'], $certificates_list_data['sslcertificates_list']['default_sorting']);
if ($userinfo['adminsession'] == 1) { if ($userinfo['adminsession'] == 1) {
$collection->has('domains', Domains::class, 'domainid', 'id'); $collection->has('domains', Domains::class, 'domainid', 'id');
} else { } else {