diff --git a/www/src/app/pages/admin/organizations/components/analyzer-config-form.controller.js b/www/src/app/pages/admin/organizations/components/analyzers/analyzer-config-form.controller.js
similarity index 100%
rename from www/src/app/pages/admin/organizations/components/analyzer-config-form.controller.js
rename to www/src/app/pages/admin/organizations/components/analyzers/analyzer-config-form.controller.js
diff --git a/www/src/app/pages/admin/organizations/components/analyzer-config-form.html b/www/src/app/pages/admin/organizations/components/analyzers/analyzer-config-form.html
similarity index 100%
rename from www/src/app/pages/admin/organizations/components/analyzer-config-form.html
rename to www/src/app/pages/admin/organizations/components/analyzers/analyzer-config-form.html
diff --git a/www/src/app/pages/admin/organizations/components/analyzer.edit.controller.js b/www/src/app/pages/admin/organizations/components/analyzers/analyzer.edit.controller.js
similarity index 100%
rename from www/src/app/pages/admin/organizations/components/analyzer.edit.controller.js
rename to www/src/app/pages/admin/organizations/components/analyzers/analyzer.edit.controller.js
diff --git a/www/src/app/pages/admin/organizations/components/analyzer.edit.modal.html b/www/src/app/pages/admin/organizations/components/analyzers/analyzer.edit.modal.html
similarity index 100%
rename from www/src/app/pages/admin/organizations/components/analyzer.edit.modal.html
rename to www/src/app/pages/admin/organizations/components/analyzers/analyzer.edit.modal.html
diff --git a/www/src/app/pages/admin/organizations/components/analyzers-list.controller.js b/www/src/app/pages/admin/organizations/components/analyzers/analyzers-list.controller.js
similarity index 100%
rename from www/src/app/pages/admin/organizations/components/analyzers-list.controller.js
rename to www/src/app/pages/admin/organizations/components/analyzers/analyzers-list.controller.js
diff --git a/www/src/app/pages/admin/organizations/components/analyzers-list.html b/www/src/app/pages/admin/organizations/components/analyzers/analyzers-list.html
similarity index 100%
rename from www/src/app/pages/admin/organizations/components/analyzers-list.html
rename to www/src/app/pages/admin/organizations/components/analyzers/analyzers-list.html
diff --git a/www/src/app/pages/admin/organizations/components/config-list.controller.js b/www/src/app/pages/admin/organizations/components/analyzers/config-list.controller.js
similarity index 84%
rename from www/src/app/pages/admin/organizations/components/config-list.controller.js
rename to www/src/app/pages/admin/organizations/components/analyzers/config-list.controller.js
index 76a146cf3..967fbbfa8 100644
--- a/www/src/app/pages/admin/organizations/components/config-list.controller.js
+++ b/www/src/app/pages/admin/organizations/components/analyzers/config-list.controller.js
@@ -1,8 +1,8 @@
'use strict';
import _ from 'lodash/core';
-import ConfigurationEditController from './config.edit.controller';
-import configurationEditTpl from './config.edit.modal.html';
+import ConfigurationEditController from '../config.edit.controller';
+import configurationEditTpl from '../config.edit.modal.html';
export default class OrganizationConfigsController {
constructor($log, $uibModal, AnalyzerService, NotificationService) {
@@ -39,9 +39,9 @@ export default class OrganizationConfigsController {
_.forEach(conf.configurationItems, item => {
conf.config[item.name] =
- conf.config[item.name] !== undefined
- ? conf.config[item.name]
- : item.defaultValue || (item.multi ? [undefined] : undefined);
+ conf.config[item.name] !== undefined ?
+ conf.config[item.name] :
+ item.defaultValue || (item.multi ? [undefined] : undefined);
});
return conf;
@@ -70,4 +70,4 @@ export default class OrganizationConfigsController {
}
});
}
-}
+}
\ No newline at end of file
diff --git a/www/src/app/pages/admin/organizations/components/config-list.html b/www/src/app/pages/admin/organizations/components/analyzers/config-list.html
similarity index 100%
rename from www/src/app/pages/admin/organizations/components/config-list.html
rename to www/src/app/pages/admin/organizations/components/analyzers/config-list.html
diff --git a/www/src/app/pages/admin/organizations/components/responders/config-list.controller.js b/www/src/app/pages/admin/organizations/components/responders/config-list.controller.js
new file mode 100644
index 000000000..c06f193e2
--- /dev/null
+++ b/www/src/app/pages/admin/organizations/components/responders/config-list.controller.js
@@ -0,0 +1,73 @@
+'use strict';
+import _ from 'lodash/core';
+
+import ConfigurationEditController from '../config.edit.controller';
+import configurationEditTpl from '../config.edit.modal.html';
+
+export default class OrganizationConfigsController {
+ constructor($log, $uibModal, ResponderService, NotificationService) {
+ 'ngInject';
+
+ this.$log = $log;
+ this.$uibModal = $uibModal;
+ this.ResponderService = ResponderService;
+ this.NotificationService = NotificationService;
+
+ this.state = {
+ filter: ''
+ };
+ }
+
+ isSet(config) {
+ return _.indexOf([undefined, null, ''], config) === -1;
+ }
+
+ edit(config) {
+ let modal = this.$uibModal.open({
+ controller: ConfigurationEditController,
+ templateUrl: configurationEditTpl,
+ controllerAs: '$modal',
+ size: 'lg',
+ resolve: {
+ configuration: () => {
+ // let defaultValues = {
+ // string: null,
+ // number: 0,
+ // boolean: true
+ // };
+ let conf = angular.copy(config);
+
+ _.forEach(conf.configurationItems, item => {
+ conf.config[item.name] =
+ conf.config[item.name] !== undefined ?
+ conf.config[item.name] :
+ item.defaultValue || (item.multi ? [undefined] : undefined);
+ });
+
+ return conf;
+ }
+ }
+ });
+
+ modal.result
+ .then(configuration =>
+ this.ResponderService.saveConfiguration(config.name, {
+ config: configuration
+ })
+ )
+ .then(() => this.ResponderService.configurations())
+ .then(configs => (this.configurations = configs))
+ .then(() =>
+ this.NotificationService.success(
+ `Configuration ${config.name} updated successfully`
+ )
+ )
+ .catch(err => {
+ if (!_.isString(err)) {
+ this.NotificationService.error(
+ `Failed to update configuration ${config.name}`
+ );
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/www/src/app/pages/admin/organizations/components/responders/config-list.html b/www/src/app/pages/admin/organizations/components/responders/config-list.html
new file mode 100644
index 000000000..b14dc77e6
--- /dev/null
+++ b/www/src/app/pages/admin/organizations/components/responders/config-list.html
@@ -0,0 +1,68 @@
+
+
+ Available responder configurations ({{$ctrl.configurations.length || 0}}){{config.configurationItems.length}}
+
+ {{config.name === 'global' ? 'Global Configuration' : config.name}}
+
+
+
+
+
+
+
+