From 70786c53a77443d944b3e34a62274f7fc57e1847 Mon Sep 17 00:00:00 2001 From: Marliana Lara Date: Mon, 29 Jan 2018 13:11:45 -0500 Subject: [PATCH] Add capacity adjuster directive --- .../capacity-adjuster.directive.js | 45 +++++++++++++++++++ .../capacity-adjuster.partial.html | 14 ++++++ .../instances/instances-list.partial.html | 1 + .../instances/instances.controller.js | 5 ++- awx/ui/client/src/instance-groups/main.js | 2 + 5 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 awx/ui/client/src/instance-groups/capacity-adjuster/capacity-adjuster.directive.js create mode 100644 awx/ui/client/src/instance-groups/capacity-adjuster/capacity-adjuster.partial.html diff --git a/awx/ui/client/src/instance-groups/capacity-adjuster/capacity-adjuster.directive.js b/awx/ui/client/src/instance-groups/capacity-adjuster/capacity-adjuster.directive.js new file mode 100644 index 0000000000..65ce8755b2 --- /dev/null +++ b/awx/ui/client/src/instance-groups/capacity-adjuster/capacity-adjuster.directive.js @@ -0,0 +1,45 @@ +function CapacityAdjuster (templateUrl, $http) { + return { + scope: { + state: '=' + }, + templateUrl: templateUrl('instance-groups/capacity-adjuster/capacity-adjuster'), + restrict: 'E', + link: function(scope) { + let adjustment_values = [{ + label: 'CPU', + value: scope.state.cpu_capacity, + },{ + label: 'RAM', + value: scope.state.mem_capacity + }]; + + scope.min_capacity = _.min(adjustment_values, 'value'); + scope.max_capacity = _.max(adjustment_values, 'value'); + + }, + controller: function($http, $scope) { + const vm = this || {}; + + vm.slide = (state) => { + let data = { + "capacity_adjustment": state.capacity_adjustment + }; + let req = { + method: 'PUT', + url: state.url, + data + }; + $http(req); + } + }, + controllerAs: 'vm' + }; +} + +CapacityAdjuster.$inject = [ + 'templateUrl', + '$http' +]; + +export default CapacityAdjuster; \ No newline at end of file diff --git a/awx/ui/client/src/instance-groups/capacity-adjuster/capacity-adjuster.partial.html b/awx/ui/client/src/instance-groups/capacity-adjuster/capacity-adjuster.partial.html new file mode 100644 index 0000000000..d3200f49eb --- /dev/null +++ b/awx/ui/client/src/instance-groups/capacity-adjuster/capacity-adjuster.partial.html @@ -0,0 +1,14 @@ +
+

{{min_capacity.label}}

+

{{min_capacity.value}}

+ +

{{max_capacity.label}}

+

{{max_capacity.value}}

+
diff --git a/awx/ui/client/src/instance-groups/instances/instances-list.partial.html b/awx/ui/client/src/instance-groups/instances/instances-list.partial.html index 814588a101..8f97077cf8 100644 --- a/awx/ui/client/src/instance-groups/instances/instances-list.partial.html +++ b/awx/ui/client/src/instance-groups/instances/instances-list.partial.html @@ -54,6 +54,7 @@
+
diff --git a/awx/ui/client/src/instance-groups/instances/instances.controller.js b/awx/ui/client/src/instance-groups/instances/instances.controller.js index 6e8de76864..c8c7b3d3af 100644 --- a/awx/ui/client/src/instance-groups/instances/instances.controller.js +++ b/awx/ui/client/src/instance-groups/instances/instances.controller.js @@ -1,4 +1,4 @@ -function InstancesController ($scope, $state, models, strings, Dataset) { +function InstancesController ($scope, $state, $http, models, Instance, strings, Dataset) { const { instanceGroup } = models; const vm = this || {}; vm.strings = strings; @@ -37,7 +37,6 @@ function InstancesController ($scope, $state, models, strings, Dataset) { } }; - $scope.isActive = function(id) { let selected = parseInt($state.params.instance_id); return id === selected; @@ -47,7 +46,9 @@ function InstancesController ($scope, $state, models, strings, Dataset) { InstancesController.$inject = [ '$scope', '$state', + '$http', 'resolvedModels', + 'InstanceModel', 'InstanceGroupsStrings', 'Dataset' ]; diff --git a/awx/ui/client/src/instance-groups/main.js b/awx/ui/client/src/instance-groups/main.js index 8489cf83f5..06afc31c66 100644 --- a/awx/ui/client/src/instance-groups/main.js +++ b/awx/ui/client/src/instance-groups/main.js @@ -5,6 +5,7 @@ import InstanceGroupJobsListController from './jobs/jobs.controller'; import InstanceListController from './instances/instances.controller'; import InstanceJobsController from './instances/instance-jobs/instance-jobs.controller'; import CapacityBar from './capacity-bar/main'; +import CapacityAdjuster from './capacity-adjuster/capacity-adjuster.directive'; import list from './instance-groups.list'; import service from './instance-groups.service'; @@ -324,6 +325,7 @@ angular.module(MODULE_NAME, [CapacityBar.name]) .controller('InstanceJobsController', InstanceJobsController) .directive('instanceGroupsMultiselect', instanceGroupsMultiselect) .directive('instanceGroupsModal', instanceGroupsModal) + .directive('capacityAdjuster', CapacityAdjuster) .service('InstanceGroupsStrings', InstanceGroupsStrings) .service('JobStrings', JobStrings) .run(InstanceGroupsRun);