wazuh-kibana-app/public/templates/groups-preview.html
2017-11-22 10:29:35 +01:00

179 lines
10 KiB
HTML

<div flex ng-cloak layout="row" ng-controller="groupsPreviewController" layout-fill class="manager-groups-main-div" ng-if="groupsMenu == 'preview'">
<div flex="25" layout="column" class="manager-groups-left-col">
<input flex="none" placeholder="Filter groups" type="text" ng-model="searchTerm" ng-change="groups.addFilter('search', searchTerm)"
class="input-filter-box manager-groups-left-search-box"/>
<md-card flex class="manager-groups-left-panel" when-scrolled="groups.nextPage('')">
<md-content layout="column" ng-init="selectedGroup = 0;">
<md-card flex ng-repeat="group in groups.items | filter : searchTerm | orderBy : groups.sortValue : groups.sortDir" ng-class="{selectedItem:($parent.selectedGroup == $index)}"
ng-click="$parent.loadGroup($index)">
<md-card-content>
<span class="md-headline">{{group.name}} ({{group.count}})</span>
</md-card-content>
</md-card>
</md-content>
<md-content>
<md-progress-linear class="md-accent" md-mode="indeterminate" ng-show="groups.busy && !groups.end"></md-progress-linear>
</md-content>
</md-card>
</div>
<div flex="75" layout="column" class="manager-groups-right-col">
<md-tabs class="headBar" layout-fill flex>
<md-tab label="Agents">
<md-tab-content flex layout fill>
<md-toolbar class="manager-groups-no-scroll" layout-fill>
<div flex layout="row" layout-fill>
<md-card flex class="manager-groups-agents-card" layout-fill>
<md-toolbar layout="row">
<input flex="none" placeholder="Filter agents" type="text" ng-model="searchTermAgent" ng-change="groupAgents.addFilter('search', searchTermAgent)" class="input-filter-box manager-groups-right-search-box" />
</md-toolbar>
<md-toolbar layout="row">
<div class="md-toolbar-tools">
<span flex="5" ng-click="groupAgents.sort('id')">ID
<i class="fa" ng-class="groupAgents.sortValue === 'id' ? (groupAgents.sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
aria-hidden="true"></i>
</span>
<span flex="25" ng-click="groupAgents.sort('name')">Name
<i class="fa" ng-class="groupAgents.sortValue === 'name' ? (groupAgents.sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
aria-hidden="true"></i>
</span>
<span flex="10" ng-click="groupAgents.sort('ip')">IP
<i class="fa" ng-class="groupAgents.sortValue === 'ip' ? (groupAgents.sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
aria-hidden="true"></i>
</span>
<span flex="15" ng-click="groupAgents.sort('status')">Status
<i class="fa" ng-class="groupAgents.sortValue === 'status' ? (groupAgents.sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
aria-hidden="true"></i>
</span>
<span flex="15" ng-click="groupAgents.sort('os.platform')">OS platform
<i class="fa" ng-class="groupAgents.sortValue === 'os' ? (groupAgents.sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
aria-hidden="true"></i>
</span>
<span flex="15" ng-click="groupAgents.sort('os.version')">OS version
<i class="fa" ng-class="groupAgents.sortValue === 'os' ? (groupAgents.sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
aria-hidden="true"></i>
</span>
<span flex="15">Agent version</span>
</div>
</md-toolbar>
<md-content when-scrolled="groupAgents.nextPage('')">
<md-list ng-repeat='agent in groupAgents.items | orderBy : groupAgents.sortValue : groupAgents.sortDir' class="agents-preview-table">
<md-list-item class="list-no-hover md-subhead" ng-click="showAgent(agent)">
<span flex="5">{{agent.id || 'Unknown'}}</span>
<span flex="25">{{agent.name || 'Unknown'}}</span>
<span flex="10">{{agent.ip || 'Unknown'}}</span>
<span flex="15">{{agent.status || 'Unknown'}}</span>
<span flex="15">{{agent.os.platform || 'Unknown'}}</span>
<span flex="15">{{agent.os.version || 'Unknown'}}</span>
<span flex="15">{{agent.version || 'Unknown'}}</span>
</md-list-item>
</md-list>
</md-content>
<md-content>
<md-progress-linear class="md-accent" md-mode="indeterminate" ng-show="groupAgents.busy && !groupAgents.end"></md-progress-linear>
</md-content>
</md-card>
</div>
</md-toolbar>
</md-tab-content>
</md-tab>
<md-tab label="Files">
<md-tab-content flex layout fill class="manager-groups-no-scroll">
<div flex layout="row" layout-fill>
<md-card flex class="manager-groups-files-card" layout-fill ng-show="!fileViewer">
<md-toolbar layout="row">
<input flex="none" placeholder="Filter files" type="text" ng-model="searchTermFile" ng-change="groupFiles.addFilter('search', searchTermFile)"
class="input-filter-box manager-groups-search-file" />
</md-toolbar>
<md-toolbar layout="row">
<div class="md-toolbar-tools">
<span flex="30" ng-click="groupFiles.sort('filename')">File
<i class="fa" ng-class="groupFiles.sortValue === 'filename' ? (groupFiles.sortDir ? 'fa-sort-asc' : 'fa-sort-desc') : 'fa-sort'"
aria-hidden="true"></i>
</span>
</div>
</md-toolbar>
<md-content when-scrolled="files.nextPage('')">
<md-list ng-repeat="file in groupFiles.items | orderBy : groupFiles.sortValue : groupFiles.sortDir" class="agents-preview-table"
ng-init="fileViewer=false">
<md-list-item class="md-subhead">
<span flex="30" ng-click="$parent.showFile($index);">{{file.filename}}</span>
</md-list-item>
</md-list>
</md-content>
<md-content>
<md-progress-linear class="md-accent" md-mode="indeterminate" ng-show="files.busy && !files.end"></md-progress-linear>
</md-content>
</md-card>
<md-sidenav flex="100" layout-fill md-is-open="fileViewer" md-disable-backdrop="true" class="md-whiteframe-z1 md-sidenav manager-groups-file-back">
<md-toolbar layout="row" class="manager-groups-file-back">
<div class="md-toolbar-tools">
<h4 flex md-trucante>{{filename}}</h4>
<md-button class="md-fab md-mini md-primary " ng-click="fileViewer=false">
<i class="fa fa-close" aria-hidden="true"></i>
</md-button>
</div>
</md-toolbar>
<md-content layout="row" flex class="manager-groups-file-back">
<pre flex layout-fill class="json-beautifier"><code dynamic="file"></code></pre>
</md-content>
</md-sidenav>
</div>
</md-tab-content>
</md-tab>
</md-tabs>
</div>
</div>
<style>
.manager-groups-main-div {
background-color: #e3e3e3;
}
.manager-groups-left-col {
margin:10px;
}
.manager-groups-left-search-box {
height: 35px;
margin: 5px;
}
.manager-groups-right-search-box {
width: 100%;
height: 35px;
}
.manager-groups-left-panel {
background-color: #E4E4E4;
overflow: auto;
height: 400px;
box-shadow: 0 0px 0px rgba(10, 16, 20, .15), 0 0 0px rgba(10, 16, 20, .12) !important;
margin-left: 0px;
margin-right: 0px;
width: 100%;
}
.manager-groups-right-col {
width: auto;
margin: 10px;
}
.manager-groups-file-back {
background-color: #F7F7F7;
}
.manager-groups-search-file {
width: 100%;
height: 35px;
}
.manager-groups-agents-card,
.manager-groups-files-card {
overflow: hidden;
height: 400px;
}
.manager-groups-no-scroll {
overflow: hidden;
}
</style>