mirror of
https://github.com/valitydev/wazuh-kibana-app.git
synced 2024-11-06 01:45:18 +00:00
Revert "Merge branch 'extend-add-new-agent-1767' of https://github.com/wazuh/wazuh-kibana-app"
This reverts commit7e56d49a75
, reversing changes made to7706a2e853
.
This commit is contained in:
parent
09ef325010
commit
6724d12571
@ -99,11 +99,9 @@ export class AgentsPreviewController {
|
||||
|
||||
this.registerAgentsProps = {
|
||||
addNewAgent: flag => this.addNewAgent(flag),
|
||||
getWazuhVersion: () => this.getWazuhVersion(),
|
||||
getCurrentApiAddress: () => this.getCurrentApiAddress(),
|
||||
needsPassword: () => this.needsPassword()
|
||||
getWazuhVersion: () => this.getWazuhVersion()
|
||||
};
|
||||
this.hasAgents = true;
|
||||
|
||||
this.init = false;
|
||||
//Load
|
||||
this.load();
|
||||
@ -232,12 +230,7 @@ export class AgentsPreviewController {
|
||||
this.lastAgent = unique.lastAgent;
|
||||
this.summary = unique.summary;
|
||||
if (!this.lastAgent || !this.lastAgent.id) {
|
||||
if (this.addingNewAgent === undefined) {
|
||||
this.addNewAgent(true);
|
||||
}
|
||||
this.hasAgents = false;
|
||||
} else {
|
||||
this.hasAgents = true;
|
||||
this.addNewAgent(true);
|
||||
}
|
||||
|
||||
if (agentsTop.data.data === '') {
|
||||
@ -292,37 +285,6 @@ export class AgentsPreviewController {
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns if the password is neccesary to register a new agent
|
||||
*/
|
||||
async needsPassword() {
|
||||
try {
|
||||
const result = await this.apiReq.request('GET', '/agents/000/config/auth/auth', {});
|
||||
const auth = ((result.data || {}).data || {}).auth || {};
|
||||
const usePassword = auth.use_password === 'yes';
|
||||
return usePassword;
|
||||
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current API address
|
||||
*/
|
||||
async getCurrentApiAddress() {
|
||||
try {
|
||||
const result = await this.genericReq.request('GET', '/elastic/apis');
|
||||
const entries = result.data || [];
|
||||
const host = entries.filter(e => {return e._id == this.api});
|
||||
const url = host[0]._source.url;
|
||||
const numToClean = url.startsWith('https://') ? 8 : 7;
|
||||
return url.substr(numToClean);
|
||||
} catch (error) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the Wazuh version as x.y.z
|
||||
*/
|
||||
|
@ -39,25 +39,15 @@ export class RegisterAgent extends Component {
|
||||
this.state = {
|
||||
status: 'incomplete',
|
||||
selectedOS: '',
|
||||
serverAddress: '',
|
||||
wazuhPassword: ''
|
||||
serverAddress: ''
|
||||
};
|
||||
}
|
||||
|
||||
async componentDidMount() {
|
||||
try {
|
||||
const wazuhVersion = await this.props.getWazuhVersion();
|
||||
const apiAddress = await this.props.getCurrentApiAddress();
|
||||
const needsPassword = await this.props.needsPassword();
|
||||
this.setState({
|
||||
serverAddress: apiAddress,
|
||||
needsPassword: needsPassword,
|
||||
wazuhVersion: wazuhVersion
|
||||
})
|
||||
this.wazuhVersion = await this.props.getWazuhVersion();
|
||||
} catch (error) {
|
||||
this.setState({
|
||||
wazuhVersion: version
|
||||
})
|
||||
this.wazuhVersion = version;
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,21 +59,6 @@ export class RegisterAgent extends Component {
|
||||
this.setState({ serverAddress: event.target.value });
|
||||
}
|
||||
|
||||
setWazuhPassword(event) {
|
||||
this.setState({ wazuhPassword: event.target.value });
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the password is not needed, in that case remove the input password step
|
||||
* @param {Array} steps
|
||||
*/
|
||||
cleanSteps(steps) {
|
||||
if (this.state.needsPassword) return steps;
|
||||
steps.splice(2,1);
|
||||
return steps;
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
const rpmButton = (
|
||||
<EuiButtonToggle
|
||||
@ -125,14 +100,6 @@ export class RegisterAgent extends Component {
|
||||
/>
|
||||
);
|
||||
|
||||
const passwordInput = (
|
||||
<EuiFieldText
|
||||
placeholder="Wazuh password..."
|
||||
value={this.state.wazuhPassword}
|
||||
onChange={event => this.setWazuhPassword(event)}
|
||||
/>
|
||||
);
|
||||
|
||||
const copyButton = {
|
||||
position: 'relative',
|
||||
float: 'right',
|
||||
@ -145,10 +112,10 @@ export class RegisterAgent extends Component {
|
||||
zIndex: '100'
|
||||
};
|
||||
const customTexts = {
|
||||
rpmText: `sudo WAZUH_MANAGER_IP='${this.state.serverAddress}'${this.state.needsPassword ? ` WAZUH_PASSWORD='${this.state.wazuhPassword}' ` : ' '}yum install https://packages.wazuh.com/3.x/yum/wazuh-agent-${this.state.wazuhVersion}-1.x86_64.rpm`,
|
||||
debText: `curl -so wazuh-agent.deb https://packages.wazuh.com/3.x/apt/pool/main/w/wazuh-agent/wazuh-agent_${this.state.wazuhVersion}-1_amd64.deb && sudo WAZUH_MANAGER_IP='${this.state.serverAddress}'${this.state.needsPassword ? ` WAZUH_PASSWORD='${this.state.wazuhPassword}' ` : ' '} dpkg -i ./wazuh-agent.deb`,
|
||||
macosText: `curl -so wazuh-agent.pkg https://packages.wazuh.com/3.x/osx/wazuh-agent-${this.state.wazuhVersion}-1.pkg && sudo launchctl setenv WAZUH_MANAGER_IP '${this.state.serverAddress}'${this.state.needsPassword ? ` setenv WAZUH_PASSWORD '${this.state.wazuhPassword}' ` : ' '} && sudo installer -pkg ./wazuh-agent.pkg -target /`,
|
||||
winText: `Invoke-WebRequest -Uri https://packages.wazuh.com/3.x/windows/wazuh-agent-${this.state.wazuhVersion}-1.msi -OutFile wazuh-agent.msi; wazuh-agent.msi /q ADDRESS='${this.state.serverAddress}' AUTHD_SERVER='${this.state.serverAddress}'${this.state.needsPassword ? ` PASSWORD='${this.state.wazuhPassword}' ` : ' '}`
|
||||
rpmText: `sudo WAZUH_MANAGER_IP='${this.state.serverAddress}' yum install https://packages.wazuh.com/3.x/yum/wazuh-agent-${this.wazuhVersion}-1.x86_64.rpm`,
|
||||
debText: `curl -so wazuh-agent.deb https://packages.wazuh.com/3.x/apt/pool/main/w/wazuh-agent/wazuh-agent_${this.wazuhVersion}-1_amd64.deb && sudo WAZUH_MANAGER_IP='${this.state.serverAddress}' dpkg -i ./wazuh-agent.deb`,
|
||||
macosText: `curl -so wazuh-agent.pkg https://packages.wazuh.com/3.x/osx/wazuh-agent-${this.wazuhVersion}-1.pkg && sudo launchctl setenv WAZUH_MANAGER_IP '${this.state.serverAddress}' && sudo installer -pkg ./wazuh-agent.pkg -target /`,
|
||||
winText: `Invoke-WebRequest -Uri https://packages.wazuh.com/3.x/windows/wazuh-agent-${this.wazuhVersion}-1.msi -OutFile wazuh-agent.msi; wazuh-agent.msi /q ADDRESS='${this.state.serverAddress}' AUTHD_SERVER='${this.state.serverAddress}'`
|
||||
};
|
||||
|
||||
const field = `${this.state.selectedOS}Text`;
|
||||
@ -199,10 +166,6 @@ export class RegisterAgent extends Component {
|
||||
title: 'Wazuh server address',
|
||||
children: <Fragment>{ipInput}</Fragment>
|
||||
},
|
||||
{
|
||||
title: 'Wazuh password',
|
||||
children: <Fragment>{passwordInput}</Fragment>
|
||||
},
|
||||
{
|
||||
title: 'Complete the installation',
|
||||
children: (
|
||||
@ -217,12 +180,12 @@ export class RegisterAgent extends Component {
|
||||
|
||||
return (
|
||||
<div>
|
||||
<EuiPage restrictWidth="1000px" style={{background: "transparent"}} >
|
||||
<EuiPage restrictWidth="1000px">
|
||||
<EuiPageBody>
|
||||
<EuiFlexGroup>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle>
|
||||
<h2>Deploy a new agent</h2>
|
||||
<h2>Add a new agent</h2>
|
||||
</EuiTitle>
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem grow={false}>
|
||||
@ -239,7 +202,7 @@ export class RegisterAgent extends Component {
|
||||
<EuiFlexItem>
|
||||
<EuiPanel>
|
||||
<EuiFlexItem>
|
||||
<EuiSteps steps={this.cleanSteps(steps)} />
|
||||
<EuiSteps steps={steps} />
|
||||
</EuiFlexItem>
|
||||
</EuiPanel>
|
||||
</EuiFlexItem>
|
||||
@ -253,7 +216,5 @@ export class RegisterAgent extends Component {
|
||||
|
||||
RegisterAgent.propTypes = {
|
||||
addNewAgent: PropTypes.func,
|
||||
getWazuhVersion: PropTypes.func,
|
||||
getCurrentApiAddress: PropTypes.func,
|
||||
needsPassword: PropTypes.func
|
||||
getWazuhVersion: PropTypes.func
|
||||
};
|
||||
|
@ -85,71 +85,102 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- XML editor for group agents -->
|
||||
<div ng-controller="agentsPreviewController as actrl">
|
||||
|
||||
<div ng-if="!editingFile">
|
||||
<div ng-show="!actrl.addingNewAgent">
|
||||
<div layout="row" class="md-padding" ng-if="lookingGroup && currentGroup && addingAgents">
|
||||
<span ng-click='addMultipleAgents(false)' class='wz-margin-top-3 kuiButton kuiButton--hollow'>
|
||||
Cancel
|
||||
</span>
|
||||
<span ng-hide='moreThan500' ng-click='saveAddAgents()' class='btn wz-button wz-margin-left-8'>
|
||||
<i aria-hidden='true' class='fa fa-fw fa-save'></i>
|
||||
Apply changes
|
||||
</span>
|
||||
<span class='error-msg' ng-show='moreThan500'>
|
||||
<i class="fa fa-exclamation-triangle"></i>
|
||||
It is not possible to apply changes of more than 500 additions or deletions
|
||||
</span>
|
||||
</div>
|
||||
<div ng-if="!editingFile">
|
||||
<div layout="row" class="md-padding" ng-if="lookingGroup && currentGroup && addingAgents">
|
||||
<span ng-click='addMultipleAgents(false)' class='wz-margin-top-3 kuiButton kuiButton--hollow'>
|
||||
Cancel</span>
|
||||
<span ng-hide='moreThan500' ng-click='saveAddAgents()' class='btn wz-button wz-margin-left-8'><i
|
||||
aria-hidden='true' class='fa fa-fw fa-save'></i>
|
||||
Apply changes</span>
|
||||
<span class='error-msg' ng-show='moreThan500'><i class="fa fa-exclamation-triangle"></i> It is not
|
||||
possible to apply changes of more than 500 additions or deletions</span>
|
||||
</div>
|
||||
|
||||
<!-- Search bar -->
|
||||
<div layout="row" class="wz-margin-top-16 euiFlexGroup euiFlexGroup--alignItemsCenter euiFormControlLayout__childrenWrapper md-padding-h ng-scope"
|
||||
ng-if="!addingAgents && !file">
|
||||
<input placeholder="{{groupsSelectedTab==='files' ? 'Filter files...' : lookingGroup ? 'Filter agents...' : 'Filter groups...'}}"
|
||||
ng-model="custom_search" type="text" class="euiFieldSearch euiFieldSearch--fullWidth euiFlexItem height-35 ng-empty ng-pristine ng-touched ng-valid"
|
||||
aria-invalid="false" wz-enter="search(custom_search)">
|
||||
<div class="euiFormControlLayoutIcons wz-margin-left-16">
|
||||
<span class="euiFormControlLayoutCustomIcon">
|
||||
<react-component name="EuiIcon" props="{type:'search', className:'euiFormControlLayoutCustomIcon__icon'}" />
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- Search bar -->
|
||||
<div layout="row" class="wz-margin-top-16 euiFlexGroup euiFlexGroup--alignItemsCenter euiFormControlLayout__childrenWrapper md-padding-h ng-scope"
|
||||
ng-if="!addingAgents && !file">
|
||||
<input placeholder="{{groupsSelectedTab==='files' ? 'Filter files...' : lookingGroup ? 'Filter agents...' : 'Filter groups...'}}"
|
||||
ng-model="custom_search" type="text" class="euiFieldSearch euiFieldSearch--fullWidth euiFlexItem height-35 ng-empty ng-pristine ng-touched ng-valid"
|
||||
aria-invalid="false" wz-enter="search(custom_search)">
|
||||
<div class="euiFormControlLayoutIcons wz-margin-left-16">
|
||||
<span class="euiFormControlLayoutCustomIcon">
|
||||
<react-component name="EuiIcon" props="{type:'search', className:'euiFormControlLayoutCustomIcon__icon'}" />
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<button type="submit" aria-label="Search" class="euiFlexItem euiFlexItem--flexGrowZero height-35 kuiButton kuiButton--secondary wz-margin-left-8"
|
||||
ng-click="search(custom_search)">
|
||||
Search
|
||||
</button>
|
||||
<div ng-if="lookingGroup && currentGroup && !addingAgents && !editingFile && !file && adminMode"
|
||||
class="euiFlexItem euiFlexItem--flexGrowZero height-35 wz-margin-left-8">
|
||||
<div class="euiFilterGroup"></div>
|
||||
</div>
|
||||
<button ng-if="lookingGroup && currentGroup && !addingAgents && !editingFile && !file && adminMode && groupsSelectedTab==='files'"
|
||||
class="euiFlexItem euiFlexItem--flexGrowZero height-35 kuiButton kuiButton--secondary ng-scope wz-margin-left-8"
|
||||
ng-click="editGroupAgentConfig(currentGroup)" aria-label="Edit group configuration">
|
||||
<react-component name="EuiIcon" props="{type:'pencil', color:'primary'}" />
|
||||
Edit group configuration
|
||||
</button>
|
||||
<button ng-if="lookingGroup && currentGroup && !addingAgents && !editingFile && !file && adminMode && groupsSelectedTab==='agents'"
|
||||
class="euiFlexItem euiFlexItem--flexGrowZero height-35 kuiButton kuiButton--secondary ng-scope wz-margin-left-8"
|
||||
ng-click="addMultipleAgents(true)" aria-label="Add or remove agents">
|
||||
<react-component name="EuiIcon" props="{type:'plusInCircle', color:'primary'}" />
|
||||
Add or remove agents
|
||||
</button>
|
||||
|
||||
<button type="submit" aria-label="Search" class="euiFlexItem euiFlexItem--flexGrowZero height-35 kuiButton kuiButton--secondary wz-margin-left-8"
|
||||
ng-click="search(custom_search)">
|
||||
Search
|
||||
</button>
|
||||
<div ng-if="lookingGroup && currentGroup && !addingAgents && !editingFile && !file && adminMode"
|
||||
class="euiFlexItem euiFlexItem--flexGrowZero height-35 wz-margin-left-8">
|
||||
<div class="euiFilterGroup"></div>
|
||||
</div>
|
||||
<!-- End search bar -->
|
||||
<button ng-if="lookingGroup && currentGroup && !addingAgents && !editingFile && !file && adminMode && groupsSelectedTab==='files'"
|
||||
class="euiFlexItem euiFlexItem--flexGrowZero height-35 kuiButton kuiButton--secondary ng-scope wz-margin-left-8"
|
||||
ng-click="editGroupAgentConfig(currentGroup)" aria-label="Edit group configuration">
|
||||
<react-component name="EuiIcon" props="{type:'pencil', color:'primary'}" />
|
||||
Edit group configuration
|
||||
</button>
|
||||
<button ng-if="lookingGroup && currentGroup && !addingAgents && !editingFile && !file && adminMode && groupsSelectedTab==='agents'"
|
||||
class="euiFlexItem euiFlexItem--flexGrowZero height-35 kuiButton kuiButton--secondary ng-scope wz-margin-left-8"
|
||||
ng-click="addMultipleAgents(true)" aria-label="Add or remove agents">
|
||||
<react-component name="EuiIcon" props="{type:'plusInCircle', color:'primary'}" />
|
||||
Add or remove agents
|
||||
</button>
|
||||
|
||||
<!-- Groups table -->
|
||||
<md-card flex class="wz-md-card _md flex md-margin-h wz-margin-top-16" ng-if="!lookingGroup">
|
||||
</div>
|
||||
<!-- End search bar -->
|
||||
|
||||
<!-- Groups table -->
|
||||
<md-card flex class="wz-md-card _md flex md-margin-h wz-margin-top-16" ng-if="!lookingGroup">
|
||||
<md-card-content>
|
||||
<div layout="row">
|
||||
<wz-table custom-columns="true" flex path="'/agents/groups'" keys="['name','count','mergedSum']"
|
||||
allow-click="true" row-sizes="[14,12,10]">
|
||||
</wz-table>
|
||||
</div>
|
||||
<div layout="row" layout-align="end center">
|
||||
<button type="button" ng-click="downloadCsv('/agents/groups')" class="euiButtonEmpty euiButtonEmpty--primary euiButtonEmpty--small">
|
||||
<span class="euiButtonEmpty__content">
|
||||
<react-component name="EuiIcon" props="{type:'importAction'}" />
|
||||
<span class="euiButtonEmpty__text">Formatted</span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End groups table -->
|
||||
|
||||
<div ng-if='!addingAgents'>
|
||||
<!-- Group agents table -->
|
||||
<md-card flex class="wz-md-card _md flex md-margin-h wz-margin-top-16" ng-if="lookingGroup && groupsSelectedTab==='agents' && currentGroup">
|
||||
<md-card-actions layout="row" class="wz-card-actions wz-card-actions-top layout-align-end-center">
|
||||
<react-component name="ExportConfiguration" ng-hide="reportBusy && reportStatus" props="{exportConfiguration, type: 'group'}" />
|
||||
<react-component ng-show="reportBusy && reportStatus" name="EuiLoadingSpinner" props="{size:'m'}" />
|
||||
</md-card-actions>
|
||||
<div layout="row" ng-show="failedErrors" class="extraHeader">
|
||||
<md-list>
|
||||
<md-list-item class="error-enum-configuration" ng-repeat="group in failedErrors">
|
||||
<span class="wz-agent-status-indicator small red-text padding-left-0"><span
|
||||
ng-repeat="error in group">{{error.id}}{{$last
|
||||
? '' : ', '}}</span>: {{group[0].message}}</span>
|
||||
</md-list-item>
|
||||
</md-list>
|
||||
<span flex></span>
|
||||
<a class='md-padding md-padding-top-10' ng-click='clearFailedErrors()'><i class="fa fa-times"
|
||||
aria-hidden="true"></i></a>
|
||||
</div>
|
||||
<md-card-content>
|
||||
<div layout="row">
|
||||
<wz-table custom-columns="true" flex path="'/agents/groups'" keys="['name','count','mergedSum']"
|
||||
allow-click="true" row-sizes="[14,12,10]">
|
||||
</wz-table>
|
||||
<wz-table flex custom-columns="true" path="'/agents/groups/' + currentGroup.name" keys="['id','name','ip','status','os.name','os.version','version']"
|
||||
allow-click="true" row-sizes="[14,12,10]" empty-results="'No agents were added to this group.'" />
|
||||
</div>
|
||||
<div layout="row" layout-align="end center">
|
||||
<button type="button" ng-click="downloadCsv('/agents/groups')" class="euiButtonEmpty euiButtonEmpty--primary euiButtonEmpty--small">
|
||||
<div layout="row" ng-if="lookingGroup && groupsSelectedTab==='agents'">
|
||||
<span flex></span>
|
||||
<button type="button" ng-click="downloadCsv('/agents/groups/' + currentGroup.name)"
|
||||
class="euiButtonEmpty euiButtonEmpty--primary euiButtonEmpty--small">
|
||||
<span class="euiButtonEmpty__content">
|
||||
<react-component name="EuiIcon" props="{type:'importAction'}" />
|
||||
<span class="euiButtonEmpty__text">Formatted</span>
|
||||
@ -158,115 +189,63 @@
|
||||
</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End groups table -->
|
||||
|
||||
<div ng-if='!addingAgents'>
|
||||
<!-- Group agents table -->
|
||||
<md-card flex class="wz-md-card _md flex md-margin-h wz-margin-top-16" ng-if="lookingGroup && groupsSelectedTab==='agents' && currentGroup">
|
||||
<md-card-actions layout="row" class="wz-card-actions wz-card-actions-top layout-align-end-center">
|
||||
<react-component name="ExportConfiguration" ng-hide="reportBusy && reportStatus" props="{exportConfiguration, type: 'group'}" />
|
||||
<react-component ng-show="reportBusy && reportStatus" name="EuiLoadingSpinner" props="{size:'m'}" />
|
||||
</md-card-actions>
|
||||
<div layout="row" ng-show="failedErrors" class="extraHeader">
|
||||
<md-list>
|
||||
<md-list-item class="error-enum-configuration" ng-repeat="group in failedErrors">
|
||||
<span class="wz-agent-status-indicator small red-text padding-left-0"><span
|
||||
ng-repeat="error in group">{{error.id}}{{$last
|
||||
? '' : ', '}}</span>: {{group[0].message}}</span>
|
||||
</md-list-item>
|
||||
</md-list>
|
||||
<!-- Group files table -->
|
||||
<md-card flex class="wz-md-card _md flex md-margin-h wz-margin-top-16" ng-if="lookingGroup && groupsSelectedTab==='files' && !fileViewer && currentGroup">
|
||||
<md-card-actions layout="row" class="wz-card-actions wz-card-actions-top layout-align-end-center">
|
||||
<react-component name="ExportConfiguration" ng-hide="reportBusy && reportStatus" props="{exportConfiguration, type: 'group'}" />
|
||||
<react-component ng-show="reportBusy && reportStatus" name="EuiLoadingSpinner" props="{size:'m'}" />
|
||||
</md-card-actions>
|
||||
<md-card-content>
|
||||
<div layout="row">
|
||||
<wz-table custom-columns="true" flex path="'/agents/groups/' + currentGroup.name + '/files'"
|
||||
keys="[{value:'filename',width:'300px'},'hash']" allow-click="true" row-sizes="[16,14,12]">
|
||||
</wz-table>
|
||||
</div>
|
||||
<div layout="row" ng-if="lookingGroup && groupsSelectedTab==='files' && !file">
|
||||
<span flex></span>
|
||||
<a class='md-padding md-padding-top-10' ng-click='clearFailedErrors()'><i class="fa fa-times"
|
||||
aria-hidden="true"></i></a>
|
||||
</div>
|
||||
<md-card-content>
|
||||
<div layout="row">
|
||||
<wz-table flex custom-columns="true" path="'/agents/groups/' + currentGroup.name" keys="['id','name','ip','status','os.name','os.version','version']"
|
||||
allow-click="true" row-sizes="[14,12,10]" empty-results="'No agents were added to this group.'" />
|
||||
</div>
|
||||
<div layout="row" ng-if="lookingGroup && groupsSelectedTab==='agents'">
|
||||
<span flex></span>
|
||||
<button type="button" ng-click="downloadCsv('/agents/groups/' + currentGroup.name)"
|
||||
class="euiButtonEmpty euiButtonEmpty--primary euiButtonEmpty--small">
|
||||
<span class="euiButtonEmpty__content">
|
||||
<react-component name="EuiIcon" props="{type:'importAction'}" />
|
||||
<span class="euiButtonEmpty__text">Formatted</span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
||||
<!-- Group files table -->
|
||||
<md-card flex class="wz-md-card _md flex md-margin-h wz-margin-top-16" ng-if="lookingGroup && groupsSelectedTab==='files' && !fileViewer && currentGroup">
|
||||
<md-card-actions layout="row" class="wz-card-actions wz-card-actions-top layout-align-end-center">
|
||||
<react-component name="ExportConfiguration" ng-hide="reportBusy && reportStatus" props="{exportConfiguration, type: 'group'}" />
|
||||
<react-component ng-show="reportBusy && reportStatus" name="EuiLoadingSpinner" props="{size:'m'}" />
|
||||
</md-card-actions>
|
||||
<md-card-content>
|
||||
<div layout="row">
|
||||
<wz-table custom-columns="true" flex path="'/agents/groups/' + currentGroup.name + '/files'"
|
||||
keys="[{value:'filename',width:'300px'},'hash']" allow-click="true" row-sizes="[16,14,12]">
|
||||
</wz-table>
|
||||
</div>
|
||||
<div layout="row" ng-if="lookingGroup && groupsSelectedTab==='files' && !file">
|
||||
<span flex></span>
|
||||
<button type="button" ng-click="downloadCsv('/agents/groups/' + currentGroup.name + '/files')"
|
||||
class="euiButtonEmpty euiButtonEmpty--primary euiButtonEmpty--small">
|
||||
<span class="euiButtonEmpty__content">
|
||||
<react-component name="EuiIcon" props="{type:'importAction'}" />
|
||||
<span class="euiButtonEmpty__text">Formatted</span>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End Group files table -->
|
||||
|
||||
<!-- CSV Download button section for group files-->
|
||||
|
||||
<!-- End CSV Download button section for group files -->
|
||||
|
||||
<!-- File JSON viewer section -->
|
||||
<div flex layout="column" class="md-padding" ng-if="lookingGroup && groupsSelectedTab==='files' && file">
|
||||
<div flex layout="column">
|
||||
<div layout="row" class="wz-padding-bottom-14">
|
||||
<span flex class="wz-headline-title">{{ filename }}</span>
|
||||
<button class="md-icon-button" ng-if="lookingGroup" aria-label="Back" tooltip="Close file"
|
||||
tooltip-placement="left" ng-click="goBackFiles()"><i class="fa fa-fw fa-close"
|
||||
aria-hidden="true"></i></button>
|
||||
<!--<span flex class="wz-text-right cursor-pointer color-grey" ng-click="goBackFiles()">close</span>-->
|
||||
</div>
|
||||
<div flex layout="column">
|
||||
<pre flex class="wz-pre groupContentViewer wzXmlEditor wz-overflow-y-auto"><code wz-dynamic="file"></code></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End File JSON viewer section -->
|
||||
</div>
|
||||
|
||||
<div layout="row" class="md-padding" ng-if="addingAgents">
|
||||
<div class='wzMultipleSelector' ng-show="actrl.addingNewAgent">
|
||||
<div flex="" class="euiCallOut euiCallOut--warning flex euiPage--restrictWidth-custom" style="max-width: 1000px;">
|
||||
<div class="euiCallOutHeader">
|
||||
<span class="euiCallOutHeader__title ng-binding">
|
||||
<react-component name="EuiIcon" props="{type:'help'}"><svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" class="euiIcon euiIcon--medium euiIcon-isLoaded" focusable="false"><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 xlink:href="#help-a" fill-rule="evenodd"></use></svg></react-component>
|
||||
No agents were added to this manager.
|
||||
<button type="button" ng-click="downloadCsv('/agents/groups/' + currentGroup.name + '/files')"
|
||||
class="euiButtonEmpty euiButtonEmpty--primary euiButtonEmpty--small">
|
||||
<span class="euiButtonEmpty__content">
|
||||
<react-component name="EuiIcon" props="{type:'importAction'}" />
|
||||
<span class="euiButtonEmpty__text">Formatted</span>
|
||||
</span>
|
||||
</div>
|
||||
</button>
|
||||
</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End Group files table -->
|
||||
|
||||
<!-- CSV Download button section for group files-->
|
||||
|
||||
<!-- End CSV Download button section for group files -->
|
||||
|
||||
<!-- File JSON viewer section -->
|
||||
<div flex layout="column" class="md-padding" ng-if="lookingGroup && groupsSelectedTab==='files' && file">
|
||||
<div flex layout="column">
|
||||
<div layout="row" class="wz-padding-bottom-14">
|
||||
<span flex class="wz-headline-title">{{ filename }}</span>
|
||||
<button class="md-icon-button" ng-if="lookingGroup" aria-label="Back" tooltip="Close file"
|
||||
tooltip-placement="left" ng-click="goBackFiles()"><i class="fa fa-fw fa-close"
|
||||
aria-hidden="true"></i></button>
|
||||
<!--<span flex class="wz-text-right cursor-pointer color-grey" ng-click="goBackFiles()">close</span>-->
|
||||
</div>
|
||||
<div flex layout="column">
|
||||
<pre flex class="wz-pre groupContentViewer wzXmlEditor wz-overflow-y-auto"><code wz-dynamic="file"></code></pre>
|
||||
</div>
|
||||
<react-component name="RegisterAgent" props="actrl.registerAgentsProps" />
|
||||
</div>
|
||||
<div class='wzMultipleSelector' ng-show="!actrl.addingNewAgent">
|
||||
<span ng-show='!multipleSelectorLoading' class="wzMultipleSelectorCounter"><span style='color:green'>+{{currentAdding}}</span> <span
|
||||
style='color:red'>-{{currentDeleting}}</span></span>
|
||||
<wz-multiple-selector class='wzMultipleSelector' available-items="availableAgents.data"
|
||||
selected-items="selectedAgents.data" title-available-items="Available agents"
|
||||
title-selected-items="Current agents in the group" total-selected-items="totalSelectedAgents"
|
||||
reload-scroll='reload(element, searchTerm, 499, start)' limit="checkLimit()">
|
||||
</wz-multiple-selector>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End File JSON viewer section -->
|
||||
</div>
|
||||
|
||||
<div layout="row" class="md-padding" ng-if="addingAgents">
|
||||
<span ng-show='!multipleSelectorLoading' class="wzMultipleSelectorCounter"><span style='color:green'>+{{currentAdding}}</span> <span
|
||||
style='color:red'>-{{currentDeleting}}</span></span>
|
||||
<wz-multiple-selector class='wzMultipleSelector' available-items="availableAgents.data"
|
||||
selected-items="selectedAgents.data" title-available-items="Available agents"
|
||||
title-selected-items="Current agents in the group" total-selected-items="totalSelectedAgents"
|
||||
reload-scroll='reload(element, searchTerm, 499, start)' limit="checkLimit()">
|
||||
</wz-multiple-selector>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,3 +0,0 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -1,116 +1,99 @@
|
||||
<div ng-controller="agentsPreviewController as actrl">
|
||||
<div ng-init="actrl.addNewAgent(false)" ng-show="actrl.addingNewAgent">
|
||||
<react-component name="RegisterAgent" props="actrl.registerAgentsProps" />
|
||||
<md-content flex layout="column" ng-if="octrl.tab === 'fim' && octrl.tabView === 'panels'" ng-class="{'no-opacity': resultState !== 'ready' || !rendered}">
|
||||
|
||||
<div layout="row" class="height-400">
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(0)">
|
||||
<span class="wz-headline-title">Alerts by action over time</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(0)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis id="Wazuh-App-Agents-FIM-Alerts-by-action-over-time" vis-id="'Wazuh-App-Agents-FIM-Alerts-by-action-over-time'"></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[1]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(1)">
|
||||
<span class="wz-headline-title">Top 5 agents</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(1)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis id="Wazuh-App-Overview-FIM-Top-5-agents-pie" vis-id="'Wazuh-App-Overview-FIM-Top-5-agents-pie'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(2)">
|
||||
<span class="wz-headline-title">Events summary</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(2)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis id="Wazuh-App-Overview-FIM-Events-summary" vis-id="'Wazuh-App-Overview-FIM-Events-summary'">
|
||||
</kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
<div ng-show="!actrl.addingNewAgent">
|
||||
<md-content flex layout="column" ng-if="octrl.tab === 'fim' && octrl.tabView === 'panels'" ng-class="{'no-opacity': resultState !== 'ready' || !rendered}">
|
||||
<div class="wz-margin-top-10 wz-margin-right-8 wz-margin-left-8 euiCallOut euiCallOut--warning">
|
||||
<div class="euiCallOutHeader">
|
||||
<span class="euiCallOutHeader__title ng-binding">
|
||||
<react-component name="EuiIcon" props="{type:'help'}"><svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" class="euiIcon euiIcon--medium euiIcon-isLoaded" focusable="false"><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 xlink:href="#help-a" fill-rule="evenodd"></use></svg></react-component>
|
||||
No agents were added to this manager:
|
||||
</span>
|
||||
<a ng-click="actrl.addNewAgent(true)">
|
||||
Deploy new agent
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div layout="row" class="height-400">
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[0]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(0)">
|
||||
<span class="wz-headline-title">Alerts by action over time</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(0)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis id="Wazuh-App-Agents-FIM-Alerts-by-action-over-time" vis-id="'Wazuh-App-Agents-FIM-Alerts-by-action-over-time'"></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[1]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(1)">
|
||||
<span class="wz-headline-title">Top 5 agents</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(1)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis id="Wazuh-App-Overview-FIM-Top-5-agents-pie" vis-id="'Wazuh-App-Overview-FIM-Top-5-agents-pie'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[2]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(2)">
|
||||
<span class="wz-headline-title">Events summary</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(2)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis id="Wazuh-App-Overview-FIM-Events-summary" vis-id="'Wazuh-App-Overview-FIM-Events-summary'">
|
||||
</kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
|
||||
<div layout="row" class="height-300">
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(3)">
|
||||
<span class="wz-headline-title">Rule distribution</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(3)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-Top-5-rules'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<div layout="row" class="height-300">
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[3]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(3)">
|
||||
<span class="wz-headline-title">Rule distribution</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(3)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-Top-5-rules'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(4)">
|
||||
<span class="wz-headline-title">Actions</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(4)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis id="Wazuh-App-Overview-FIM-Common-actions" vis-id="'Wazuh-App-Overview-FIM-Common-actions'">
|
||||
</kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[5]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(5)">
|
||||
<span class="wz-headline-title">Top 5 users</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(5)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis class="sca-vis table-scrollable" vis-id="'Wazuh-App-Overview-FIM-top-agents-user'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
<div layout="row" layout-align="center stretch" class="height-570">
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[6]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(6)">
|
||||
<span class="wz-headline-title">Alerts summary</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(6)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-Alerts-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
</md-content>
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[4]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(4)">
|
||||
<span class="wz-headline-title">Actions</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(4)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis id="Wazuh-App-Overview-FIM-Common-actions" vis-id="'Wazuh-App-Overview-FIM-Common-actions'">
|
||||
</kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[5]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(5)">
|
||||
<span class="wz-headline-title">Top 5 users</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(5)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis class="sca-vis table-scrollable" vis-id="'Wazuh-App-Overview-FIM-top-agents-user'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
<div layout="row" layout-align="center stretch" class="height-570">
|
||||
<md-card flex class="wz-md-card" ng-class="{'fullscreen': octrl.expandArray[6]}">
|
||||
<md-card-actions layout="row" class="wz-card-actions-vis" ng-dblclick="octrl.expand(6)">
|
||||
<span class="wz-headline-title">Alerts summary</span>
|
||||
<span flex></span>
|
||||
<span class="cursor-pointer" ng-click="octrl.expand(6)">
|
||||
<react-component name="EuiIcon" props="{type:'expand'}" />
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
<kbn-vis vis-id="'Wazuh-App-Overview-FIM-Alerts-summary'"></kbn-vis>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</div>
|
||||
</md-content>
|
@ -1,5 +1,5 @@
|
||||
<md-content flex layout="column" ng-if="octrl.tab === 'general' && octrl.tabView === 'panels'" layout-align="start"
|
||||
ng-class="{'no-opacity': resultState !== 'ready' || !rendered}">
|
||||
ng-class="{'no-opacity': resultState !== 'ready' || !rendered}">
|
||||
|
||||
<div layout="row" layout-padding>
|
||||
<react-component flex name="AlertsStats" props="{
|
||||
@ -123,7 +123,6 @@ ng-class="{'no-opacity': resultState !== 'ready' || !rendered}">
|
||||
</span>
|
||||
</md-card-actions>
|
||||
<md-card-content class="wazuh-column">
|
||||
|
||||
<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>
|
||||
|
@ -1,98 +1,80 @@
|
||||
<div ng-controller="agentsPreviewController as actrl">
|
||||
<div ng-init="actrl.addNewAgent(false)" ng-show="actrl.addingNewAgent">
|
||||
<react-component name="RegisterAgent" props="actrl.registerAgentsProps" />
|
||||
<div flex="auto" layout="column" ng-cloak ng-controller="overviewController as octrl">
|
||||
<!-- Navigation section -->
|
||||
<div layout="row" layout-align="start center">
|
||||
<!-- Breadcrumbs -->
|
||||
<div layout="row" layout-padding>
|
||||
<!-- If you're not on the Welcome tab, show a functional breadcrumb -->
|
||||
<div ng-if="octrl.tab !== 'welcome'">
|
||||
<span class="wz-text-link cursor-pointer" ng-click="octrl.switchTab('welcome')">Overview</span>
|
||||
<span> / </span>
|
||||
<span>{{ octrl.tabNames[octrl.tab] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End breadcrumbs -->
|
||||
|
||||
<!-- Separator -->
|
||||
<span flex></span>
|
||||
<!-- End separator -->
|
||||
|
||||
<!-- Reporting button section -->
|
||||
<div ng-if="octrl.tab !== 'welcome' && octrl.tabView === 'panels'">
|
||||
<!-- Report button -->
|
||||
<button class="kuiButton kuiButton--secondary wz-margin-right-8 small" tooltip="Generate report"
|
||||
tooltip-placement="bottom"
|
||||
ng-class="{'euiButtonEmpty--disabled': !rendered || loading || resultState !== 'ready'}"
|
||||
ng-disabled="!rendered || loading || resultState !== 'ready'" ng-click="octrl.startVis2Png()"
|
||||
aria-label="Generate report button">
|
||||
<i class="fa fa-fw fa-print" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
<!-- End Reporting buttons section -->
|
||||
|
||||
<!-- Discover/Dashboard buttons section -->
|
||||
<div ng-if="octrl.tab !== 'welcome'" class="wz-margin-right-8">
|
||||
<!-- Dashboard button -->
|
||||
<button class="kuiButton kuiButton--secondary small"
|
||||
ng-click="octrl.tabView === 'discover' ? octrl.switchSubtab('panels') : octrl.switchSubtab('discover')"
|
||||
aria-label="Dashboard button">
|
||||
<span ng-if="octrl.tabView === 'discover'"><i class="fa fa-fw fa-th" aria-hidden="true"></i>
|
||||
Dashboard</span>
|
||||
<span ng-if="octrl.tabView === 'panels'"><i class="fa fa-fw fa-compass" aria-hidden="true"></i>
|
||||
Discover</span>
|
||||
</button>
|
||||
</div>
|
||||
<!-- End Discover/Dashboard buttons section -->
|
||||
</div>
|
||||
<div ng-show="!actrl.addingNewAgent">
|
||||
<div flex="auto" layout="column" ng-cloak ng-controller="overviewController as octrl">
|
||||
<!-- Navigation section -->
|
||||
<div layout="row" layout-align="start center">
|
||||
<!-- Breadcrumbs -->
|
||||
<div layout="row" layout-padding>
|
||||
<!-- If you're not on the Welcome tab, show a functional breadcrumb -->
|
||||
<div ng-if="octrl.tab !== 'welcome'">
|
||||
<span class="wz-text-link cursor-pointer" ng-click="octrl.switchTab('welcome')">Overview</span>
|
||||
<span> / </span>
|
||||
<span>{{ octrl.tabNames[octrl.tab] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End breadcrumbs -->
|
||||
<!-- End navigation section -->
|
||||
|
||||
<!-- Separator -->
|
||||
<span flex></span>
|
||||
<!-- End separator -->
|
||||
<!-- Navigation bar -->
|
||||
<div ng-if="octrl.overviewTabsProps">
|
||||
<react-component name="Tabs" props="octrl.overviewTabsProps" />
|
||||
</div>
|
||||
<!-- End of navigation bar -->
|
||||
|
||||
<!-- Reporting button section -->
|
||||
<div ng-if="octrl.tab !== 'welcome' && octrl.tabView === 'panels'">
|
||||
<!-- Report button -->
|
||||
<button class="kuiButton kuiButton--secondary wz-margin-right-8 small" tooltip="Generate report"
|
||||
tooltip-placement="bottom"
|
||||
ng-class="{'euiButtonEmpty--disabled': !rendered || loading || resultState !== 'ready'}"
|
||||
ng-disabled="!rendered || loading || resultState !== 'ready'" ng-click="octrl.startVis2Png()"
|
||||
aria-label="Generate report button">
|
||||
<i class="fa fa-fw fa-print" aria-hidden="true"></i>
|
||||
</button>
|
||||
</div>
|
||||
<!-- End Reporting buttons section -->
|
||||
<!-- Discover search bar section -->
|
||||
<kbn-dis ng-show="octrl.tab !== 'welcome'"></kbn-dis>
|
||||
<!-- End Discover search bar section -->
|
||||
|
||||
<!-- Discover/Dashboard buttons section -->
|
||||
<div ng-if="octrl.tab !== 'welcome'" class="wz-margin-right-8">
|
||||
<!-- Dashboard button -->
|
||||
<button class="kuiButton kuiButton--secondary small"
|
||||
ng-click="octrl.tabView === 'discover' ? octrl.switchSubtab('panels') : octrl.switchSubtab('discover')"
|
||||
aria-label="Dashboard button">
|
||||
<span ng-if="octrl.tabView === 'discover'"><i class="fa fa-fw fa-th" aria-hidden="true"></i>
|
||||
Dashboard</span>
|
||||
<span ng-if="octrl.tabView === 'panels'"><i class="fa fa-fw fa-compass" aria-hidden="true"></i>
|
||||
Discover</span>
|
||||
</button>
|
||||
</div>
|
||||
<!-- End Discover/Dashboard buttons section -->
|
||||
</div>
|
||||
<!-- End navigation section -->
|
||||
<!-- Loading status section -->
|
||||
<div layout="column" layout-align="center center"
|
||||
ng-if="octrl.tab !== 'welcome' && octrl.tabView === 'panels' && !rendered && resultState !== 'none'">
|
||||
<div class="percentage"><i class="fa fa-fw fa-spin fa-spinner" aria-hidden="true"></i></div>
|
||||
<div class="percentage">{{loadingStatus}}</div>
|
||||
</div>
|
||||
<!-- End loading status section -->
|
||||
|
||||
<!-- Navigation bar -->
|
||||
<div ng-if="octrl.overviewTabsProps">
|
||||
<react-component name="Tabs" props="octrl.overviewTabsProps" />
|
||||
</div>
|
||||
<!-- End of navigation bar -->
|
||||
<!-- Report status section -->
|
||||
<div layout="column" layout-align="center center" ng-if="octrl.tab !== 'welcome'"
|
||||
ng-show="reportBusy && reportStatus">
|
||||
<div class="percentage"><i class="fa fa-fw fa-spin fa-spinner" aria-hidden="true"></i></div>
|
||||
<div class="percentage">{{reportStatus}}</div>
|
||||
</div>
|
||||
<!-- End report status section -->
|
||||
|
||||
<!-- Discover search bar section -->
|
||||
<kbn-dis ng-show="octrl.tab !== 'welcome'"></kbn-dis>
|
||||
<!-- End Discover search bar section -->
|
||||
|
||||
<!-- Loading status section -->
|
||||
<div layout="column" layout-align="center center"
|
||||
ng-if="octrl.tab !== 'welcome' && octrl.tabView === 'panels' && !rendered && resultState !== 'none'">
|
||||
<div class="percentage"><i class="fa fa-fw fa-spin fa-spinner" aria-hidden="true"></i></div>
|
||||
<div class="percentage">{{loadingStatus}}</div>
|
||||
</div>
|
||||
<!-- End loading status section -->
|
||||
|
||||
<!-- Report status section -->
|
||||
<div layout="column" layout-align="center center" ng-if="octrl.tab !== 'welcome'"
|
||||
ng-show="reportBusy && reportStatus">
|
||||
<div class="percentage"><i class="fa fa-fw fa-spin fa-spinner" aria-hidden="true"></i></div>
|
||||
<div class="percentage">{{reportStatus}}</div>
|
||||
</div>
|
||||
<!-- End report status section -->
|
||||
|
||||
<!-- No results section -->
|
||||
<div layout="row" class="wz-margin-top-10 wz-margin-right-8 wz-margin-left-8" ng-if="octrl.tab !== 'welcome'"
|
||||
ng-show="resultState === 'none' && octrl.tabView === 'panels'">
|
||||
<react-component flex name="EuiCallOut" props="{color:'warning',iconType:'help', title:'There are no results for selected time range. Try another
|
||||
one.'}" />
|
||||
</div>
|
||||
|
||||
<div ng-if="!actrl.hasAgents" class="wz-margin-top-10 wz-margin-right-8 wz-margin-left-8 euiCallOut euiCallOut--warning">
|
||||
<div class="euiCallOutHeader">
|
||||
<span class="euiCallOutHeader__title ng-binding">
|
||||
<react-component name="EuiIcon" props="{type:'help'}"><svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" class="euiIcon euiIcon--medium euiIcon-isLoaded" focusable="false"><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 xlink:href="#help-a" fill-rule="evenodd"></use></svg></react-component>
|
||||
No agents were added to this manager:
|
||||
</span>
|
||||
<a ng-click="actrl.addNewAgent(true)">
|
||||
Deploy new agent
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- No results section -->
|
||||
<!-- No results section -->
|
||||
<div layout="row" class="wz-margin-top-10 wz-margin-right-8 wz-margin-left-8" ng-if="octrl.tab !== 'welcome'"
|
||||
ng-show="resultState === 'none' && octrl.tabView === 'panels'">
|
||||
<react-component flex name="EuiCallOut" props="{color:'warning',iconType:'help', title:'There are no results for selected time range. Try another
|
||||
one.'}" />
|
||||
</div>
|
||||
<!-- No results section -->
|
@ -15,4 +15,4 @@ include ./overview-aws.html
|
||||
include ./overview-virustotal.html
|
||||
include ./overview-osquery.html
|
||||
include ./overview-docker.html
|
||||
include ./footer.foot
|
||||
include ../footer.foot
|
||||
|
Loading…
Reference in New Issue
Block a user