mirror of
https://github.com/valitydev/wazuh-kibana-app.git
synced 2024-11-06 09:55:18 +00:00
Merge branch '3.8-6.5' into issue-988
This commit is contained in:
commit
4c4ed040a2
19
CHANGELOG.md
19
CHANGELOG.md
@ -2,6 +2,25 @@
|
||||
|
||||
All notable changes to the Wazuh app project will be documented in this file.
|
||||
|
||||
## Wazuh v3.7.1 - Kibana v6.5.1 - Revision 415
|
||||
|
||||
### Added
|
||||
|
||||
- Support for Wazuh v3.7.1.
|
||||
- Dev Tools module now autocompletes API endpoints ([#1030](https://github.com/wazuh/wazuh-kibana-app/pull/1030)).
|
||||
|
||||
### Changed
|
||||
|
||||
- Increased number of rows for syscollector tables ([#1033](https://github.com/wazuh/wazuh-kibana-app/pull/1033)).
|
||||
- Modularized JSON/XML viewers for the configuration section ([#982](https://github.com/wazuh/wazuh-kibana-app/pull/982)).
|
||||
|
||||
### Fixed
|
||||
|
||||
- Added missing fields for syscollector network tables ([#1036](https://github.com/wazuh/wazuh-kibana-app/pull/1036)).
|
||||
- Using the right API path when downloading CSV for decoders list ([#1045](https://github.com/wazuh/wazuh-kibana-app/pull/1045)).
|
||||
- Including group field when downloading CSV for agents list ([#1044](https://github.com/wazuh/wazuh-kibana-app/pull/1044)).
|
||||
- Preserve active tab in configuration section when refreshing the page ([#1037](https://github.com/wazuh/wazuh-kibana-app/pull/1037)).
|
||||
|
||||
## Wazuh v3.7.0 - Kibana v6.5.0 / v6.5.1 - Revision 414
|
||||
|
||||
### Added
|
||||
|
@ -25,8 +25,8 @@ Visualize and analyze Wazuh alerts stored in Elasticsearch using our Kibana app
|
||||
|
||||
## Requisites
|
||||
|
||||
- Wazuh HIDS 3.7.0
|
||||
- Wazuh RESTful API 3.7.0
|
||||
- Wazuh HIDS 3.7.1
|
||||
- Wazuh RESTful API 3.7.1
|
||||
- Kibana 6.5.1
|
||||
- Elasticsearch 6.5.1
|
||||
|
||||
@ -35,7 +35,7 @@ Visualize and analyze Wazuh alerts stored in Elasticsearch using our Kibana app
|
||||
Install the app
|
||||
|
||||
```
|
||||
sudo -u kibana NODE_OPTIONS="--max-old-space-size=3072" /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.7.0_6.5.1.zip
|
||||
sudo -u kibana NODE_OPTIONS="--max-old-space-size=3072" /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.7.1_6.5.1.zip
|
||||
```
|
||||
|
||||
Restart Kibana
|
||||
@ -90,7 +90,7 @@ chown -R kibana:kibana /usr/share/kibana/plugins
|
||||
Install the app
|
||||
|
||||
```
|
||||
sudo -u kibana NODE_OPTIONS="--max-old-space-size=3072" /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.7.0_6.5.1.zip
|
||||
sudo -u kibana NODE_OPTIONS="--max-old-space-size=3072" /usr/share/kibana/bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.7.1_6.5.1.zip
|
||||
```
|
||||
|
||||
Restart Kibana
|
||||
@ -151,6 +151,7 @@ service kibana restart
|
||||
| 6.4.3 | 3.7.0 | /usr/share/kibana/bin/kibana-plugin install <https://packages.wazuh.com/wazuhapp/wazuhapp-3.7.0_6.4.3.zip> |
|
||||
| 6.5.0 | 3.7.0 | /usr/share/kibana/bin/kibana-plugin install <https://packages.wazuh.com/wazuhapp/wazuhapp-3.7.0_6.5.0.zip> |
|
||||
| 6.5.1 | 3.7.0 | /usr/share/kibana/bin/kibana-plugin install <https://packages.wazuh.com/wazuhapp/wazuhapp-3.7.0_6.5.1.zip> |
|
||||
| 6.5.1 | 3.7.1 | /usr/share/kibana/bin/kibana-plugin install <https://packages.wazuh.com/wazuhapp/wazuhapp-3.7.1_6.5.1.zip> |
|
||||
|
||||
|
||||
## Contribute
|
||||
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "wazuh",
|
||||
"version": "3.7.0",
|
||||
"revision": "0414",
|
||||
"code": "0414-1",
|
||||
"version": "3.7.1",
|
||||
"revision": "0415",
|
||||
"code": "0415-0",
|
||||
"kibana": {
|
||||
"version": "6.5.1"
|
||||
},
|
||||
|
@ -71,6 +71,7 @@ export class AgentsController {
|
||||
}
|
||||
|
||||
$onInit() {
|
||||
timefilter.setRefreshInterval({pause:true,value:0})
|
||||
this.$scope.TabDescription = TabDescription;
|
||||
|
||||
this.$rootScope.reportStatus = false;
|
||||
@ -172,29 +173,70 @@ export class AgentsController {
|
||||
this.$scope.isString = item => typeof item === 'string';
|
||||
this.$scope.hasSize = obj =>
|
||||
obj && typeof obj === 'object' && Object.keys(obj).length;
|
||||
this.$scope.switchConfigTab = (configurationTab, sections) =>
|
||||
this.$scope.switchConfigTab = (configurationTab, sections, navigate = true) => {
|
||||
this.$scope.navigate = navigate;
|
||||
try {
|
||||
this.$scope.configSubTab = JSON.stringify({ 'configurationTab': configurationTab, 'sections': sections });
|
||||
if (!this.$location.search().configSubTab) {
|
||||
this.appState.setSessionStorageItem('configSubTab', this.$scope.configSubTab);
|
||||
this.$location.search('configSubTab', true);
|
||||
}
|
||||
} catch (error) {
|
||||
this.errorHandler.handle(error, 'Set configuration path');
|
||||
}
|
||||
this.configurationHandler.switchConfigTab(
|
||||
configurationTab,
|
||||
sections,
|
||||
this.$scope,
|
||||
this.$scope.agent.id
|
||||
);
|
||||
this.$scope.switchWodle = wodleName =>
|
||||
}
|
||||
this.$scope.switchWodle = (wodleName, navigate = true) => {
|
||||
this.$scope.navigate = navigate;
|
||||
this.$scope.configWodle = wodleName;
|
||||
if (!this.$location.search().configWodle) {
|
||||
this.$location.search('configWodle', this.$scope.configWodle);
|
||||
}
|
||||
this.configurationHandler.switchWodle(
|
||||
wodleName,
|
||||
this.$scope,
|
||||
this.$scope.agent.id
|
||||
);
|
||||
this.$scope.switchConfigurationTab = configurationTab =>
|
||||
)
|
||||
};
|
||||
this.$scope.switchConfigurationTab = (configurationTab, navigate) => {
|
||||
this.$scope.navigate = navigate;
|
||||
this.configurationHandler.switchConfigurationTab(
|
||||
configurationTab,
|
||||
this.$scope
|
||||
);
|
||||
this.$scope.switchConfigurationSubTab = configurationSubTab =>
|
||||
if (!this.$scope.navigate) {
|
||||
const configSubTab = this.$location.search().configSubTab;
|
||||
if (configSubTab) {
|
||||
try {
|
||||
const config = this.appState.getSessionStorageItem('configSubTab');
|
||||
const configSubTabObj = JSON.parse(config);
|
||||
this.$scope.switchConfigTab(configSubTabObj.configurationTab, configSubTabObj.sections, false);
|
||||
} catch (error) {
|
||||
this.errorHandler.handle(error, 'Get configuration path');
|
||||
}
|
||||
} else {
|
||||
const configWodle = this.$location.search().configWodle;
|
||||
if (configWodle) {
|
||||
this.$scope.switchWodle(configWodle, false);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.$location.search('configSubTab', null);
|
||||
this.appState.removeSessionStorageItem('configSubTab');
|
||||
this.$location.search('configWodle', null);
|
||||
}
|
||||
}
|
||||
this.$scope.switchConfigurationSubTab = configurationSubTab => {
|
||||
this.configurationHandler.switchConfigurationSubTab(
|
||||
configurationSubTab,
|
||||
this.$scope
|
||||
);
|
||||
}
|
||||
this.$scope.updateSelectedItem = i => (this.$scope.selectedItem = i);
|
||||
this.$scope.getIntegration = list =>
|
||||
this.configurationHandler.getIntegration(list, this.$scope);
|
||||
@ -203,6 +245,9 @@ export class AgentsController {
|
||||
this.$scope.showSyscheckFiles = !this.$scope.showSyscheckFiles;
|
||||
if(!this.$scope.$$phase) this.$scope.$digest();
|
||||
}
|
||||
|
||||
this.$scope.$on('$routeChangeStart', () => this.appState.removeSessionStorageItem('configSubTab'));
|
||||
|
||||
}
|
||||
|
||||
createMetrics(metricsObject) {
|
||||
@ -288,12 +333,7 @@ export class AgentsController {
|
||||
// Switch tab
|
||||
async switchTab(tab, force = false) {
|
||||
if (this.ignoredTabs.includes(tab)) {
|
||||
const timeFilterRefreshStatus = timefilter.getRefreshInterval();
|
||||
const toggle =
|
||||
timeFilterRefreshStatus &&
|
||||
timeFilterRefreshStatus.value &&
|
||||
!timeFilterRefreshStatus.pause;
|
||||
if (toggle) timefilter.toggleRefresh();
|
||||
timefilter.setRefreshInterval({pause:true,value:0})
|
||||
}
|
||||
|
||||
try {
|
||||
|
@ -11,13 +11,15 @@
|
||||
*/
|
||||
import CodeMirror from '../../utils/codemirror/lib/codemirror';
|
||||
import jsonLint from '../../utils/codemirror/json-lint';
|
||||
import { ExcludedIntelliSenseTriggerKeys } from '../../../util/excluded-devtools-autocomplete-keys';
|
||||
import queryString from 'querystring-browser';
|
||||
import $ from 'jquery';
|
||||
|
||||
export class DevToolsController {
|
||||
constructor($scope, apiReq, $window, appState, errorHandler, $document) {
|
||||
constructor($scope, apiReq, genericReq, $window, appState, errorHandler, $document) {
|
||||
this.$scope = $scope;
|
||||
this.apiReq = apiReq;
|
||||
this.genericReq = genericReq;
|
||||
this.$window = $window;
|
||||
this.appState = appState;
|
||||
this.errorHandler = errorHandler;
|
||||
@ -40,6 +42,11 @@ export class DevToolsController {
|
||||
gutters: ['CodeMirror-foldgutter']
|
||||
}
|
||||
);
|
||||
CodeMirror.commands.autocomplete = function (cm) {
|
||||
CodeMirror.showHint(cm, CodeMirror.hint.dictionaryHint, {
|
||||
completeSingle: false
|
||||
});
|
||||
};
|
||||
|
||||
this.apiInputBox.on('change', () => {
|
||||
this.groups = this.analyzeGroups();
|
||||
@ -232,8 +239,26 @@ export class DevToolsController {
|
||||
return affectedGroups;
|
||||
}
|
||||
|
||||
async getAvailableMethods() {
|
||||
try {
|
||||
const response = await this.genericReq.request('GET', '/api/routes', {});
|
||||
this.apiInputBox.model = !response.error ? response.data : [];
|
||||
} catch (error) {
|
||||
this.apiInputBox.model = [];
|
||||
}
|
||||
}
|
||||
|
||||
init() {
|
||||
this.apiInputBox.setSize('auto', '100%');
|
||||
this.apiInputBox.model = [];
|
||||
this.getAvailableMethods();
|
||||
this.apiInputBox.on('keyup', function (cm, e) {
|
||||
if (!ExcludedIntelliSenseTriggerKeys[(e.keyCode || e.which).toString()]) {
|
||||
cm.execCommand('autocomplete', null, {
|
||||
completeSingle: false
|
||||
});
|
||||
}
|
||||
});
|
||||
this.apiOutputBox.setSize('auto', '100%');
|
||||
const currentState = this.appState.getCurrentDevTools();
|
||||
if (!currentState) {
|
||||
@ -248,6 +273,65 @@ export class DevToolsController {
|
||||
this.groups = this.analyzeGroups();
|
||||
const currentGroup = this.calculateWhichGroup();
|
||||
this.highlightGroup(currentGroup);
|
||||
|
||||
// Register our custom Codemirror hint plugin.
|
||||
CodeMirror.registerHelper('hint', 'dictionaryHint', function (editor) {
|
||||
const model = editor.model;
|
||||
function getDictionary(line, word) {
|
||||
let hints = [];
|
||||
const exp = line.split(/\s+/g);
|
||||
if (exp[0] && exp[0].match(/^(?:GET|PUT|POST|DELETE).*$/)) {
|
||||
let method = model.find(function (item) {
|
||||
return item.method === exp[0]
|
||||
});
|
||||
const forbidChars = /^[^?{]+$/;
|
||||
if (method && !exp[2] && forbidChars.test(word)) {
|
||||
method.endpoints.forEach(function (endpoint) {
|
||||
endpoint.path = endpoint.name;
|
||||
if (endpoint.args && endpoint.args.length > 0) {
|
||||
let argSubs = [];
|
||||
endpoint.args.forEach(function (arg) {
|
||||
const pathSplitted = endpoint.name.split('/');
|
||||
const arrayIdx = pathSplitted.indexOf(arg.name);
|
||||
const wordSplitted = word.split('/');
|
||||
if (wordSplitted[arrayIdx] && wordSplitted[arrayIdx] != '') {
|
||||
argSubs.push({
|
||||
'id': arg.name,
|
||||
'value': wordSplitted[arrayIdx]
|
||||
});
|
||||
}
|
||||
});
|
||||
let auxPath = endpoint.name;
|
||||
argSubs.forEach(function (arg) {
|
||||
auxPath = auxPath.replace(arg.id, arg.value);
|
||||
});
|
||||
endpoint.path = auxPath;
|
||||
}
|
||||
});
|
||||
hints = method.endpoints.map(a => a.path);
|
||||
}
|
||||
} else {
|
||||
hints = model.map(a => a.method);
|
||||
}
|
||||
return hints;
|
||||
}
|
||||
|
||||
const cur = editor.getCursor();
|
||||
const curLine = editor.getLine(cur.line);
|
||||
let start = cur.ch;
|
||||
let end = start;
|
||||
const whiteSpace = /\s/;
|
||||
while (end < curLine.length && !whiteSpace.test(curLine.charAt(end)))++end;
|
||||
while (start && !whiteSpace.test(curLine.charAt(start - 1)))--start;
|
||||
const curWord = start !== end && curLine.slice(start, end);
|
||||
return {
|
||||
list: (!curWord ? [] : getDictionary(curLine, curWord).filter(function (item) {
|
||||
return item.toUpperCase().includes(curWord.toUpperCase());
|
||||
})).sort(),
|
||||
from: CodeMirror.Pos(cur.line, start),
|
||||
to: CodeMirror.Pos(cur.line, end)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
calculateWhichGroup(firstTime) {
|
||||
@ -257,10 +341,10 @@ export class DevToolsController {
|
||||
const desiredGroup = firstTime
|
||||
? this.groups.filter(item => item.requestText)
|
||||
: this.groups.filter(
|
||||
item =>
|
||||
item.requestText &&
|
||||
(item.end >= selection.line && item.start <= selection.line)
|
||||
);
|
||||
item =>
|
||||
item.requestText &&
|
||||
(item.end >= selection.line && item.start <= selection.line)
|
||||
);
|
||||
|
||||
// Place play button at first line from the selected group
|
||||
const cords = this.apiInputBox.cursorCoords({
|
||||
|
@ -12,10 +12,12 @@
|
||||
import { ConfigurationHandler } from '../../utils/config-handler';
|
||||
|
||||
export class ConfigurationController {
|
||||
constructor($scope, errorHandler, apiReq) {
|
||||
constructor($scope, $location, errorHandler, apiReq, appState) {
|
||||
this.$scope = $scope;
|
||||
this.errorHandler = errorHandler;
|
||||
this.apiReq = apiReq;
|
||||
this.appState = appState;
|
||||
this.$location = $location;
|
||||
this.$scope.load = false;
|
||||
this.$scope.isArray = Array.isArray;
|
||||
this.configurationHandler = new ConfigurationHandler(apiReq, errorHandler);
|
||||
@ -32,19 +34,60 @@ export class ConfigurationController {
|
||||
this.$scope.isString = item => typeof item === 'string';
|
||||
this.$scope.hasSize = obj =>
|
||||
obj && typeof obj === 'object' && Object.keys(obj).length;
|
||||
this.$scope.switchConfigTab = (configurationTab, sections) =>
|
||||
this.$scope.switchConfigTab = (configurationTab, sections, navigate = true) => {
|
||||
this.$scope.navigate = navigate;
|
||||
try {
|
||||
this.$scope.configSubTab = JSON.stringify({ 'configurationTab': configurationTab, 'sections': sections });
|
||||
if (!this.$location.search().configSubTab) {
|
||||
this.appState.setSessionStorageItem('configSubTab', this.$scope.configSubTab);
|
||||
this.$location.search('configSubTab', true);
|
||||
}
|
||||
} catch (error) {
|
||||
this.errorHandler.handle(error, 'Set configuration path');
|
||||
}
|
||||
this.configurationHandler.switchConfigTab(
|
||||
configurationTab,
|
||||
sections,
|
||||
this.$scope
|
||||
);
|
||||
this.$scope.switchWodle = wodleName =>
|
||||
)
|
||||
};
|
||||
this.$scope.switchWodle = (wodleName, navigate = true) => {
|
||||
this.$scope.navigate = navigate;
|
||||
this.$scope.configWodle = wodleName;
|
||||
if (!this.$location.search().configWodle) {
|
||||
this.$location.search('configWodle', this.$scope.configWodle);
|
||||
}
|
||||
this.configurationHandler.switchWodle(wodleName, this.$scope);
|
||||
this.$scope.switchConfigurationTab = configurationTab =>
|
||||
}
|
||||
|
||||
this.$scope.switchConfigurationTab = (configurationTab, navigate) => {
|
||||
this.$scope.navigate = navigate;
|
||||
this.configurationHandler.switchConfigurationTab(
|
||||
configurationTab,
|
||||
this.$scope
|
||||
);
|
||||
)
|
||||
if (!this.$scope.navigate) {
|
||||
let configSubTab = this.$location.search().configSubTab;
|
||||
if (configSubTab) {
|
||||
try {
|
||||
const config = this.appState.getSessionStorageItem('configSubTab');
|
||||
const configSubTabObj = JSON.parse(config);
|
||||
this.$scope.switchConfigTab(configSubTabObj.configurationTab, configSubTabObj.sections, false);
|
||||
} catch (error) {
|
||||
this.errorHandler.handle(error, 'Get configuration path');
|
||||
}
|
||||
} else {
|
||||
let configWodle = this.$location.search().configWodle;
|
||||
if (configWodle) {
|
||||
this.$scope.switchWodle(configWodle, false);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.$location.search('configSubTab', null);
|
||||
this.appState.removeSessionStorageItem('configSubTab');
|
||||
this.$location.search('configWodle', null);
|
||||
}
|
||||
};
|
||||
this.$scope.switchConfigurationSubTab = configurationSubTab =>
|
||||
this.configurationHandler.switchConfigurationSubTab(
|
||||
configurationSubTab,
|
||||
@ -53,5 +96,7 @@ export class ConfigurationController {
|
||||
this.$scope.updateSelectedItem = i => (this.$scope.selectedItem = i);
|
||||
this.$scope.getIntegration = list =>
|
||||
this.configurationHandler.getIntegration(list, this.$scope);
|
||||
|
||||
this.$scope.$on('$routeChangeStart', () => this.appState.removeSessionStorageItem('configSubTab'));
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@
|
||||
* Find more information about this on the LICENSE file.
|
||||
*/
|
||||
import { FilterHandler } from '../../utils/filter-handler';
|
||||
import { timefilter } from 'ui/timefilter';
|
||||
|
||||
export function ClusterController(
|
||||
$scope,
|
||||
@ -27,6 +28,7 @@ export function ClusterController(
|
||||
appState,
|
||||
genericReq
|
||||
) {
|
||||
timefilter.setRefreshInterval({pause:true,value:0})
|
||||
$scope.search = term => {
|
||||
$scope.$broadcast('wazuhSearch', { term });
|
||||
};
|
||||
|
@ -25,6 +25,7 @@ import {
|
||||
} from '../../utils/overview-metrics';
|
||||
|
||||
import { queryConfig } from '../../services/query-config';
|
||||
import { timefilter } from 'ui/timefilter';
|
||||
|
||||
export class OverviewController {
|
||||
constructor(
|
||||
@ -54,6 +55,7 @@ export class OverviewController {
|
||||
}
|
||||
|
||||
$onInit() {
|
||||
timefilter.setRefreshInterval({pause:true,value:0})
|
||||
this.wodlesConfiguration = false;
|
||||
this.TabDescription = TabDescription;
|
||||
this.$rootScope.reportStatus = false;
|
||||
@ -211,6 +213,10 @@ export class OverviewController {
|
||||
// Switch tab
|
||||
async switchTab(newTab, force = false) {
|
||||
try {
|
||||
if(newTab === 'welcome') {
|
||||
timefilter.setRefreshInterval({pause:true,value:0})
|
||||
}
|
||||
|
||||
if (newTab !== 'welcome') {
|
||||
await this.fetchWodles();
|
||||
}
|
||||
|
@ -11,6 +11,7 @@
|
||||
*/
|
||||
import { base64 } from '../../utils/base64';
|
||||
import { TabNames } from '../../utils/tab-names';
|
||||
import { configEquivalences } from '../../utils/config-equivalences';
|
||||
|
||||
export class SettingsController {
|
||||
constructor(
|
||||
@ -637,4 +638,8 @@ export class SettingsController {
|
||||
refreshLogs() {
|
||||
return this.getAppLogs();
|
||||
}
|
||||
|
||||
configEquivalence(key) {
|
||||
return configEquivalences[key] || '-';
|
||||
}
|
||||
}
|
||||
|
@ -18,3 +18,4 @@ import './wz-welcome-card/wz-welcome-card';
|
||||
import './wz-no-config/wz-no-config';
|
||||
import './wz-config-item/wz-config-item';
|
||||
import './wz-config-item/wz-config-item.less';
|
||||
import './wz-config-viewer/wz-config-viewer';
|
53
public/directives/wz-config-viewer/wz-config-viewer.html
Normal file
53
public/directives/wz-config-viewer/wz-config-viewer.html
Normal file
@ -0,0 +1,53 @@
|
||||
<div layout="row">
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="jsoncontent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="jsoncontent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="callgetjson()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="xmlcontent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="callgetxml()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="jsoncontent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="xmlcontent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="jsoncontent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="callgetjson()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="xmlcontent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="callgetxml()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ xmlcontent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
</div>
|
39
public/directives/wz-config-viewer/wz-config-viewer.js
Normal file
39
public/directives/wz-config-viewer/wz-config-viewer.js
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Wazuh app - Wazuh config viewer directive
|
||||
* Copyright (C) 2018 Wazuh, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Find more information about this on the LICENSE file.
|
||||
*/
|
||||
|
||||
import template from './wz-config-viewer.html';
|
||||
import { uiModules } from 'ui/modules';
|
||||
|
||||
const app = uiModules.get('app/wazuh', []);
|
||||
|
||||
class WzConfigViewer {
|
||||
constructor() {
|
||||
this.restrict = 'E';
|
||||
this.scope = {
|
||||
getjson: '&',
|
||||
getxml: '&',
|
||||
jsoncontent: '=jsoncontent',
|
||||
xmlcontent: '=xmlcontent'
|
||||
};
|
||||
this.replace = true;
|
||||
this.template = template;
|
||||
}
|
||||
|
||||
link(scope, elm, attrs) {
|
||||
scope.callgetjson = () => {
|
||||
scope.getjson();
|
||||
};
|
||||
scope.callgetxml = () => scope.getxml();
|
||||
}
|
||||
}
|
||||
|
||||
app.directive('wzConfigViewer', () => new WzConfigViewer());
|
@ -388,6 +388,11 @@ kbn-vis .vis-container {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
md-sidenav {
|
||||
width: 250px!important;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/* Dev tools styles */
|
||||
|
||||
.wz-dev-box {
|
||||
|
@ -107,4 +107,16 @@ export class AppState {
|
||||
getCurrentDevTools() {
|
||||
return this.$window.localStorage.getItem('currentDevTools');
|
||||
}
|
||||
|
||||
setSessionStorageItem(key, value) {
|
||||
this.$window.sessionStorage.setItem(key, value);
|
||||
}
|
||||
|
||||
getSessionStorageItem(key) {
|
||||
return this.$window.sessionStorage.getItem(key);
|
||||
}
|
||||
|
||||
removeSessionStorageItem(key) {
|
||||
this.$window.sessionStorage.removeItem(key);
|
||||
}
|
||||
}
|
||||
|
@ -39,7 +39,7 @@
|
||||
<span> / </span>
|
||||
<span class="wz-text-link cursor-pointer" ng-click="switchTab('welcome')">{{agent.name}} ({{agent.id}})</span>
|
||||
<span> / </span>
|
||||
<span class="wz-text-link cursor-pointer" ng-click="switchConfigurationTab('welcome')">{{ tabNames[tab] }}</span>
|
||||
<span class="wz-text-link cursor-pointer" ng-click="switchConfigurationTab('welcome', true)">{{ tabNames[tab] }}</span>
|
||||
<span> / </span>
|
||||
<span>{{ tabNames[configurationTab] === 'Alerts' ? 'Labels' : tabNames[configurationTab] }}</span>
|
||||
</div>
|
||||
@ -57,7 +57,7 @@
|
||||
<!-- End separator -->
|
||||
|
||||
<!-- Reporting button section -->
|
||||
<div ng-show="tab !== 'welcome' && tab !== 'configuration'">
|
||||
<div ng-show="tab !== 'welcome' && tab !== 'configuration' && tabView === 'panels'">
|
||||
<!-- Report button -->
|
||||
<md-button md-no-ink class="md-icon-button small wz-no-margin-padding" tooltip="Generate report" tooltip-placement="bottom" ng-disabled="(!rendered || loading || resultState !== 'ready') && tab !== 'syscollector'" ng-click="startVis2Png()" aria-label="Generate report button">
|
||||
<i class="fa fa-fw fa-print" aria-hidden="true"></i>
|
||||
|
@ -92,57 +92,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -60,57 +60,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -79,57 +79,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -92,57 +92,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -90,57 +90,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -54,57 +54,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -51,57 +51,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -101,57 +101,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -66,57 +66,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -1,54 +1,4 @@
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -1,54 +1,4 @@
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -72,57 +72,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -3,7 +3,7 @@
|
||||
<!-- Headline -->
|
||||
<div layout="column" layout-padding>
|
||||
<div>
|
||||
<span class="font-size-18">Client configuration</span>
|
||||
<span class="font-size-18">Communication</span>
|
||||
</div>
|
||||
<span class="md-subheader">Settings related to the connection with the manager</span>
|
||||
</div>
|
||||
@ -108,57 +108,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -85,57 +85,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -1,4 +1,4 @@
|
||||
<div flex="auto" layout="column" ng-controller="managementConfigurationController" ng-if="mctrl.tab === 'configuration'" ng-init="switchConfigurationTab('welcome')">
|
||||
<div flex="auto" layout="column" ng-controller="managementConfigurationController" ng-if="mctrl.tab === 'configuration'" ng-init="switchConfigurationTab('welcome', false)">
|
||||
|
||||
<!-- Navigation section -->
|
||||
<div layout="row" layout-align="start center">
|
||||
@ -14,7 +14,7 @@
|
||||
<div ng-if="configurationTab !== 'welcome'">
|
||||
<span class="wz-text-link cursor-pointer" ng-click="mctrl.switchTab('welcome')">Management</span>
|
||||
<span> / </span>
|
||||
<span class="wz-text-link cursor-pointer" ng-click="switchConfigurationTab('welcome')">{{ mctrl.tabNames[mctrl.tab] }}</span>
|
||||
<span class="wz-text-link cursor-pointer" ng-click="switchConfigurationTab('welcome', true)">{{ mctrl.tabNames[mctrl.tab] }}</span>
|
||||
<span> / </span>
|
||||
<span>{{ mctrl.tabNames[configurationTab] }}</span>
|
||||
</div>
|
||||
|
@ -67,57 +67,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -189,57 +189,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -76,57 +76,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -147,57 +147,7 @@
|
||||
</md-card>
|
||||
<!-- End VirusTotal integration card -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -1,54 +1,4 @@
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -116,57 +116,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -101,57 +101,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -75,57 +75,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -1,54 +1,4 @@
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -111,57 +111,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -1,54 +1,4 @@
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -123,57 +123,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -1,54 +1,4 @@
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -1,54 +1,4 @@
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -119,57 +119,7 @@
|
||||
</md-card>
|
||||
<!-- End main card with all the settings -->
|
||||
|
||||
<!-- JSON card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="JSONContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">JSON viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw JSON format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The JSON viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre><code wz-dynamic="JSONContent"></code></pre>
|
||||
</div>
|
||||
<!-- End JSON viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End JSON card -->
|
||||
|
||||
<!-- XML card -->
|
||||
<md-card flex="auto" class="wz-md-card" ng-if="XMLContent">
|
||||
<md-card-content flex layout="column">
|
||||
<div layout="row" layout-align="start center">
|
||||
<div>
|
||||
<span class="font-size-16">XML viewer</span>
|
||||
<div class="wz-margin-top-10">
|
||||
<span class="md-subheader small">View this configuration in raw XML format</span>
|
||||
</div>
|
||||
</div>
|
||||
<span flex></span>
|
||||
<span ng-class="JSONContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getJSON()">JSON</span>
|
||||
<span class="small"> · </span>
|
||||
<span ng-class="XMLContent ? 'wz-text-active' : ''" class="wz-text-link small" ng-click="getXML()">XML</span>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
|
||||
<!-- The XML viewer -->
|
||||
<div flex="auto" class="wz-margin-top-10 wz-code-viewer">
|
||||
<pre>{{ XMLContent }}</pre>
|
||||
</div>
|
||||
<!-- End XML viewer -->
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
<!-- End XML card -->
|
||||
<wz-config-viewer flex getjson="getJSON()" getxml="getXML()" jsoncontent="JSONContent" xmlcontent="XMLContent" />
|
||||
|
||||
</div>
|
||||
<!-- End main content section -->
|
||||
|
@ -60,7 +60,7 @@
|
||||
</md-list-item>
|
||||
<md-list-item flex="100" flex-gt-md="50" flex-gt-lg="33" class="md-2-line" ng-if="agent && agent.id !== '000'">
|
||||
<div class="md-list-item-text">
|
||||
<h3 class="wz-text-link" ng-click="switchConfigTab('client', [{component:'agent',configuration:'client'}])">Client configuration</h3>
|
||||
<h3 class="wz-text-link" ng-click="switchConfigTab('client', [{component:'agent',configuration:'client'}])">Communication</h3>
|
||||
<p>Settings related to the connection with the manager</p>
|
||||
</div>
|
||||
</md-list-item>
|
||||
|
@ -26,7 +26,7 @@
|
||||
<!-- End separator -->
|
||||
|
||||
<!-- Reporting button section -->
|
||||
<div ng-show="octrl.tab !== 'welcome'">
|
||||
<div ng-show="octrl.tab !== 'welcome' && octrl.tabView === 'panels'">
|
||||
<!-- Report button -->
|
||||
<md-button md-no-ink class="md-icon-button small wz-no-margin-padding" tooltip="Generate report" tooltip-placement="bottom" 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>
|
||||
|
@ -8,12 +8,30 @@
|
||||
<div layout="row" layout-align="start center" ng-if="!ctrl.load">
|
||||
<md-card flex class="wz-md-card">
|
||||
<md-card-content>
|
||||
<i class="fa fa-fw fa-file-o" aria-hidden="true"></i>
|
||||
<div layout="row">
|
||||
<i class="fa fa-fw fa-file-o" aria-hidden="true"></i>
|
||||
<span class="wz-headline-title">Current configuration</span>
|
||||
<span flex></span>
|
||||
<a tooltip="About and help" target="_blank" tooltip-placement="left" href="https://documentation.wazuh.com/current/user-manual/kibana-app/reference/config-file.html" aria-label="Link to open app about section">
|
||||
<i class="fa fa-fw fa-question-circle-o ng-scope" aria-hidden="true"></i>
|
||||
</a>
|
||||
</div>
|
||||
<md-divider class="wz-margin-top-10"></md-divider>
|
||||
<div layout="row" class="wz-padding-top-10" ng-repeat="(key,value) in ctrl.configuration">
|
||||
<span flex="25">{{key}}</span>
|
||||
<span class="wz-text-right color-grey">{{value}}</span>
|
||||
<div layout="row" class="wz-padding-top-10" >
|
||||
<table class="table table-striped table-condensed table-layout-fixed">
|
||||
<thead class="wz-text-bold">
|
||||
<th class="wz-text-left col-lg-2">Setting</th>
|
||||
<th class="wz-text-left col-lg-2">Value</th>
|
||||
<th class="wz-text-left">Description</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="wz-word-wrap" ng-repeat="(key,value) in ctrl.configuration">
|
||||
<td>{{key}}</td>
|
||||
<td>{{value}}</td>
|
||||
<td>{{ctrl.configEquivalence(key)}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
|
@ -10,3 +10,5 @@ import './foldcode.js';
|
||||
import './foldgutter.js';
|
||||
import './search-cursor.js';
|
||||
import './mark-selection.js';
|
||||
import './show-hint.js';
|
||||
import './show-hint.css';
|
39
public/utils/codemirror/show-hint.css
Normal file
39
public/utils/codemirror/show-hint.css
Normal file
@ -0,0 +1,39 @@
|
||||
.CodeMirror-hints {
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
overflow: hidden;
|
||||
list-style: none;
|
||||
|
||||
margin: 0;
|
||||
padding: 2px;
|
||||
|
||||
-webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||
-moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||
box-shadow: 2px 3px 5px rgba(0,0,0,.2);
|
||||
border-radius: 3px;
|
||||
border: 1px solid silver;
|
||||
|
||||
background: white;
|
||||
font-size: 90%;
|
||||
font-family: monospace;
|
||||
|
||||
max-height: 20em;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.CodeMirror-hint {
|
||||
margin: 0;
|
||||
padding: 0 4px;
|
||||
border-radius: 2px;
|
||||
max-width: none;
|
||||
height: 15px;
|
||||
overflow: hidden;
|
||||
white-space: pre;
|
||||
color: black;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.CodeMirror-hint-active {
|
||||
background: #08f;
|
||||
color: white;
|
||||
}
|
286
public/utils/codemirror/show-hint.js
Normal file
286
public/utils/codemirror/show-hint.js
Normal file
@ -0,0 +1,286 @@
|
||||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||
// Distributed under an MIT license: http://codemirror.net/LICENSE
|
||||
|
||||
(function(mod) {
|
||||
if (typeof exports == 'object' && typeof module == 'object')
|
||||
// CommonJS
|
||||
mod(require('./lib/codemirror'));
|
||||
else if (typeof define == 'function' && define.amd)
|
||||
// AMD
|
||||
define(['./lib/codemirror'], mod);
|
||||
// Plain browser env
|
||||
else mod(CodeMirror);
|
||||
})(function(CodeMirror) {
|
||||
"use strict";
|
||||
|
||||
CodeMirror.showHint = function(cm, getHints, options) {
|
||||
// We want a single cursor position.
|
||||
if (cm.somethingSelected()) return;
|
||||
if (getHints == null) getHints = cm.getHelper(cm.getCursor(), "hint");
|
||||
if (getHints == null) return;
|
||||
|
||||
if (cm.state.completionActive) cm.state.completionActive.close();
|
||||
|
||||
var completion = cm.state.completionActive = new Completion(cm, getHints, options || {});
|
||||
CodeMirror.signal(cm, "startCompletion", cm);
|
||||
if (completion.options.async)
|
||||
getHints(cm, function(hints) { completion.showHints(hints); }, completion.options);
|
||||
else
|
||||
return completion.showHints(getHints(cm, completion.options));
|
||||
};
|
||||
|
||||
function Completion(cm, getHints, options) {
|
||||
this.cm = cm;
|
||||
this.getHints = getHints;
|
||||
this.options = options;
|
||||
this.widget = this.onClose = null;
|
||||
}
|
||||
|
||||
Completion.prototype = {
|
||||
close: function() {
|
||||
if (!this.active()) return;
|
||||
this.cm.state.completionActive = null;
|
||||
|
||||
if (this.widget) this.widget.close();
|
||||
if (this.onClose) this.onClose();
|
||||
CodeMirror.signal(this.cm, "endCompletion", this.cm);
|
||||
},
|
||||
|
||||
active: function() {
|
||||
return this.cm.state.completionActive == this;
|
||||
},
|
||||
|
||||
pick: function(data, i) {
|
||||
var completion = data.list[i];
|
||||
if (completion.hint) completion.hint(this.cm, data, completion);
|
||||
else this.cm.replaceRange(getText(completion), data.from, data.to);
|
||||
this.close();
|
||||
},
|
||||
|
||||
showHints: function(data) {
|
||||
if (!data || !data.list.length || !this.active()) return this.close();
|
||||
|
||||
if (this.options.completeSingle != false && data.list.length == 1)
|
||||
this.pick(data, 0);
|
||||
else
|
||||
this.showWidget(data);
|
||||
},
|
||||
|
||||
showWidget: function(data) {
|
||||
this.widget = new Widget(this, data);
|
||||
CodeMirror.signal(data, "shown");
|
||||
|
||||
var debounce = null, completion = this, finished;
|
||||
var closeOn = this.options.closeCharacters || /[\s()\[\]{};:>,]/;
|
||||
var startPos = this.cm.getCursor(), startLen = this.cm.getLine(startPos.line).length;
|
||||
|
||||
function done() {
|
||||
if (finished) return;
|
||||
finished = true;
|
||||
completion.close();
|
||||
completion.cm.off("cursorActivity", activity);
|
||||
CodeMirror.signal(data, "close");
|
||||
}
|
||||
function isDone() {
|
||||
if (finished) return true;
|
||||
if (!completion.widget) { done(); return true; }
|
||||
}
|
||||
|
||||
function update() {
|
||||
if (isDone()) return;
|
||||
CodeMirror.signal(data, "update");
|
||||
if (completion.options.async)
|
||||
completion.getHints(completion.cm, finishUpdate, completion.options);
|
||||
else
|
||||
finishUpdate(completion.getHints(completion.cm, completion.options));
|
||||
}
|
||||
function finishUpdate(data_) {
|
||||
data = data_;
|
||||
if (isDone()) return;
|
||||
if (!data || !data.list.length) return done();
|
||||
completion.widget.close();
|
||||
completion.widget = new Widget(completion, data);
|
||||
}
|
||||
|
||||
function activity() {
|
||||
clearTimeout(debounce);
|
||||
var pos = completion.cm.getCursor(), line = completion.cm.getLine(pos.line);
|
||||
if (pos.line != startPos.line || line.length - pos.ch != startLen - startPos.ch ||
|
||||
pos.ch < startPos.ch || completion.cm.somethingSelected() ||
|
||||
(pos.ch && closeOn.test(line.charAt(pos.ch - 1))))
|
||||
completion.close();
|
||||
else
|
||||
debounce = setTimeout(update, 170);
|
||||
}
|
||||
this.cm.on("cursorActivity", activity);
|
||||
this.onClose = done;
|
||||
}
|
||||
};
|
||||
|
||||
function getText(completion) {
|
||||
if (typeof completion == "string") return completion;
|
||||
else return completion.text;
|
||||
}
|
||||
|
||||
function buildKeyMap(options, handle) {
|
||||
var baseMap = {
|
||||
Up: function() {handle.moveFocus(-1);},
|
||||
Down: function() {handle.moveFocus(1);},
|
||||
PageUp: function() {handle.moveFocus(-handle.menuSize());},
|
||||
PageDown: function() {handle.moveFocus(handle.menuSize());},
|
||||
Home: function() {handle.setFocus(0);},
|
||||
End: function() {handle.setFocus(handle.length);},
|
||||
Enter: handle.pick,
|
||||
Tab: handle.pick,
|
||||
Esc: handle.close
|
||||
};
|
||||
var ourMap = options.customKeys ? {} : baseMap;
|
||||
function addBinding(key, val) {
|
||||
var bound;
|
||||
if (typeof val != "string")
|
||||
bound = function(cm) { return val(cm, handle); };
|
||||
// This mechanism is deprecated
|
||||
else if (baseMap.hasOwnProperty(val))
|
||||
bound = baseMap[val];
|
||||
else
|
||||
bound = val;
|
||||
ourMap[key] = bound;
|
||||
}
|
||||
if (options.customKeys)
|
||||
for (var key in options.customKeys) if (options.customKeys.hasOwnProperty(key))
|
||||
addBinding(key, options.customKeys[key]);
|
||||
if (options.extraKeys)
|
||||
for (var key in options.extraKeys) if (options.extraKeys.hasOwnProperty(key))
|
||||
addBinding(key, options.extraKeys[key]);
|
||||
return ourMap;
|
||||
}
|
||||
|
||||
function Widget(completion, data) {
|
||||
this.completion = completion;
|
||||
this.data = data;
|
||||
var widget = this, cm = completion.cm, options = completion.options;
|
||||
|
||||
var hints = this.hints = document.createElement("ul");
|
||||
hints.className = "CodeMirror-hints";
|
||||
this.selectedHint = 0;
|
||||
|
||||
var completions = data.list;
|
||||
for (var i = 0; i < completions.length; ++i) {
|
||||
var elt = hints.appendChild(document.createElement("li")), cur = completions[i];
|
||||
var className = "CodeMirror-hint" + (i ? "" : " CodeMirror-hint-active");
|
||||
if (cur.className != null) className = cur.className + " " + className;
|
||||
elt.className = className;
|
||||
if (cur.render) cur.render(elt, data, cur);
|
||||
else elt.appendChild(document.createTextNode(cur.displayText || getText(cur)));
|
||||
elt.hintId = i;
|
||||
}
|
||||
|
||||
var pos = cm.cursorCoords(options.alignWithWord !== false ? data.from : null);
|
||||
var left = pos.left, top = pos.bottom, below = true;
|
||||
hints.style.left = left + "px";
|
||||
hints.style.top = top + "px";
|
||||
// If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.
|
||||
var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth);
|
||||
var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight);
|
||||
var box = hints.getBoundingClientRect();
|
||||
var overlapX = box.right - winW, overlapY = box.bottom - winH;
|
||||
if (overlapX > 0) {
|
||||
if (box.right - box.left > winW) {
|
||||
hints.style.width = (winW - 5) + "px";
|
||||
overlapX -= (box.right - box.left) - winW;
|
||||
}
|
||||
hints.style.left = (left = pos.left - overlapX) + "px";
|
||||
}
|
||||
if (overlapY > 0) {
|
||||
var height = box.bottom - box.top;
|
||||
if (box.top - (pos.bottom - pos.top) - height > 0) {
|
||||
overlapY = height + (pos.bottom - pos.top);
|
||||
below = false;
|
||||
} else if (height > winH) {
|
||||
hints.style.height = (winH - 5) + "px";
|
||||
overlapY -= height - winH;
|
||||
}
|
||||
hints.style.top = (top = pos.bottom - overlapY) + "px";
|
||||
}
|
||||
(options.container || document.body).appendChild(hints);
|
||||
|
||||
cm.addKeyMap(this.keyMap = buildKeyMap(options, {
|
||||
moveFocus: function(n) { widget.changeActive(widget.selectedHint + n); },
|
||||
setFocus: function(n) { widget.changeActive(n); },
|
||||
menuSize: function() { return widget.screenAmount(); },
|
||||
length: completions.length,
|
||||
close: function() { completion.close(); },
|
||||
pick: function() { widget.pick(); }
|
||||
}));
|
||||
|
||||
if (options.closeOnUnfocus !== false) {
|
||||
var closingOnBlur;
|
||||
cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });
|
||||
cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); });
|
||||
}
|
||||
|
||||
var startScroll = cm.getScrollInfo();
|
||||
cm.on("scroll", this.onScroll = function() {
|
||||
var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();
|
||||
var newTop = top + startScroll.top - curScroll.top;
|
||||
var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop);
|
||||
if (!below) point += hints.offsetHeight;
|
||||
if (point <= editor.top || point >= editor.bottom) return completion.close();
|
||||
hints.style.top = newTop + "px";
|
||||
hints.style.left = (left + startScroll.left - curScroll.left) + "px";
|
||||
});
|
||||
|
||||
CodeMirror.on(hints, "dblclick", function(e) {
|
||||
var t = e.target || e.srcElement;
|
||||
if (t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}
|
||||
});
|
||||
CodeMirror.on(hints, "click", function(e) {
|
||||
var t = e.target || e.srcElement;
|
||||
if (t.hintId != null) widget.changeActive(t.hintId);
|
||||
});
|
||||
CodeMirror.on(hints, "mousedown", function() {
|
||||
setTimeout(function(){cm.focus();}, 20);
|
||||
});
|
||||
|
||||
CodeMirror.signal(data, "select", completions[0], hints.firstChild);
|
||||
return true;
|
||||
}
|
||||
|
||||
Widget.prototype = {
|
||||
close: function() {
|
||||
if (this.completion.widget != this) return;
|
||||
this.completion.widget = null;
|
||||
this.hints.parentNode.removeChild(this.hints);
|
||||
this.completion.cm.removeKeyMap(this.keyMap);
|
||||
|
||||
var cm = this.completion.cm;
|
||||
if (this.completion.options.closeOnUnfocus !== false) {
|
||||
cm.off("blur", this.onBlur);
|
||||
cm.off("focus", this.onFocus);
|
||||
}
|
||||
cm.off("scroll", this.onScroll);
|
||||
},
|
||||
|
||||
pick: function() {
|
||||
this.completion.pick(this.data, this.selectedHint);
|
||||
},
|
||||
|
||||
changeActive: function(i) {
|
||||
i = Math.max(0, Math.min(i, this.data.list.length - 1));
|
||||
if (this.selectedHint == i) return;
|
||||
var node = this.hints.childNodes[this.selectedHint];
|
||||
node.className = node.className.replace(" CodeMirror-hint-active", "");
|
||||
node = this.hints.childNodes[this.selectedHint = i];
|
||||
node.className += " CodeMirror-hint-active";
|
||||
if (node.offsetTop < this.hints.scrollTop)
|
||||
this.hints.scrollTop = node.offsetTop - 3;
|
||||
else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)
|
||||
this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3;
|
||||
CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node);
|
||||
},
|
||||
|
||||
screenAmount: function() {
|
||||
return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;
|
||||
}
|
||||
};
|
||||
});
|
28
public/utils/config-equivalences.js
Normal file
28
public/utils/config-equivalences.js
Normal file
@ -0,0 +1,28 @@
|
||||
export const configEquivalences = {
|
||||
'pattern': 'Default index pattern to use on the app.',
|
||||
'checks.pattern': 'Enable or disable the index pattern health check when opening the app.',
|
||||
'checks.template': 'Enable or disable the template health check when opening the app.',
|
||||
'checks.api': 'Enable or disable the API health check when opening the app.',
|
||||
'checks.setup': 'Enable or disable the setup health check when opening the app.',
|
||||
'extensions.pci': 'Enable or disable the PCI DSS tab on Overview and Agents.',
|
||||
'extensions.gdpr': 'Enable or disable the GDPR tab on Overview and Agents.',
|
||||
'extensions.audit': 'Enable or disable the Audit tab on Overview and Agents.',
|
||||
'extensions.oscap': 'Enable or disable the Open SCAP tab on Overview and Agents.',
|
||||
'extensions.ciscat': 'Enable or disable the CIS-CAT tab on Overview and Agents.',
|
||||
'extensions.aws': 'Enable or disable the Amazon (AWS) tab on Overview and Agents.',
|
||||
'extensions.virustotal': 'Enable or disable the VirusTotal tab on Overview and Agents.',
|
||||
'extensions.osquery': 'Enable or disable the Osquery tab on Overview and Agents.',
|
||||
'timeout': 'Defines the maximum time the app will wait for an API response when making requests to it.',
|
||||
'wazuh.shards': 'Define the number of shards to use for the .wazuh index.',
|
||||
'wazuh.replicas': 'Define the number of replicas to use for the .wazuh index.',
|
||||
'wazuh-version.shards': 'Define the number of shards to use for the .wazuh-version index.',
|
||||
'wazuh-version.replicas': 'Define the number of replicas to use for the .wazuh-version index.',
|
||||
'ip.selector': 'Defines if the user is allowed to change the selected index pattern directly from the top menu bar.',
|
||||
'ip.ignore': 'Disable certain index pattern names from being available in index pattern selector from the Wazuh app.',
|
||||
'xpack.rbac.enabled': 'Enable or disable X-Pack RBAC security capabilities when using the app.',
|
||||
'wazuh.monitoring.enabled': 'Enable or disable the wazuh-monitoring index creation and/or visualization.',
|
||||
'wazuh.monitoring.frequency': 'Define in seconds the frequency the app generates a new document on the wazuh-monitoring index.',
|
||||
'wazuh.monitoring.shards': 'Define the number of shards to use for the wazuh-monitoring-3.x-* indices.',
|
||||
'wazuh.monitoring.replicas': 'Define the number of replicas to use for the wazuh-monitoring-3.x-* indices.',
|
||||
'admin': 'Enable or disable administrator requests to the Wazuh API when using the app.'
|
||||
}
|
@ -24,6 +24,7 @@ import { getConfiguration } from '../lib/get-configuration';
|
||||
import { log } from '../logger';
|
||||
import { KeyEquivalenece } from '../../util/csv-key-equivalence';
|
||||
import { cleanKeys } from '../../util/remove-key';
|
||||
import { apiRequestList } from '../../util/api-request-list'
|
||||
|
||||
export class WazuhApiCtrl {
|
||||
constructor(server) {
|
||||
@ -202,7 +203,7 @@ export class WazuhApiCtrl {
|
||||
req.idChanged = api._id;
|
||||
return this.checkStoredAPI(req, reply);
|
||||
}
|
||||
} catch (error) {} // eslint-disable-line
|
||||
} catch (error) { } // eslint-disable-line
|
||||
}
|
||||
} catch (error) {
|
||||
log('POST /api/check-stored-api', error.message || error);
|
||||
@ -593,9 +594,9 @@ export class WazuhApiCtrl {
|
||||
}
|
||||
|
||||
throw response &&
|
||||
response.body &&
|
||||
response.body.error &&
|
||||
response.body.message
|
||||
response.body &&
|
||||
response.body.error &&
|
||||
response.body.message
|
||||
? { message: response.body.message, code: response.body.error }
|
||||
: new Error('Unexpected error fetching data from the Wazuh API');
|
||||
} catch (error) {
|
||||
@ -647,9 +648,9 @@ export class WazuhApiCtrl {
|
||||
}
|
||||
|
||||
throw response &&
|
||||
response.body &&
|
||||
response.body.error &&
|
||||
response.body.message
|
||||
response.body &&
|
||||
response.body.error &&
|
||||
response.body.message
|
||||
? { message: response.body.message, code: response.body.error }
|
||||
: new Error('Unexpected error fetching data from the Wazuh API');
|
||||
} catch (error) {
|
||||
@ -978,4 +979,10 @@ export class WazuhApiCtrl {
|
||||
return ErrorResponse(error.message || error, 3035, 500, reply);
|
||||
}
|
||||
}
|
||||
|
||||
// Get de list of available requests in the API
|
||||
getRequestList(req, reply) {
|
||||
//Read a static JSON until the api call has implemented
|
||||
return reply(apiRequestList);
|
||||
}
|
||||
}
|
||||
|
@ -86,4 +86,14 @@ export function WazuhApiRoutes(server) {
|
||||
return ctrl.getAgentsFieldsUniqueCount(req, res);
|
||||
}
|
||||
});
|
||||
|
||||
// Returns unique fields from the agents such OS, agent version ...
|
||||
server.route({
|
||||
method: 'GET',
|
||||
path: '/api/routes',
|
||||
handler(req, res) {
|
||||
return ctrl.getRequestList(req, res);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
669
util/api-request-list.js
Normal file
669
util/api-request-list.js
Normal file
@ -0,0 +1,669 @@
|
||||
/*
|
||||
* Wazuh app - Module for get the list of routes in API in JSON format
|
||||
* Copyright (C) 2018 Wazuh, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Find more information about this on the LICENSE file.
|
||||
*/
|
||||
export const apiRequestList =
|
||||
[
|
||||
{
|
||||
"method": "PUT",
|
||||
"endpoints": [
|
||||
{
|
||||
"name": "/active-response/:agent_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/group/:group_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
},
|
||||
{
|
||||
"name": ":group_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/restart",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/upgrade",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/upgrade_custom",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_name",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_name"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/groups/:group_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":group_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/restart",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/rootcheck",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/rootcheck/:agent_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscheck",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/syscheck/:agent_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "DELETE",
|
||||
"endpoints": [
|
||||
{
|
||||
"name": "/agents",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/group",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/group/:group_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
},
|
||||
{
|
||||
"name": ":group_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/groups",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/groups/:group_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":group_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cache",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/cache",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/syscheck",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/rootcheck",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/rootcheck/:agent_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscheck/:agent_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "GET",
|
||||
"endpoints": [
|
||||
{
|
||||
"name": "/agents",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/config/:component/:configuration",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
},
|
||||
{
|
||||
"name": ":component"
|
||||
},
|
||||
{
|
||||
"name": ":configuration"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/group/is_sync",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/key",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/:agent_id/upgrade_result",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/groups",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/groups/:group_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":group_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/groups/:group_id/configuration",
|
||||
"args": [
|
||||
{
|
||||
"name": ":group_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/groups/:group_id/files",
|
||||
"args": [
|
||||
{
|
||||
"name": ":group_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/groups/:group_id/files/:filename",
|
||||
"args": [
|
||||
{
|
||||
"name": ":group_id"
|
||||
},
|
||||
{
|
||||
"name": ":filename"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/name/:agent_name",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_name"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/agents/no_group",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/outdated",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/stats/distinct",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/summary",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/summary/os",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/cache",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/cache/config",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/ciscat/:agent_id/results",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/:node_id/configuration",
|
||||
"args": [
|
||||
{
|
||||
"name": ":node_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/:node_id/info",
|
||||
"args": [
|
||||
{
|
||||
"name": ":node_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/:node_id/logs",
|
||||
"args": [
|
||||
{
|
||||
"name": ":node_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/:node_id/logs/summary",
|
||||
"args": [
|
||||
{
|
||||
"name": ":node_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/:node_id/stats",
|
||||
"args": [
|
||||
{
|
||||
"name": ":node_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/:node_id/stats/hourly",
|
||||
"args": [
|
||||
{
|
||||
"name": ":node_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/:node_id/stats/weekly",
|
||||
"args": [
|
||||
{
|
||||
"name": ":node_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/:node_id/status",
|
||||
"args": [
|
||||
{
|
||||
"name": ":node_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/config",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/cluster/healthcheck",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/cluster/node",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/cluster/nodes",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/cluster/nodes/:node_name",
|
||||
"args": [
|
||||
{
|
||||
"name": ":node_name"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/cluster/status",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/decoders",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/decoders/:decoder_name",
|
||||
"args": [
|
||||
{
|
||||
"name": ":decoder_name"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/decoders/files",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/decoders/parents",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/ciscat/results",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/syscollector/hardware",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/syscollector/netaddr",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/syscollector/netiface",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/syscollector/netproto",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/syscollector/os",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/syscollector/packages",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/syscollector/ports",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/experimental/syscollector/processes",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/configuration",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/info",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/logs",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/logs/summary",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/stats",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/stats/analysisd",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/stats/hourly",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/stats/remoted",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/stats/weekly",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/manager/status",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/rootcheck/:agent_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/rootcheck/:agent_id/cis",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/rootcheck/:agent_id/last_scan",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/rootcheck/:agent_id/pci",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/rules",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/rules/:rule_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":rule_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/rules/files",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/rules/gdpr",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/rules/groups",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/rules/pci",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/syscheck/:agent_id",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscheck/:agent_id/last_scan",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscollector/:agent_id/hardware",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscollector/:agent_id/netaddr",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscollector/:agent_id/netiface",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscollector/:agent_id/netproto",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscollector/:agent_id/os",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscollector/:agent_id/packages",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscollector/:agent_id/ports",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "/syscollector/:agent_id/processes",
|
||||
"args": [
|
||||
{
|
||||
"name": ":agent_id"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "POST",
|
||||
"endpoints": [
|
||||
{
|
||||
"name": "/agents",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/insert",
|
||||
"args": []
|
||||
},
|
||||
{
|
||||
"name": "/agents/restart",
|
||||
"args": []
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
18
util/excluded-devtools-autocomplete-keys.js
Normal file
18
util/excluded-devtools-autocomplete-keys.js
Normal file
@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Wazuh app - Wazuh DevTools autocomplete excluded keys
|
||||
* Copyright (C) 2018 Wazuh, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Find more information about this on the LICENSE file.
|
||||
*/
|
||||
export const ExcludedIntelliSenseTriggerKeys = {
|
||||
'9': 'tab', '13': 'enter', '16': 'shift', '17': 'ctrl', '18': 'alt', '19': 'pause', '20': 'capslock',
|
||||
'27': 'escape', '33': 'pageup', '34': 'pagedown', '35': 'end', '36': 'home', '37': 'left', '38': 'up',
|
||||
'39': 'right', '40': 'down', '45': 'insert', '91': 'left window key', '92': 'right window key', '93': 'select',
|
||||
'112': 'f1', '113': 'f2', '114': 'f3', '115': 'f4', '116': 'f5', '117': 'f6', '118': 'f7', '119': 'f8',
|
||||
'120': 'f9', '121': 'f10', '122': 'f11', '123': 'f12', '144': 'numlock', '145': 'scrolllock'
|
||||
};
|
Loading…
Reference in New Issue
Block a user