UI modifications for visualizations and more (#1293)

* Design fixes

* Place of column gear

* Columns and formatted

* Overview files vis

* Expand files

* Expandible file in fim

* Resizable table columns

* Expandible vis with double click

* Top 10 rule groups

* Change Top 5 rules

* Top 10 Agent alerts

* Width of columns on tables

* Add missing class

* No show some fields in windows files tables
This commit is contained in:
Juanka Rodríguez 2019-03-11 16:40:16 +01:00 committed by Jesús Ángel
parent 0d1dd9b64f
commit 320a4bc36f
50 changed files with 1091 additions and 453 deletions

View File

@ -1,3 +1,4 @@
node_modules/
public/utils/codemirror/
public/kibana-integrations/
public/utils/table-col-resizable.js

View File

@ -168,6 +168,8 @@ import './utils/fontawesome/css/font-awesome.min.css';
// Dev tools
import './utils/codemirror';
import './utils/table-col-resizable'
// Material
import 'angular-material/angular-material.css';
import 'angular-aria/angular-aria';

View File

@ -420,6 +420,7 @@ export class DevToolsController {
const evtDocument = this.$document[0];
$('.wz-dev-column-separator').mousedown(function (e) {
e.preventDefault();
$('.wz-dev-column-separator').addClass('active');
const leftOrigWidth = $('#wz-dev-left-column').width();
const rightOrigWidth = $('#wz-dev-right-column').width();
$(evtDocument).mousemove(function (e) {
@ -431,6 +432,7 @@ export class DevToolsController {
});
$(evtDocument).mouseup(function () {
$('.wz-dev-column-separator').removeClass('active');
$(evtDocument).unbind('mousemove');
});

View File

@ -206,7 +206,7 @@ export class CdbListsController {
);
const currentApi = JSON.parse(this.appState.getCurrentAPI()).id;
const output = await this.csvReq.fetch(
'/cdblists',
'/lists',
currentApi,
this.wzTableFilter.get()
);

View File

@ -69,7 +69,7 @@
<div layout="row">
<md-button class="cancelBtn" type="button" ng-click="cancelRemoveEntry()"><i
aria-hidden='true' class='fa fa-fw fa-close'></i> Cancel</md-button>
<md-button class="agreeBtn" type="button" ng-click="confirmRemoveEntry(item[0])"><i
<md-button class="agreeBtn wz-button" type="button" ng-click="confirmRemoveEntry(item[0])"><i
aria-hidden='true' class='fa fa-fw fa-check'></i> Confirm</md-button>
</div>
</div>

View File

@ -59,6 +59,7 @@ app.directive('wzTable', function () {
$scope.showColumns = false;
$scope.originalkeys = $scope.keys.map((key, idx) => ({ key, idx }));
$scope.updateColumns = key => {
$("#wz_table").colResizable({ disable: true });
const str = key.key.value || key.key;
const cleanArray = $scope.keys.map(item => item.value || item);
if (cleanArray.includes(str)) {
@ -76,6 +77,8 @@ app.directive('wzTable', function () {
$scope.keys.push(key.key);
}
}
init()
.then(() => ($scope.setColResizable()))
};
$scope.exists = key => {
const str = key.key.value || key.key;
@ -116,7 +119,10 @@ app.directive('wzTable', function () {
$scope.rowsPerPage = calcTableRows($window.innerHeight, rowSizes);
$scope.itemsPerPage = $scope.rowsPerPage;
init()
.then(() => (resizing = false))
.then(() => {
resizing = false;
if ($scope.customColumns) { $scope.setColResizable() }
})
.catch(() => (resizing = false));
}, 150);
};
@ -244,8 +250,8 @@ app.directive('wzTable', function () {
/**
* On controller loads
*/
const init = async () =>
initTable(
const init = async () => {
await initTable(
$scope,
fetch,
wzTableFilter,
@ -255,7 +261,12 @@ app.directive('wzTable', function () {
globalState,
$window
);
if ($scope.customColumns) {
setTimeout(() => {
$scope.setColResizable()
}, 100);
}
}
/**
* Pagination variables and functions
*/
@ -432,7 +443,18 @@ app.directive('wzTable', function () {
);
};
$scope.expandPolicyMonitoringCheck = item => {
$scope.isSyscheck = () => {
return (
instance.path.includes('/syscheck')
);
};
$scope.isWindows = () => {
var agent = $scope.$parent.$parent.$parent.$parent.agent;
return (agent.os || {}).platform === "windows"
};
$scope.expandTableRow = item => {
if (item.expanded) item.expanded = false;
else {
$scope.pagedItems[$scope.currentPage].map(
@ -455,6 +477,11 @@ app.directive('wzTable', function () {
}
$c.remove();
};
$scope.setColResizable = () => {
$("#wz_table").colResizable({ liveDrag: true, minWidth: 75, partialRefresh: true, draggingClass: false });
$scope.$applyAsync();
}
},
template
};

View File

@ -4,22 +4,23 @@
</div>
</div>
<div ng-if="customColumns" layout="row" ng-show="!error && !wazuh_table_loading && items.length" class="columns-bar"
ng-class="{'columns-bar-active': showColumns}">
ng-class="{'columns-bar-active': showColumns}" ng-style="!showColumns && {'margin-bottom': '-35px'}">
<div ng-if="showColumns" class="euiCheckbox wz-margin-right-8" ng-repeat="key in originalkeys" ng-click="updateColumns(key)">
<input class="euiCheckbox__input" type="checkbox" aria-label="Select all rows" ng-checked="exists(key)">
<div class="euiCheckbox__square"></div>
<span class="euiCheckbox__label">{{ keyEquivalence[key.key.value || key.key] }}</span>
</div>
<span flex></span>
<span class="wz-text-link" style="line-height: 24px;" ng-click="showColumns = !showColumns" tooltip="Columns"><i
<span class="wz-text-link font-size-18" style="line-height: 24px;" ng-click="showColumns = !showColumns" tooltip="Columns"><i
class="fa fa-fw fa-gear"></i></span>
</div>
<div layout="row" ng-show="!error && !wazuh_table_loading && items.length" ng-if="!isPolicyMonitoring()">
<table class="table table-striped table-condensed table-hover" style="table-layout: fixed !important" id="wz_table">
<div ng-show="!error && !wazuh_table_loading && items.length" ng-if="!isPolicyMonitoring() && !isSyscheck()">
<table class="table table-striped table-condensed table-hover no-margin-bottom" ng-class="customColumns ? 'table-resizable' : ''"
style="table-layout: fixed !important" id="wz_table">
<thead class="wz-text-bold">
<th ng-repeat="key in keys" class="wz-text-left" ng-class="{ 'cursor-pointer' : !key.nosortable, 'col-lg-1' : !key.size, 'col-lg-{{key.size}}' : key.size }"
ng-click="!key.nosortable && sort(key)" ng-style="(path === '/agents' && key === 'id') && {'width':'65px'}">
<th ng-repeat="key in keys" class="wz-text-left" ng-class="{ 'cursor-pointer' : !key.nosortable}" ng-click="!key.nosortable && sort(key)"
ng-style="key.width && {'width':key.width}">
{{ path === '/agents/groups' && (key.value || key) === 'count' ? 'Agents' : keyEquivalence[key.value ||
key] || key.value || key }}
<i ng-if="!key.nosortable" class="fa wz-theader-sort-icon" ng-class="sortValue === (key.value || key) ? (sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
@ -64,7 +65,7 @@
<div layout="row">
<md-button class="cancelBtn" type="button" ng-click="cancelRemoveGroup()"><i aria-hidden='true'
class='fa fa-fw fa-close'></i> Cancel</md-button>
<md-button class="agreeBtn" type="button" ng-click="confirmRemoveGroup(item.name)"><i
<md-button class="agreeBtn wz-button" type="button" ng-click="confirmRemoveGroup(item.name)"><i
aria-hidden='true' class='fa fa-fw fa-check'></i> Confirm</md-button>
</div>
</div>
@ -82,7 +83,7 @@
<div layout="row">
<md-button class="cancelBtn" type="button" ng-click="cancelRemoveAgent()"><i aria-hidden='true'
class='fa fa-fw fa-close'></i> Cancel</md-button>
<md-button class="agreeBtn" type="button" ng-click="confirmRemoveAgent(item.id)"><i
<md-button class="agreeBtn wz-button" type="button" ng-click="confirmRemoveAgent(item.id)"><i
aria-hidden='true' class='fa fa-fw fa-check'></i> Confirm</md-button>
</div>
</div>
@ -105,7 +106,7 @@
<div layout="row">
<md-button class="cancelBtn" type="button" ng-click="cancelRemoveFile()"><i aria-hidden='true'
class='fa fa-fw fa-close'></i> Cancel</md-button>
<md-button class="agreeBtn" type="button" ng-click="confirmRemoveFile(item, path)"><i
<md-button class="agreeBtn wz-button" type="button" ng-click="confirmRemoveFile(item, path)"><i
aria-hidden='true' class='fa fa-fw fa-check'></i> Confirm</md-button>
</div>
</div>
@ -138,11 +139,11 @@
</table>
</div>
<div layout="row" ng-show="!error && !wazuh_table_loading && items.length" ng-if="isPolicyMonitoring()">
<table class="table table-striped table-striped-duo table-condensed table-hover" style="table-layout: fixed !important"
id="wz_table">
<div ng-show="!error && !wazuh_table_loading && items.length" ng-if="isPolicyMonitoring()">
<table class="table table-striped table-striped-duo table-condensed table-hover no-margin-bottom" ng-class="customColumns ? 'table-resizable' : ''"
style="table-layout: fixed !important" id="wz_table">
<thead class="wz-text-bold">
<th ng-repeat="key in keys" class="wz-text-left" ng-class="{ 'cursor-pointer' : !key.nosortable, 'col-lg-1' : !key.size, 'col-lg-{{key.size}}' : key.size }"
<th ng-repeat="key in keys" class="wz-text-left" ng-class="{ 'cursor-pointer' : !key.nosortable }" ng-style="key.width && {'width':key.width}"
ng-click="!key.nosortable && sort(key)">
{{ keyEquivalence[key.value || key] || key.value || key }}
<i ng-if="!key.nosortable" class="fa wz-theader-sort-icon" ng-class="sortValue === (key.value || key) ? (sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
@ -151,7 +152,7 @@
</thead>
<tbody>
<tr class="wz-word-wrap cursor-pointer" ng-repeat-start="item in pagedItems[currentPage] | filter:{item:'!'}"
ng-click="expandPolicyMonitoringCheck(item)" ng-class="{'selected': item.expanded}">
ng-click="expandTableRow(item)" ng-class="{'selected': item.expanded}">
<td ng-repeat="key in keys" id="td-{{$parent.$index}}-{{$index}}" ng-mouseover="showTooltip($parent.$index, $index, item)">
<div class="wz-text-truncatable">
<span>
@ -170,7 +171,7 @@
</td>
</tr>
<tr ng-if="item.rationale || item.remediation || item.directory || (item.compliance && item.compliance.length)"
class="wz-word-wrap cursor-pointer selected" ng-show="item.expanded" ng-repeat-end="" ng-click="expandPolicyMonitoringCheck(item)">
class="wz-word-wrap cursor-pointer selected" ng-show="item.expanded" ng-repeat-end="" ng-click="expandTableRow(item)">
<td colspan="3" style="border-top: none">
<div layout="row" layout-padding="" class="layout-padding layout-row">
<md-card flex="" class="wz-md-card wz-padding-top-0 wz-padding-bottom-0 wz-no-margin _md flex">
@ -245,6 +246,84 @@
</table>
</div>
<div ng-show="!error && !wazuh_table_loading && items.length" ng-if="isSyscheck()">
<table class="table table-striped table-striped-duo table-condensed table-hover no-margin-bottom" ng-class="customColumns ? 'table-resizable' : ''"
style="table-layout: fixed !important" id="wz_table">
<thead class="wz-text-bold">
<th ng-repeat="key in keys" class="wz-text-left" ng-class="{ 'cursor-pointer' : !key.nosortable }" ng-style="key.width && {'width':key.width}"
ng-click="!key.nosortable && sort(key)">
{{ keyEquivalence[key.value || key] || key.value || key }}
<i ng-if="!key.nosortable" class="fa wz-theader-sort-icon" ng-class="sortValue === (key.value || key) ? (sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
aria-hidden="true"></i>
</th>
</thead>
<tbody>
<tr class="wz-word-wrap cursor-pointer" ng-repeat-start="item in pagedItems[currentPage] | filter:{item:'!'}"
ng-click="expandTableRow(item)" ng-class="{'selected': item.expanded}">
<td ng-repeat="key in keys" id="td-{{$parent.$index}}-{{$index}}" ng-mouseover="showTooltip($parent.$index, $index, item)">
<div class="wz-text-truncatable">
<span>
{{
parseValue(key,item)
}}
</span>
<md-tooltip ng-show="item.showTooltip[$index]" md-direction="bottom" class="wz-tooltip">
{{ parseValue(key,item) }}
</md-tooltip>
</div>
</td>
</tr>
<tr class="wz-word-wrap cursor-pointer selected" ng-show="item.expanded" ng-repeat-end="" ng-click="expandTableRow(item)">
<td colspan="{{keys.length}}" style="border-top: none">
<div layout="row" layout-padding="" class="layout-padding layout-row" ng-if="item.expanded">
<md-card flex="" class="wz-md-card wz-padding-top-0 wz-padding-bottom-0 wz-no-margin _md flex">
<md-card-content>
<div layout="row" class="wz-padding-top-10">
<table class="table table-striped table-condensed">
<tbody>
<tr ng-repeat="(key, value) in item" ng-if="key !== 'expanded' && key !== 'showTooltip'"
ng-show="!isWindows() || (key !== 'inode' && key !== 'gid' && key !== 'gname')"
class="no-duo">
<td class="wz-word-break-rule">{{key}}</td>
<td>
<span class="wz-text-right color-grey">{{value}}</span>
</td>
</tr>
</tbody>
</table>
</div>
</md-card-content>
</md-card>
</div>
</td>
</tr>
</tbody>
<tfoot>
<td colspan="{{keys.length}}">
<span ng-show="!wazuh_table_loading" class="color-grey">{{ totalItems }} items ({{time | number: 2}}
seconds)</span>
<div ng-show="items.length >= itemsPerPage" class="pagination pull-right" style="margin:0 !important">
<ul layout="row">
<li ng-show="currentPage" class="md-padding">
<a href ng-click="prevPage()">« Prev</a>
</li>
<li ng-repeat="n in range(pagedItems.length, currentPage, currentPage + gap) " ng-class="{'wz-text-active': n == currentPage}"
ng-click="setPage()" class="md-padding">
<a href ng-bind="n + 1">1</a>
</li>
<li ng-show="currentPage < pagedItems.length - 1" class="md-padding">
<a href ng-click="nextPage()">Next »</a>
</li>
</ul>
</div>
</td>
</tfoot>
</table>
</div>
<div layout="row" ng-if="!error && !wazuh_table_loading && !totalItems">
<div flex class="euiCallOut euiCallOut--warning">
<div class="euiCallOutHeader">

View File

@ -235,7 +235,11 @@ margin-top: 8px;
.wz-button {
color: white !important;
transition: none !important;
background-color: rgb(0, 85, 113) !important;
//background-color: rgb(0, 85, 113) !important;
background-color: #0079a5 !important;
min-width: 115px!important;
border-radius: 4px!important;
height: 40px;
}
.wz-button-flat {
@ -247,8 +251,10 @@ margin-top: 8px;
.wz-button.active,
.wz-button:not([disabled]):hover,
.wz-button-flat:not([disabled]):hover {
background-color: rgb(0, 121, 165) !important;
background-color: #005571 !important;
color: white !important;
text-decoration: underline;
box-shadow: 0 3px 1px rgba(0, 0, 0, 0.05);
}
.wz-back-btn-absolute{
@ -495,7 +501,7 @@ md-sidenav {
}
.wz-dev-column-separator{
width: 14px;
width: 12px;
margin-top: 25px;
background: #dddddd;
float: left;
@ -509,6 +515,11 @@ md-sidenav {
background-color: #cce4ed;
}
.wz-dev-column-separator:focus, .wz-dev-column-separator.active {
background-color: #0079a5;
color: #FFF;
}
.wz-dev-column-separator span {
height: calc(~'100vh - 110px');
display: table-cell;
@ -531,6 +542,10 @@ md-sidenav {
height: calc(~'100vh - 85px');
}
.wz-dev-box .CodeMirror{
border: 1px solid #ddd!important;
}
/* Card and select input shadow overriding */
.wz-md-card:not(.wz-metric-color) {
@ -540,7 +555,7 @@ md-sidenav {
}
.wz-card-actions {
margin: 0 !important;
margin: 15px 0 0 0;
padding: 0 10px !important;
border-top: 1px solid #dfeff8 !important;
background-color: #ecf6fb;
@ -550,6 +565,7 @@ md-sidenav {
border-bottom: 1px solid #dfeff8;
padding: 5px 10px!important;
min-height: 42px;
margin: 0!important;
}
md-switch.md-default-theme .md-thumb, md-switch .md-thumb {
border: 1px solid #d3dae6;
@ -722,6 +738,10 @@ md-switch.md-default-theme.md-checked .md-thumb, md-switch.md-checked .md-thumb
padding-bottom: 14px;
}
.wz-padding-bottom-30 {
padding-bottom: 30px;
}
.addGroupInput {
height: 40px !important;
max-width: 181px !important;
@ -738,8 +758,6 @@ md-switch.md-default-theme.md-checked .md-thumb, md-switch.md-checked .md-thumb
height: 25px !important;
line-height: inherit !important;
color: #ffffff !important;
background-color: #006BB4 !important;
border-color: #006BB4 !important;
}
.cancelBtn {
@ -749,6 +767,7 @@ md-switch.md-default-theme.md-checked .md-thumb, md-switch.md-checked .md-thumb
min-height: 0px !important;
height: 25px !important;
line-height: inherit !important;
border-radius: 4px!important;
}
.agents-prev-btn {
@ -834,13 +853,17 @@ wz-xml-file-editor {
background: #ecf6fb!important;
}
.table-striped-duo tbody tr:nth-child(2n+1):not(:hover), .table-striped-duo tbody tr:nth-child(2n+2):not(:hover) {
.table-striped-duo>tbody tr:not(.no-duo):nth-child(2n+1):not(:hover), .table-striped-duo>tbody tr:not(.no-duo):nth-child(2n+2):not(:hover) {
background: #f9f9f9;
}
.table-striped-duo tbody tr:nth-child(4n+1):not(:hover), .table-striped-duo tbody tr:nth-child(4n+2):not(:hover) {
.table-striped-duo>tbody tr:not(.no-duo):nth-child(4n+1):not(:hover), .table-striped-duo>tbody tr:not(.no-duo):nth-child(4n+2):not(:hover) {
background: #fff;
}
.table-resizable>thead th:not(:first-child){
border-left: 1px dashed #dfeff8;
}
.daemons-card {
padding: 16px 5px !important;
}

View File

@ -48,6 +48,10 @@ html, body, button:not(.fa):not(.fa-times), textarea, input, select, .wz-chip {
line-height: 20px !important;
}
.wz-line-height-40 {
line-height: 40px !important;
}
.wz-text-center {
text-align: center;
}

View File

@ -2819,6 +2819,9 @@
background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1408 704q0 26-19 45l-448 448q-19 19-45 19t-45-19l-448-448q-19-19-19-45t19-45 45-19h896q26 0 45 19t19 45z" fill="#CECECE"/></svg>');
/* 1 */ }
.kuiLocalSearchButton:hover {
background-color: #005571 !important;
}
/**
* 1. Override inherited styles.
*/
@ -2829,7 +2832,7 @@
line-height: 0;
/* 1 */
color: #ffffff;
background-color: #00445a;
background-color: #0079a5 !important;
border: 0;
border-radius: 0 4px 4px 0; }
.kuiLocalSearchButton:focus {

View File

@ -58,18 +58,14 @@
<div layout="row">
<md-card flex class="wz-md-card _md flex md-margin-h">
<md-card-content>
<wz-table custom-columns="true" flex path="'/agents'" keys="['id','name','ip','status','group','os.name','os.version','version', 'dateAdd', 'lastKeepAlive']"
allow-click="true" row-sizes="[17,15,13]">
<md-card-content class="wz-padding-bottom-30">
<wz-table custom-columns="true" flex path="'/agents'" keys="[{value: 'id', width: '75px'},'name','ip','status','group','os.name','os.version','version', 'dateAdd', 'lastKeepAlive']"
allow-click="true" row-sizes="[17,15,13]"></wz-table>
</md-card-content>
<md-card-actions layout="row" layout-align="end center" class="wz-card-actions layout-align-end-center layout-row">
<a class="wz-text-link cursor-pointer small md-button md-ink-ripple" id="btnDownload" ng-click="ctrl.downloadCsv()">Formatted
<i aria-hidden="true" class="fa fa-download"></i></a>
</md-card-actions>
</md-card>
</wz-table>
</div>
<div layout="row" class="wz-margin-top-10 md-padding-h">
<span flex></span>
<a class="small" id="btnDownload" ng-click="ctrl.downloadCsv()">Formatted
<i aria-hidden="true" class="fa fa-download"></i>
</a>
</div>
</div>

View File

@ -25,7 +25,7 @@
<div layout="row" layout-align="center stretch" class="height-230">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -36,7 +36,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Directories</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -47,7 +47,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Files</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -61,7 +61,7 @@
<div layout="row" layout-align="center stretch" class="height-230">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">Alerts over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -76,7 +76,7 @@
<div flex="20" layout="column" layout-align="center stretch">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(4)">
<span class="wz-headline-title">File read access</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -88,7 +88,7 @@
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(5)">
<span class="wz-headline-title">File write access</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(5)"><i class="fa fa-fw fa-expand"></i></span>
@ -102,7 +102,7 @@
<div flex="60" layout="column" layout-align="center stretch">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(6)">
<span class="wz-headline-title">Commands</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(6)"><i class="fa fa-fw fa-expand"></i></span>
@ -116,7 +116,7 @@
<div flex="20" layout="column" layout-align="center stretch">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[7]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(7)">
<span class="wz-headline-title">Created files</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(7)"><i class="fa fa-fw fa-expand"></i></span>
@ -127,7 +127,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[8]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(8)">
<span class="wz-headline-title">Removed files</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(8)"><i class="fa fa-fw fa-expand"></i></span>
@ -142,7 +142,7 @@
<div layout="row" layout-align="center stretch" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[9]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(9)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(9)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -44,7 +44,7 @@
<div layout="row" layout-align="start stretch" class="height-320">
<md-card flex="60" class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Top 5 CIS-CAT groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -55,7 +55,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Scan result evolution</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -71,7 +71,7 @@
<div layout="row" layout-align="start stretch" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -1,19 +1,19 @@
<md-content flex layout="column" ng-if="tab === 'fim' && tabView === 'panels'" ng-show="!showSyscheckFiles"
ng-class="{'no-opacity': resultState !== 'ready' || !rendered}" layout-align="start">
<md-content flex layout="column" ng-if="tab === 'fim' && tabView === 'panels'" ng-show="!showSyscheckFiles" ng-class="{'no-opacity': resultState !== 'ready' || !rendered}"
layout-align="start">
<div layout="row">
<span flex></span>
<md-button ng-click="launchSyscheckScan()" class="wz-button pull-right"><i class="fa fa-fw fa-play"></i> Run
scan</md-button>
<span></span>
<md-button ng-click="switchSyscheckFiles()" class="wz-button pull-right"><i class="fa fa-fw fa-database"></i>
Show state</md-button>
Show files</md-button>
</div>
<!-- View: Panels -->
<div layout="row" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Most active users</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -24,7 +24,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Actions</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -36,7 +36,7 @@
<md-card flex="40" class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Events</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -51,7 +51,7 @@
<div layout="row" class="height-230">
<md-card flex="33" class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">Files added</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -62,7 +62,7 @@
</md-card>
<md-card flex="33" class="wz-md-card" ng-class="{'fullscreen': expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(4)">
<span class="wz-headline-title">Files modified</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -74,7 +74,7 @@
</md-card>
<md-card flex="33" class="wz-md-card" ng-class="{'fullscreen': expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(5)">
<span class="wz-headline-title">Files deleted</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(5)"><i class="fa fa-fw fa-expand"></i></span>
@ -89,7 +89,7 @@
<div layout="row" layout-align="space-between stretch" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(6)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(6)"><i class="fa fa-fw fa-expand"></i></span>
@ -101,8 +101,7 @@
</div>
</md-content>
<md-content flex layout="column" ng-if="tab === 'fim' && tabView === 'panels' && showSyscheckFiles"
layout-align="start">
<md-content flex layout="column" ng-if="tab === 'fim' && tabView === 'panels' && showSyscheckFiles" layout-align="start">
<div layout="row">
<span flex></span>
<md-button ng-click="launchSyscheckScan()" class="wz-button pull-right"><i class="fa fa-fw fa-play"></i>
@ -112,16 +111,13 @@
Show alerts</md-button>
</div>
<div layout="row" class="wz-margin-top-10 wz-margin-right-8 wz-margin-left-8"
ng-if="showSyscheckFiles && (!agent || !agent.os)">
<div layout="row" class="wz-margin-top-10 wz-margin-right-8 wz-margin-left-8" ng-if="showSyscheckFiles && (!agent || !agent.os)">
<div flex class="euiCallOut euiCallOut--warning">
<div class="euiCallOutHeader">
<svg class="euiIcon euiIcon--medium euiCallOutHeader__icon" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"
viewBox="0 0 16 16">
<svg class="euiIcon euiIcon--medium euiCallOutHeader__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
<defs>
<path id="help-a"
d="M13.6 12.186l-1.357-1.358c-.025-.025-.058-.034-.084-.056.53-.794.84-1.746.84-2.773a4.977 4.977 0 0 0-.84-2.772c.026-.02.059-.03.084-.056L13.6 3.813a6.96 6.96 0 0 1 0 8.373zM8 15A6.956 6.956 0 0 1 3.814 13.6l1.358-1.358c.025-.025.034-.057.055-.084C6.02 12.688 6.974 13 8 13a4.978 4.978 0 0 0 2.773-.84c.02.026.03.058.056.083l1.357 1.358A6.956 6.956 0 0 1 8 15zm-5.601-2.813a6.963 6.963 0 0 1 0-8.373l1.359 1.358c.024.025.057.035.084.056A4.97 4.97 0 0 0 3 8c0 1.027.31 1.98.842 2.773-.027.022-.06.031-.084.056l-1.36 1.358zm5.6-.187A4 4 0 1 1 8 4a4 4 0 0 1 0 8zM8 1c1.573 0 3.019.525 4.187 1.4l-1.357 1.358c-.025.025-.035.057-.056.084A4.979 4.979 0 0 0 8 3a4.979 4.979 0 0 0-2.773.842c-.021-.027-.03-.059-.055-.084L3.814 2.4A6.957 6.957 0 0 1 8 1zm0-1a8.001 8.001 0 1 0 .003 16.002A8.001 8.001 0 0 0 8 0z">
<path id="help-a" d="M13.6 12.186l-1.357-1.358c-.025-.025-.058-.034-.084-.056.53-.794.84-1.746.84-2.773a4.977 4.977 0 0 0-.84-2.772c.026-.02.059-.03.084-.056L13.6 3.813a6.96 6.96 0 0 1 0 8.373zM8 15A6.956 6.956 0 0 1 3.814 13.6l1.358-1.358c.025-.025.034-.057.055-.084C6.02 12.688 6.974 13 8 13a4.978 4.978 0 0 0 2.773-.84c.02.026.03.058.056.083l1.357 1.358A6.956 6.956 0 0 1 8 15zm-5.601-2.813a6.963 6.963 0 0 1 0-8.373l1.359 1.358c.024.025.057.035.084.056A4.97 4.97 0 0 0 3 8c0 1.027.31 1.98.842 2.773-.027.022-.06.031-.084.056l-1.36 1.358zm5.6-.187A4 4 0 1 1 8 4a4 4 0 0 1 0 8zM8 1c1.573 0 3.019.525 4.187 1.4l-1.357 1.358c-.025.025-.035.057-.056.084A4.979 4.979 0 0 0 8 3a4.979 4.979 0 0 0-2.773.842c-.021-.027-.03-.059-.055-.084L3.814 2.4A6.957 6.957 0 0 1 8 1zm0-1a8.001 8.001 0 1 0 .003 16.002A8.001 8.001 0 0 0 8 0z">
</path>
</defs>
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#help-a" fill-rule="evenodd"></use>
@ -133,91 +129,76 @@
<div layout="row" class="wz-padding-top-0" ng-if="agent && agent.os && agent.os.platform === 'windows'">
<md-card flex="" class="wz-md-card _md flex">
<md-card-content>
<md-card-content class="wz-padding-bottom-30">
<span class="wz-headline-title"><i class="fa fa-fw fa-windows"></i> Windows registry</span>
<md-divider class="wz-margin-top-10"></md-divider>
<div layout="row" class="wz-margin-top-10">
<input placeholder="Filter registry..." ng-model="registrySearch" type="text"
class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid height-30"
aria-invalid="false"
wz-enter="searchSyscheckFile(registrySearch,{name:'type',value:'registry'})">
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-30"
ng-click="searchSyscheckFile(registrySearch,{name:'type',value:'registry'})">
<input placeholder="Filter registry..." ng-model="registrySearch" type="text" class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid height-30"
aria-invalid="false" wz-enter="searchSyscheckFile(registrySearch,{name:'type',value:'registry'})">
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-30" ng-click="searchSyscheckFile(registrySearch,{name:'type',value:'registry'})">
<span class="fa fa-search" aria-hidden="true"></span>
</button>
</div>
<div layout="row" ng-if="agent && !load" class="wz-margin-top-10 wz-margin-bottom-40-inv">
<wz-table flex path="'/syscheck/' + agent.id" implicit-filter="[{name:'type',value:'registry'}]"
row-sizes="[6,6,6]" extra-limit="100" keys="['file','sha1','md5']">
row-sizes="[6,6,6]" extra-limit="100" keys="['file']">
</wz-table>
</div>
<div layout="row" layout-padding>
<span flex></span>
<a class="small" id="btnDownload"
ng-click="downloadCsv('/syscheck/' + agent.id, 'fim-registry.csv', [{name:'type',value:'registry'}])">Formatted
<i aria-hidden="true" class="fa fa-fw fa-download"></i></a>
</div>
</md-card-content>
<md-card-actions layout="row" layout-align="end center" class="wz-card-actions layout-align-end-center layout-row">
<a class="wz-text-link cursor-pointer small md-button md-ink-ripple" id="btnDownload" ng-click="downloadCsv('/syscheck/' + agent.id, 'fim-registry.csv', [{name:'type',value:'registry'}])">Formatted
<i aria-hidden="true" class="fa fa-download"></i></a>
</md-card-actions>
</md-card>
</div>
<div layout="row" class="wz-padding-top-0" ng-if="agent && agent.os && agent.os.platform === 'windows'">
<md-card flex="" class="wz-md-card _md flex">
<md-card-content>
<md-card-content class="wz-padding-bottom-30">
<span class="wz-headline-title"><i class="fa fa-fw fa-file-o"></i> Files</span>
<md-divider class="wz-margin-top-10"></md-divider>
<div layout="row" class="wz-margin-top-10">
<input placeholder="Filter files..." ng-model="filesSearch" type="text"
class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid height-30"
<input placeholder="Filter files..." ng-model="filesSearch" type="text" class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid height-30"
aria-invalid="false" wz-enter="searchSyscheckFile(filesSearch,{name:'type',value:'file'})">
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-30"
ng-click="searchSyscheckFile(filesSearch,{name:'type',value:'file'})">
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-30" ng-click="searchSyscheckFile(filesSearch,{name:'type',value:'file'})">
<span class="fa fa-search" aria-hidden="true"></span>
</button>
</div>
<div layout="row" ng-if="agent && !load" class="wz-margin-top-10 wz-margin-bottom-40-inv">
<wz-table flex path="'/syscheck/' + agent.id" implicit-filter="[{name:'type',value:'file'}]"
row-sizes="[6,6,6]" extra-limit="100"
keys="['file','size','uname','perm','sha1','sha256','uid','mtime','md5']">
row-sizes="[6,6,6]" extra-limit="100" keys="['file',{value: 'size', width: '100px'},'uname','perm','sha256',{value: 'uid', width: '100px'},'mtime']">
</wz-table>
</div>
<div layout="row" layout-padding>
<span flex></span>
<a class="small" id="btnDownload"
ng-click="downloadCsv('/syscheck/' + agent.id, 'fim-files.csv', [{name:'type',value:'file'}])">Formatted
<i aria-hidden="true" class="fa fa-fw fa-download"></i></a>
</div>
</md-card-content>
<md-card-actions layout="row" layout-align="end center" class="wz-card-actions layout-align-end-center layout-row">
<a class="wz-text-link cursor-pointer small md-button md-ink-ripple" id="btnDownload" ng-click="downloadCsv('/syscheck/' + agent.id, 'fim-files.csv', [{name:'type',value:'file'}])">Formatted
<i aria-hidden="true" class="fa fa-download"></i></a>
</md-card-actions>
</md-card>
</div>
<div layout="row" class="wz-padding-top-0" ng-if="agent && agent.os && agent.os.platform !== 'windows'">
<md-card flex="" class="wz-md-card _md flex">
<md-card-content>
<md-card-content class="wz-padding-bottom-30">
<span class="wz-headline-title"><i class="fa fa-fw fa-file-o"></i> Files</span>
<md-divider class="wz-margin-top-10"></md-divider>
<div layout="row" class="wz-margin-top-10 wz-margin-bottom-25">
<input placeholder="Filter files..." ng-model="filesSearch" type="text"
class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid height-30"
<input placeholder="Filter files..." ng-model="filesSearch" type="text" class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid height-30"
aria-invalid="false" wz-enter="searchSyscheckFile(filesSearch)">
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-30"
ng-click="searchSyscheckFile(filesSearch)">
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-30" ng-click="searchSyscheckFile(filesSearch)">
<span class="fa fa-search" aria-hidden="true"></span>
</button>
</div>
<div layout="row" ng-if="agent && !load" class="wz-margin-top-16 wz-margin-bottom-40-inv">
<wz-table custom-columns="true" flex path="'/syscheck/' + agent.id" row-sizes="[12,10,8]"
extra-limit="100"
keys="['file','size','inode','gname','uname','perm','sha1','sha256','uid','gid','mtime','md5']">
extra-limit="100" keys="['file',{value: 'size', width: '100px'},{value: 'gname', width: '150px'},{value: 'uname', width: '150px'},{value: 'perm', width: '125px'},'sha256',{value: 'uid', width: '100px'},{value: 'gid', width: '100px'},{value: 'mtime', width: '150px'}]">
</wz-table>
</div>
<div layout="row" layout-padding>
<span flex></span>
<a class="small" id="btnDownload"
ng-click="downloadCsv('/syscheck/' + agent.id, 'fim-files.csv')">Formatted
<i aria-hidden="true" class="fa fa-fw fa-download"></i></a>
</div>
</md-card-content>
<md-card-actions layout="row" layout-align="end center" class="wz-card-actions layout-align-end-center layout-row">
<a class="wz-text-link cursor-pointer small md-button md-ink-ripple" id="btnDownload" ng-click="downloadCsv('/syscheck/' + agent.id, 'fim-files.csv')">Formatted
<i aria-hidden="true" class="fa fa-download"></i></a>
</md-card-actions>
</md-card>
</div>
</md-content>

View File

@ -22,7 +22,7 @@
<div layout="row" layout-align="center stretch" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Top 5 rule groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -33,7 +33,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Top 5 rules</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -44,7 +44,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Top 5 GDPR requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -58,7 +58,7 @@
<div layout="row" layout-align="center stretch" class="height-300">
<md-card flex="70" class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">GDPR Requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -69,7 +69,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(4)">
<span class="wz-headline-title">Rule level distribution</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -83,7 +83,7 @@
<div layout="row" layout-align="center stretch" class="height-570">
<md-card class="wz-md-card" flex ng-class="{'fullscreen': expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(5)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(5)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -1,5 +1,5 @@
<md-content flex layout="column" ng-if="tab === 'general' && tabView === 'panels'"
ng-class="{'no-opacity': resultState !== 'ready' || !rendered}" layout-align="start">
<md-content flex layout="column" ng-if="tab === 'general' && tabView === 'panels'" ng-class="{'no-opacity': resultState !== 'ready' || !rendered}"
layout-align="start">
<!-- Agent information section -->
<div layout="row" layout-align="start center">
@ -30,8 +30,7 @@
<md-card flex class="wz-metric-color wz-md-card">
<md-card-content layout="row" class="wz-padding-metric">
<div class="wz-word-break" flex ng-if="agent.group">
Groups: <span ng-repeat="group in agent.group" class="wz-text-bold wz-text-link"
ng-click="goGroups(agent,$index)">{{
Groups: <span ng-repeat="group in agent.group" class="wz-text-bold wz-text-link" ng-click="goGroups(agent,$index)">{{
group }}&nbsp;</span>
</div>
</md-card-content>
@ -44,11 +43,9 @@
|| 'Unknown' }}</span></div>
<div class="wz-text-truncatable" flex>Registration date:<span class="wz-text-bold">
{{agent.dateAdd}}</span></div>
<div class="wz-text-truncatable" flex ng-if="agent.syscheck.inProgress">Last syscheck scan:<span
class="wz-text-bold">
<div class="wz-text-truncatable" flex ng-if="agent.syscheck.inProgress">Last syscheck scan:<span class="wz-text-bold">
Scan in progress</span></div>
<div class="wz-text-truncatable" flex ng-if="!agent.syscheck.inProgress">Last syscheck scan:<span
class="wz-text-bold">
<div class="wz-text-truncatable" flex ng-if="!agent.syscheck.inProgress">Last syscheck scan:<span class="wz-text-bold">
{{agent.syscheck.end || 'Unknown'}}</span>
<md-tooltip ng-if="!agent.syscheck.inProgress && agent.syscheck.start && agent.syscheck.end"
md-direction="bottom" class="wz-tooltip">
@ -76,19 +73,18 @@
<div layout="row" layout-align="start stretch" class="height-400">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">Alert level evolution</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Agents-Overview-Alert-level-evolution"
vis-id="'Wazuh-App-Agents-Overview-Alert-level-evolution'"></kbn-vis>
<kbn-vis id="Wazuh-App-Agents-Overview-Alert-level-evolution" vis-id="'Wazuh-App-Agents-Overview-Alert-level-evolution'"></kbn-vis>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(4)">
<span class="wz-headline-title">Alerts</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -103,7 +99,7 @@
<div layout="row" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Top 5 alerts</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -115,27 +111,25 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Top 10 groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Agents-Overview-Top-10-groups"
vis-id="'Wazuh-App-Agents-Overview-Top-10-groups'">
<kbn-vis id="Wazuh-App-Agents-Overview-Top-10-groups" vis-id="'Wazuh-App-Agents-Overview-Top-10-groups'">
</kbn-vis>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Top 5 PCI DSS Requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Agents-Overview-Top-5-PCI-DSS-Requirements"
vis-id="'Wazuh-App-Agents-Overview-Top-5-PCI-DSS-Requirements'"></kbn-vis>
<kbn-vis id="Wazuh-App-Agents-Overview-Top-5-PCI-DSS-Requirements" vis-id="'Wazuh-App-Agents-Overview-Top-5-PCI-DSS-Requirements'"></kbn-vis>
</md-card-content>
</md-card>
</div>
@ -143,19 +137,18 @@
<div layout="row" class="height-570">
<md-card class="wz-md-card" ng-class="{'fullscreen': expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(5)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(5)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis vis-id="'Wazuh-App-Agents-Overview-Alerts-summary'"
id="Wazuh-App-Agents-Overview-Alerts-summary"></kbn-vis>
<kbn-vis vis-id="'Wazuh-App-Agents-Overview-Alerts-summary'" id="Wazuh-App-Agents-Overview-Alerts-summary"></kbn-vis>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(6)">
<span class="wz-headline-title">Groups summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(6)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -22,7 +22,7 @@
<div layout="row" layout-align="center stretch" class="height-230">
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Top 5 Scans</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -33,7 +33,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Top 5 Profiles</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -44,7 +44,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Top 5 Content</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -55,7 +55,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">Top 5 Severity</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -69,7 +69,7 @@
<div layout="row" layout-align="start stretch" class="height-230">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(4)">
<span class="wz-headline-title">Daily scans evolution</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -83,7 +83,7 @@
<div layout="row" layout-align="center stretch" class="height-250">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(5)">
<span class="wz-headline-title">Top 5 - Alerts</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(5)"><i class="fa fa-fw fa-expand"></i></span>
@ -94,7 +94,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(6)">
<span class="wz-headline-title">Top 5 - High risk alerts</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(6)"><i class="fa fa-fw fa-expand"></i></span>
@ -108,7 +108,7 @@
<div layout="row" layout-align="center stretch" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[7]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(7)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(7)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -3,7 +3,7 @@
<div layout="row" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Most common Osquery packs being used</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -14,7 +14,7 @@
</md-card>
<md-card flex="70" class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Evolution of Osquery events per pack over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -28,7 +28,7 @@
<div layout="row" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Most common Osquery actions</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -40,7 +40,7 @@
<md-card flex="70" class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">Most common rules</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -54,7 +54,7 @@
<div layout="row" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(4)">
<span class="wz-headline-title">Evolution of Osquery events over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(4)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -21,7 +21,7 @@
<div layout="row" layout-align="center stretch" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Top 5 rule groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -32,7 +32,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Top 5 rules</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -43,7 +43,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Top 5 PCI DSS requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -57,7 +57,7 @@
<div layout="row" layout-align="center stretch" class="height-300">
<md-card flex="70" class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">PCI Requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -68,7 +68,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(4)">
<span class="wz-headline-title">Rule level distribution</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -82,7 +82,7 @@
<div layout="row" layout-align="center stretch" class="height-570">
<md-card class="wz-md-card" flex ng-class="{'fullscreen': expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(5)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(5)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -8,7 +8,7 @@
<div layout="row" class="height-240">
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Alerts over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -20,7 +20,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Top 5 CIS Requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -32,7 +32,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Top 5 PCI DSS Requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -47,7 +47,7 @@
<div layout="row" layout-align="space-between stretch" class="height-570">
<md-card flex="100" class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -1,5 +1,5 @@
<md-content flex layout="column" ng-if="tab === 'sca' && tabView === 'panels'" ng-show="!showScaScan"
ng-class="{'no-opacity': resultState !== 'ready' || !rendered}" layout-align="start">
<md-content flex layout="column" ng-if="tab === 'sca' && tabView === 'panels'" ng-show="!showScaScan" ng-class="{'no-opacity': resultState !== 'ready' || !rendered}"
layout-align="start">
<div layout="row">
<span flex></span>
<md-button ng-click="switchScaScan()" class="wz-button pull-right"><i class="fa fa-fw fa-database"></i>
@ -9,7 +9,7 @@
<div layout="row" layout-align="space-between stretch" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Alerts over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -25,81 +25,75 @@
<div layout="column" flex class="height-540">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Top 5 CIS requirements passed</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-CIS-Requirements-passed"
vis-id="'Wazuh-App-Agents-CA-Top-5-CIS-Requirements-passed'">
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-CIS-Requirements-passed" vis-id="'Wazuh-App-Agents-CA-Top-5-CIS-Requirements-passed'">
</kbn-vis>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Top 5 CIS requirements failed</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-CIS-Requirements-failed"
vis-id="'Wazuh-App-Agents-CA-Top-5-CIS-Requirements-failed'"></kbn-vis>
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-CIS-Requirements-failed" vis-id="'Wazuh-App-Agents-CA-Top-5-CIS-Requirements-failed'"></kbn-vis>
</md-card-content>
</md-card>
</div>
<div layout="column" flex class="height-540">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">Top 5 CIS CSC requirements passed</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-CIS-CSC-Requirements-passed"
vis-id="'Wazuh-App-Agents-CA-Top-5-CIS-CSC-Requirements-passed'">
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-CIS-CSC-Requirements-passed" vis-id="'Wazuh-App-Agents-CA-Top-5-CIS-CSC-Requirements-passed'">
</kbn-vis>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(4)">
<span class="wz-headline-title">Top 5 CIS CSC requirements failed</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(4)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-CIS-CSC-Requirements-failed"
vis-id="'Wazuh-App-Agents-CA-Top-5-CIS-CSC-Requirements-failed'"></kbn-vis>
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-CIS-CSC-Requirements-failed" vis-id="'Wazuh-App-Agents-CA-Top-5-CIS-CSC-Requirements-failed'"></kbn-vis>
</md-card-content>
</md-card>
</div>
<div layout="column" flex class="height-540">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(5)">
<span class="wz-headline-title">Top 5 PCI DSS requirements passed</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(5)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-PCI-DSS-Requirements-passed"
vis-id="'Wazuh-App-Agents-CA-Top-5-PCI-DSS-Requirements-passed'">
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-PCI-DSS-Requirements-passed" vis-id="'Wazuh-App-Agents-CA-Top-5-PCI-DSS-Requirements-passed'">
</kbn-vis>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(6)">
<span class="wz-headline-title">Top 5 PCI DSS requirements failed</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(6)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-PCI-DSS-Requirements-failed"
vis-id="'Wazuh-App-Agents-CA-Top-5-PCI-DSS-Requirements-failed'"></kbn-vis>
<kbn-vis id="Wazuh-App-Agents-CA-Top-5-PCI-DSS-Requirements-failed" vis-id="'Wazuh-App-Agents-CA-Top-5-PCI-DSS-Requirements-failed'"></kbn-vis>
</md-card-content>
</md-card>
</div>
@ -108,7 +102,7 @@
<div layout="row" layout-align="space-between stretch" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[7]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(7)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(7)"><i class="fa fa-fw fa-expand"></i></span>
@ -127,16 +121,13 @@
Show alerts</md-button>
</div>
<div layout="row" class="wz-margin-top-10 wz-margin-right-8 wz-margin-left-8"
ng-if="showScaScan && (!agent || !agent.os)">
<div layout="row" class="wz-margin-top-10 wz-margin-right-8 wz-margin-left-8" ng-if="showScaScan && (!agent || !agent.os)">
<div flex class="euiCallOut euiCallOut--warning">
<div class="euiCallOutHeader">
<svg class="euiIcon euiIcon--medium euiCallOutHeader__icon" aria-hidden="true"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"
viewBox="0 0 16 16">
<svg class="euiIcon euiIcon--medium euiCallOutHeader__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
<defs>
<path id="help-a"
d="M13.6 12.186l-1.357-1.358c-.025-.025-.058-.034-.084-.056.53-.794.84-1.746.84-2.773a4.977 4.977 0 0 0-.84-2.772c.026-.02.059-.03.084-.056L13.6 3.813a6.96 6.96 0 0 1 0 8.373zM8 15A6.956 6.956 0 0 1 3.814 13.6l1.358-1.358c.025-.025.034-.057.055-.084C6.02 12.688 6.974 13 8 13a4.978 4.978 0 0 0 2.773-.84c.02.026.03.058.056.083l1.357 1.358A6.956 6.956 0 0 1 8 15zm-5.601-2.813a6.963 6.963 0 0 1 0-8.373l1.359 1.358c.024.025.057.035.084.056A4.97 4.97 0 0 0 3 8c0 1.027.31 1.98.842 2.773-.027.022-.06.031-.084.056l-1.36 1.358zm5.6-.187A4 4 0 1 1 8 4a4 4 0 0 1 0 8zM8 1c1.573 0 3.019.525 4.187 1.4l-1.357 1.358c-.025.025-.035.057-.056.084A4.979 4.979 0 0 0 8 3a4.979 4.979 0 0 0-2.773.842c-.021-.027-.03-.059-.055-.084L3.814 2.4A6.957 6.957 0 0 1 8 1zm0-1a8.001 8.001 0 1 0 .003 16.002A8.001 8.001 0 0 0 8 0z">
<path id="help-a" d="M13.6 12.186l-1.357-1.358c-.025-.025-.058-.034-.084-.056.53-.794.84-1.746.84-2.773a4.977 4.977 0 0 0-.84-2.772c.026-.02.059-.03.084-.056L13.6 3.813a6.96 6.96 0 0 1 0 8.373zM8 15A6.956 6.956 0 0 1 3.814 13.6l1.358-1.358c.025-.025.034-.057.055-.084C6.02 12.688 6.974 13 8 13a4.978 4.978 0 0 0 2.773-.84c.02.026.03.058.056.083l1.357 1.358A6.956 6.956 0 0 1 8 15zm-5.601-2.813a6.963 6.963 0 0 1 0-8.373l1.359 1.358c.024.025.057.035.084.056A4.97 4.97 0 0 0 3 8c0 1.027.31 1.98.842 2.773-.027.022-.06.031-.084.056l-1.36 1.358zm5.6-.187A4 4 0 1 1 8 4a4 4 0 0 1 0 8zM8 1c1.573 0 3.019.525 4.187 1.4l-1.357 1.358c-.025.025-.035.057-.056.084A4.979 4.979 0 0 0 8 3a4.979 4.979 0 0 0-2.773.842c-.021-.027-.03-.059-.055-.084L3.814 2.4A6.957 6.957 0 0 1 8 1zm0-1a8.001 8.001 0 1 0 .003 16.002A8.001 8.001 0 0 0 8 0z">
</path>
</defs>
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#help-a" fill-rule="evenodd"></use>
@ -180,8 +171,7 @@
<tr class="euiTableRow" ng-repeat="policy in policies">
<td class="euiTableRowCell">
<div class="euiTableCellContent euiTableCellContent--overflowingContent">
<button ng-click="loadScaChecks(policy)" class="euiLink euiLink--primary"
type="button">{{policy.name}}</button>
<button ng-click="loadScaChecks(policy)" class="euiLink euiLink--primary" type="button">{{policy.name}}</button>
</div>
</td>
<td class="euiTableRowCell">
@ -222,17 +212,14 @@
<div layout="row" class="wz-padding-top-0" ng-if="agent && agent.os && lookingSca">
<md-card flex class="wz-md-card">
<md-card-content>
<span class="wz-headline-title"><i class="fa fa-fw fa-arrow-left cursor-pointer"
ng-click="closeScaChecks()"></i>
<md-card-content class="wz-padding-bottom-30">
<span class="wz-headline-title"><i class="fa fa-fw fa-arrow-left cursor-pointer" ng-click="closeScaChecks()"></i>
{{lookingSca.name}} checks</span>
<md-divider class="wz-margin-top-10"></md-divider>
<div layout="row" class="wz-margin-top-16 wz-margin-bottom-25">
<input placeholder="Filter checks..." ng-model="custom_search" type="text"
class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid"
<input placeholder="Filter checks..." ng-model="custom_search" type="text" class="kuiLocalSearchInput ng-empty ng-pristine ng-scope ng-touched ng-valid"
aria-invalid="false" wz-enter="search(custom_search)">
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-40"
ng-click="search(custom_search)">
<button type="submit" aria-label="Search" class="kuiLocalSearchButton height-40" ng-click="search(custom_search)">
<span class="fa fa-search" aria-hidden="true"></span>
</button>
</div>
@ -241,13 +228,11 @@
row-sizes="[13,11,9]" extra-limit="100" keys="['title', 'file', 'result']">
</wz-table>
</div>
<div layout="row" layout-padding>
<span flex></span>
<a class="small" id="btnDownload"
ng-click="downloadCsv('/sca/' + agent.id + '/checks/' + lookingSca.id, lookingSca.id + '.csv')">Formatted
<i aria-hidden="true" class="fa fa-fw fa-download"></i></a>
</div>
</md-card-content>
<md-card-actions layout="row" layout-align="end center" class="wz-card-actions layout-align-end-center layout-row">
<a class="wz-text-link cursor-pointer small md-button md-ink-ripple" id="btnDownload" ng-click="downloadCsv('/sca/' + agent.id + '/checks/' + lookingSca.id, lookingSca.id + '.csv')">Formatted
<i aria-hidden="true" class="fa fa-download"></i></a>
</md-card-actions>
</md-card>
</div>
</md-content>

View File

@ -23,7 +23,7 @@
<div layout="row" class="height-250">
<md-card flex="33" class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Last scanned files</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -34,7 +34,7 @@
</md-card>
<md-card flex class="wz-md-card">
<md-card-content class="wazuh-column" ng-class="{'fullscreen': expandArray[1]}">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Malicious files alerts Evolution</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -47,7 +47,7 @@
<div layout="row" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Last files</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -25,7 +25,7 @@
<div layout="row" layout-align="center stretch" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Alerts severity over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -36,7 +36,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Most common rules</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -49,7 +49,7 @@
<div layout="row" layout-align="center stretch" class="height-270">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(2)">
<span class="wz-headline-title">Most common CVEs</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -60,7 +60,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(3)">
<span class="wz-headline-title">Severity distribution</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -71,7 +71,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(4)">
<span class="wz-headline-title">Commonly affected packages</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -85,7 +85,7 @@
<div layout="row" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(5)">
<span class="wz-headline-title">Alert summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(5)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -7,8 +7,7 @@
not fetch data for this agent. <span ng-if="emptyAgent">Reason: {{emptyAgent}}</span></span>
</div>
<div layout="row" layout-padding ng-if="emptyAgent">
<span class="wz-text-link" ng-click="getAgent()"><i class="fa fa-fw fa-refresh"
aria-hidden="true"></i>
<span class="wz-text-link" ng-click="getAgent()"><i class="fa fa-fw fa-refresh" aria-hidden="true"></i>
Try again</span>
</div>
</md-card-content>
@ -19,16 +18,15 @@
<!-- Headline -->
<div layout="row" class="wz-margin-left-16 wz-margin-right-16 wz-margin-top-8">
<span class="font-size-18"><i class="fa fa-fw fa-tv" aria-hidden="true"></i> {{ agent.name || '-' }} <span
class="wz-text-bold wz-text-link" ng-click="goDiscover()" tooltip="Discover"><i
class="fa fa-fw fa-compass" aria-hidden="true"></i></span></span>
<span class="font-size-18 wz-line-height-40"><i class="fa fa-fw fa-tv" aria-hidden="true"></i> {{ agent.name || '-' }} <span
class="wz-text-bold wz-text-link" ng-click="goDiscover()" tooltip="Discover"><i class="fa fa-fw fa-compass"
aria-hidden="true"></i></span></span>
<span flex></span>
<md-button ng-show="!showConfirmRestartAgent" ng-disabled="restartingAgent" class="wz-button wz-no-margin"
ng-disabled="isRestarting" ng-click="showConfirmRestartAgent = true"><i class="fa fa-refresh"
ng-class="restartingAgent ? 'fa-spin fa-spinner' : ''"></i>
<md-button ng-show="!showConfirmRestartAgent" ng-disabled="restartingAgent" class="wz-button wz-no-margin height-35"
ng-disabled="isRestarting" ng-click="showConfirmRestartAgent = true"><i class="fa fa-refresh" ng-class="restartingAgent ? 'fa-spin fa-spinner' : ''"></i>
Restart agent
</md-button>
<div ng-show="showConfirmRestartAgent" class="confirmEmbedBubble confirmEmbedBubbleInline wz-margin-right-8">
<div ng-show="showConfirmRestartAgent" class="confirmEmbedBubble confirmEmbedBubbleInline">
<div layout="row no-wrap">
<span class="wz-padding-top-10 wz-padding-left-8">The agent will be restarted</span>
</div>
@ -44,8 +42,7 @@
<div layout="row" layout-padding>
<md-card flex class="wz-md-card wz-padding-top-0 wz-padding-bottom-0">
<md-card-content>
<div
class="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive">
<div class="euiFlexGroup euiFlexGroup--gutterLarge euiFlexGroup--justifyContentSpaceBetween euiFlexGroup--directionRow euiFlexGroup--responsive">
<div class="euiFlexItem euiFlexItem--flexGrowZero">
<div class="euiStat euiStat--leftAligned">
<div class="euiText euiText--small euiStat__description">
@ -102,8 +99,7 @@
<p class="euiTitle euiTitle--small euiStat__title" ng-if="agent.syscheck.inProgress">Scan
in progress</p>
<p class="euiTitle euiTitle--small euiStat__title" ng-if="!agent.syscheck.inProgress">{{agent.syscheck.end
|| '-'}} <md-tooltip
ng-if="!agent.syscheck.inProgress && agent.syscheck.start && agent.syscheck.end"
|| '-'}} <md-tooltip ng-if="!agent.syscheck.inProgress && agent.syscheck.start && agent.syscheck.end"
md-direction="bottom" class="wz-tooltip">
Start time: {{ agent.syscheck.start || '-'}} <br>
End time: {{ agent.syscheck.end || '-'}} <br>
@ -121,8 +117,7 @@
in progress</p>
<p class="euiTitle euiTitle--small euiStat__title" ng-if="!agent.rootcheck.inProgress">{{agent.rootcheck.end
|| '-'}}
<md-tooltip
ng-if="!agent.rootcheck.inProgress && agent.rootcheck.start && agent.rootcheck.end"
<md-tooltip ng-if="!agent.rootcheck.inProgress && agent.rootcheck.start && agent.rootcheck.end"
md-direction="bottom" class="wz-tooltip">
Start time: {{ agent.rootcheck.start || '-'}} <br>
End time: {{ agent.rootcheck.end || '-'}} <br>
@ -140,9 +135,8 @@
<md-card-content>
<div layout="row" ng-if="agent.group">
<span class="font-size-16">Groups <i ng-if='adminMode' tooltip="Add group"
ng-click="switchGroupEdit()" class="wz-text-bold wz-text-link-add fa fa-fw"
ng-class="!addingGroupToAgent ? 'fa-plus-circle' : 'fa-minus-circle'"></i></span>
<span class="font-size-16">Groups <i ng-if='adminMode' tooltip="Add group" ng-click="switchGroupEdit()"
class="wz-text-bold wz-text-link-add fa fa-fw" ng-class="!addingGroupToAgent ? 'fa-plus-circle' : 'fa-minus-circle'"></i></span>
</div>
<md-divider ng-if="agent.group" class="wz-margin-top-10"></md-divider>
<div layout="row" class="wz-margin-top-10" ng-if="agent.group && editGroup && !addingGroupToAgent">
@ -150,15 +144,12 @@
Available groups:
</div>
<div class="wz-word-break" flex ng-if="!groups || !groups.length">
No more groups available. Create a new group at <a
ng-href="#/manager//?_g=()&tab=groups">Configuration
No more groups available. Create a new group at <a ng-href="#/manager//?_g=()&tab=groups">Configuration
> Groups</a>.
</div>
</div>
<div ng-if="agent.group && editGroup && !addingGroupToAgent && groups && groups.length"
class="wz-margin-top-4">
<span ng-repeat="group in groups" class="wz-text-bold wz-text-link"
ng-click="showConfirmAddGroup(group)">{{
<div ng-if="agent.group && editGroup && !addingGroupToAgent && groups && groups.length" class="wz-margin-top-4">
<span ng-repeat="group in groups" class="wz-text-bold wz-text-link" ng-click="showConfirmAddGroup(group)">{{
group }}&nbsp;</span>
</div>
@ -169,13 +160,12 @@
</div>
<div layout="row">
<md-button class="cancelBtn" type="button" ng-click="cancelAddGroup()">Cancel</md-button>
<md-button class="agreeBtn" type="button" ng-click="confirmAddGroup(addingGroupToAgent)"><i
<md-button class="agreeBtn wz-button" type="button" ng-click="confirmAddGroup(addingGroupToAgent)"><i
aria-hidden='true' class='fa fa-fw fa-check'></i> Confirm</md-button>
</div>
</div>
<div layout="row" ng-if="agent.group" class="wz-word-break wz-padding-top-10">
<span ng-repeat="group in agent.group" class="wz-text-bold wz-text-link"
ng-click="goGroups(agent,$index)">{{
<span ng-repeat="group in agent.group" class="wz-text-bold wz-text-link" ng-click="goGroups(agent,$index)">{{
group
}}&nbsp;</span>
</div>
@ -192,19 +182,15 @@
<h3 class="euiTitle wzEuiTitle">Security Information Management</h3>
<div class="euiSpacer euiSpacer--m"></div>
<div class="euiFlexGrid euiFlexGrid--gutterLarge euiFlexGrid--halves">
<wz-welcome-card class="euiFlexItem" logo="'icons/app_dashboard.svg'"
card-title="'Security events'" switch-tab="switchTab('general')" current-tab="'general'"
description="TabDescription.general.description"></wz-welcome-card>
<wz-welcome-card class="euiFlexItem" logo="'icons/app_logging.svg'"
card-title="'Integrity monitoring'" switch-tab="switchTab('fim')" current-tab="'fim'"
description="TabDescription.fim.description"></wz-welcome-card>
<wz-welcome-card class="euiFlexItem" logo="'icons/app_devtools.svg'"
card-title="'Configuration'" switch-tab="switchTab('configuration')"
current-tab="'configuration'" description="TabDescription.configuration.description">
<wz-welcome-card class="euiFlexItem" logo="'icons/app_dashboard.svg'" card-title="'Security events'"
switch-tab="switchTab('general')" current-tab="'general'" description="TabDescription.general.description"></wz-welcome-card>
<wz-welcome-card class="euiFlexItem" logo="'icons/app_logging.svg'" card-title="'Integrity monitoring'"
switch-tab="switchTab('fim')" current-tab="'fim'" description="TabDescription.fim.description"></wz-welcome-card>
<wz-welcome-card class="euiFlexItem" logo="'icons/app_devtools.svg'" card-title="'Configuration'"
switch-tab="switchTab('configuration')" current-tab="'configuration'" description="TabDescription.configuration.description">
</wz-welcome-card>
<wz-welcome-card class="euiFlexItem" logo="'icons/app_index_pattern.svg'"
card-title="'Inventory data'" switch-tab="switchTab('syscollector')"
current-tab="'syscollector'" description="TabDescription.syscollector.description">
<wz-welcome-card class="euiFlexItem" logo="'icons/app_index_pattern.svg'" card-title="'Inventory data'"
switch-tab="switchTab('syscollector')" current-tab="'syscollector'" description="TabDescription.syscollector.description">
</wz-welcome-card>
</div>
</div>
@ -214,22 +200,17 @@
<h3 class="euiTitle wzEuiTitle">Auditing and Policy Monitoring</h3>
<div class="euiSpacer euiSpacer--m"></div>
<div class="euiFlexGrid euiFlexGrid--gutterLarge euiFlexGrid--halves">
<wz-welcome-card class="euiFlexItem" logo="'icons/app_advanced_settings.svg'"
card-title="'Policy monitoring'" switch-tab="switchTab('pm')" current-tab="'pm'"
description="TabDescription.pm.description"></wz-welcome-card>
<wz-welcome-card class="euiFlexItem" logo="'icons/app_timelion.svg'"
card-title="'Configuration assessment'" switch-tab="switchTab('sca')" current-tab="'sca'"
description="TabDescription['sca'].description"></wz-welcome-card>
<wz-welcome-card ng-if="extensions.audit && agent.isLinuxOS" class="euiFlexItem"
logo="'icons/app_monitoring.svg'" card-title="'System auditing'"
switch-tab="switchTab('audit')" current-tab="'audit'"
<wz-welcome-card class="euiFlexItem" logo="'icons/app_advanced_settings.svg'" card-title="'Policy monitoring'"
switch-tab="switchTab('pm')" current-tab="'pm'" description="TabDescription.pm.description"></wz-welcome-card>
<wz-welcome-card class="euiFlexItem" logo="'icons/app_timelion.svg'" card-title="'Configuration assessment'"
switch-tab="switchTab('sca')" current-tab="'sca'" description="TabDescription['sca'].description"></wz-welcome-card>
<wz-welcome-card ng-if="extensions.audit && agent.isLinuxOS" class="euiFlexItem" logo="'icons/app_monitoring.svg'"
card-title="'System auditing'" switch-tab="switchTab('audit')" current-tab="'audit'"
description="TabDescription.audit.description"></wz-welcome-card>
<wz-welcome-card ng-if="extensions.oscap && agent.isLinuxOS" class="euiFlexItem"
logo="'icons/app_discover.svg'" card-title="'OpenSCAP'" switch-tab="switchTab('oscap')"
current-tab="'oscap'" description="TabDescription.oscap.description"></wz-welcome-card>
<wz-welcome-card ng-if="extensions.oscap && agent.isLinuxOS" class="euiFlexItem" logo="'icons/app_discover.svg'"
card-title="'OpenSCAP'" switch-tab="switchTab('oscap')" current-tab="'oscap'" description="TabDescription.oscap.description"></wz-welcome-card>
<wz-welcome-card ng-if="extensions.ciscat" class="euiFlexItem" logo="'icons/app_management.svg'"
card-title="'CIS-CAT'" switch-tab="switchTab('ciscat')" current-tab="'ciscat'"
description="TabDescription.ciscat.description"></wz-welcome-card>
card-title="'CIS-CAT'" switch-tab="switchTab('ciscat')" current-tab="'ciscat'" description="TabDescription.ciscat.description"></wz-welcome-card>
</div>
</div>
</div>
@ -244,12 +225,10 @@
<h3 class="euiTitle wzEuiTitle">Threat Detection and Response</h3>
<div class="euiSpacer euiSpacer--m"></div>
<div class="euiFlexGrid euiFlexGrid--gutterLarge euiFlexGrid--halves">
<wz-welcome-card class="euiFlexItem" logo="'icons/app_security.svg'"
card-title="'Vulnerabilities'" switch-tab="switchTab('vuls')" current-tab="'vuls'"
description="TabDescription.vuls.description"></wz-welcome-card>
<wz-welcome-card ng-if="extensions.virustotal" class="euiFlexItem"
logo="'icons/app_saved_objects.svg'" card-title="'VirusTotal'"
switch-tab="switchTab('virustotal')" current-tab="'virustotal'"
<wz-welcome-card class="euiFlexItem" logo="'icons/app_security.svg'" card-title="'Vulnerabilities'"
switch-tab="switchTab('vuls')" current-tab="'vuls'" description="TabDescription.vuls.description"></wz-welcome-card>
<wz-welcome-card ng-if="extensions.virustotal" class="euiFlexItem" logo="'icons/app_saved_objects.svg'"
card-title="'VirusTotal'" switch-tab="switchTab('virustotal')" current-tab="'virustotal'"
description="TabDescription.virustotal.description"></wz-welcome-card>
<wz-welcome-card ng-if="extensions.osquery" class="euiFlexItem" logo="'icons/osquery.svg'"
card-title="'Osquery'" switch-tab="switchTab('osquery')" current-tab="'osquery'"
@ -264,11 +243,9 @@
<div class="euiSpacer euiSpacer--m"></div>
<div class="euiFlexGrid euiFlexGrid--gutterLarge euiFlexGrid--halves">
<wz-welcome-card ng-if="extensions.pci" class="euiFlexItem" logo="'icons/app_apm.svg'"
card-title="'PCI DSS'" switch-tab="switchTab('pci')" current-tab="'pci'"
description="TabDescription.pci.description"></wz-welcome-card>
card-title="'PCI DSS'" switch-tab="switchTab('pci')" current-tab="'pci'" description="TabDescription.pci.description"></wz-welcome-card>
<wz-welcome-card ng-if="extensions.gdpr" class="euiFlexItem" logo="'icons/app_visualize.svg'"
card-title="'GDPR'" switch-tab="switchTab('gdpr')" current-tab="'gdpr'"
description="TabDescription.gdpr.description"></wz-welcome-card>
card-title="'GDPR'" switch-tab="switchTab('gdpr')" current-tab="'gdpr'" description="TabDescription.gdpr.description"></wz-welcome-card>
</div>
</div>
</div>

View File

@ -196,14 +196,13 @@
scan</md-button>
<span></span>
<md-button ng-click="switchSyscheckFiles()" class="wz-button pull-right"><i class="fa fa-fw fa-database"></i>
Show state</md-button>
Show files</md-button>
</div>
<div layout="row"
ng-if="!showSyscheckFiles && !showScaScan && tab === 'sca' && resultState === 'none' && tabView === 'panels'">
<span flex></span>
<md-button ng-click="switchScaScan()" class="wz-button pull-right"><i class="fa fa-fw fa-database"></i>
Show
state</md-button>
Show state</md-button>
</div>
<div layout="row" class="wz-margin-top-10 wz-margin-right-8 wz-margin-left-8"
ng-if="!showSyscheckFiles && !showScaScan && tab !== 'welcome' && tab !== 'configuration' && tab !== 'syscollector'"

View File

@ -2,7 +2,7 @@
<wz-menu ng-init="menuNavItem = 'wazuh-dev'"></wz-menu>
<md-content flex layout="column" class="md-padding" layout-align="start">
<div>
<div class="wz-dev-box">
<div id="wz-dev-left-column" flex layout="column">
<span class="wz-headline-title wz-dev-title">Console <i ng-click="ctrl.send()" class="fa fa-play wz-play-dev-color cursor-pointer pull-right fa-fw wz-always-top" id="play_button" aria-hidden="true"></i></span>
<textarea flex id="api_input"></textarea>

View File

@ -119,23 +119,20 @@
<md-card flex class="wz-md-card _md flex md-margin-h" ng-if="!lookingGroup">
<md-card-content>
<div layout="row">
<wz-table flex extra-limit="100" path="'/agents/groups'" keys="['name','count','mergedSum']"
<wz-table custom-columns="true" flex extra-limit="100" path="'/agents/groups'" keys="['name','count','mergedSum']"
allow-click="true" row-sizes="[14,12,10]">
</wz-table>
</div>
</md-card-content>
<!-- CSV Download button section for groups -->
<md-card-actions layout="row" layout-align="end center" class="wz-card-actions layout-align-end-center layout-row">
<a class="wz-text-link cursor-pointer small md-button md-ink-ripple" id="btnDownload" ng-click="downloadCsv('/agents/groups')">Formatted
<i aria-hidden="true" class="fa fa-download"></i></a>
</md-card-actions>
<!-- End CSV Download button section for groups -->
</md-card>
<!-- End groups table -->
<!-- CSV Download button section for groups -->
<div layout="row" class="md-padding" ng-if="!lookingGroup">
<span flex></span>
<a class="small" id="btnDownload" ng-click="downloadCsv('/agents/groups')">Formatted
<i aria-hidden="true" class="fa fa-fw fa-download"></i>
</a>
</div>
<!-- End CSV Download button section for groups -->
<div ng-if='!addingAgents'>
<!-- Group agents table -->
<md-card flex class="wz-md-card _md flex md-margin-h" ng-if="lookingGroup && groupsSelectedTab==='agents' && currentGroup">

View File

@ -49,12 +49,12 @@
<!-- White space between filters and Realtime button -->
<span flex></span>
<md-button ng-if="!ctrl.realtime" class="wz-button md-raised no-margin-right" ng-click="ctrl.playRealtime()"
<md-button ng-if="!ctrl.realtime" class="wz-button no-margin-right" ng-click="ctrl.playRealtime()"
aria-label="Play realtime button">
<i class="fa fa-play fa-fw" aria-hidden="true"></i>
Play realtime
</md-button>
<md-button ng-if="ctrl.realtime" class="wz-button md-raised no-margin-right" ng-click="ctrl.stopRealtime()"
<md-button ng-if="ctrl.realtime" class="wz-button no-margin-right" ng-click="ctrl.stopRealtime()"
aria-label="Stop realtime button">
<i class="fa fa-stop fa-fw" aria-hidden="true"></i>
Stop realtime

View File

@ -20,7 +20,7 @@
ng-show="!loading && !showConfig && !showNodes && rendered">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(0)">
<span class="wz-headline-title">Cluster alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -31,7 +31,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="expand(1)">
<span class="wz-headline-title">Alerts by node summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="expand(1)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -50,12 +50,11 @@
<wz-table custom-columns="true" implicit-filter="cdbctrl.appliedFilters" flex path="'/lists/files'"
keys="['name', 'path']" allow-click="true" row-sizes="[15,13,11]">
</wz-table>
<div layout="row" class="wz-margin-top-10 md-padding-h">
<span flex></span>
<a class="small" id="btnDownload" ng-click="cdbctrl.downloadCsv()">Formatted <i aria-hidden="true"
class="fa fa-download"></i></a>
</div>
</md-card-content>
<md-card-actions layout="row" layout-align="end center" class="wz-card-actions layout-align-end-center layout-row">
<a class="wz-text-link cursor-pointer small md-button md-ink-ripple" id="btnDownload" ng-click="cdbctrl.downloadCsv()">Formatted
<i aria-hidden="true" class="fa fa-download"></i></a>
</md-card-actions>
</md-card>
</div>
</div>

View File

@ -30,19 +30,18 @@
<wz-kbn-switch class="md-primary wz-no-top-bottom-margin" switch-model="dctrl.showingLocalDecoders"
switch-text="Custom decoders"></wz-kbn-switch>
</md-card-actions>
<md-card-content>
<md-card-content class="wz-padding-bottom-0">
<wz-table custom-columns="true" ng-if="!dctrl.showingLocalDecoders" implicit-filter="dctrl.appliedFilters"
flex path="'/decoders'" keys="['name',{value:'details.program_name',size:2,nosortable:true},{value:'details.order',size:2,nosortable:true},'file']"
allow-click="true" row-sizes="[16,13,11]">
</wz-table>
<wz-table custom-columns="true" ng-if="dctrl.showingLocalDecoders" flex path="'/decoders'" keys="['name',{value:'details.program_name',size:2,nosortable:true},{value:'details.order',size:2,nosortable:true},'file']"
implicit-filter="[{ name:'path',value: 'etc/decoders'}]" allow-click="true" row-sizes="[16,13,11]"></wz-table>
<div layout="row" class="wz-margin-top-10 md-padding-h">
<span flex></span>
<a class="small" id="btnDownload" ng-click="dctrl.downloadCsv()">Formatted <i aria-hidden="true"
class="fa fa-download"></i></a>
</div>
</md-card-content>
<md-card-actions layout="row" layout-align="end center" class="wz-card-actions layout-align-end-center layout-row">
<a class="wz-text-link cursor-pointer small md-button md-ink-ripple" id="btnDownload" ng-click="dctrl.downloadCsv()">Formatted
<i aria-hidden="true" class="fa fa-download"></i></a>
</md-card-actions>
</md-card>
</div>
<div class="md-padding" ng-if="dctrl.editingFile && dctrl.type === 'decoders'">

View File

@ -10,9 +10,9 @@
<md-card flex class="wz-md-card _md flex md-margin-h">
<md-card-content>
<wz-table ng-if="filesctrl.filesSubTab === 'rules'" implicit-filter="[{ name:'path',value: 'etc/rules'}]"
flex path="'/rules/files'" keys="['file']" allow-click="true" row-sizes="[16,13,11]"></wz-table>
flex path="'/rules/files'" keys="[{value: 'file', width: '75px'}]" allow-click="true" row-sizes="[16,13,11]"></wz-table>
<wz-table ng-if="filesctrl.filesSubTab === 'decoders'" implicit-filter="[{ name:'path',value: 'etc/decoders'}]"
flex path="'/decoders/files'" keys="['file']" allow-click="true" row-sizes="[16,13,11]"></wz-table>
flex path="'/decoders/files'" keys="[{value: 'file', width: '75px'}]" allow-click="true" row-sizes="[16,13,11]"></wz-table>
</md-card-content>
</md-card>
</div>

View File

@ -181,7 +181,7 @@
<md-card-content>
<wz-table custom-columns="true" flex path="'/rules'"
implicit-filter="[{ name:'file',value: currentRule.file}]"
keys="['id',{value:'file',size:2},{value:'description',size:2},{value:'groups',nosortable:true,size:2},{value:'pci',nosortable:true,size:2},{value:'gdpr',nosortable:true},'level']"
keys="[{value: 'id', width: '75px'},{value:'file',size:2},{value:'description',size:2},{value:'groups',nosortable:true,size:2},{value:'pci',nosortable:true,size:2},{value:'gdpr',nosortable:true},'level']"
allow-click="true">
</wz-table>
</md-card-content>

View File

@ -47,19 +47,19 @@
<span flex></span>
<wz-kbn-switch class="md-primary wz-no-top-bottom-margin" switch-model="showingLocalRules" switch-text="Custom rules"></wz-kbn-switch>
</md-card-actions>
<md-card-content>
<wz-table custom-columns="true" flex ng-if="showingLocalRules" path="'/rules'" keys="['id',{value:'file',size:2},{value:'description',size:2},{value:'groups',nosortable:true,size:2},{value:'pci',nosortable:true,size:2},{value:'gdpr',nosortable:true},'level']"
<md-card-content class="wz-padding-bottom-0">
<wz-table custom-columns="true" flex ng-if="showingLocalRules" path="'/rules'" keys="[{value: 'id', width: '75px'},{value:'file',size:2},{value:'description',size:2},{value:'groups',nosortable:true,size:2},{value:'pci',nosortable:true,size:2},{value:'gdpr',nosortable:true},{value: 'level', width: '100px'}]"
implicit-filter="[{ name:'path',value: 'etc/rules'}]" allow-click="true" row-sizes="[16,13,11]">
</wz-table>
<wz-table custom-columns="true" ng-if="!showingLocalRules" implicit-filter="appliedFilters" flex path="'/rules'"
keys="['id',{value:'file',size:2},{value:'description',size:2},{value:'groups',nosortable:true,size:2},{value:'pci',nosortable:true,size:2},{value:'gdpr',nosortable:true},'level']"
keys="[{value: 'id', width: '75px'},{value:'file',size:2},{value:'description',size:2},{value:'groups',nosortable:true,size:2},{value:'pci',nosortable:true,size:2},{value:'gdpr',nosortable:true}, {value: 'level', width: '100px'}]"
allow-click="true" row-sizes="[16,13,11]">
</wz-table>
<div layout="row" class="wz-margin-top-10 md-padding-h">
<span flex></span>
<a class="small" id="btnDownload" ng-click="downloadCsv()">Formatted <i aria-hidden="true" class="fa fa-download"></i></a>
</div>
</md-card-content>
<md-card-actions layout="row" layout-align="end center" class="wz-card-actions layout-align-end-center layout-row">
<a class="wz-text-link cursor-pointer small md-button md-ink-ripple" id="btnDownload" ng-click="downloadCsv()">Formatted
<i aria-hidden="true" class="fa fa-download"></i></a>
</md-card-actions>
</md-card>
</div>
<div class="md-padding" ng-if="editingFile && type === 'rules'">
@ -77,8 +77,7 @@
<span ng-click='closeEditingFile()' class='btn btn-info'>Cancel</span>
<button ng-disabled='xmlHasErrors || newFileName === "" || doingSaving || overwriteError' ng-click='doSaveConfig(true,newFileName)'
class='btn wz-button pull-right wz-margin-left-8'>
<span ng-show='!xmlHasErrors'><i aria-hidden='true' class='fa fa-fw fa-save'
ng-class="doingSaving ? 'fa-spin fa-spinner' : ''"></i>Save
<span ng-show='!xmlHasErrors'><i aria-hidden='true' class='fa fa-fw fa-save' ng-class="doingSaving ? 'fa-spin fa-spinner' : ''"></i>Save
file</span>
<span ng-show='xmlHasErrors' class='btn-danger'><i aria-hidden='true' class='fa fa-fw fa-exclamation-triangle'></i>
XML format error</span>

View File

@ -22,7 +22,7 @@
<div layout="row" layout-align="center stretch" class="height-200">
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -33,7 +33,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Agents</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -44,7 +44,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Directories</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -55,7 +55,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Files</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -69,7 +69,7 @@
<div layout="row" layout-align="center stretch" class="height-310">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Alerts over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -84,7 +84,7 @@
<div flex="20" layout="column" layout-align="center stretch">
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(5)">
<span class="wz-headline-title">File read access</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(5)"><i class="fa fa-fw fa-expand"></i></span>
@ -95,7 +95,7 @@
</md-card>
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(6)">
<span class="wz-headline-title">File write access</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(6)"><i class="fa fa-fw fa-expand"></i></span>
@ -109,7 +109,7 @@
<div flex="60" layout="column" layout-align="center stretch">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[7]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(7)">
<span class="wz-headline-title">Commands</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(7)"><i class="fa fa-fw fa-expand"></i></span>
@ -123,7 +123,7 @@
<div flex="20" layout="column" layout-align="center stretch">
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[8]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(8)">
<span class="wz-headline-title">Created files</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(8)"><i class="fa fa-fw fa-expand"></i></span>
@ -134,7 +134,7 @@
</md-card>
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[9]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(9)">
<span class="wz-headline-title">Removed files</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(9)"><i class="fa fa-fw fa-expand"></i></span>
@ -149,7 +149,7 @@
<div flex layout="row" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[10]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(10)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(10)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -11,7 +11,7 @@
<div layout="row" class="height-250">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Sources</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -23,7 +23,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Accounts</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -35,7 +35,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">S3 buckets</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -47,7 +47,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Regions</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -62,7 +62,7 @@
<div layout="row" class="height-300">
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Events by source over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -74,7 +74,7 @@
</md-card>
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(5)">
<span class="wz-headline-title">Events by S3 bucket over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(5)"><i class="fa fa-fw fa-expand"></i></span>
@ -89,7 +89,7 @@
<div layout="row" class="height-400">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(6)">
<span class="wz-headline-title">Top 5 rules</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(6)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -44,7 +44,7 @@
<div layout="row" layout-align="start stretch" class="height-320">
<md-card flex="60" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Top 5 CIS-CAT groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -55,7 +55,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Scan result evolution</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -71,7 +71,7 @@
<div layout="row" layout-align="start stretch" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -3,42 +3,42 @@
<div layout="row" class="height-225">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<span class="wz-headline-title">Top 5 agents with deleted files</span>
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Files added</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Overview-FIM-deleted" vis-id="'Wazuh-App-Overview-FIM-deleted'"></kbn-vis>
<kbn-vis id="Wazuh-App-Agents-FIM-Files-added" vis-id="'Wazuh-App-Agents-FIM-Files-added'"></kbn-vis>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<span class="wz-headline-title">Top 5 agents with new files</span>
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Files modified</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Overview-FIM-added" vis-id="'Wazuh-App-Overview-FIM-added'"></kbn-vis>
<kbn-vis id="Wazuh-App-Agents-FIM-Files-modified" vis-id="'Wazuh-App-Agents-FIM-Files-modified'"></kbn-vis>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<span class="wz-headline-title">Top 5 agents with modified files</span>
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Files deleted</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Overview-FIM-modified" vis-id="'Wazuh-App-Overview-FIM-modified'"></kbn-vis>
<kbn-vis id="Wazuh-App-Overview-FIM-deleted" vis-id="'Wazuh-App-Agents-FIM-Files-deleted'"></kbn-vis>
</md-card-content>
</md-card>
</div>
<div layout="row" class="height-300">
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Top 5 agents</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -49,7 +49,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Events summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -63,8 +63,8 @@
<div layout="row" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<span class="wz-headline-title">Top 5 rules</span>
<div layout="row" ng-dblclick="octrl.expand(5)">
<span class="wz-headline-title">Rule distribution</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(5)"><i class="fa fa-fw fa-expand"></i></span>
</div>
@ -75,7 +75,7 @@
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(6)">
<span class="wz-headline-title">Actions</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(6)"><i class="fa fa-fw fa-expand"></i></span>
@ -86,7 +86,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[7]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(7)">
<span class="wz-headline-title">Top 5 users</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(7)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -21,7 +21,7 @@
<div layout="row" layout-align="center stretch" class="height-400">
<md-card flex="30" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -32,7 +32,7 @@
</md-card>
<md-card flex="70" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">GDPR Requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -47,7 +47,7 @@
<div layout="row" layout-align="center stretch" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Top requirements over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -62,7 +62,7 @@
<div layout="row" layout-align="center stretch" class="height-255">
<md-card flex="70" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Requirements by agent</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -74,7 +74,7 @@
</md-card>
<md-card flex="30" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Agents</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -25,19 +25,19 @@
<div layout="row" layout-align="start stretch" class="height-400">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<span class="wz-headline-title">Rule group evolution</span>
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Top 10 Agent alerts</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Overview-General-Rule-group-evolution"
vis-id="'Wazuh-App-Overview-General-Rule-group-evolution'"></kbn-vis>
<kbn-vis id="Wazuh-App-Overview-General-Top-10-agent-alert"
vis-id="'Wazuh-App-Overview-General-Top-10-agent-alert'"></kbn-vis>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Alert level evolution</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -52,7 +52,7 @@
<div layout="row" layout-align="space-between stretch" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Top 5 agents</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -64,7 +64,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Top 10 rule groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -76,7 +76,7 @@
</md-card>
<md-card flex="40" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column" ng-show="octrl.wzMonitoringEnabled">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Agents status</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -121,7 +121,7 @@
<div layout="row" layout-align="center stretch" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(5)">
<span class="wz-headline-title">Commonly fired rules</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(5)"><i class="fa fa-fw fa-expand"></i></span>
@ -131,18 +131,6 @@
vis-id="'Wazuh-App-Overview-General-Commonly-fired-rules'"></kbn-vis>
</md-card-content>
</md-card>
<md-card flex="40" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<span class="wz-headline-title">Alerts evolution - Top 5 agents</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(5)"><i class="fa fa-fw fa-expand"></i></span>
</div>
<md-divider class="wz-margin-top-10"></md-divider>
<kbn-vis id="Wazuh-App-Overview-General-Alerts-evolution-Top-5-agents"
vis-id="'Wazuh-App-Overview-General-Alerts-evolution-Top-5-agents'"></kbn-vis>
</md-card-content>
</md-card>
</div>
</md-content>

View File

@ -20,7 +20,7 @@
<div layout="row" layout-align="center stretch" class="height-215">
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Top 5 Agents</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -31,7 +31,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Top 5 Profiles</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -42,7 +42,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Top 5 Content</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -53,7 +53,7 @@
</md-card>
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Top 5 Severity</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -67,7 +67,7 @@
<div layout="row" layout-align="start stretch" class="height-240">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Top 5 Agents - Severity high</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -81,7 +81,7 @@
<div layout="row" layout-align="center stretch" class="height-320">
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(5)">
<span class="wz-headline-title">Top 10 - Alerts</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(5)"><i class="fa fa-fw fa-expand"></i></span>
@ -93,7 +93,7 @@
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(6)">
<span class="wz-headline-title">Top 10 - High risk alerts</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(6)"><i class="fa fa-fw fa-expand"></i></span>
@ -107,7 +107,7 @@
<div layout="row" layout-align="center stretch" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[7]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(7)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(7)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -17,7 +17,7 @@
<div layout="row" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Alerts over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -31,7 +31,7 @@
<div layout="row" class="height-300">
<md-card flex="30" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Most common packs</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -42,7 +42,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Top 5 rules</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -56,7 +56,7 @@
<div layout="row" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Alerts evolution - Top 5 agents</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -21,7 +21,7 @@
<div layout="row" layout-align="center stretch" class="height-400">
<md-card flex="70" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">PCI Requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -33,7 +33,7 @@
</md-card>
<md-card flex="30" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Groups</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -47,7 +47,7 @@
<div layout="row" layout-align="center stretch" class="height-300">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Top requirements over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -62,7 +62,7 @@
<div layout="row" layout-align="center stretch" class="height-255">
<md-card flex="30" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Agents</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -73,7 +73,7 @@
</md-card>
<md-card flex="70" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Requirements by agent</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -4,7 +4,7 @@
<div layout="row" layout-align="center stretch" class="height-290">
<md-card flex="50" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Events over time</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -16,7 +16,7 @@
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Top 5 CIS Requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -28,7 +28,7 @@
<md-card flex="25" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Top 5 PCI DSS Requirements</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -42,7 +42,7 @@
<div layout="row" layout-align="center stretch" class="height-240">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Events per control type evolution</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -56,7 +56,7 @@
<div layout="row" layout-align="center stretch" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Alerts summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -22,7 +22,7 @@
<div flex layout="row">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Unique malicious files per agent</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -37,7 +37,7 @@
<div flex layout="row">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Last scanned files</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -52,7 +52,7 @@
<div layout="row" class="height-550">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Top 10 agents with positive scans</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -65,7 +65,7 @@
<div layout="row" class="height-250">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Malicious files alerts evolution</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -78,7 +78,7 @@
<div layout="row" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Last files</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -22,7 +22,7 @@
<div layout="row" layout-align="center stretch" class="height-270">
<md-card flex="30" class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(0)">
<span class="wz-headline-title">Most affected agents</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(0)"><i class="fa fa-fw fa-expand"></i></span>
@ -33,7 +33,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[1]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(1)">
<span class="wz-headline-title">Alerts severity</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(1)"><i class="fa fa-fw fa-expand"></i></span>
@ -47,7 +47,7 @@
<div layout="row" layout-align="center stretch" class="height-270">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(2)">
<span class="wz-headline-title">Severity distribution</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(2)"><i class="fa fa-fw fa-expand"></i></span>
@ -58,7 +58,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(3)">
<span class="wz-headline-title">Commonly affected packages</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(3)"><i class="fa fa-fw fa-expand"></i></span>
@ -69,7 +69,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(4)">
<span class="wz-headline-title">Most common CVEs</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(4)"><i class="fa fa-fw fa-expand"></i></span>
@ -80,7 +80,7 @@
</md-card>
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[5]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(5)">
<span class="wz-headline-title">Most common CWEs</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(5)"><i class="fa fa-fw fa-expand"></i></span>
@ -93,7 +93,7 @@
<div layout="row" class="height-570">
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[6]}">
<md-card-content class="wazuh-column">
<div layout="row">
<div layout="row" ng-dblclick="octrl.expand(6)">
<span class="wz-headline-title">Alert summary</span>
<span flex></span>
<span class="wz-text-link" ng-click="octrl.expand(6)"><i class="fa fa-fw fa-expand"></i></span>

View File

@ -68,7 +68,7 @@
<p class="color-f9">{{ctrl.messageErrorUpdate}}</p>
</div>
<div layout="row" layout-align="center center">
<md-button type="submit" class="wz-button md-raised md-primary" aria-label="Update API button">
<md-button type="submit" class="wz-button md-primary" aria-label="Update API button">
<i class="fa fa-pencil fa-fw" aria-hidden="true"></i> Update Wazuh API entry
</md-button>
</div>
@ -80,7 +80,7 @@
<!-- Add API button section -->
<div ng-show="!ctrl.isUpdating()" layout="row" layout-align="center center" class="wz-padding-top-10">
<md-button ng-click="ctrl.switch()" class="wz-button md-raised md-primary"
<md-button ng-click="ctrl.switch()" class="wz-button md-primary"
aria-label="Add new API button">
<i class="fa fa-plus-circle fa-fw" aria-hidden="true"></i> Add new Wazuh API entry
</md-button>
@ -114,7 +114,7 @@
<p class="color-f9">{{ctrl.messageError}}</p>
</div>
<div layout="row" layout-align="center center">
<md-button type="submit" class="wz-button md-raised md-primary" aria-label="Save API button">
<md-button type="submit" class="wz-button md-primary" aria-label="Save API button">
<i class="fa fa-floppy-o fa-fw" aria-hidden="true"></i> Save Wazuh API entry
</md-button>
</div>

View File

@ -0,0 +1,422 @@
/**
_ _____ _ _ _
| | __ \ (_) | | | |
___ ___ | | |__) |___ ___ _ ______ _| |__ | | ___
/ __/ _ \| | _ // _ \/ __| |_ / _` | '_ \| |/ _ \
| (_| (_) | | | \ \ __/\__ \ |/ / (_| | |_) | | __/
\___\___/|_|_| \_\___||___/_/___\__,_|_.__/|_|\___|
v1.6 - jQuery plugin created by Alvaro Prieto Lauroba
Licences: MIT & GPL
Feel free to use or modify this plugin as far as my full name is kept
If you are going to use this plug-in in production environments it is
strongly recommended to use its minified version: colResizable.min.js
*/
(function(global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
? (module.exports = factory())
: typeof define === 'function' && define.amd
? define(factory)
: (global.CodeMirror = factory());
})(this, function() {
'use strict';
var d = $(document); //window object
var h = $("head"); //head object
var drag = null; //reference to the current grip that is being dragged
var tables = {}; //object of the already processed tables (table.id as key)
var count = 0; //internal count to create unique IDs when needed.
//common strings for packing
var ID = "id";
var PX = "px";
var SIGNATURE ="JColResizer";
var FLEX = "JCLRFlex";
//short-cuts
var I = parseInt;
var M = Math;
var ie = navigator.userAgent.indexOf('Trident/4.0')>0;
var S;
try{S = sessionStorage;}catch(e){} //Firefox crashes when executed as local file system
//append required CSS rules
h.append("<style type='text/css'> .JColResizer{table-layout:fixed;} .JColResizer > tbody > tr > td, .JColResizer > tbody > tr > th{overflow:hidden;padding-left:0!important; padding-right:0!important;} .JCLRgrips{ height:0px; position:relative;} .JCLRgrip{margin-left:-5px; position:absolute; z-index:5; } .JCLRgrip .JColResizer{position:absolute;background-color:red;filter:alpha(opacity=1);opacity:0;width:10px;height:100%;cursor: e-resize;top:0px} .JCLRLastGrip{position:absolute; width:1px; } .JCLRgripDrag{ border-left:1px dotted black; } .JCLRFlex{width:auto!important;} .JCLRgrip.JCLRdisabledGrip .JColResizer{cursor:default; display:none;}</style>");
/**
* Function to allow column resizing for table objects. It is the starting point to apply the plugin.
* @param {DOM node} tb - reference to the DOM table object to be enhanced
* @param {Object} options - some customization values
*/
var init = function( tb, options){
var t = $(tb); //the table object is wrapped
t.opt = options; //each table has its own options available at anytime
t.mode = options.resizeMode; //shortcuts
t.dc = t.opt.disabledColumns;
if(t.opt.disable) return destroy(t); //the user is asking to destroy a previously colResized table
var id = t.id = t.attr(ID) || SIGNATURE+count++; //its id is obtained, if null new one is generated
t.p = t.opt.postbackSafe; //short-cut to detect postback safe
if(!t.is("table") || tables[id] && !t.opt.partialRefresh) return; //if the object is not a table or if it was already processed then it is ignored.
if (t.opt.hoverCursor !== 'e-resize') h.append("<style type='text/css'>.JCLRgrip .JColResizer:hover{cursor:"+ t.opt.hoverCursor +"!important}</style>"); //if hoverCursor has been set, append the style
t.addClass(SIGNATURE).attr(ID, id).before('<div class="JCLRgrips"/>'); //the grips container object is added. Signature class forces table rendering in fixed-layout mode to prevent column's min-width
t.g = []; t.c = []; t.w = t.width(); t.gc = t.prev(); t.f=t.opt.fixed; //t.c and t.g are arrays of columns and grips respectively
if(options.marginLeft) t.gc.css("marginLeft", options.marginLeft); //if the table contains margins, it must be specified
if(options.marginRight) t.gc.css("marginRight", options.marginRight); //since there is no (direct) way to obtain margin values in its original units (%, em, ...)
t.cs = I(ie? tb.cellSpacing || tb.currentStyle.borderSpacing :t.css('border-spacing'))||2; //table cellspacing (not even jQuery is fully cross-browser)
t.b = I(ie? tb.border || tb.currentStyle.borderLeftWidth :t.css('border-left-width'))||1; //outer border width (again cross-browser issues)
// if(!(tb.style.width || tb.width)) t.width(t.width()); //I am not an IE fan at all, but it is a pity that only IE has the currentStyle attribute working as expected. For this reason I can not check easily if the table has an explicit width or if it is rendered as "auto"
tables[id] = t; //the table object is stored using its id as key
createGrips(t); //grips are created
};
/**
* This function allows to remove any enhancements performed by this plugin on a previously processed table.
* @param {jQuery ref} t - table object
*/
var destroy = function(t){
var id=t.attr(ID), t=tables[id]; //its table object is found
if(!t||!t.is("table")) return; //if none, then it wasn't processed
t.removeClass(SIGNATURE+" "+FLEX).gc.remove(); //class and grips are removed
delete tables[id]; //clean up data
};
/**
* Function to create all the grips associated with the table given by parameters
* @param {jQuery ref} t - table object
*/
var createGrips = function(t){
var th = t.find(">thead>tr:first>th,>thead>tr:first>td"); //table headers are obtained
if(!th.length) th = t.find(">tbody>tr:first>th,>tr:first>th,>tbody>tr:first>td, >tr:first>td"); //but headers can also be included in different ways
th = th.filter(":visible"); //filter invisible columns
t.cg = t.find("col"); //a table can also contain a colgroup with col elements
t.ln = th.length; //table length is stored
if(t.p && S && S[t.id])memento(t,th); //if 'postbackSafe' is enabled and there is data for the current table, its coloumn layout is restored
th.each(function(i){ //iterate through the table column headers
var c = $(this); //jquery wrap for the current column
var dc = t.dc.indexOf(i)!=-1; //is this a disabled column?
var g = $(t.gc.append('<div class="JCLRgrip"></div>')[0].lastChild); //add the visual node to be used as grip
g.append(dc ? "": t.opt.gripInnerHtml).append('<div class="'+SIGNATURE+'"></div>');
if(i == t.ln-1){ //if the current grip is the las one
g.addClass("JCLRLastGrip"); //add a different css class to stlye it in a different way if needed
if(t.f) g.html(""); //if the table resizing mode is set to fixed, the last grip is removed since table with can not change
}
g.bind('touchstart mousedown', onGripMouseDown); //bind the mousedown event to start dragging
if (!dc){
//if normal column bind the mousedown event to start dragging, if disabled then apply its css class
g.removeClass('JCLRdisabledGrip').bind('touchstart mousedown', onGripMouseDown);
}else{
g.addClass('JCLRdisabledGrip');
}
g.t = t; g.i = i; g.c = c; c.w =c.width(); //some values are stored in the grip's node data as shortcut
t.g.push(g); t.c.push(c); //the current grip and column are added to its table object
c.width(c.w).removeAttr("width"); //the width of the column is converted into pixel-based measurements
g.data(SIGNATURE, {i:i, t:t.attr(ID), last: i == t.ln-1}); //grip index and its table name are stored in the HTML
});
t.cg.removeAttr("width"); //remove the width attribute from elements in the colgroup
t.find('td, th').not(th).not('table th, table td').each(function(){
$(this).removeAttr('width'); //the width attribute is removed from all table cells which are not nested in other tables and dont belong to the header
});
if(!t.f){
t.removeAttr('width').addClass(FLEX); //if not fixed, let the table grow as needed
}
syncGrips(t); //the grips are positioned according to the current table layout
//there is a small problem, some cells in the table could contain dimension values interfering with the
//width value set by this plugin. Those values are removed
};
/**
* Function to allow the persistence of columns dimensions after a browser postback. It is based in
* the HTML5 sessionStorage object, which can be emulated for older browsers using sessionstorage.js
* @param {jQuery ref} t - table object
* @param {jQuery ref} th - reference to the first row elements (only set in deserialization)
*/
var memento = function(t, th){
var w,m=0,i=0,aux =[],tw;
if(th){ //in deserialization mode (after a postback)
t.cg.removeAttr("width");
if(t.opt.flush){ S[t.id] =""; return;} //if flush is activated, stored data is removed
w = S[t.id].split(";"); //column widths is obtained
tw = w[t.ln+1];
if(!t.f && tw){ //if not fixed and table width data available its size is restored
t.width(tw*=1);
if(t.opt.overflow) { //if overfolw flag is set, restore table width also as table min-width
t.css('min-width', tw + PX);
t.w = tw;
}
}
for(;i<t.ln;i++){ //for each column
aux.push(100*w[i]/w[t.ln]+"%"); //width is stored in an array since it will be required again a couple of lines ahead
th.eq(i).css("width", aux[i] ); //each column width in % is restored
}
for(i=0;i<t.ln;i++)
t.cg.eq(i).css("width", aux[i]); //this code is required in order to create an inline CSS rule with higher precedence than an existing CSS class in the "col" elements
}else{ //in serialization mode (after resizing a column)
S[t.id] =""; //clean up previous data
for(;i < t.c.length; i++){ //iterate through columns
w = t.c[i].width(); //width is obtained
S[t.id] += w+";"; //width is appended to the sessionStorage object using ID as key
m+=w; //carriage is updated to obtain the full size used by columns
}
S[t.id]+=m; //the last item of the serialized string is the table's active area (width),
//to be able to obtain % width value of each columns while deserializing
if(!t.f) S[t.id] += ";"+t.width(); //if not fixed, table width is stored
}
};
/**
* Function that places each grip in the correct position according to the current table layout
* @param {jQuery ref} t - table object
*/
var syncGrips = function (t){
t.gc.width(t.w); //the grip's container width is updated
for(var i=0; i<t.ln; i++){ //for each column
var c = t.c[i];
t.g[i].css({ //height and position of the grip is updated according to the table layout
left: c.offset().left - t.offset().left + c.outerWidth(false) + t.cs / 2 + PX,
height: t.opt.headerOnly? t.c[0].outerHeight(false) : t.outerHeight(false)
});
}
};
/**
* This function updates column's width according to the horizontal position increment of the grip being
* dragged. The function can be called while dragging if liveDragging is enabled and also from the onGripDragOver
* event handler to synchronize grip's position with their related columns.
* @param {jQuery ref} t - table object
* @param {number} i - index of the grip being dragged
* @param {bool} isOver - to identify when the function is being called from the onGripDragOver event
*/
var syncCols = function(t,i,isOver){
var inc = drag.x-drag.l, c = t.c[i], c2 = t.c[i+1];
var w = c.w + inc; var w2= c2.w- inc; //their new width is obtained
c.width( w + PX);
t.cg.eq(i).width( w + PX);
if(t.f){ //if fixed mode
c2.width(w2 + PX);
t.cg.eq(i+1).width( w2 + PX);
}else if(t.opt.overflow) { //if overflow is set, incriment min-width to force overflow
t.css('min-width', t.w + inc);
}
if(isOver){
c.w=w;
c2.w= t.f ? w2 : c2.w;
}
};
/**
* This function updates all columns width according to its real width. It must be taken into account that the
* sum of all columns can exceed the table width in some cases (if fixed is set to false and table has some kind
* of max-width).
* @param {jQuery ref} t - table object
*/
var applyBounds = function(t){
var w = $.map(t.c, function(c){ //obtain real widths
return c.width();
});
t.width(t.w = t.width()).removeClass(FLEX); //prevent table width changes
$.each(t.c, function(i,c){
c.width(w[i]).w = w[i]; //set column widths applying bounds (table's max-width)
});
t.addClass(FLEX); //allow table width changes
};
/**
* Event handler used while dragging a grip. It checks if the next grip's position is valid and updates it.
* @param {event} e - mousemove event binded to the window object
*/
var onGripDrag = function(e){
if(!drag) return;
var t = drag.t; //table object reference
var oe = e.originalEvent.touches;
var ox = oe ? oe[0].pageX : e.pageX; //original position (touch or mouse)
var x = ox - drag.ox + drag.l; //next position according to horizontal mouse position increment
var mw = t.opt.minWidth, i = drag.i ; //cell's min width
var l = t.cs*1.5 + mw + t.b;
var last = i == t.ln-1; //check if it is the last column's grip (usually hidden)
var min = i? t.g[i-1].position().left+t.cs+mw: l; //min position according to the contiguous cells
var max = t.f ? //fixed mode?
i == t.ln-1?
t.w-l:
t.g[i+1].position().left-t.cs-mw:
Infinity; //max position according to the contiguous cells
x = M.max(min, M.min(max, x)); //apply bounding
drag.x = x; drag.css("left", x + PX); //apply position increment
if(last){ //if it is the last grip
var c = t.c[drag.i]; //width of the last column is obtained
drag.w = c.w + x- drag.l;
}
if(t.opt.liveDrag){ //if liveDrag is enabled
if(last){
c.width(drag.w);
if(!t.f && t.opt.overflow){ //if overflow is set, incriment min-width to force overflow
t.css('min-width', t.w + x - drag.l);
}else {
t.w = t.width();
}
}else{
syncCols(t,i); //columns are synchronized
}
syncGrips(t);
var cb = t.opt.onDrag; //check if there is an onDrag callback
if (cb) { e.currentTarget = t[0]; cb(e); } //if any, it is fired
}
return false; //prevent text selection while dragging
};
/**
* Event handler fired when the dragging is over, updating table layout
* @param {event} e - grip's drag over event
*/
var onGripDragOver = function(e){
d.unbind('touchend.'+SIGNATURE+' mouseup.'+SIGNATURE).unbind('touchmove.'+SIGNATURE+' mousemove.'+SIGNATURE);
$("head :last-child").remove(); //remove the dragging cursor style
if(!drag) return;
drag.removeClass(drag.t.opt.draggingClass); //remove the grip's dragging css-class
if (!(drag.x - drag.l == 0)) {
var t = drag.t;
var cb = t.opt.onResize; //get some values
var i = drag.i; //column index
var last = i == t.ln-1; //check if it is the last column's grip (usually hidden)
var c = t.g[i].c; //the column being dragged
if(last){
c.width(drag.w);
c.w = drag.w;
}else{
syncCols(t, i, true); //the columns are updated
}
if(!t.f) applyBounds(t); //if not fixed mode, then apply bounds to obtain real width values
syncGrips(t); //the grips are updated
if (cb) { e.currentTarget = t[0]; cb(e); } //if there is a callback function, it is fired
if(t.p && S) memento(t); //if postbackSafe is enabled and there is sessionStorage support, the new layout is serialized and stored
}
drag = null; //since the grip's dragging is over
};
/**
* Event handler fired when the grip's dragging is about to start. Its main goal is to set up events
* and store some values used while dragging.
* @param {event} e - grip's mousedown event
*/
var onGripMouseDown = function(e){
var o = $(this).data(SIGNATURE); //retrieve grip's data
var t = tables[o.t], g = t.g[o.i]; //shortcuts for the table and grip objects
var oe = e.originalEvent.touches; //touch or mouse event?
g.ox = oe? oe[0].pageX: e.pageX; //the initial position is kept
g.l = g.position().left;
g.x = g.l;
d.bind('touchmove.'+SIGNATURE+' mousemove.'+SIGNATURE, onGripDrag ).bind('touchend.'+SIGNATURE+' mouseup.'+SIGNATURE, onGripDragOver); //mousemove and mouseup events are bound
h.append("<style type='text/css'>*{cursor:"+ t.opt.dragCursor +"!important}</style>"); //change the mouse cursor
g.addClass(t.opt.draggingClass); //add the dragging class (to allow some visual feedback)
drag = g; //the current grip is stored as the current dragging object
if(t.c[o.i].l) for(var i=0,c; i<t.ln; i++){ c=t.c[i]; c.l = false; c.w= c.width(); } //if the colum is locked (after browser resize), then c.w must be updated
return false; //prevent text selection
};
/**
* Event handler fired when the browser is resized. The main purpose of this function is to update
* table layout according to the browser's size synchronizing related grips
*/
var onResize = function(){
for(var t in tables){
if( tables.hasOwnProperty( t ) ) {
t = tables[t];
var i, mw=0;
t.removeClass(SIGNATURE); //firefox doesn't like layout-fixed in some cases
if (t.f) { //in fixed mode
t.w = t.width(); //its new width is kept
for(i=0; i<t.ln; i++) mw+= t.c[i].w;
//cell rendering is not as trivial as it might seem, and it is slightly different for
//each browser. In the beginning i had a big switch for each browser, but since the code
//was extremely ugly now I use a different approach with several re-flows. This works
//pretty well but it's a bit slower. For now, lets keep things simple...
for(i=0; i<t.ln; i++) t.c[i].css("width", M.round(1000*t.c[i].w/mw)/10 + "%").l=true;
//c.l locks the column, telling us that its c.w is outdated
}else{ //in non fixed-sized tables
applyBounds(t); //apply the new bounds
if(t.mode == 'flex' && t.p && S){ //if postbackSafe is enabled and there is sessionStorage support,
memento(t); //the new layout is serialized and stored for 'flex' tables
}
}
syncGrips(t.addClass(SIGNATURE));
}
}
};
//bind resize event, to update grips position
$(window).bind('resize.'+SIGNATURE, onResize);
/**
* The plugin is added to the jQuery library
* @param {Object} options - an object that holds some basic customization values
*/
$.fn.extend({
colResizable: function(options) {
var defaults = {
//attributes:
resizeMode: 'fit', //mode can be 'fit', 'flex' or 'overflow'
draggingClass: 'JCLRgripDrag', //css-class used when a grip is being dragged (for visual feedback purposes)
gripInnerHtml: '', //if it is required to use a custom grip it can be done using some custom HTML
liveDrag: false, //enables table-layout updating while dragging
minWidth: 15, //minimum width value in pixels allowed for a column
headerOnly: false, //specifies that the size of the the column resizing anchors will be bounded to the size of the first row
hoverCursor: "e-resize", //cursor to be used on grip hover
dragCursor: "e-resize", //cursor to be used while dragging
postbackSafe: false, //when it is enabled, table layout can persist after postback or page refresh. It requires browsers with sessionStorage support (it can be emulated with sessionStorage.js).
flush: false, //when postbakSafe is enabled, and it is required to prevent layout restoration after postback, 'flush' will remove its associated layout data
marginLeft: null, //in case the table contains any margins, colResizable needs to know the values used, e.g. "10%", "15em", "5px" ...
marginRight: null, //in case the table contains any margins, colResizable needs to know the values used, e.g. "10%", "15em", "5px" ...
disable: false, //disables all the enhancements performed in a previously colResized table
partialRefresh: false, //can be used in combination with postbackSafe when the table is inside of an updatePanel,
disabledColumns: [], //column indexes to be excluded
//events:
onDrag: null, //callback function to be fired during the column resizing process if liveDrag is enabled
onResize: null //callback function fired when the dragging process is over
}
var options = $.extend(defaults, options);
//since now there are 3 different ways of resizing columns, I changed the external interface to make it clear
//calling it 'resizeMode' but also to remove the "fixed" attribute which was confusing for many people
options.fixed = true;
options.overflow = false;
switch(options.resizeMode){
case 'flex': options.fixed = false; break;
case 'overflow': options.fixed = false; options.overflow = true; break;
}
return this.each(function() {
init( this, options);
});
}
});
});

View File

@ -32,9 +32,8 @@ export default [
_source: {
title: 'Top 5 rules',
visState:
'{"title":"Top 5 rules","type":"table","params":{"perPage":10,"showPartialRows":false,"showMetricsAtAllLevels":false,"sort":{"columnIndex":null,"direction":null},"showTotal":false,"totalFunc":"sum"},"aggs":[{"id":"1","enabled":true,"type":"count","schema":"metric","params":{}},{"id":"2","enabled":true,"type":"terms","schema":"bucket","params":{"field":"rule.id","size":3,"order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","missingBucket":false,"missingBucketLabel":"Missing","customLabel":"Rule"}},{"id":"3","enabled":true,"type":"terms","schema":"bucket","params":{"field":"rule.description","size":5,"order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","missingBucket":false,"missingBucketLabel":"Missing","customLabel":"Description"}}]}',
uiStateJSON:
'{"vis":{"params":{"sort":{"columnIndex":null,"direction":null}}}}',
'{"title":"Export rule distr","type":"pie","params":{"type":"pie","addTooltip":true,"addLegend":true,"legendPosition":"right","isDonut":true,"labels":{"show":false,"values":true,"last_level":true,"truncate":100}},"aggs":[{"id":"1","enabled":true,"type":"sum","schema":"metric","params":{"field":"rule.level"}},{"id":"2","enabled":true,"type":"terms","schema":"segment","params":{"field":"rule.description","size":5,"order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","missingBucket":false,"missingBucketLabel":"Missing"}}]}',
uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
@ -91,6 +90,153 @@ export default [
}
}
},
{
_id: 'Wazuh-App-Agents-FIM-Files-added',
_source: {
title: 'Files added',
visState:
'{"title":"Files added","type":"pie","params":{"type":"pie","addTooltip":true,"addLegend":true,"legendPosition":"right","isDonut":true},"aggs":[{"id":"1","enabled":true,"type":"count","schema":"metric","params":{}},{"id":"2","enabled":true,"type":"terms","schema":"segment","params":{"field":"syscheck.path","size":5,"order":"desc","orderBy":"1"}}]}',
uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
searchSourceJSON: `{
"index":"wazuh-alerts",
"filter":[
{
"meta": {
"index": "wazuh-alerts",
"type": "phrases",
"key": "syscheck.event",
"value": "added, readded",
"params": [
"added",
"readded"
],
"negate": false,
"disabled": false,
"alias": null
},
"query": {
"bool": {
"should": [
{
"match_phrase": {
"syscheck.event": "added"
}
},
{
"match_phrase": {
"syscheck.event": "readded"
}
}
],
"minimum_should_match": 1
}
},
"$state": {
"store": "appState"
}
}
],
"query":{"query":"","language":"lucene"}
}`
}
},
_type: 'visualization'
},
{
_id: 'Wazuh-App-Agents-FIM-Files-modified',
_source: {
title: 'Files modified',
visState:
'{"title":"Files modified","type":"pie","params":{"type":"pie","addTooltip":true,"addLegend":true,"legendPosition":"right","isDonut":true},"aggs":[{"id":"1","enabled":true,"type":"count","schema":"metric","params":{}},{"id":"2","enabled":true,"type":"terms","schema":"segment","params":{"field":"syscheck.path","size":5,"order":"desc","orderBy":"1"}}]}',
uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
searchSourceJSON: `{
"index":"wazuh-alerts",
"filter":[
{
"meta": {
"index": "wazuh-alerts",
"negate": false,
"disabled": false,
"alias": null,
"type": "phrase",
"key": "syscheck.event",
"value": "modified",
"params": {
"query": "modified",
"type": "phrase"
}
},
"query": {
"match": {
"syscheck.event": {
"query": "modified",
"type": "phrase"
}
}
},
"$state": {
"store": "appState"
}
}
],
"query":{"query":"","language":"lucene"}
}`
}
},
_type: 'visualization'
},
{
_id: 'Wazuh-App-Agents-FIM-Files-deleted',
_source: {
title: 'Files deleted',
visState:
'{"title":"Files deleted","type":"pie","params":{"type":"pie","addTooltip":true,"addLegend":true,"legendPosition":"right","isDonut":true},"aggs":[{"id":"1","enabled":true,"type":"count","schema":"metric","params":{}},{"id":"2","enabled":true,"type":"terms","schema":"segment","params":{"field":"syscheck.path","size":5,"order":"desc","orderBy":"1"}}]}',
uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
searchSourceJSON: `{
"index":"wazuh-alerts",
"filter":[
{
"meta": {
"index": "wazuh-alerts",
"negate": false,
"disabled": false,
"alias": null,
"type": "phrase",
"key": "syscheck.event",
"value": "deleted",
"params": {
"query": "deleted",
"type": "phrase"
}
},
"query": {
"match": {
"syscheck.event": {
"query": "deleted",
"type": "phrase"
}
}
},
"$state": {
"store": "appState"
}
}
],
"query":{"query":"","language":"lucene"}
}`
}
},
_type: 'visualization'
},
{
_id: 'Wazuh-App-Overview-FIM-added',
_type: 'visualization',

View File

@ -204,6 +204,22 @@ export default [
},
_type: 'visualization'
},
{
_id: 'Wazuh-App-Overview-General-Top-10-agent-alert',
_source: {
title: 'Top 10 Agent alerts',
visState:
'{"title":"Top 10 Agent alerts","type":"metrics","params":{"id":"61ca57f0-469d-11e7-af02-69e470af7417","type":"timeseries","series":[{"id":"0eba6ef0-41a1-11e9-b2ca-a3f8ee4d0e71","color":"rgba(0,156,224,1)","split_mode":"terms","metrics":[{"id":"0eba6ef1-41a1-11e9-b2ca-a3f8ee4d0e71","type":"count"}],"separate_axis":0,"axis_position":"right","formatter":"number","chart_type":"line","line_width":1,"point_size":1,"fill":0.5,"stacked":"none","terms_field":"agent.name","terms_size":"10"}],"time_field":"@timestamp","index_pattern":"wazuh-alerts","interval":"auto","axis_position":"left","axis_formatter":"number","axis_scale":"normal","show_legend":1,"show_grid":1,"legend_position":"left"},"aggs":[]}',
uiStateJSON: '{}',
description: '',
version: 1,
kibanaSavedObjectMeta: {
searchSourceJSON:
'{"index":"wazuh-alerts","filter":[],"query":{"query":"","language":"lucene"}}'
}
},
_type: 'visualization'
},
{
_id: 'Wazuh-App-Overview-General-Alert-level-evolution',
_source: {
@ -241,7 +257,7 @@ export default [
_source: {
title: 'Top 10 rule groups',
visState:
'{"title":"Top 10 rule groups","type":"tagcloud","params":{"scale":"linear","orientation":"single","minFontSize":11,"maxFontSize":24,"showLabel":false},"aggs":[{"id":"1","enabled":true,"type":"count","schema":"metric","params":{}},{"id":"2","enabled":true,"type":"terms","schema":"segment","params":{"field":"rule.groups","size":10,"order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","missingBucket":false,"missingBucketLabel":"Missing"}}]}',
'{"title":"Top 10 rule groups","type":"pie","params":{"scale":"linear","orientation":"single","minFontSize":11,"maxFontSize":24,"showLabel":false},"aggs":[{"id":"1","enabled":true,"type":"count","schema":"metric","params":{}},{"id":"2","enabled":true,"type":"terms","schema":"segment","params":{"field":"rule.groups","size":10,"order":"desc","orderBy":"1","otherBucket":false,"otherBucketLabel":"Other","missingBucket":false,"missingBucketLabel":"Missing"}}]}',
uiStateJSON: '{}',
description: '',
version: 1,