update configure tower in tower test ui for log aggregator form

This commit is contained in:
John Mitchell
2020-03-09 13:39:01 -04:00
committed by Christian Adams
parent c0af3c537b
commit 88ca4b63e6
4 changed files with 80 additions and 58 deletions

View File

@@ -92,6 +92,7 @@ export default [
var populateFromApi = function() { var populateFromApi = function() {
SettingsService.getCurrentValues() SettingsService.getCurrentValues()
.then(function(data) { .then(function(data) {
$scope.logAggregatorEnabled = data.LOG_AGGREGATOR_ENABLED;
// these two values need to be unnested from the // these two values need to be unnested from the
// OAUTH2_PROVIDER key // OAUTH2_PROVIDER key
data.ACCESS_TOKEN_EXPIRE_SECONDS = data data.ACCESS_TOKEN_EXPIRE_SECONDS = data
@@ -538,8 +539,11 @@ export default [
var payload = {}; var payload = {};
payload[key] = $scope[key]; payload[key] = $scope[key];
SettingsService.patchConfiguration(payload) SettingsService.patchConfiguration(payload)
.then(function() { .then(function(data) {
//TODO consider updating form values with returned data here //TODO consider updating form values with returned data here
if (key === 'LOG_AGGREGATOR_ENABLED') {
$scope.logAggregatorEnabled = data.LOG_AGGREGATOR_ENABLED;
}
}) })
.catch(function(data) { .catch(function(data) {
//Change back on unsuccessful update //Change back on unsuccessful update

View File

@@ -193,14 +193,25 @@ export default [
} }
} }
$scope.$watchGroup(['configuration_logging_template_form.$pending', 'configuration_logging_template_form.$dirty', '!logAggregatorEnabled'], (vals) => {
if (vals.some(val => val === true)) {
$scope.$parent.vm.disableTestButton = true;
$scope.$parent.vm.testTooltip = i18n._('Save and enable log aggregation before testing the log aggregator.');
} else {
$scope.$parent.vm.disableTestButton = false;
$scope.$parent.vm.testTooltip = i18n._('Send a test response to the configured log aggregator.');
}
});
$scope.$parent.vm.testLogging = function () { $scope.$parent.vm.testLogging = function () {
if (!$scope.$parent.vm.disableTestButton) {
Rest.setUrl("/api/v2/settings/logging/test/"); Rest.setUrl("/api/v2/settings/logging/test/");
Rest.post($scope.$parent.vm.getFormPayload()) Rest.post({})
.then(() => { .then(() => {
ngToast.success({ ngToast.success({
content: `<i class="fa fa-check-circle content: `<i class="fa fa-check-circle
Toast-successIcon"></i>` + Toast-successIcon"></i>` +
i18n._('Log aggregator test successful.') i18n._('Log aggregator test sent successfully.')
}); });
}) })
.catch(({ data, status }) => { .catch(({ data, status }) => {
@@ -220,6 +231,7 @@ export default [
}); });
} }
}); });
}
}; };
angular.extend(systemVm, { angular.extend(systemVm, {

View File

@@ -75,10 +75,13 @@
class: 'Form-resetAll' class: 'Form-resetAll'
}, },
testLogging: { testLogging: {
ngClass: "{'Form-button--disabled': vm.disableTestButton}",
ngClick: 'vm.testLogging()', ngClick: 'vm.testLogging()',
label: i18n._('Test'), label: i18n._('Test'),
class: 'btn-primary', class: 'Form-primaryButton',
ngDisabled: 'configuration_logging_template_form.$pending' awToolTip: '{{vm.testTooltip}}',
dataTipWatch: 'vm.testTooltip',
dataPlacement: 'top',
}, },
cancel: { cancel: {
ngClick: 'vm.formCancel()', ngClick: 'vm.formCancel()',

View File

@@ -1690,6 +1690,9 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat
if (button.ngClick) { if (button.ngClick) {
html += this.attr(button, 'ngClick'); html += this.attr(button, 'ngClick');
} }
if (button.ngClass) {
html += this.attr(button, 'ngClass');
}
if (button.ngDisabled) { if (button.ngDisabled) {
ngDisabled = (button.ngDisabled===true) ? `${this.form.name}_form.$invalid || ${this.form.name}_form.$pending`: button.ngDisabled; ngDisabled = (button.ngDisabled===true) ? `${this.form.name}_form.$invalid || ${this.form.name}_form.$pending`: button.ngDisabled;
if (btn !== 'reset') { if (btn !== 'reset') {