mirror of
https://github.com/lucaspalomodevelop/core.git
synced 2026-03-20 11:26:13 +00:00
Firewall: Diagnostics: States Dump - refactor to MVC.
o a rudimentary column sort
This commit is contained in:
parent
763d553e42
commit
caed6e2504
@ -167,6 +167,7 @@ class FirewallController extends ApiControllerBase
|
||||
]);
|
||||
$searchPhrase = '';
|
||||
$ruleId = '';
|
||||
$sortBy = '';
|
||||
$itemsPerPage = $this->request->getPost('rowCount', 'int', 9999);
|
||||
$currentPage = $this->request->getPost('current', 'int', 1);
|
||||
|
||||
@ -177,9 +178,13 @@ class FirewallController extends ApiControllerBase
|
||||
if ($this->request->getPost('searchPhrase', 'string', '') != '') {
|
||||
$searchPhrase = $filter->sanitize($this->request->getPost('searchPhrase'), 'query');
|
||||
}
|
||||
if ($this->request->has('sort') && is_array($this->request->getPost("sort"))) {
|
||||
$tmp = array_keys($this->request->getPost("sort"));
|
||||
$sortBy = $tmp[0] . " ". $this->request->getPost("sort")[$tmp[0]] ;
|
||||
}
|
||||
|
||||
$response = (new Backend())->configdpRun('filter list states', [$searchPhrase, $itemsPerPage,
|
||||
($currentPage - 1) * $itemsPerPage, $ruleId]);
|
||||
($currentPage - 1) * $itemsPerPage, $ruleId, $sortBy]);
|
||||
$response = json_decode($response, true);
|
||||
if ($response != null) {
|
||||
foreach ($response['details'] as &$row) {
|
||||
|
||||
@ -40,11 +40,22 @@ if __name__ == '__main__':
|
||||
parser.add_argument('--label', help='label / rule id', default='')
|
||||
parser.add_argument('--limit', help='limit number of results', default='')
|
||||
parser.add_argument('--offset', help='offset results', default='')
|
||||
parser.add_argument('--sort_by', help='sort by (field asc|desc)', default='')
|
||||
inputargs = parser.parse_args()
|
||||
|
||||
result = {
|
||||
'details': query_states(rule_label=inputargs.label, filter_str=inputargs.filter)
|
||||
}
|
||||
# sort results
|
||||
if inputargs.sort_by.strip() != '':
|
||||
sort_key = inputargs.sort_by.split()[0]
|
||||
sort_desc = inputargs.sort_by.split()[-1] == 'desc'
|
||||
result['details'] = sorted(
|
||||
result['details'],
|
||||
key=lambda k: str(k[sort_key]).lower() if sort_key in k else '',
|
||||
reverse=sort_desc
|
||||
)
|
||||
|
||||
result['total_entries'] = len(result['details'])
|
||||
# apply offset and limit
|
||||
if inputargs.offset.isdigit():
|
||||
|
||||
@ -37,7 +37,7 @@ message:request content of pf %s table
|
||||
|
||||
[list.states]
|
||||
command:/usr/local/opnsense/scripts/filter/list_states.py
|
||||
parameters: --filter=%s --limit=%s --offset=%s --label=%s
|
||||
parameters: --filter=%s --limit=%s --offset=%s --label=%s --sort_by=%s
|
||||
type:script_output
|
||||
message:request pf states
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user