mirror of
https://github.com/valitydev/wazuh-kibana-app.git
synced 2024-11-07 10:18:57 +00:00
Fix tables resizing behavior
This commit is contained in:
parent
c0c21a8b5f
commit
9ca4affd26
@ -26,7 +26,7 @@ import { checkGap } from './lib/check-gap';
|
||||
|
||||
const app = uiModules.get('app/wazuh', []);
|
||||
|
||||
app.directive('wzTable', function() {
|
||||
app.directive('wzTable', function () {
|
||||
return {
|
||||
restrict: 'E',
|
||||
scope: {
|
||||
@ -169,7 +169,7 @@ app.directive('wzTable', function() {
|
||||
if ($scope.customColumns) {
|
||||
setTimeout(() => {
|
||||
$scope.setColResizable();
|
||||
}, 100);
|
||||
}, 1);
|
||||
}
|
||||
return;
|
||||
} catch (error) {
|
||||
@ -267,6 +267,7 @@ app.directive('wzTable', function() {
|
||||
* On controller loads
|
||||
*/
|
||||
const init = async (skipFetching = false) => {
|
||||
$scope.wazuh_table_resizing = true;
|
||||
await initTable(
|
||||
$scope,
|
||||
fetch,
|
||||
@ -296,7 +297,7 @@ app.directive('wzTable', function() {
|
||||
$scope.prevPage = () => pagination.prevPage($scope);
|
||||
$scope.nextPage = async currentPage =>
|
||||
pagination.nextPage(currentPage, $scope, errorHandler, fetch);
|
||||
$scope.setPage = function(page = false) {
|
||||
$scope.setPage = function (page = false) {
|
||||
$scope.currentPage = page || this.n;
|
||||
$scope.nextPage(this.n).then(() => {
|
||||
if (page) {
|
||||
@ -498,8 +499,10 @@ app.directive('wzTable', function() {
|
||||
}
|
||||
setTimeout(() => {
|
||||
$scope.setColResizable();
|
||||
}, 100);
|
||||
}, 50);
|
||||
$scope.$applyAsync();
|
||||
} else {
|
||||
$scope.wazuh_table_resizing = false;
|
||||
}
|
||||
};
|
||||
|
||||
@ -516,6 +519,9 @@ app.directive('wzTable', function() {
|
||||
};
|
||||
|
||||
$scope.setColResizable = () => {
|
||||
setTimeout(() => {
|
||||
$scope.wazuh_table_resizing = false;
|
||||
}, 1);
|
||||
$(`#table${$scope.scapepath}`).colResizable({
|
||||
liveDrag: true,
|
||||
minWidth: 78,
|
||||
|
@ -1,366 +1,372 @@
|
||||
<div layout="row" class="md-padding" ng-show="wazuh_table_loading">
|
||||
<div layout="row" class="md-padding" ng-show="wazuh_table_loading || wazuh_table_resizing">
|
||||
<div class='uil-ring-css'>
|
||||
<div></div>
|
||||
</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-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 ng-show="!wazuh_table_resizing">
|
||||
<div ng-if="customColumns" layout="row" ng-show="!error && !wazuh_table_loading && items.length" class="columns-bar"
|
||||
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: 28px;" ng-click="showColumns = !showColumns" tooltip="Columns"><i
|
||||
class="fa fa-fw fa-gear"></i></span>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span class="wz-text-link" style="line-height: 28px;" ng-click="showColumns = !showColumns" tooltip="Columns"><i
|
||||
class="fa fa-fw fa-gear"></i></span>
|
||||
</div>
|
||||
|
||||
<div ng-if="!wazuh_table_loading && !isPolicyMonitoring() && !isSyscheck()" ng-show="!error && items.length">
|
||||
<table class="table table-striped table-condensed table-hover no-margin-bottom" ng-class="customColumns ? 'table-resizable' : ''"
|
||||
style="table-layout: fixed !important" id="table{{scapepath}}">
|
||||
<thead class="wz-text-bold">
|
||||
<th ng-repeat="key in keys" class="wz-text-left" ng-style="key.width && {'width':key.width}">
|
||||
<span ng-class="{ 'cursor-pointer' : !key.nosortable}" ng-click="!key.nosortable && sort(key)">
|
||||
{{ 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'"
|
||||
aria-hidden="true"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th ng-if="(path === '/agents' || (path === '/agents/groups' && adminMode) || (isLookingGroup() && adminMode)
|
||||
<div ng-if="!wazuh_table_loading && !isPolicyMonitoring() && !isSyscheck()" ng-show="!error && items.length">
|
||||
<table class="table table-striped table-condensed table-hover no-margin-bottom" ng-class="customColumns ? 'table-resizable' : ''"
|
||||
style="table-layout: fixed !important" id="table{{scapepath}}">
|
||||
<thead class="wz-text-bold">
|
||||
<th ng-repeat="key in keys" class="wz-text-left" ng-style="key.width && {'width':key.width}">
|
||||
<span ng-class="{ 'cursor-pointer' : !key.nosortable}" ng-click="!key.nosortable && sort(key)">
|
||||
{{ 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'"
|
||||
aria-hidden="true"></i>
|
||||
</span>
|
||||
</th>
|
||||
<th ng-if="(path === '/agents' || (path === '/agents/groups' && adminMode) || (isLookingGroup() && adminMode)
|
||||
|| path === '/rules/files' || path === '/decoders/files' || path === '/lists/files')"
|
||||
class="wz-text-left" ng-class="{'col-lg-2': path !== '/agents', 'col-lg-1': path === '/agents'}">Actions</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-class="allowClick ? 'cursor-pointer' : ''" class="wz-word-wrap" ng-repeat="item in pagedItems[currentPage] | filter:{item:'!'}"
|
||||
ng-click="clickAction(item)">
|
||||
<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>
|
||||
<td ng-if="path === '/agents'" ng-click="$event.stopPropagation()" class="cursor-default action-btn-td">
|
||||
<i ng-click="clickAction(item, 'discover'); $event.stopPropagation()" class="fa fa-fw fa-compass cursor-pointer"
|
||||
tooltip="Open Discover panel for this agent" tooltip-placement="left" aria-hidden="true"></i>
|
||||
<i ng-click="clickAction(item, 'configuration'); $event.stopPropagation()" class="fa fa-fw fa-wrench cursor-pointer"
|
||||
tooltip="Open configuration for this agent" tooltip-placement="left" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td ng-if="path === '/agents/groups' && adminMode" ng-click="$event.stopPropagation()" class="cursor-default action-btn-td">
|
||||
<i ng-if="removingGroup !== item.name && item.name !== 'default'" ng-click="showConfirmRemoveGroup($event, item); $event.stopPropagation()"
|
||||
class="fa fa-fw fa-trash cursor-pointer" tooltip="Remove this group" tooltip-placement="left"
|
||||
aria-hidden="true"></i>
|
||||
<i ng-if="removingGroup !== item.name" ng-click="editGroup(item); $event.stopPropagation()" class="fa fa-fw fa-pencil cursor-pointer"
|
||||
tooltip="Edit this group configuration" tooltip-placement="left" aria-hidden="true"></i>
|
||||
<div ng-if="removingGroup === item.name && item.name !== 'default'" class="confirmEmbedBubble">
|
||||
<div layout="row">
|
||||
<span class="font-size-12 wz-padding-left-8">Group <b>{{item.name}}</b> will be
|
||||
removed</span>
|
||||
</div>
|
||||
<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 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>
|
||||
</td>
|
||||
<td ng-if="isLookingGroup() && adminMode" ng-click="$event.stopPropagation()"
|
||||
class="cursor-default action-btn-td">
|
||||
<i ng-if="removingAgent !== item.id && adminMode" ng-click="showConfirmRemoveAgentFromGroup($event, item); $event.stopPropagation()"
|
||||
class="fa fa-fw fa-trash cursor-pointer" tooltip="Remove this agent from the group"
|
||||
tooltip-placement="left" aria-hidden="true"></i>
|
||||
<div ng-if="removingAgent === item.id" class="confirmEmbedBubble">
|
||||
<div layout="row">
|
||||
<span class="font-size-12 wz-padding-left-8">Agent <b>{{item.id}}</b> will be removed from
|
||||
this group</span>
|
||||
</div>
|
||||
<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 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>
|
||||
</td>
|
||||
<td ng-if="path === '/rules/files' || path === '/decoders/files' || path === '/lists/files'" ng-click="$event.stopPropagation()"
|
||||
class="cursor-default action-btn-td">
|
||||
<i ng-if="((item.name && removingFile !== item.name) || (item.file && removingFile !== item.file)) && adminMode && path !== '/lists/files'"
|
||||
ng-click="editFile(item, path); $event.stopPropagation()" class="fa fa-fw fa-pencil cursor-pointer"
|
||||
tooltip="Edit this file" tooltip-placement="left" aria-hidden="true"></i>
|
||||
<i ng-if="((item.name && removingFile !== item.name) || (item.file && removingFile !== item.file)) && adminMode"
|
||||
ng-click="showConfirmRemoveFile($event, item, path); $event.stopPropagation()" class="fa fa-fw fa-trash cursor-pointer"
|
||||
tooltip="Delete this file" tooltip-placement="right" aria-hidden="true"></i>
|
||||
<div ng-if="(item.name && removingFile === item.name) || (item.file && removingFile === item.file)"
|
||||
class="confirmEmbedBubble">
|
||||
<div layout="row">
|
||||
<span class="font-size-12 wz-padding-left-8">{{path === '/lists/files' ? 'List'
|
||||
: 'File'}} <b>{{path === '/lists/files' ? item.name
|
||||
: item.file}}</b> will be deleted</span>
|
||||
</div>
|
||||
<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 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>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<td colspan="{{ (path === '/agents' || (path === '/agents/groups' && adminMode) || (isLookingGroup() && adminMode) ||
|
||||
path === '/rules/files' || path === '/decoders/files' || path === '/lists/files') ? keys.length + 1 : 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 ng-if="!wazuh_table_loading && isPolicyMonitoring()" ng-show="!error && items.length">
|
||||
<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="table{{scapepath}}">
|
||||
<thead class="wz-text-bold">
|
||||
<th ng-repeat="key in keys" class="wz-text-left" ng-style="key.width && {'width':key.width}">
|
||||
<span ng-class="{ 'cursor-pointer' : !key.nosortable }" 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>
|
||||
</span>
|
||||
</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>
|
||||
<span ng-show="key === 'result'" class="no-wrap">
|
||||
<p class="round status little" ng-class="(item.result === 'passed') ? 'teal' : 'red'">
|
||||
</p>
|
||||
class="wz-text-left" ng-class="{'col-lg-2': path !== '/agents', 'col-lg-1': path === '/agents'}">Actions</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-class="allowClick ? 'cursor-pointer' : ''" class="wz-word-wrap" ng-repeat="item in pagedItems[currentPage] | filter:{item:'!'}"
|
||||
ng-click="clickAction(item)">
|
||||
<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>
|
||||
{{
|
||||
parseValue(key,item)
|
||||
}}
|
||||
</span>
|
||||
<md-tooltip ng-show="item.showTooltip[$index]" md-direction="bottom" class="wz-tooltip">
|
||||
{{ parseValue(key,item) }}
|
||||
</md-tooltip>
|
||||
<md-tooltip ng-show="item.showTooltip[$index]" md-direction="bottom" class="wz-tooltip">
|
||||
{{ parseValue(key,item) }}
|
||||
</md-tooltip>
|
||||
</div>
|
||||
</td>
|
||||
<td ng-if="path === '/agents'" ng-click="$event.stopPropagation()" class="cursor-default action-btn-td">
|
||||
<i ng-click="clickAction(item, 'discover'); $event.stopPropagation()" class="fa fa-fw fa-compass cursor-pointer"
|
||||
tooltip="Open Discover panel for this agent" tooltip-placement="left" aria-hidden="true"></i>
|
||||
<i ng-click="clickAction(item, 'configuration'); $event.stopPropagation()" class="fa fa-fw fa-wrench cursor-pointer"
|
||||
tooltip="Open configuration for this agent" tooltip-placement="left" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td ng-if="path === '/agents/groups' && adminMode" ng-click="$event.stopPropagation()" class="cursor-default action-btn-td">
|
||||
<i ng-if="removingGroup !== item.name && item.name !== 'default'" ng-click="showConfirmRemoveGroup($event, item); $event.stopPropagation()"
|
||||
class="fa fa-fw fa-trash cursor-pointer" tooltip="Remove this group" tooltip-placement="left"
|
||||
aria-hidden="true"></i>
|
||||
<i ng-if="removingGroup !== item.name" ng-click="editGroup(item); $event.stopPropagation()"
|
||||
class="fa fa-fw fa-pencil cursor-pointer" tooltip="Edit this group configuration"
|
||||
tooltip-placement="left" aria-hidden="true"></i>
|
||||
<div ng-if="removingGroup === item.name && item.name !== 'default'" class="confirmEmbedBubble">
|
||||
<div layout="row">
|
||||
<span class="font-size-12 wz-padding-left-8">Group <b>{{item.name}}</b> will be
|
||||
removed</span>
|
||||
</div>
|
||||
<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 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>
|
||||
</td>
|
||||
<td ng-if="isLookingGroup() && adminMode" ng-click="$event.stopPropagation()" class="cursor-default action-btn-td">
|
||||
<i ng-if="removingAgent !== item.id && adminMode" ng-click="showConfirmRemoveAgentFromGroup($event, item); $event.stopPropagation()"
|
||||
class="fa fa-fw fa-trash cursor-pointer" tooltip="Remove this agent from the group"
|
||||
tooltip-placement="left" aria-hidden="true"></i>
|
||||
<div ng-if="removingAgent === item.id" class="confirmEmbedBubble">
|
||||
<div layout="row">
|
||||
<span class="font-size-12 wz-padding-left-8">Agent <b>{{item.id}}</b> will be removed
|
||||
from
|
||||
this group</span>
|
||||
</div>
|
||||
<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 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>
|
||||
</td>
|
||||
<td ng-if="path === '/rules/files' || path === '/decoders/files' || path === '/lists/files'"
|
||||
ng-click="$event.stopPropagation()" class="cursor-default action-btn-td">
|
||||
<i ng-if="((item.name && removingFile !== item.name) || (item.file && removingFile !== item.file)) && adminMode && path !== '/lists/files'"
|
||||
ng-click="editFile(item, path); $event.stopPropagation()" class="fa fa-fw fa-pencil cursor-pointer"
|
||||
tooltip="Edit this file" tooltip-placement="left" aria-hidden="true"></i>
|
||||
<i ng-if="((item.name && removingFile !== item.name) || (item.file && removingFile !== item.file)) && adminMode"
|
||||
ng-click="showConfirmRemoveFile($event, item, path); $event.stopPropagation()" class="fa fa-fw fa-trash cursor-pointer"
|
||||
tooltip="Delete this file" tooltip-placement="right" aria-hidden="true"></i>
|
||||
<div ng-if="(item.name && removingFile === item.name) || (item.file && removingFile === item.file)"
|
||||
class="confirmEmbedBubble">
|
||||
<div layout="row">
|
||||
<span class="font-size-12 wz-padding-left-8">{{path === '/lists/files' ? 'List'
|
||||
: 'File'}} <b>{{path === '/lists/files' ? item.name
|
||||
: item.file}}</b> will be deleted</span>
|
||||
</div>
|
||||
<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 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>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<td colspan="{{ (path === '/agents' || (path === '/agents/groups' && adminMode) || (isLookingGroup() && adminMode) ||
|
||||
path === '/rules/files' || path === '/decoders/files' || path === '/lists/files') ? keys.length + 1 : 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>
|
||||
</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="expandTableRow(item)">
|
||||
<td colspan="{{keys.length}}" 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">
|
||||
<md-card-content>
|
||||
<div>
|
||||
<div class="euiFlexItem euiFlexItem--flexGrowZero" ng-if="item.rationale">
|
||||
<div class="euiStat euiStat--leftAligned">
|
||||
<p class="euiTitle euiTitle--small euiStat__title ng-binding" style="font-size: 1.15rem;">Rationale</p>
|
||||
<div class="euiText euiText--small euiStat__description wz-text-gray">
|
||||
<p>{{item.rationale}}</p>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div ng-if="!wazuh_table_loading && isPolicyMonitoring()" ng-show="!error && items.length">
|
||||
<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="table{{scapepath}}">
|
||||
<thead class="wz-text-bold">
|
||||
<th ng-repeat="key in keys" class="wz-text-left" ng-style="key.width && {'width':key.width}">
|
||||
<span ng-class="{ 'cursor-pointer' : !key.nosortable }" 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>
|
||||
</span>
|
||||
</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>
|
||||
<span ng-show="key === 'result'" class="no-wrap">
|
||||
<p class="round status little" ng-class="(item.result === 'passed') ? 'teal' : 'red'">
|
||||
</p>
|
||||
</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 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="expandTableRow(item)">
|
||||
<td colspan="{{keys.length}}" 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">
|
||||
<md-card-content>
|
||||
<div>
|
||||
<div class="euiFlexItem euiFlexItem--flexGrowZero" ng-if="item.rationale">
|
||||
<div class="euiStat euiStat--leftAligned">
|
||||
<p class="euiTitle euiTitle--small euiStat__title ng-binding" style="font-size: 1.15rem;">Rationale</p>
|
||||
<div class="euiText euiText--small euiStat__description wz-text-gray">
|
||||
<p>{{item.rationale}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div layout="column" class="wz-margin-bottom-10"></div>
|
||||
</div>
|
||||
<div layout="column" class="wz-margin-bottom-10"></div>
|
||||
</div>
|
||||
<div class="euiFlexItem euiFlexItem--flexGrowZero" ng-if="item.remediation">
|
||||
<div class="euiStat euiStat--leftAligned">
|
||||
<p class="euiTitle euiTitle--small euiStat__title ng-binding" style="font-size: 1.15rem;">Remediation</p>
|
||||
<div class="euiText euiText--small euiStat__description wz-text-gray">
|
||||
<p>{{item.remediation}}</p>
|
||||
<div class="euiFlexItem euiFlexItem--flexGrowZero" ng-if="item.remediation">
|
||||
<div class="euiStat euiStat--leftAligned">
|
||||
<p class="euiTitle euiTitle--small euiStat__title ng-binding" style="font-size: 1.15rem;">Remediation</p>
|
||||
<div class="euiText euiText--small euiStat__description wz-text-gray">
|
||||
<p>{{item.remediation}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div layout="column" class="wz-margin-bottom-10"></div>
|
||||
</div>
|
||||
<div layout="column" class="wz-margin-bottom-10"></div>
|
||||
</div>
|
||||
<div class="euiFlexItem euiFlexItem--flexGrowZero" ng-if="item.directory">
|
||||
<div class="euiStat euiStat--leftAligned">
|
||||
<p class="euiTitle euiTitle--small euiStat__title ng-binding" style="font-size: 1.15rem;">Path(s)</p>
|
||||
<div class="euiText euiText--small euiStat__description wz-text-gray">
|
||||
<p>{{item.directory}}</p>
|
||||
<div class="euiFlexItem euiFlexItem--flexGrowZero" ng-if="item.directory">
|
||||
<div class="euiStat euiStat--leftAligned">
|
||||
<p class="euiTitle euiTitle--small euiStat__title ng-binding" style="font-size: 1.15rem;">Path(s)</p>
|
||||
<div class="euiText euiText--small euiStat__description wz-text-gray">
|
||||
<p>{{item.directory}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div layout="column" class="wz-margin-bottom-10"></div>
|
||||
</div>
|
||||
<div layout="column" class="wz-margin-bottom-10"></div>
|
||||
</div>
|
||||
<div class="euiFlexItem euiFlexItem--flexGrowZero" ng-if="item.compliance && item.compliance.length">
|
||||
<div class="euiStat euiStat--leftAligned">
|
||||
<p class="euiTitle euiTitle--small euiStat__title ng-binding" style="font-size: 1.15rem;">Compliance</p>
|
||||
<div class="euiText euiText--small euiStat__description wz-text-gray">
|
||||
<p><span class="wz-padding-right-8" ng-repeat="c in item.compliance">{{c.key}}/{{c.value}}</span>
|
||||
</p>
|
||||
<div class="euiFlexItem euiFlexItem--flexGrowZero" ng-if="item.compliance && item.compliance.length">
|
||||
<div class="euiStat euiStat--leftAligned">
|
||||
<p class="euiTitle euiTitle--small euiStat__title ng-binding" style="font-size: 1.15rem;">Compliance</p>
|
||||
<div class="euiText euiText--small euiStat__description wz-text-gray">
|
||||
<p><span class="wz-padding-right-8" ng-repeat="c in item.compliance">{{c.key}}/{{c.value}}</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div layout="column" class="wz-margin-bottom-10"></div>
|
||||
</div>
|
||||
<div layout="column" class="wz-margin-bottom-10"></div>
|
||||
</div>
|
||||
</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</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>
|
||||
</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>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
<div ng-if="!wazuh_table_loading && isSyscheck()" ng-show="!error && items.length">
|
||||
<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="table{{scapepath}}">
|
||||
<thead class="wz-text-bold">
|
||||
<th ng-repeat="key in keys" class="wz-text-left" ng-style="key.width && {'width':key.width}">
|
||||
<span ng-class="{ 'cursor-pointer' : !key.nosortable }" 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>
|
||||
</span>
|
||||
</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>
|
||||
|
||||
<li ng-show="currentPage < pagedItems.length - 1" class="md-padding">
|
||||
<a href ng-click="nextPage()">Next »</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
</tfoot>
|
||||
</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>
|
||||
|
||||
<div ng-if="!wazuh_table_loading && isSyscheck()" ng-show="!error && items.length">
|
||||
<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="table{{scapepath}}">
|
||||
<thead class="wz-text-bold">
|
||||
<th ng-repeat="key in keys" class="wz-text-left" ng-style="key.width && {'width':key.width}">
|
||||
<span ng-class="{ 'cursor-pointer' : !key.nosortable }" 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>
|
||||
</span>
|
||||
</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>
|
||||
<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>
|
||||
</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>
|
||||
</tfoot>
|
||||
</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">
|
||||
<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>
|
||||
</defs>
|
||||
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#help-a" fill-rule="evenodd"></use>
|
||||
</svg>
|
||||
<span class="euiCallOutHeader__title">{{customEmptyResults}}</span>
|
||||
<div layout="row" ng-if="!error && !wazuh_table_loading && !totalItems">
|
||||
<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">
|
||||
<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>
|
||||
</defs>
|
||||
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#help-a" fill-rule="evenodd"></use>
|
||||
</svg>
|
||||
<span class="euiCallOutHeader__title">{{customEmptyResults}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div layout="row" ng-if="error" class="wz-margin-bottom-45">
|
||||
<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">
|
||||
<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>
|
||||
</defs>
|
||||
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#help-a" fill-rule="evenodd"></use>
|
||||
</svg>
|
||||
<span class="euiCallOutHeader__title">{{error}}</span>
|
||||
<div layout="row" ng-if="error" class="wz-margin-bottom-45">
|
||||
<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">
|
||||
<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>
|
||||
</defs>
|
||||
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#help-a" fill-rule="evenodd"></use>
|
||||
</svg>
|
||||
<span class="euiCallOutHeader__title">{{error}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div layout="row" ng-if="!wazuh_table_loading && !totalItems" class="wz-margin-top-10">
|
||||
<span class="color-grey">0 items ({{time | number: 2}} seconds)</span>
|
||||
<div layout="row" ng-if="!wazuh_table_loading && !totalItems" class="wz-margin-top-10">
|
||||
<span class="color-grey">0 items ({{time | number: 2}} seconds)</span>
|
||||
</div>
|
||||
</div>
|
@ -43,7 +43,7 @@
|
||||
<div layout="row">
|
||||
<md-card flex class="wz-md-card _md flex md-margin-h">
|
||||
<md-card-actions ng-if="cdbctrl.adminMode" layout="row" layout-align="end center" class="wz-card-actions wz-card-actions-top">
|
||||
<a ng-click="cdbctrl.addNewList()">Add new list <i aria-hidden="true" class="fa fa-plus"></i></a>
|
||||
<a ng-click="cdbctrl.addNewList()">Add new list</a>
|
||||
<span flex></span>
|
||||
</md-card-actions>
|
||||
<md-card-content>
|
||||
|
@ -10,6 +10,6 @@
|
||||
<md-nav-bar class="wz-nav-bar nav-bar-white-bg " md-selected-nav-item="mctrl.globalRulesetTab">
|
||||
<md-nav-item class="wz-nav-item" md-nav-click="mctrl.setRulesTab('rules')" name="rules">Rules</md-nav-item>
|
||||
<md-nav-item class="wz-nav-item" md-nav-click="mctrl.setRulesTab('decoders')" name="decoders">Decoders</md-nav-item>
|
||||
<md-nav-item class="wz-nav-item" md-nav-click="mctrl.setRulesTab('cdblists')" name="cdblists">Manage CDB lists</md-nav-item>
|
||||
<md-nav-item class="wz-nav-item" md-nav-click="mctrl.setRulesTab('cdblists')" name="cdblists">CDB lists</md-nav-item>
|
||||
</md-nav-bar>
|
||||
</div>
|
Loading…
Reference in New Issue
Block a user