mirror of https://github.com/MISP/MISP
fix: [UI] Show active tab for over correlations
parent
2a594aa66e
commit
881e151ddc
|
@ -83,33 +83,38 @@ class CorrelationsController extends AppController
|
|||
'page' => 1,
|
||||
'order' => 'occurrence desc'
|
||||
];
|
||||
foreach (array_keys($query) as $custom_param) {
|
||||
if (isset($this->params['named'][$custom_param])) {
|
||||
$query[$custom_param] = $this->params['named'][$custom_param];
|
||||
}
|
||||
}
|
||||
if (isset($this->params['named']['scope'])) {
|
||||
$limit = $this->Correlation->OverCorrelatingValue->getLimit();
|
||||
if ($this->params['named']['scope'] === 'over_correlating') {
|
||||
$query['conditions'][] = ['occurrence >=' => $limit];
|
||||
} else if ($this->params['named']['scope'] === 'not_over_correlating') {
|
||||
$query['conditions'][] = ['occurrence <' => $limit];
|
||||
foreach ($query as $customParam => $foo) {
|
||||
if (isset($this->request->params['named'][$customParam])) {
|
||||
$query[$customParam] = $this->request->params['named'][$customParam];
|
||||
}
|
||||
}
|
||||
if (isset($this->request->params['named']['scope'])) {
|
||||
$limit = $this->Correlation->OverCorrelatingValue->getLimit();
|
||||
if ($this->request->params['named']['scope'] === 'over_correlating') {
|
||||
$scope = 'over_correlating';
|
||||
$query['conditions'][] = ['occurrence >=' => $limit];
|
||||
} else if ($this->request->params['named']['scope'] === 'not_over_correlating') {
|
||||
$query['conditions'][] = ['occurrence <' => $limit];
|
||||
$scope = 'not_over_correlating';
|
||||
}
|
||||
} else {
|
||||
$scope = 'all';
|
||||
}
|
||||
$data = $this->Correlation->OverCorrelatingValue->getOverCorrelations($query);
|
||||
$data = $this->Correlation->attachExclusionsToOverCorrelations($data);
|
||||
|
||||
if ($this->_isRest()) {
|
||||
return $this->RestResponse->viewData($data, 'json');
|
||||
} else {
|
||||
$this->__setPagingParams($query['page'], $query['limit'], count($data), 'named');
|
||||
$this->set('data', $data);
|
||||
$this->set('title_for_layout', __('Index of over correlating values'));
|
||||
$this->set('menuData', [
|
||||
'menuList' => 'correlationExclusions',
|
||||
'menuItem' => 'over'
|
||||
]);
|
||||
}
|
||||
|
||||
$this->__setPagingParams($query['page'], $query['limit'], count($data), 'named');
|
||||
$this->set('data', $data);
|
||||
$this->set('scope', $scope);
|
||||
$this->set('title_for_layout', __('Index of over correlating values'));
|
||||
$this->set('menuData', [
|
||||
'menuList' => 'correlationExclusions',
|
||||
'menuItem' => 'over'
|
||||
]);
|
||||
}
|
||||
|
||||
public function switchEngine(string $engine)
|
||||
|
@ -205,17 +210,15 @@ class CorrelationsController extends AppController
|
|||
{
|
||||
$this->loadModel('OverCorrelatingValue');
|
||||
$this->OverCorrelatingValue->generateOccurrencesRouter();
|
||||
$message = __('Job queued.');
|
||||
if (Configure::read('MISP.background_jobs')) {
|
||||
$message = __('Job queued.');
|
||||
} else {
|
||||
$message = __('Over-correlations counted successfully.');
|
||||
}
|
||||
if (!$this->_isRest()) {
|
||||
$this->Flash->info($message);
|
||||
$this->redirect(['controller' => 'correlations', 'action' => 'overCorrelations']);
|
||||
} else {
|
||||
if ($this->_isRest()) {
|
||||
return $this->RestResponse->saveSuccessResponse('Correlations', 'generateOccurrences', false, $this->response->type(), $message);
|
||||
}
|
||||
$this->Flash->info($message);
|
||||
$this->redirect(['controller' => 'correlations', 'action' => 'overCorrelations']);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,89 +1,92 @@
|
|||
<?php
|
||||
echo sprintf('<div%s>', empty($ajax) ? ' class="index"' : '');
|
||||
echo $this->element('genericElements/IndexTable/index_table', [
|
||||
'data' => [
|
||||
'light_paginator' => 1,
|
||||
'data' => $data,
|
||||
'top_bar' => [
|
||||
'children' => [
|
||||
[
|
||||
'children' => [
|
||||
[
|
||||
'type' => 'simple',
|
||||
'url' => $baseurl . '/correlations/overCorrelations',
|
||||
'text' => __('All')
|
||||
],
|
||||
[
|
||||
'type' => 'simple',
|
||||
'url' => $baseurl . '/correlations/overCorrelations/scope:over_correlating',
|
||||
'text' => __('Over-correlating')
|
||||
],
|
||||
[
|
||||
'type' => 'simple',
|
||||
'url' => $baseurl . '/correlations/overCorrelations/scope:not_over_correlating',
|
||||
'text' => __('Not over-correlating')
|
||||
],
|
||||
[
|
||||
'type' => 'simple',
|
||||
'url' => $baseurl . '/correlations/generateOccurrences',
|
||||
'text' => __('Regenerate occurrence counts')
|
||||
]
|
||||
echo sprintf('<div%s>', empty($ajax) ? ' class="index"' : '');
|
||||
echo $this->element('genericElements/IndexTable/index_table', [
|
||||
'data' => [
|
||||
'light_paginator' => 1,
|
||||
'data' => $data,
|
||||
'top_bar' => [
|
||||
'children' => [
|
||||
[
|
||||
'children' => [
|
||||
[
|
||||
'type' => 'simple',
|
||||
'url' => $baseurl . '/correlations/overCorrelations',
|
||||
'text' => __('All'),
|
||||
'active' => $scope === 'all',
|
||||
],
|
||||
[
|
||||
'type' => 'simple',
|
||||
'url' => $baseurl . '/correlations/overCorrelations/scope:over_correlating',
|
||||
'text' => __('Over-correlating'),
|
||||
'active' => $scope === 'over_correlating',
|
||||
],
|
||||
[
|
||||
'type' => 'simple',
|
||||
'url' => $baseurl . '/correlations/overCorrelations/scope:not_over_correlating',
|
||||
'text' => __('Not over-correlating'),
|
||||
'active' => $scope === 'not_over_correlating',
|
||||
],
|
||||
[
|
||||
'type' => 'simple',
|
||||
'url' => $baseurl . '/correlations/generateOccurrences',
|
||||
'text' => __('Regenerate occurrence counts')
|
||||
]
|
||||
]
|
||||
]
|
||||
],
|
||||
'fields' => [
|
||||
[
|
||||
'name' => 'Value',
|
||||
'element' => 'postlink',
|
||||
'data_path' => 'OverCorrelatingValue.value',
|
||||
'url' => '/attributes/search/results',
|
||||
'payload_paths' => [
|
||||
'value' => 'OverCorrelatingValue.value'
|
||||
]
|
||||
],
|
||||
[
|
||||
'name' => 'Occurrences',
|
||||
'data_path' => 'OverCorrelatingValue.occurrence',
|
||||
'class' => 'shortish'
|
||||
],
|
||||
[
|
||||
'name' => 'Blocked by Threshold',
|
||||
'data_path' => 'OverCorrelatingValue.over_correlation',
|
||||
'class' => 'shortish',
|
||||
'element' => 'boolean'
|
||||
],
|
||||
[
|
||||
'name' => 'Excluded by Exclusion List',
|
||||
'data_path' => 'OverCorrelatingValue.excluded',
|
||||
'class' => 'shortish',
|
||||
'element' => 'boolean'
|
||||
]
|
||||
],
|
||||
'fields' => [
|
||||
[
|
||||
'name' => 'Value',
|
||||
'element' => 'postlink',
|
||||
'data_path' => 'OverCorrelatingValue.value',
|
||||
'url' => '/attributes/search/results',
|
||||
'payload_paths' => [
|
||||
'value' => 'OverCorrelatingValue.value'
|
||||
]
|
||||
],
|
||||
'title' => empty($ajax) ? $title_for_layout : false,
|
||||
'description' => empty($ajax) ? __('The values with the most correlation entries.') : false,
|
||||
'pull' => 'right',
|
||||
'actions' => [
|
||||
[
|
||||
'onclick' => sprintf(
|
||||
'openGenericModal(\'%s/correlation_exclusions/add/redirect_controller:correlations/redirect:top/value:[onclick_params_data_path]\');',
|
||||
$baseurl
|
||||
),
|
||||
'onclick_params_data_path' => 'OverCorrelatingValue.value',
|
||||
'icon' => 'trash',
|
||||
'title' => __('Add exclusion entry for value'),
|
||||
'complex_requirement' => [
|
||||
'function' => function (array $row) {
|
||||
return !$row['OverCorrelatingValue']['excluded'];
|
||||
}
|
||||
]
|
||||
[
|
||||
'name' => 'Occurrences',
|
||||
'data_path' => 'OverCorrelatingValue.occurrence',
|
||||
'class' => 'shortish'
|
||||
],
|
||||
[
|
||||
'name' => 'Blocked by Threshold',
|
||||
'data_path' => 'OverCorrelatingValue.over_correlation',
|
||||
'class' => 'shortish',
|
||||
'element' => 'boolean'
|
||||
],
|
||||
[
|
||||
'name' => 'Excluded by Exclusion List',
|
||||
'data_path' => 'OverCorrelatingValue.excluded',
|
||||
'class' => 'shortish',
|
||||
'element' => 'boolean'
|
||||
]
|
||||
],
|
||||
'title' => empty($ajax) ? $title_for_layout : false,
|
||||
'description' => empty($ajax) ? __('The values with the most correlation entries.') : false,
|
||||
'pull' => 'right',
|
||||
'actions' => [
|
||||
[
|
||||
'onclick' => sprintf(
|
||||
'openGenericModal(\'%s/correlation_exclusions/add/redirect_controller:correlations/redirect:top/value:[onclick_params_data_path]\');',
|
||||
$baseurl
|
||||
),
|
||||
'onclick_params_data_path' => 'OverCorrelatingValue.value',
|
||||
'icon' => 'trash',
|
||||
'title' => __('Add exclusion entry for value'),
|
||||
'complex_requirement' => [
|
||||
'function' => function (array $row) {
|
||||
return !$row['OverCorrelatingValue']['excluded'];
|
||||
}
|
||||
]
|
||||
]
|
||||
]
|
||||
]);
|
||||
echo '</div>';
|
||||
if (empty($ajax)) {
|
||||
echo $this->element('/genericElements/SideMenu/side_menu', $menuData);
|
||||
}
|
||||
]
|
||||
]);
|
||||
echo '</div>';
|
||||
if (empty($ajax)) {
|
||||
echo $this->element('/genericElements/SideMenu/side_menu', $menuData);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue