Skip to content

Commit

Permalink
Merge pull request #425 from wazuh/3.8-fix-undefined-searchbar
Browse files Browse the repository at this point in the history
Fixed undefined error in the agents search bar
  • Loading branch information
Jesús Ángel authored Dec 19, 2018
2 parents ebda37e + 864f94c commit 6b18b5a
Show file tree
Hide file tree
Showing 11 changed files with 81 additions and 126 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ define([
const parsedResult = agentData.map(item =>
item && item.data && item.data.data ? item.data.data : false
)

let [
summary,
lastAgent,
Expand All @@ -66,14 +65,14 @@ define([
] = parsedResult

this.scope.agentsCountActive = summary.Active - 1
this.scope.lastAgent = lastAgent.items[0]
const os = platforms.items.map(item => item.os)
versions = versions.items.map(item => item.version)
this.scope.lastAgent = lastAgent.items[0] ? lastAgent.items[0] : 'Unknown'
const os = platforms ? platforms.items.map(item => item.os).filter(item => !!item) : false
versions = versions ? versions.items.map(item => item.version).filter(item => !!item) : false
nodes =
nodes && nodes.items
? nodes.items.map(item => item['node_name'])
? nodes.items.map(item => item['node_name']).filter(item => !!item)
: false
groups = groups.items.map(item => item.name)
groups = groups ? groups.items.map(item => item.name).filter(item => !!item) : false
this.scope.agentsCountDisconnected = summary.Disconnected
this.scope.agentsCountNeverConnected = summary['Never connected']
const agentsCountTotal = summary.Total - 1
Expand All @@ -83,12 +82,12 @@ define([

this.scope.searchBarModel = {
status: ['Active', 'Disconnected', 'Never connected'],
group: groups,
node_name: nodes,
version: versions,
'os.platform': os.map(x => x.platform),
'os.version': os.map(x => x.version),
'os.name': os.map(x => x.name)
group: groups ? groups : [],
node_name: nodes ? nodes : [],
version: versions ? versions : [],
'os.platform': os ? os.map(x => x.platform) : [],
'os.version': os ? os.map(x => x.version) : [],
'os.name': os ? os.map(x => x.name) : []
}

this.topAgent = new SearchHandler(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
<md-content flex layout="column" layout-align="end">
<!-- Breadcrumbs -->
<div ng-show='!showFiles'>

<div layout="row" layout-padding>
<!-- If you're not on the Welcome tab, show a functional breadcrumb -->
<div>
<a class="wz-text-link cursor-pointer" ui-sref='agents'>Agents</a>
<span> / </span>
<span ng-if="!agent.error" ui-sref='agent-overview({id:agent.id})' class="wz-text-link cursor-pointer">{{agent.name}}
({{agent.id}})</span>
<span ng-if="agent.error">Unknown agent</span>
<span> / </span>
<span>File integrity monitoring</span>
</div>
<div ng-if="agent.status">
<span class="wz-agent-status-indicator small" ng-class="getAgentStatusClass(agent.status)" aria-label="Agent status indicator">{{formatAgentStatus(agent.status)}}</span>
</div>
<div flex></div>
<div style="margin-right:7px;" id='timePicker'></div>
</div>
<!-- Filter bar -->

<wazuh-bar></wazuh-bar>
<md-button ng-click='show()'>{{buttonShowElements}}</md-button>
<div layout="row" layout-padding>
<!-- If you're not on the Welcome tab, show a functional breadcrumb -->
<div>
<a class="wz-text-link cursor-pointer" ui-sref='agents'>Agents</a>
<span> / </span>
<span ng-if="!agent.error" ui-sref='agent-overview({id:agent.id})' class="wz-text-link cursor-pointer">{{agent.name}}
({{agent.id}})</span>
<span ng-if="agent.error">Unknown agent</span>
<span> / </span>
<span>File integrity monitoring</span>
</div>
<div ng-if="agent.status">
<span class="wz-agent-status-indicator small" ng-class="getAgentStatusClass(agent.status)" aria-label="Agent status indicator">{{formatAgentStatus(agent.status)}}</span>
</div>
<div flex></div>
<div style="margin-right:7px;" id='timePicker'></div>
</div>
<!-- Filter bar -->

<wazuh-bar></wazuh-bar>
<div ng-show='!showFiles'>
<span class='wz-text-link' ng-click='show()' style="margin-left:96%;">Show files</span>
<!-- first row -->
<div id="row2" layout="row">
<div flex="50">
Expand Down Expand Up @@ -99,7 +99,7 @@
</div>
</div>

<div ng-show='!showFiles'>
<div ng-show='showFiles'>
<span class='wz-text-link' ng-click='show()' style="margin-left:96%;">Show alerts</span>
<!-- Fifth row -->
<div layout='row'>
Expand Down Expand Up @@ -128,7 +128,6 @@
</div>
</div>

-->
<div ng-show='showFiles'>
<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">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,25 @@ define([
this.csvReq = $csvRequestService
this.toast = $notificationService.showSimpleToast
this.scope = $scope
this.scope.buttonShowElements = 'Show files'
this.scope.showFiles = false
this.showFiles = false
this.scope.showFiles = this.showFiles
this.urlTokenModel = $urlTokenModel
if (
this.agent &&
this.agent.data &&
this.agent.data.data &&
this.agent.data.data.id
)
this.currentDataService.addFilter(
`{"agent.id":"${this.agent.data.data.id}", "implicit":true}`
)

this.filters = this.currentDataService.getSerializedFilters()
this.timePicker = new TimePicker(
'#timePicker',
this.urlTokenModel.handleValueChange
)
this.submittedTokenModel = this.urlTokenModel.getSubmittedTokenModel()
this.scope.showFiles = true

this.scope.$on('deletedFilter', () => {
this.launchSearches()
Expand Down Expand Up @@ -125,15 +134,7 @@ define([
* On controller loads
*/
$onInit() {
if (
this.agent &&
this.agent.data &&
this.agent.data.data &&
this.agent.data.data.id
)
this.currentDataService.addFilter(
`{"agent.id":"${this.agent.data.data.id}", "implicit":true}`
)
this.show()
this.scope.show = () => this.show()
this.scope.agent =
this.agent && this.agent.data && this.agent.data.data
Expand All @@ -147,23 +148,17 @@ define([
this.scope.getAgentStatusClass = agentStatus =>
this.getAgentStatusClass(agentStatus)
this.scope.downloadCsv = (path, name) => this.downloadCsv(path, name)
this.scope.show = () => this.show()
}

/**
* Shows/Hides alerts section of the view
*/
show(){
this.scope.buttonShowElements = (this.showFiles) ? 'Show alerts' : 'Show files'
this.scope.showFiles = !this.scope.showFiles
this.showFiles = !this.showFiles
this.scope.showFiles = this.showFiles
if (!this.scope.$$phase) this.scope.$digest()
}

show() {
this.scope.showFiles = !this.scope.showFiles
if (!this.scope.$$phase) this.scope.$digest()
return
}
/**
* Checks and returns agent status
* @param {Array} agentStatus
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
<div>
<a class="wz-text-link cursor-pointer" ui-sref='agents'>Agents</a>
<span> / </span>
<span ng-if="agentInfo.name && agentInfo.id && !agentInfo.error" ui-sref='agent-overview({id:agentInfo.id})' class="wz-text-link cursor-pointer">{{agentInfo.name}} ({{agentInfo.id}})</span>
<span ng-if="!agentInfo || agentInfo.error || !agentInfo.id">Unknown agent</span>
<span ng-if="!agentInfo.error" ui-sref='agent-overview({id:agentInfo.id})' class="wz-text-link cursor-pointer">{{agentInfo.name}}
({{agentInfo.id}})</span>
<span ng-if="agentInfo.error">Unknown agent</span>
<span> / </span>
<span>General</span>
</div>
Expand All @@ -31,26 +32,26 @@
Name:
<span class="wz-text-bold">{{ agentInfo.name }}</span>
<md-tooltip ng-if="agentInfo.name.length" md-direction="bottom" class="wz-tooltip">
Full name: {{ agentInfo.name }}
Full name: {{ agentInfo.name || 'Unknown'}}
</md-tooltip>
</div>
<div class="wz-text-truncatable" flex>
IP:
<span class="wz-text-bold">{{ agentInfo.ip }}</span>
<span class="wz-text-bold">{{ agentInfo.ip || 'Unknown'}}</span>
</div>
<!-- <div class="wz-text-truncatable" flex ng-if="agentInfo.group">
Group:
<span class="wz-text-bold" ng-click="goGroups(agentInfo.group)">{{ agentInfo.group }}</span>
</div> -->
<div class="wz-text-truncatable" flex ng-if="agentInfo.version">
Version:
<span class="wz-text-bold">{{ agentInfo.version }}</span>
<span class="wz-text-bold">{{ agentInfo.version || 'Unknown'}}</span>
</div>
<div class="wz-text-truncatable" flex>
OS:
<span class="wz-text-bold">{{ agentInfo.agentOS }}</span>
<span class="wz-text-bold">{{ agentInfo.agentOS || 'Unknown'}}</span>
<md-tooltip ng-if="agentInfo.agentOS.length" md-direction="bottom" class="wz-tooltip">
Full OS name: {{ agentInfo.agentOS }}
Full OS name: {{ agentInfo.agentOS || 'Unknown'}}
</md-tooltip>
</div>
</md-card-content>
Expand All @@ -72,7 +73,7 @@
<span class="wz-text-bold"> {{agentInfo.lastKeepAlive || 'Unknown' }}</span>
</div>
<div class="wz-text-truncatable" flex>Registration date:
<span class="wz-text-bold"> {{agentInfo.dateAdd}}</span>
<span class="wz-text-bold"> {{agentInfo.dateAdd || 'Unknown'}}</span>
</div>
<div class="wz-text-truncatable" flex ng-if="agentInfo.syscheck.inProgress">Last syscheck scan:
<span class="wz-text-bold"> Scan in progress</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,17 @@ define([
this.agent[0].data.data
? this.agent[0].data.data.id
: null
this.agentInfo.error = 'Unable to load agent data'
this.agentInfo.name =
this.agent &&
this.agent.length &&
this.agent[0] &&
this.agent[0].data &&
this.agent[0].data.data
? this.agent[0].data.data.name
: null

this.scope.agentInfo = { id: this.agentInfo.id, name: this.agentInfo.name}
this.agentInfo.id && this.agentInfo.name ? this.agentInfo.error = false : this.agentInfo.error = 'Unable to load agent data'
}

this.scope.goGroups = group => this.goGroups(group)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,63 +107,6 @@
</md-card>
</div>

<table ng-if="!agent.error && syscollector" class="table table-striped table-condensed table-layout-fixed">
<thead class="wz-text-bold">
<th class="wz-text-left">Name</th>
<th class="wz-text-left">Mac</th>
<th class="wz-text-left">State</th>
<th class="wz-text-left">MTU</th>
<th class="wz-text-left">Type</th>
</thead>
<tbody>
<tr class="wz-word-wrap" ng-repeat="interface in syscollector.netiface.items">
<td>{{interface.name}}</td>
<td>{{interface.mac}}</td>
<td>
<svg ng-if="interface.state !== 'up'" class="euiIcon euiIcon--medium euiIcon--warning" focusable="false"
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>
<circle id="dot-a" cx="8" cy="8" r="4"></circle>
</defs>
<use xlink:href="#dot-a"></use>
</svg>
<svg ng-if="interface.state === 'up'" class="euiIcon euiIcon--medium euiIcon--success" focusable="false"
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>
<circle id="dot-a" cx="8" cy="8" r="4"></circle>
</defs>
<use xlink:href="#dot-a"></use>
</svg>
{{interface.state}}
</td>
<td>{{interface.mtu}}</td>
<td>{{interface.type}}</td>
</tr>
</tbody>
</table>
</md-card-content>
</md-card>
<md-card flex class="wz-md-card">
<md-card-content class="wz-text-center wz-margin-bottom-40-inv" ng-if="syscollector.ports && !syscollector.ports.items.length">
<i class="fa fa-fw fa-info-circle" aria-hidden="true"></i> <span class="wz-headline-title">No ports scan
available</span>
<md-divider class="wz-margin-top-10"></md-divider>
<div layout="column" class="wz-padding-top-10">
<p>The ports scan is disabled or not ready yet. Wait a little bit and try refreshing the page.</p>
</div>
</md-card-content>
<md-card-content class="wz-margin-bottom-40-inv">
<span class="wz-headline-title"><i class="fa fa-fw fa-exchange"></i> Network ports</span>
<span class="color-grey pull-right">Last scan: {{syscollector.ports.items[0].scan.time}}</span>
<md-divider class="wz-margin-top-10"></md-divider>
<wazuh-table flex path="'/syscollector/' + agent.id + '/ports'" row-sizes="[4]" keys="[{value:'local.ip',nosortable:true},{value:'local.port',nosortable:true},{value:'remote.ip',nosortable:true},'state','protocol']">
</wazuh-table>
</md-card-content>
</md-card>
</div>


<div layout="row" class="layout-padding wz-padding-top-0" ng-if="!agent.error && syscollector">
<md-card flex class="wz-md-card">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ define([
constructor($urlTokenModel, $scope, $state, $currentDataService, agent) {
this.state = $state
this.currentDataService = $currentDataService
this.filters = this.currentDataService.getSerializedFilters()
this.scope = $scope
this.urlTokenModel = $urlTokenModel
this.timePicker = new TimePicker(
Expand Down Expand Up @@ -65,7 +66,7 @@ define([
this.currentDataService.addFilter(
`{"agent.id":"${this.agent.data.data.id}", "implicit":true}`
)
this.filters = this.currentDataService.getSerializedFilters()

this.vizz = [
/**
* Visualizations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ define(['../../module'], function (controllers) {
for (let i = 0; i < this.scope.apiList.length; i++) {
if (this.scope.apiList[i].id === entry.id) {
this.scope.apiList[i] = connectionData
this.scope.apiList[i].selected = entry.selected // Check if the API was selected, if it was, set the yellow star
break
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,13 @@ define(['../../module'], function(module) {
} catch (error) {
logs[i] = {
date: new Date(),
level: 'error',
level: 'parse_error',
message: 'Cannot parse this log message'
}
}
}
this.scope.logs = logs
const excludeParseError = logs.filter(log => log.level !== 'parse_error')
this.scope.logs = excludeParseError
} else {
this.scope.logs = [
{ date: new Date(), level: 'info', message: 'Empty logs' }
Expand All @@ -74,6 +75,7 @@ define(['../../module'], function(module) {
if (!this.scope.$$phase) this.scope.$digest()
return
} catch (error) {
console.error("catch ", error)
this.root.$broadcast('loading', { status: false })
this.scope.logs = [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,18 @@
#wz-search-filter-bar {
padding: 8px;
margin-top: 15px;
overflow: auto;
/*overflow: auto;*/
}
#wz-search-filter-bar > .fa-search {
padding: 8px 3px;
float: left;
opacity: .5;
width: calc(0% + 25px);
}
.fa-search-margin {
margin-left: 10px;
margin-top: 7px;
}
.wz-tags {
height: 30px;
width: calc(100% - 25px);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<div id='wz-search-filter-bar' class='kuiLocalSearchInput'>
<span class='fa fa-search' aria-hidden='true'></span>
<div class='wz-tags' ng-class='{focused: hasFocus}'>
<span class='fa fa-search fa-search-margin' aria-hidden='true'></span>
<ul class='tag-list'>
<li ng-repeat='group in groupedTagList track by $index'>
<div ng-class='{grouped: group.length > 1}'>
Expand Down

0 comments on commit 6b18b5a

Please sign in to comment.