mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Merge pull request #11828 from murrant/fix-sort
Fix table sorts not working
This commit is contained in:
@@ -171,8 +171,9 @@ abstract class PaginatedAjaxController extends Controller
|
||||
$sort = $request->get('sort', $this->default_sort);
|
||||
|
||||
foreach ($sort as $column => $direction) {
|
||||
if (isset($columns[$column])) {
|
||||
$query->orderBy($columns[$column], $direction == 'desc' ? 'desc' : 'asc');
|
||||
if (isset($columns[$column]) || in_array($column, $columns)) {
|
||||
$name = $columns[$column] ?? $column;
|
||||
$query->orderBy($name, $direction == 'desc' ? 'desc' : 'asc');
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -38,6 +38,11 @@ class CustomersController extends TableController
|
||||
return ['port_descr_descr', 'ifName', 'ifDescr', 'ifAlias', 'hostname', 'sysDescr', 'port_descr_speed', 'port_descr_notes'];
|
||||
}
|
||||
|
||||
public function sortFields($request)
|
||||
{
|
||||
return ['port_descr_descr', 'hostname', 'ifDescr', 'port_descr_speed', 'port_descr_circuit', 'port_descr_notes'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the base query for this resource
|
||||
*
|
||||
|
@@ -67,6 +67,11 @@ class DeviceController extends TableController
|
||||
return ['sysName', 'hostname', 'hardware', 'os', 'locations.location'];
|
||||
}
|
||||
|
||||
protected function sortFields($request)
|
||||
{
|
||||
return ['status', 'icon', 'hostname', 'hardware', 'os', 'uptime', 'location'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the base query for this resource
|
||||
*
|
||||
|
@@ -55,6 +55,11 @@ class EventlogController extends TableController
|
||||
];
|
||||
}
|
||||
|
||||
protected function sortFields($request)
|
||||
{
|
||||
return ['datetime', 'type', 'device_id', 'message', 'username'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the base query for this resource
|
||||
*
|
||||
|
@@ -114,35 +114,35 @@ class FdbTablesController extends TableController
|
||||
$sort = $request->get('sort');
|
||||
|
||||
if (isset($sort['mac_address'])) {
|
||||
$query->orderBy('mac_address', $sort['mac_address']);
|
||||
$query->orderBy('mac_address', $sort['mac_address'] == 'desc' ? 'desc' : 'asc');
|
||||
}
|
||||
|
||||
if (isset($sort['device'])) {
|
||||
$query->leftJoin('devices', 'ports_fdb.device_id', 'devices.device_id')
|
||||
->orderBy('hostname', $sort['device']);
|
||||
->orderBy('hostname', $sort['device'] == 'desc' ? 'desc' : 'asc');
|
||||
}
|
||||
|
||||
if (isset($sort['vlan'])) {
|
||||
$query->leftJoin('vlans', 'ports_fdb.vlan_id', 'vlans.vlan_id')
|
||||
->orderBy('vlan_vlan', $sort['vlan']);
|
||||
->orderBy('vlan_vlan', $sort['vlan'] == 'desc' ? 'desc' : 'asc');
|
||||
}
|
||||
|
||||
if (isset($sort['interface'])) {
|
||||
$query->leftJoin('ports', 'ports_fdb.port_id', 'ports.port_id')
|
||||
->orderBy('ports.ifDescr', $sort['interface']);
|
||||
->orderBy('ports.ifDescr', $sort['interface'] == 'desc' ? 'desc' : 'asc');
|
||||
}
|
||||
|
||||
if (isset($sort['description'])) {
|
||||
$query->leftJoin('ports', 'ports_fdb.port_id', 'ports.port_id')
|
||||
->orderBy('ports.ifDescr', $sort['description']);
|
||||
->orderBy('ports.ifDescr', $sort['description'] == 'desc' ? 'desc' : 'asc');
|
||||
}
|
||||
|
||||
if (isset($sort['last_seen'])) {
|
||||
$query->orderBy('updated_at', $sort['last_seen']);
|
||||
$query->orderBy('updated_at', $sort['last_seen'] == 'desc' ? 'desc' : 'asc');
|
||||
}
|
||||
|
||||
if (isset($sort['first_seen'])) {
|
||||
$query->orderBy('created_at', $sort['first_seen']);
|
||||
$query->orderBy('created_at', $sort['first_seen'] == 'desc' ? 'desc' : 'asc');
|
||||
}
|
||||
|
||||
return $query;
|
||||
@@ -163,7 +163,7 @@ class FdbTablesController extends TableController
|
||||
'first_seen' => 'unknown',
|
||||
'last_seen' => 'unknown'
|
||||
];
|
||||
|
||||
|
||||
// diffForHumans and doDateTimeString are not safe
|
||||
if ($fdb_entry->updated_at) {
|
||||
$item['last_seen'] = $fdb_entry->updated_at->diffForHumans();
|
||||
|
@@ -42,6 +42,11 @@ class LocationController extends TableController
|
||||
return ['location'];
|
||||
}
|
||||
|
||||
protected function sortFields($request)
|
||||
{
|
||||
return ['location', 'devices', 'network', 'servers', 'firewalls', 'down'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the base query for this resource
|
||||
*
|
||||
|
@@ -43,6 +43,26 @@ class PortNacController extends TableController
|
||||
return ['username', 'ip_address', 'mac_address'];
|
||||
}
|
||||
|
||||
protected function sortFields($request)
|
||||
{
|
||||
return [
|
||||
'port_id',
|
||||
'mac_address',
|
||||
'ip_address',
|
||||
'vlan',
|
||||
'domain',
|
||||
'host_mode',
|
||||
'username',
|
||||
'authz_by',
|
||||
'timeout',
|
||||
'time_elapsed',
|
||||
'time_left',
|
||||
'authc_status',
|
||||
'authz_status',
|
||||
'method'
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the base query for this resource
|
||||
*
|
||||
|
@@ -59,6 +59,23 @@ class RoutesTablesController extends TableController
|
||||
];
|
||||
}
|
||||
|
||||
protected function sortFields($request)
|
||||
{
|
||||
return [
|
||||
'context_name',
|
||||
'inetCidrRouteDestType',
|
||||
'inetCidrRouteDest',
|
||||
'inetCidrRoutePfxLen',
|
||||
'inetCidrRouteNextHop',
|
||||
'inetCidrRouteIfIndex',
|
||||
'inetCidrRouteMetric1',
|
||||
'inetCidrRouteType',
|
||||
'inetCidrRouteProto',
|
||||
'created_at',
|
||||
'updated_at',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the base query for this resource
|
||||
*
|
||||
@@ -67,7 +84,7 @@ class RoutesTablesController extends TableController
|
||||
*/
|
||||
protected function baseQuery($request)
|
||||
{
|
||||
$join = function ($query) {
|
||||
$join = function ($query) {
|
||||
$query->on('ports.port_id', 'route.port_id');
|
||||
};
|
||||
$showAllRoutes = trim(\Request::get('showAllRoutes'));
|
||||
|
@@ -56,6 +56,11 @@ class SyslogController extends TableController
|
||||
];
|
||||
}
|
||||
|
||||
public function sortFields($request)
|
||||
{
|
||||
return ['label', 'timestamp', 'level', 'device_id', 'program', 'msg', 'priority'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the base query for this resource
|
||||
*
|
||||
|
Reference in New Issue
Block a user