diff --git a/client/cat3/src/factory/workzoneServices.js b/client/cat3/src/factory/workzoneServices.js index 9e590735c..d42205a56 100644 --- a/client/cat3/src/factory/workzoneServices.js +++ b/client/cat3/src/factory/workzoneServices.js @@ -488,7 +488,8 @@ return $http.post(fullUrl(url),compositeBlueprint,Auth.getHeaderObject()); }, getAllCompsiteBlueprint:function () { - var url ='/composite-blueprints'; + var p = workzoneEnvironment.getEnvParams(); + var url ='/composite-blueprints?filterBy=organizationId:'+p.org+'+businessGroupId:'+p.bg+'+projectId:'+p.proj; return $http.get(fullUrl(url),Auth.getHeaderObject()); }, getCompsiteBlueprintInfo:function (compositeBlueprintId) { diff --git a/client/cat3/src/partials/globals/header/headerDashboard.html b/client/cat3/src/partials/globals/header/headerDashboard.html index 188e8de28..48d4335df 100644 --- a/client/cat3/src/partials/globals/header/headerDashboard.html +++ b/client/cat3/src/partials/globals/header/headerDashboard.html @@ -47,7 +47,7 @@
- + HELP
diff --git a/client/cat3/src/partials/sections/card/card.scss b/client/cat3/src/partials/sections/card/card.scss index 402964130..356ac5121 100644 --- a/client/cat3/src/partials/sections/card/card.scss +++ b/client/cat3/src/partials/sections/card/card.scss @@ -566,7 +566,7 @@ $imagePath : "/cat3/images"; font-size: 18px; } - .instance-state-unknown, .instance-state-pending { + .instance-state-unknown, .instance-state-pending, .instance-state-shutting-down{ background: url("#{$imagePath}/instance-states/aws-inactive.png"); } diff --git a/client/cat3/src/partials/sections/dashboard/workzone/blueprint/blueprint.html b/client/cat3/src/partials/sections/dashboard/workzone/blueprint/blueprint.html index 594d028e5..3d5794062 100644 --- a/client/cat3/src/partials/sections/dashboard/workzone/blueprint/blueprint.html +++ b/client/cat3/src/partials/sections/dashboard/workzone/blueprint/blueprint.html @@ -13,7 +13,7 @@
No Blueprints Available
-
+
diff --git a/client/cat3/src/partials/sections/dashboard/workzone/blueprint/blueprintCtrl.js b/client/cat3/src/partials/sections/dashboard/workzone/blueprint/blueprintCtrl.js index 98284eb2b..3724ea945 100644 --- a/client/cat3/src/partials/sections/dashboard/workzone/blueprint/blueprintCtrl.js +++ b/client/cat3/src/partials/sections/dashboard/workzone/blueprint/blueprintCtrl.js @@ -75,6 +75,7 @@ $scope.requestParams=requestParams; $scope.isBlueprintPageLoading = true; $scope.blueprintListCards(); + $scope.getAllCompsiteBlueprint(); }); angular.extend($scope, { diff --git a/client/cat3/src/partials/sections/dashboard/workzone/instance/instanceCtrl.js b/client/cat3/src/partials/sections/dashboard/workzone/instance/instanceCtrl.js index b096465de..916f886f4 100644 --- a/client/cat3/src/partials/sections/dashboard/workzone/instance/instanceCtrl.js +++ b/client/cat3/src/partials/sections/dashboard/workzone/instance/instanceCtrl.js @@ -4,14 +4,14 @@ * Written by Relevance UI Team, * Aug 2015 */ - -(function (angular) { +(function(angular) { "use strict"; angular.module('workzone.instance', ['ui.bootstrap', 'utility.validation', 'filter.currentTime', 'apis.workzone', 'utility.array', 'workzonePermission', 'instanceServices', 'chefDataFormatter', 'utility.pagination', 'ngFileUpload']) .controller('instanceCtrl', ['chefSelectorComponent', '$scope', '$rootScope', '$modal', '$q', 'workzoneServices', 'arrayUtil', 'instancePermission', - 'instanceActions', 'instanceOperations', 'workzoneEnvironment', '$timeout', 'workzoneUIUtils', 'uiGridOptionsService', 'confirmbox', function (chefSelectorComponent, $scope, $rootScope, $modal, $q, workzoneServices, arrayUtil, instancePerms, instanceActions, instanceOperations, workzoneEnvironment, $timeout, workzoneUIUtils, uiGridOptionsService, confirmbox) { + 'instanceActions', 'instanceOperations', 'workzoneEnvironment', '$timeout', 'workzoneUIUtils', 'uiGridOptionsService', 'confirmbox', + function(chefSelectorComponent, $scope, $rootScope, $modal, $q, workzoneServices, arrayUtil, instancePerms, instanceActions, instanceOperations, workzoneEnvironment, $timeout, workzoneUIUtils, uiGridOptionsService, confirmbox) { var helper = { - attachListOfTaskWithInstance: function (completeData) { + attachListOfTaskWithInstance: function(completeData) { var instanceList = completeData.instances; $scope.selectedCard = instanceList.length ? instanceList[0]._id : null; var taskList = completeData.tasks; @@ -35,7 +35,7 @@ } return completeData; }, - setInitPaginationDefaults: function () { + setInitPaginationDefaults: function() { var uigridDefaults = uiGridOptionsService.options(); /*object used for ui grid table. This contains page,pageSize,sortBy and sortDirection*/ $scope.paginationParams = uigridDefaults.pagination; @@ -45,21 +45,21 @@ /*objects used for card*/ $scope.currentCardPage = uigridDefaults.pagination.page; $scope.cardsPerPage = uigridDefaults.pagination.pageSize; - $scope.numofCardPages = 0;//Have to calculate from totalItems/cardsPerPage + $scope.numofCardPages = 0; //Have to calculate from totalItems/cardsPerPage $scope.totalCards = 0; }, - setPaginationDefaults: function () { + setPaginationDefaults: function() { $scope.paginationParams.sortBy = 'instanceCreatedOn'; $scope.paginationParams.sortOrder = 'desc'; if ($scope.paginationParams.page !== 1) { - $scope.setFirstPageView();//if current page is not 1, then ui grid will trigger a call when set to 1. + $scope.setFirstPageView(); //if current page is not 1, then ui grid will trigger a call when set to 1. } else { $scope.instancesListCardView(); } }, - setHostToIp: function (result) { + setHostToIp: function(result) { /*condition check for appUrl when $host has been entered by the user which - which should be changed to the instance IP*/ + which should be changed to the instance IP*/ $scope.instanceList = result; for (var i = 0; i < $scope.instanceList.length; i++) { var appItem = $scope.instanceList[i].appUrls; @@ -92,7 +92,7 @@ $scope.providerLoading = false; $scope.regionLoading = false; - $scope.openContainersTab = function () { + $scope.openContainersTab = function() { $scope.$parent.$parent.activateTab('Containers'); }; /*User permission set example*/ @@ -115,39 +115,74 @@ $scope.paginationParams = instanceUIGridDefaults.pagination; $scope.currentCardPage = instanceUIGridDefaults.pagination.page; $scope.cardsPerPage = instanceUIGridDefaults.pagination.pageSize; - $scope.numofCardPages = 0;//Have to calculate from totalItems/cardsPerPage + $scope.numofCardPages = 0; //Have to calculate from totalItems/cardsPerPage $scope.totalCards = 0; $scope.tabData = []; - /*grid method to define the columns that need to be present*/ - $scope.initGrids = function () { + $scope.initGrids = function() { $scope.instancesGridOptions = angular.extend(instanceUIGridDefaults.gridOption, { data: 'tabData', - columnDefs: [ - {name: 'Logo', displayName: '', width: 100, enableSorting: false, cellTemplate: '' + - '', cellTooltip: true}, - {name: 'Name', field: 'name', cellTemplate: '{{row.entity.name}}' + - '' + - '' + - '', cellTooltip: true}, - {name: 'Provider Name', displayName: 'Provider Name', field: 'providerId', cellTooltip: true}, - {name: 'Ip Address', displayName: 'IP Address', cellTemplate: 'Public: {{row.entity.instanceIP}}
Private: {{row.entity.privateIpAddress}}', cellTooltip: true}, - {name: 'RunLists', width: 90, enableSorting: false, cellTemplate: 'NA', cellTooltip: true}, - {name: 'Status', width: 90, enableSorting: false, cellTemplate: '
', cellTooltip: true}, - {name: 'Log Info', width: 90, enableSorting: false, cellTemplate: '', cellTooltip: true}, - {name: 'Action', width: 160, enableSorting: false, cellTemplate: 'src/partials/sections/dashboard/workzone/instance/popups/instanceActionGridTemplate.html'} - ], + columnDefs: [{ + name: 'Logo', + displayName: '', + width: 100, + enableSorting: false, + cellTemplate: '' + + '', + cellTooltip: true + }, { + name: 'Name', + field: 'name', + cellTemplate: '{{row.entity.name}}' + + '' + + '' + + '', + cellTooltip: true + }, { + name: 'Provider Name', + displayName: 'Provider Name', + field: 'providerId', + cellTooltip: true + }, { + name: 'Ip Address', + displayName: 'IP Address', + cellTemplate: 'Public: {{row.entity.instanceIP}}
Private: {{row.entity.privateIpAddress}}', + cellTooltip: true + }, { + name: 'RunLists', + width: 90, + enableSorting: false, + cellTemplate: 'NA', + cellTooltip: true + }, { + name: 'Status', + width: 90, + enableSorting: false, + cellTemplate: '
', + cellTooltip: true + }, { + name: 'Log Info', + width: 90, + enableSorting: false, + cellTemplate: '', + cellTooltip: true + }, { + name: 'Action', + width: 160, + enableSorting: false, + cellTemplate: 'src/partials/sections/dashboard/workzone/instance/popups/instanceActionGridTemplate.html' + }], }); }; /*APIs registered are triggered as ui-grid is configured - for server side(external) pagination.*/ + for server side(external) pagination.*/ $scope.instancesGridOptions = angular.extend(instanceUIGridDefaults.gridOption, { - onRegisterApi: function (gridApi) { + onRegisterApi: function(gridApi) { $scope.gridApi = gridApi; //Sorting for sortBy and sortOrder - gridApi.core.on.sortChanged($scope, function (grid, sortColumns) { + gridApi.core.on.sortChanged($scope, function(grid, sortColumns) { if (sortColumns[0] && sortColumns[0].field && sortColumns[0].sort && sortColumns[0].sort.direction) { $scope.paginationParams.sortBy = sortColumns[0].field; $scope.paginationParams.sortOrder = sortColumns[0].sort.direction; @@ -155,7 +190,7 @@ } }); //Pagination for page and pageSize - gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { + gridApi.pagination.on.paginationChanged($scope, function(newPage, pageSize) { $scope.paginationParams.page = newPage; $scope.paginationParams.pageSize = pageSize; $scope.currentCardPage = newPage; @@ -164,22 +199,22 @@ }); }, }); - $scope.cardPaginationChange = function () { + $scope.cardPaginationChange = function() { $scope.paginationParams.page = $scope.currentCardPage; $scope.paginationParams.pageSize = $scope.cardsPerPage; $scope.instancesGridOptions.paginationCurrentPage = $scope.currentCardPage; }; //variables used in rendering of the cards and table && checking ssh angular.extend($scope, { - instancesListCardView: function () { + instancesListCardView: function() { $scope.isInstancePageLoading = true; $scope.instanceList = []; // service to get the list of instances. - workzoneServices.getPaginatedInstances($scope.envParams, $scope.paginationParams, $scope.filterBy).then(function (result) { - $timeout(function () { + workzoneServices.getPaginatedInstances($scope.envParams, $scope.paginationParams, $scope.filterBy).then(function(result) { + $timeout(function() { $scope.instancesGridOptions.totalItems = $scope.totalCards = result.data.metaData.totalRecords; /*calling the helper method to check if $host is present - so that it gets replaced with instanceIP*/ + so that it gets replaced with instanceIP*/ helper.setHostToIp(result.data.instances); $scope.tabData = $scope.instanceList; if ($scope.totalCards > $scope.paginationParams.pageSize) { @@ -190,14 +225,14 @@ $scope.isInstancePageLoading = false; $scope.numofCardPages = Math.ceil($scope.instancesGridOptions.totalItems / $scope.paginationParams.pageSize); }, 100); - }, function (error) { + }, function(error) { $scope.isInstancePageLoading = false; console.log(error); $scope.errorMessage = "No Records found"; }); }, /*method to get the AWS instance status(specific only to AWS currently)*/ - getAWSStatus: function (instanceStatus, type) { + getAWSStatus: function(instanceStatus, type) { var colorSuffix = ''; var instanceStateImagePrefix = 'instance-state-'; var instanceStateTextPrefix = 'instance-state-text-'; @@ -212,6 +247,9 @@ case 'stopped': colorSuffix = 'stopped'; break; + case 'shutting-down': + colorSuffix = 'shutting-down'; + break; case 'pending': colorSuffix = 'pending'; break; @@ -232,7 +270,7 @@ } }, /*method to get the instance role*/ - getRoleLogo: function (inst) { + getRoleLogo: function(inst) { var imagePath = ''; var type = ''; type = inst.blueprintData && inst.blueprintData.templateId; @@ -260,7 +298,7 @@ } return imagePath; }, - getOSLogo: function (inst) { + getOSLogo: function(inst) { var imagePath = ''; var type = ''; type = inst.hardware && inst.hardware.platform; @@ -285,7 +323,7 @@ } return imagePath; }, - getPlatformId: function (providerType, platformID) { + getPlatformId: function(providerType, platformID) { var providerIdPrefix; switch (providerType) { case 'aws': @@ -309,94 +347,99 @@ actionSet: instanceActions }); /* START: Methods which make use of instanceService - Below methods on the instance card/table make use of instanceActions service. - Same sevice is reused in control panel actions tab but promise handlers may be different. - */ + Below methods on the instance card/table make use of instanceActions service. + Same sevice is reused in control panel actions tab but promise handlers may be different. + */ $scope.operationSet = {}; - $scope.operationSet.deleteInstance = function (inst) { + $scope.operationSet.deleteInstance = function(inst) { var promise = instanceOperations.deleteInstance(inst); - promise.then(function (resolveMessage) { + promise.then(function(resolveMessage) { console.log("Promise resolved deleteInstance:" + resolveMessage); $scope.instancesListCardView(); - }, function (rejectMessage) { + }, function(rejectMessage) { console.log("Promise rejected deleteInstance:" + rejectMessage); }); }; - $scope.operationSet.editInstanceName = function (inst) { + $scope.operationSet.editInstanceName = function(inst) { var promise = instanceOperations.editInstanceName(inst); - promise.then(function (resolveMessage) { + promise.then(function(resolveMessage) { console.log("Promise resolved editInstanceName:" + resolveMessage); $scope.selected = inst; - }, function (rejectMessage) { + }, function(rejectMessage) { console.log("Promise rejected editInstanceName:" + rejectMessage); }); }; - $scope.operationSet.instanceSSH = function (inst) { + $scope.operationSet.instanceSSH = function(inst) { var promise = instanceOperations.instanceSSH(inst); - promise.then(function (resolveMessage) { + promise.then(function(resolveMessage) { console.log("Promise resolved instanceSSH:" + resolveMessage); $scope.selected = inst; - }, function (rejectMessage) { + }, function(rejectMessage) { console.log("Promise rejected instanceSSH:" + rejectMessage); }); }; - $scope.operationSet.viewLogs = function (inst) { + $scope.operationSet.viewLogs = function(inst) { var promise = instanceOperations.viewLogs(inst); - promise.then(function (resolveMessage) { + promise.then(function(resolveMessage) { console.log("Promise resolved viewLogs:" + resolveMessage); $scope.selected = inst; - }, function (rejectMessage) { + }, function(rejectMessage) { console.log("Promise rejected viewLogs:" + rejectMessage); }); }; - $scope.operationSet.viewRunList = function (inst) { + $scope.operationSet.viewRunList = function(inst) { var promise = instanceOperations.viewRunList(inst); - promise.then(function (resolveMessage) { + promise.then(function(resolveMessage) { console.log("Promise resolved viewRunList:" + resolveMessage); - }, function (rejectMessage) { + }, function(rejectMessage) { console.log("Promise rejected viewRunList:" + rejectMessage); }); }; - $scope.operationSet.updateCookbook = function (inst) { + $scope.operationSet.updateCookbook = function(inst) { var promise = instanceOperations.updateCookbook(inst); - promise.then(function (resolveMessage) { + promise.then(function(resolveMessage) { console.log("Promise resolved updateCookbook:" + resolveMessage); $scope.selected = inst; - }, function (rejectMessage) { + }, function(rejectMessage) { console.log("Promise rejected updateCookbook:" + rejectMessage); }); }; - $scope.operationSet.puppetRunClient = function (inst) { + $scope.operationSet.puppetRunClient = function(inst) { var promise = instanceOperations.puppetRunClient(inst); - promise.then(function (resolveMessage) { + promise.then(function(resolveMessage) { console.log("Promise resolved puppetRunClient:" + resolveMessage); $scope.selected = inst; - }, function (rejectMessage) { + }, function(rejectMessage) { console.log("Promise rejected puppetRunClient:" + rejectMessage); }); }; - $scope.operationSet.changeInstanceStatus = function (inst) { + $scope.operationSet.changeInstanceStatus = function(inst) { $scope.instStartStopFlag = true; - var instObj = {_inst: inst, _id: inst._id, state: inst.instanceState, instIdx: $scope.instanceList.indexOf(inst)}; + var instObj = { + _inst: inst, + _id: inst._id, + state: inst.instanceState, + instIdx: $scope.instanceList.indexOf(inst) + }; workzoneServices.getInstanceData(inst).then( - function (response) { + function(response) { if (response.data.instanceState === "running") { var stopPromise = instanceOperations.stopInstanceHandler(inst, $scope.perms.stop); - stopPromise.then(function () { + stopPromise.then(function() { $scope.operationSet.checkInstanceStatus(instObj, 2000); $scope.operationSet.viewLogs(inst); $scope.instStartStopFlag = false; - }, function (rejectMessage) { + }, function(rejectMessage) { $scope.instStartStopFlag = false; console.log("Promise rejected " + rejectMessage); }); } else { var startPromise = instanceOperations.startInstanceHandler(inst, $scope.perms.start); - startPromise.then(function () { + startPromise.then(function() { $scope.operationSet.checkInstanceStatus(instObj, 2000); $scope.operationSet.viewLogs(inst); $scope.instStartStopFlag = false; - }, function (rejectMessage) { + }, function(rejectMessage) { $scope.instStartStopFlag = false; console.log("Promise rejected " + rejectMessage); }); @@ -404,11 +447,11 @@ } ); }; - $scope.operationSet.checkInstanceStatus = function (instObj, delay) { + $scope.operationSet.checkInstanceStatus = function(instObj, delay) { var _instObj = instObj; - $timeout(function () { + $timeout(function() { workzoneServices.getInstanceData(instObj._inst).then( - function (response) { + function(response) { if (response) { $scope.instanceList[_instObj.instIdx].instanceState = response.data.instanceState; console.log(response.data.instanceState, ' polling'); @@ -421,17 +464,16 @@ } } }, - function () { - } + function() {} ); }, delay); }; /*END: Methods which make use of instanceService*/ /*setting the firstPageView*/ - $scope.setFirstPageView = function () { + $scope.setFirstPageView = function() { $scope.instancesGridOptions.paginationCurrentPage = $scope.paginationParams.page = 1; }; - $rootScope.$on('WZ_ENV_CHANGE_START', function (event, requestParams) { + $rootScope.$on('WZ_ENV_CHANGE_START', function(event, requestParams) { $scope.envParams = requestParams; $scope.initGrids(); helper.setPaginationDefaults(); @@ -439,14 +481,14 @@ //workzoneUIUtils.makeTabScrollable('instancePage');//TODO: Ideally this should be on resize event; }); //root scope method for refreshing the list view at the time of blueprint launch. - $rootScope.$on('WZ_INSTANCES_SHOW_LATEST', function () { + $rootScope.$on('WZ_INSTANCES_SHOW_LATEST', function() { helper.setPaginationDefaults(); }); //root scope method for refreshing the list view at the time of docker cookbook run. - $rootScope.$on('WZ_INSTANCES_REFRESH_CURRENT', function () { + $rootScope.$on('WZ_INSTANCES_REFRESH_CURRENT', function() { $scope.instancesListCardView(); }); - $scope.instanceImportByIP = function () { + $scope.instanceImportByIP = function() { $scope.isImportClickEnabled = false; var whetherConfigListAvailable = workzoneServices.getCheckIfConfigListAvailable(); var getOSList = workzoneServices.getOSList(); @@ -459,41 +501,41 @@ backdrop: 'static', keyboard: false, resolve: { - items: function () { + items: function() { return allPromise; } } }); - modalInstance.result.then(function (newinstId) { + modalInstance.result.then(function(newinstId) { $scope.isImportClickEnabled = true; $rootScope.$emit('WZ_INSTANCES_SHOW_LATEST'); $scope.operationSet.viewLogs(newinstId); - }, function () { + }, function() { $scope.isImportClickEnabled = true; console.log('Modal dismissed at: ' + new Date()); }); }; - $scope.rdpFileLink = function (instanceObj) { + $scope.rdpFileLink = function(instanceObj) { var fileLink = '/instances/rdp/' + instanceObj.instanceIP + '/3389'; return fileLink; }; - $scope.rdpFileName = function (instanceObj) { + $scope.rdpFileName = function(instanceObj) { var fileName = instanceObj.instanceIP + '.rdp'; return fileName; }; - $scope.showAppLinksPopup = function (inst) { + $scope.showAppLinksPopup = function(inst) { inst.showAppLinks = !inst.showAppLinks; console.log(inst.showAppLinks); }; - $scope.selectCard = function (identi) { + $scope.selectCard = function(identi) { $scope.selectedCard = identi; }; - $scope.setCardView = function () { + $scope.setCardView = function() { $scope.isCardViewActive = true; $scope.instanceCardViewSelection = "instance-tab-active"; $scope.instanceTableViewSelection = ""; }; - $scope.instanceExecute = function (task) { + $scope.instanceExecute = function(task) { var modalOptions = { closeButtonText: 'Cancel', actionButtonText: 'Ok', @@ -501,8 +543,8 @@ headerText: 'Confirmation', bodyText: 'Are you sure you want to execute this Job?' }; - confirmbox.showModal({}, modalOptions).then(function () { - workzoneServices.runTask(task.id).then(function (response) { + confirmbox.showModal({}, modalOptions).then(function() { + workzoneServices.runTask(task.id).then(function(response) { $modal.open({ animation: true, templateUrl: 'src/partials/sections/dashboard/workzone/orchestration/popups/orchestrationLog.html', @@ -510,7 +552,7 @@ backdrop: 'static', keyboard: false, resolve: { - items: function () { + items: function() { return { taskId: task.id, historyId: response.data.historyId, @@ -522,18 +564,18 @@ }); }); }; - $scope.instanceTableView = function () { + $scope.instanceTableView = function() { $scope.isCardViewActive = false; $scope.instanceTableViewSelection = "instance-tab-active"; $scope.instanceCardViewSelection = ""; var tableData = $scope.tabData; $scope.tabData = []; - $timeout(function () { + $timeout(function() { $scope.tabData = tableData; }, 500); }; - $scope.instanceControlPanel = function (instanceObj) { + $scope.instanceControlPanel = function(instanceObj) { $modal.open({ animation: true, templateUrl: 'src/partials/sections/dashboard/workzone/instance/manage/controlPanel.html', @@ -542,19 +584,19 @@ keyboard: false, size: 'lg', resolve: { - instance: function () { + instance: function() { return instanceObj; } } }); }; - $scope.refreshCurrentPage = function () { + $scope.refreshCurrentPage = function() { $rootScope.$emit('WZ_INSTANCES_REFRESH_CURRENT'); }; - $scope.fnShowFilters = function () { + $scope.fnShowFilters = function() { $scope.showFilters = !$scope.showFilters; }; - $scope.resetFilter = function () { + $scope.resetFilter = function() { $scope.filter = angular.copy(filters); $scope.regions = []; $scope.vpcs = []; @@ -563,25 +605,25 @@ $scope.showFilters = false; }; - $scope.getAllRegionsList = function () { - workzoneServices.getAllRegionsList().then(function (response) { + $scope.getAllRegionsList = function() { + workzoneServices.getAllRegionsList().then(function(response) { $scope.allRegions = response.data; - }, function (error) { + }, function(error) { console.log(error); }); }; - $scope.getProviders = function () { - workzoneServices.getProviders().then(function (response) { + $scope.getProviders = function() { + workzoneServices.getProviders().then(function(response) { $scope.providers = response.data; - }, function (error) { + }, function(error) { console.log(error); }); }; - $scope.getProviderRegions = function () { + $scope.getProviderRegions = function() { $scope.providerLoading = true; - workzoneServices.getProviderRegions($scope.filter.providerId).then(function (response) { + workzoneServices.getProviderRegions($scope.filter.providerId).then(function(response) { var keyPairs = response.data.keyPairs; var keyPairsLength = keyPairs.length; var regions = []; @@ -601,7 +643,7 @@ } } $scope.providerLoading = false; - }, function (error) { + }, function(error) { console.log(error); $scope.providerLoading = false; }); @@ -609,19 +651,19 @@ - $scope.getProviderVPCs = function () { + $scope.getProviderVPCs = function() { $scope.regionLoading = true; - workzoneServices.getProviderVPCs($scope.filter.providerId, $scope.filter.regionId).then(function (response) { + workzoneServices.getProviderVPCs($scope.filter.providerId, $scope.filter.regionId).then(function(response) { $scope.vpcs = response.data.Vpcs; $scope.regionLoading = false; - }, function (error) { + }, function(error) { $scope.regionLoading = false; console.log(error); }); }; - $scope.fnProviderChange = function () { + $scope.fnProviderChange = function() { $scope.filter.regionId = ''; $scope.filter.vpcId = ''; $scope.regions = []; @@ -631,7 +673,7 @@ } }; - $scope.fnRegionChange = function () { + $scope.fnRegionChange = function() { $scope.filter.vpcId = ''; $scope.vpcs = []; if ($scope.filter.regionId && $scope.filter.regionId !== '') { @@ -639,26 +681,35 @@ } }; - $scope.fnSearchFilters = function () { + $scope.fnSearchFilters = function() { $scope.filterBy = null; - $scope.filterChips = []; + $scope.filterChips = []; if ($scope.filter.providerId && $scope.filter.providerId !== '') { - $scope.filterBy = 'providerId:'+$scope.filter.providerId; - $scope.filterChips.push({'key':'Provider','value':$scope.filter.providerId}); + $scope.filterBy = 'providerId:' + $scope.filter.providerId; + $scope.filterChips.push({ + 'key': 'Provider', + 'value': $scope.filter.providerId + }); } if ($scope.filter.regionId && $scope.filter.regionId !== '') { - $scope.filterBy += '+region:'+$scope.filter.regionId; - $scope.filterChips.push({'key':'Region','value':$scope.filter.regionId}); + $scope.filterBy += '+region:' + $scope.filter.regionId; + $scope.filterChips.push({ + 'key': 'Region', + 'value': $scope.filter.regionId + }); } if ($scope.filter.vpcId && $scope.filter.vpcId !== '') { - $scope.filterBy += '+vpcId:'+$scope.filter.vpcId; - $scope.filterChips.push({'key':'VPC','value':$scope.filter.vpcId}); + $scope.filterBy += '+vpcId:' + $scope.filter.vpcId; + $scope.filterChips.push({ + 'key': 'VPC', + 'value': $scope.filter.vpcId + }); } $scope.instancesListCardView(); $scope.showFilters = false; }; - $scope.init = function () { + $scope.init = function() { helper.setInitPaginationDefaults(); $scope.setCardView(); $scope.getProviders(); @@ -667,4 +718,4 @@ $scope.init(); } ]); -})(angular); +})(angular); \ No newline at end of file diff --git a/client/cat3/src/partials/sections/dashboard/workzone/orchestration/orchestration.scss b/client/cat3/src/partials/sections/dashboard/workzone/orchestration/orchestration.scss index 6d55e5c30..658518e7c 100644 --- a/client/cat3/src/partials/sections/dashboard/workzone/orchestration/orchestration.scss +++ b/client/cat3/src/partials/sections/dashboard/workzone/orchestration/orchestration.scss @@ -353,6 +353,18 @@ $imagePath : "../../../../../../images"; margin: 3px 0 0 0; } } + + .paddingtop8 { + padding-top: 8px; + } + + .paddingleft0 { + padding-left: 0px; + } + + .paddingright15 { + padding-right: 15px; + } } #viewNodesPage { diff --git a/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/newTask.html b/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/newTask.html index c709ad262..89499be44 100644 --- a/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/newTask.html +++ b/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/newTask.html @@ -80,18 +80,30 @@
Job Details
-
@@ -154,7 +166,7 @@
Chef Server Details for - RLChefServer
  • -
  • @@ -442,7 +454,9 @@
    Script Details
    {{param}} - + + + diff --git a/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/newTaskCtrl.js b/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/newTaskCtrl.js index 77774059e..08e4bf308 100644 --- a/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/newTaskCtrl.js +++ b/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/newTaskCtrl.js @@ -21,6 +21,7 @@ $scope.scriptParamShow = false; $scope.scriptSelectAll = false; $scope.scriptParamsObj = {}; + $scope.isSudo = false; $scope.toggleAll = function() { var toggleStatus = $scope.isAllSelected; angular.forEach($scope.chefInstanceList, function(itm){ itm._isNodeSelected = toggleStatus;}); @@ -355,6 +356,7 @@ if ($scope.taskType === "script") { taskJSON.nodeIds = []; taskJSON.scriptDetails = []; + taskJSON.isSudo = $scope.isSudo; for (var si = 0; si < $scope.chefInstanceList.length; si++) { if ($scope.chefInstanceList[si]._isNodeSelected) { taskJSON.nodeIds.push($scope.chefInstanceList[si]._id); @@ -519,11 +521,13 @@ /*Identifying the nodes and script list and checking for task type to be script*/ if ($scope.taskType === "script") { if($scope.isEditMode){ + $scope.isSudo=items.taskConfig.isSudo; $scope.chefInstanceList = responseFormatter.identifyAvailableChefNode(responseFormatter.getChefList(instances), items.taskConfig.nodeIds); $scope.isScriptInstanceLoading = false; $scope.isNewTaskPageLoading = false; $scope.targetType="instance"; }else{ + $scope.isSudo = false; $scope.chefInstanceList = responseFormatter.identifyAvailableChefNode(responseFormatter.getChefList(instances), []); $scope.isScriptInstanceLoading = false; $scope.isNewTaskPageLoading = false; diff --git a/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/orchestrationHistoryCtrl.js b/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/orchestrationHistoryCtrl.js index eac4ce752..de4ba54eb 100644 --- a/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/orchestrationHistoryCtrl.js +++ b/client/cat3/src/partials/sections/dashboard/workzone/orchestration/popups/orchestrationHistoryCtrl.js @@ -64,7 +64,7 @@ { name:'Job Number',field:'buildNumber',cellTemplate:'{{row.entity.buildNumber}}', sort:{ direction: 'desc'}, cellTooltip: true}, { name:'Job Output',cellTemplate:'',cellTooltip: true}, { name:'Log Info',width: 90,cellTemplate:'',cellTooltip: true}, - { name:'Status',field:'status',cellTemplate:'
    {{row.entity.status}}
    '}, + { name:'Status',field:'status',cellTemplate:'
    {{row.entity.status.toUpperCase()}}
    '}, { name:'Start Time',field:'timestampStarted',cellTemplate:'{{row.entity.timestampStarted | timestampToLocaleTime}}',cellTooltip: true}, { name:'End Time',field:'timestampEnded',cellTemplate:'{{row.entity.timestampEnded | timestampToLocaleTime}}',cellTooltip: true} ]; diff --git a/client/htmls/private/ajax/DesignBlueprint.html b/client/htmls/private/ajax/DesignBlueprint.html index 6b0739e70..4dadd7215 100644 --- a/client/htmls/private/ajax/DesignBlueprint.html +++ b/client/htmls/private/ajax/DesignBlueprint.html @@ -492,7 +492,7 @@

    - +
    @@ -830,7 +830,6 @@
    diff --git a/client/htmls/private/ajax/Settings/CreateImages.html b/client/htmls/private/ajax/Settings/CreateImages.html index e73c5ff41..42e69e2c9 100755 --- a/client/htmls/private/ajax/Settings/CreateImages.html +++ b/client/htmls/private/ajax/Settings/CreateImages.html @@ -258,10 +258,11 @@ $('#osType').on('change',function(){ var ostype = $('#osType').find("option:selected").val(); if($('#osType').val() == 'Windows'){ - $('.forazurepassword').find('#password').attr('cat-validation', 'required,min8'); - } - else{ - $('.forazurepassword').find('#password').removeAttr('cat-validation'); + $('.forazurepassword').find('#password').attr('cat-validation', 'required,min8'); + $('.forazurepassword label').html('Admin Password:').append(' *'); + }else{ + $('.forazurepassword label').html('Admin Password:'); + $('.forazurepassword').find('#password').removeAttr('cat-validation'); } }); } diff --git a/client/htmls/private/ajax/Settings/CreateOrg.html b/client/htmls/private/ajax/Settings/CreateOrg.html index d7ece509d..46b67c0dc 100755 --- a/client/htmls/private/ajax/Settings/CreateOrg.html +++ b/client/htmls/private/ajax/Settings/CreateOrg.html @@ -34,6 +34,14 @@

    Create Organization

+
+ + + + + + +
@@ -187,7 +187,7 @@

- +
@@ -222,13 +222,22 @@

- + - +
+
+ + + + + +
+
+
+
+
+

\ No newline at end of file diff --git a/client/htmls/private/ajax/Settings/cmdbList.html b/client/htmls/private/ajax/Settings/cmdbList.html index 5d596a826..47cb0fdd2 100755 --- a/client/htmls/private/ajax/Settings/cmdbList.html +++ b/client/htmls/private/ajax/Settings/cmdbList.html @@ -48,7 +48,7 @@

"pagingType": "full_numbers", "bInfo": false, "bLengthChange": false, - "paging": false, + "paging": true, "bFilter": false, "aoColumns": [{ "bSortable": false diff --git a/client/htmls/private/ajax/Settings/providerSync.html b/client/htmls/private/ajax/Settings/providerSync.html index e587a3688..4644195ef 100644 --- a/client/htmls/private/ajax/Settings/providerSync.html +++ b/client/htmls/private/ajax/Settings/providerSync.html @@ -154,6 +154,13 @@

Create tag name to catalyst entity mapping
+
+ +
+ +
+
@@ -191,6 +198,31 @@

Create tag name to catalyst entity mapping
+ +
+
+ + + + + + + + + +
Catalyst Business GroupBusiness Group Tag Value
+
+
+
+ + +
+
+
+
@@ -263,6 +295,8 @@

Create tag name to catalyst entity mapping

+ + @@ -286,6 +320,8 @@

Create tag name to catalyst entity mapping

+ + @@ -314,6 +350,7 @@

Create tag name to catalyst entity mapping

+ @@ -358,6 +395,8 @@

Create tag name to catalyst entity mapping

+ + @@ -380,6 +419,7 @@

Create tag name to catalyst entity mapping

+ @@ -424,7 +464,8 @@

Create tag name to catalyst entity mapping

- + + @@ -446,6 +487,7 @@

Create tag name to catalyst entity mapping

+ @@ -606,6 +648,20 @@ }] }); } + if (!$.fn.dataTable.isDataTable('#mappingBgTable')) { + var $mappingbgDatatable = $('#mappingBgTable').DataTable({ + "pagingType": "full_numbers", + "bInfo": false, + "bLengthChange": false, + "paging": false, + "bFilter": false, + "aoColumns": [{ + "bSortable": false + }, { + "bSortable": false + }] + }); + } if (!$.fn.dataTable.isDataTable('#mappingprojectTable')) { var $mappingprojectDatatable = $('#mappingprojectTable').DataTable({ "pagingType": "full_numbers", @@ -666,9 +722,42 @@ "columns": [ {"data": "resourceDetails.bucketName", "orderable" : true}, {"data": "resourceDetails.bucketOwnerName" ,"orderable" : false }, - {"data": "masterDetails.orgName","orderable" : false }, - {"data": "masterDetails.projectName" ,"orderable" : false }, - {"data": "masterDetails.envName" ,"orderable" : false }, + {"data": "masterDetails.orgName","orderable" : false, + "render": function (data) { + if(data !== null){ + return data; + }else{ + return '-'; + } + } + }, + {"data": "masterDetails.bgName","orderable" : false, + "render": function (data) { + if(data !== null){ + return data; + }else{ + return '-'; + } + } + }, + {"data": "masterDetails.projectName" ,"orderable" : false, + "render": function (data) { + if(data !== null){ + return data; + }else{ + return '-'; + } + } + }, + {"data": "masterDetails.envName" ,"orderable" : false, + "render": function (data) { + if(data !== null){ + return data; + }else{ + return '-'; + } + } + }, {"data": "resourceDetails.bucketSize","orderable" : true }, {"data": "resourceDetails.bucketCreatedOn","orderable" : true, "render": function (data) { @@ -691,15 +780,41 @@ "columns": [ {"data": "platformId","orderable" : true }, {"data": "hardware.os","orderable" : false }, - {"data": "instanceIP","orderable" : true }, + {"data": "instanceIP","orderable" : true, + "render":function(data, type, full, meta) { + if(full.instanceIP === null){ + if(full.privateIpAddress && full.privateIpAddress !== null){ + return full.privateIpAddress; + }else{ + return '-'; + } + }else{ + return full.instanceIP; + } + } + }, {"data": "","orderable" : true, "render":function(data, type, full, meta) { return full.region?full.region:full.providerData?full.providerData.region:'-'; } }, {"data": "instanceState","orderable" : true }, - {"data": "projectName" ,"orderable" : false }, - {"data": "","orderable" : true , + {"data": "" ,"orderable" : true , + "render":function(data, type, full, meta) { + return full.orgName?full.orgName:'-'; + } + }, + {"data": "" ,"orderable" : true , + "render":function(data, type, full, meta) { + return full.bgName?full.bgName:'-'; + } + }, + {"data": "" ,"orderable" : true, + "render":function(data, type, full, meta) { + return full.projectName?full.projectName:'-'; + } + }, + {"data": "","orderable" : true, "render":function(data, type, full, meta) { return full.environmentName?full.environmentName:'-'; } @@ -759,8 +874,42 @@ {"data": "resourceDetails.dbName", "orderable" : true}, {"data": "resourceDetails.dbEngine","orderable" : true }, {"data": "resourceDetails.dbInstanceStatus","orderable" : true }, - {"data": "masterDetails.projectName","orderable" : true }, - {"data": "masterDetails.envName","orderable" : true }, + {"data": "masterDetails.orgName","orderable" : true, + "render": function (data) { + if(data !== null){ + return data; + }else{ + return '-'; + } + } + }, + {"data": "masterDetails.bgName","orderable" : true , + "render": function (data) { + if(data !== null){ + return data; + }else{ + return '-'; + } + } + }, + {"data": "masterDetails.projectName","orderable" :true , + "render": function (data) { + if(data !== null){ + return data; + }else{ + return '-'; + } + } + }, + {"data": "masterDetails.envName","orderable" : true , + "render": function (data) { + if(data !== null){ + return data; + }else{ + return '-'; + } + } + }, {"data": "resourceDetails.region","orderable" : false }, {"data": "resourceDetails.dbInstanceClass","orderable" : false }, {"data": "resourceDetails.multiAZ","orderable" : false, @@ -805,18 +954,21 @@ function loadTagsTabData(tagsListData,providerId) { var $projecttagsList = $('#tagsProjectSelect'); var $envtagsList = $('#tagsEnvSelect'); + var $bgtagsList = $('#tagsBgSelect'); $projecttagsList.empty(); $envtagsList.empty(); + $bgtagsList.empty(); $tagsDatatable.clear().draw(); $projecttagsList.append($('').val("").html("Choose Project")); $envtagsList.append($('').val("").html("Choose Environment")); + $bgtagsList.append($('').val("").html("Choose Business Group")); for (var i = 0; i < tagsListData.length; i++) { var $tbody = $('#tagsTable tbody').empty(); //For Dropdown - $projecttagsList.append($('').val(tagsListData[i].name).html(tagsListData[i].name)); $envtagsList.append($('').val(tagsListData[i].name).html(tagsListData[i].name)); + $bgtagsList.append($('').val(tagsListData[i].name).html(tagsListData[i].name)); //For Table var $tr = $(''); @@ -899,8 +1051,15 @@ //For tags tab..... var $projecttagsList = $('#tagsProjectSelect'); var $envtagsList = $('#tagsEnvSelect'); + var $bgtagsList = $('#tagsBgSelect'); var catalystEntityProjName = $('#projectnameLabelId').attr('catalystEntitytype'); var catalystEntityEnvName = $('#envnameLabelId').attr('catalystEntitytype'); + var catalystEntityBgName = $('#bgNameLabelId').attr('catalystEntitytype'); + /*if(tagsListSelected.length > 0){ + $('.btnprojectMappingSave').attr('disabled',false); + }else{ + $('.btnprojectMappingSave').attr('disabled',true); + }*/ for(var i=0;iImporting Instances var tagValues = tagsListSelected[i].tagValues; var catalystEntityMapping = tagsListSelected[i].catalystEntityMapping; + if(objcatalystEntityType == catalystEntityBgName){ + $bgtagsList.val(objtagName); + } if(objcatalystEntityType == catalystEntityProjName){ + //$('.btnprojectMappingSave').attr('disabled',false); $projecttagsList.val(objtagName); //For Mapping tab..... //For project catalystEntityType $mappingprojectDatatable.clear().draw(); var $tbody = $('#mappingprojectTable tbody').empty(); - for(var j = 0; j < catalystEntityTypeListPassed.length; j++){ //For Table var $tr = $(''); @@ -945,7 +1107,9 @@ } } } - } + }/*else{ + $('.btnprojectMappingSave').attr('disabled',true); + }*/ //For environment catalystEntityType if(objcatalystEntityType == catalystEntityEnvName){ $envtagsList.val(objtagName); @@ -953,7 +1117,6 @@ } }, error: function(jxhr) { - } }); @@ -961,27 +1124,36 @@ $('.btntagsFormSave').on('click',function(){ var $projecttagsList = $('#tagsProjectSelect'); var $envtagsList = $('#tagsEnvSelect'); + var $bgtagsList = $('#tagsBgSelect'); var catalystEntityProjName = $('#projectnameLabelId').attr('catalystEntitytype'); var catalystEntityEnvName = $('#envnameLabelId').attr('catalystEntitytype'); + var catalystEntityBgName = $('#bgNameLabelId').attr('catalystEntitytype'); var tagsProjSelectedVal = $projecttagsList.val(); var tagsenvSelectedVal = $envtagsList.val(); - - if(tagsProjSelectedVal == tagsenvSelectedVal){ + var tagsbgSelectedVal = $bgtagsList.val(); + if(tagsbgSelectedVal === '' && tagsProjSelectedVal === '' && tagsenvSelectedVal === ''){ + bootbox.alert("Please select at-least one value for catalyst entity mapping"); + return false; + } + if((tagsbgSelectedVal !== '' && tagsbgSelectedVal === tagsProjSelectedVal) + || (tagsenvSelectedVal !== '' && tagsenvSelectedVal === tagsbgSelectedVal) + || (tagsProjSelectedVal !== '' && tagsProjSelectedVal === tagsenvSelectedVal)){ bootbox.alert("Tag name cannot be same to create catalyst entity mapping"); - return; + return false; } - //Creating the data to Post for Save tags. var tagsData = [{ + "catalystEntityType": catalystEntityBgName, + "tagName": tagsbgSelectedVal + },{ "catalystEntityType": catalystEntityProjName, "tagName": tagsProjSelectedVal - }, - { + },{ "catalystEntityType": catalystEntityEnvName, "tagName": tagsenvSelectedVal - }]; + }]; $.ajax({ url: '/providers/'+urlproviderId+'/tag-mappings', method: 'POST', @@ -991,6 +1163,7 @@ $('#spantagsformSaveId').fadeIn(); $('#spantagsformSaveId').html("Saved successfully"); $('#spantagsformSaveId').delay(2000).fadeOut(); + getBgData(); getprojectData(); getenvironmentData(); }, @@ -1001,8 +1174,30 @@ }); //Mapping tabs operation starts.... + getBgData(); getprojectData(); getenvironmentData(); + //For Business Group Mapping + function getBgData(){ + $.get('/d4dMasters/readmasterjsonnew/2', function(bgList) { + var orgId = urlorgName; + var bgListArr = []; + for (var i = 0; i < bgList.length; i++) { + if(orgId == bgList[i].orgname){ + bgListArr.push(bgList[i]); + } + }; + bgMappingList(bgListArr); + }).fail(function(jxhr) { + var msg = "Getting Business Group List Behaved Unexpectedly."; + if (jxhr.responseJSON && jxhr.responseJSON.message) { + msg = jxhr.responseJSON.message; + } else if (jxhr.responseText) { + msg = jxhr.responseText; + } + bootbox.alert(msg); + }); + } //For Project Mapping function getprojectData(){ $.get('/d4dMasters/readmasterjsonnew/4', function(projectist) { @@ -1055,6 +1250,7 @@ $.get('/providers/'+urlproviderId+'/tag-mappings/environment', function(data) { if(data){ + // $('.btnenvMappingSave').attr('disabled',false); var $tbody = $('#mappingenvTable tbody').empty(); for(var i = 0; i < envList.length; i++){ //For Table @@ -1087,9 +1283,111 @@ } } }).fail(function(jxhr) { + // $('.btnenvMappingSave').attr('disabled',true); + }); + } + + function bgMappingList(bgList){ + $mappingbgDatatable.clear().draw(); + + $.get('/providers/'+urlproviderId+'/tag-mappings/bgName', function(data) { + if(data){ + ///$('.btnbgMappingSave').attr('disabled',false); + var $tbody = $('#mappingBgTable tbody').empty(); + for(var i = 0; i < bgList.length; i++){ + //For Table + var $tr = $(''); + + var $tdbgName = $('').append(bgList[i].productgroupname); + $tr.append($tdbgName); + + var $mappingbgSelectList= $(''); + $mappingbgSelectList.empty(); + $mappingbgSelectList.append($('').val('').html('-- None --')); + for(var j=0; j< data.tagValues.length; j++){ + if(data.tagValues[j] != ''){ + $mappingbgSelectList.append($('').val(data.tagValues[j]).html(data.tagValues[j])); + } + } + + var $tdbgTagName = $('').append($mappingbgSelectList); + $tr.append($tdbgTagName); + + $tbody.append($tr); + $mappingbgDatatable.row.add($tr).draw(); + + for(var k = 0; k < data.catalystEntityMapping.length; k++){ + if(bgList[i].rowid == data.catalystEntityMapping[k].catalystEntityId){ + $mappingbgSelectList.val(data.catalystEntityMapping[k].tagValue); + } + } + } + } + }).fail(function(jxhr) { + /// $('.btnbgMappingSave').attr('disabled',true); }); } + $('.btnbgMappingSave').on('click',function(){ + var bgMappingObj = { + "catalystEntityMapping": [] + }; + var counter =0; + var bgMappingSequence = []; + $('#mappingBgTable tbody tr').each(function() { + counter++; + $tr = $(this); + var bgmappingcatalystEntityId = $tr.attr('id'); + var mappingbgSelectTagName = $tr.find('.mappingbgSelectId :selected').val(); + var mappingbgName = $tr.find('.mappingbgName').text(); + if(mappingbgSelectTagName === '' && $('#mappingBgTable tbody tr').length === 1){ + bootbox.alert('Please select a value for updating Catalyst Business Group Tag'); + return false; + } + var objbgMapping = {}; + objbgMapping["catalystEntityId"] = bgmappingcatalystEntityId; + objbgMapping["catalystEntityName"] = mappingbgName; + objbgMapping["tagValue"] = mappingbgSelectTagName; + + bgMappingObj.catalystEntityMapping.push(objbgMapping); + if(counter == $('#mappingBgTable tbody tr').length){ + var checkBgNull = bgMappingObj.catalystEntityMapping; + var checkNullFlag = true; + for(var i = 0; i < checkBgNull.length;i++){ + if(checkBgNull[i].tagValue !== ''){ + checkNullFlag = false; + } + } + if(checkNullFlag){ + bootbox.alert('Please select at-lease one value for updating Catalyst Business Group Tag'); + return false; + }else { + $.ajax({ + url: '/providers/' + urlproviderId + '/tag-mappings/bgName', + data: JSON.stringify(bgMappingObj), + type: 'PATCH', + contentType: "application/json", + success: function (data) { + $('#spanbgMappingSaveId').fadeIn(); + $('#spanbgMappingSaveId').html('Saved successfully'); + $('#spanbgMappingSaveId').delay(2000).fadeOut(); + }, + error: function (jqxhr) { + var msg = " "; + if (jxhr.responseJSON && jxhr.responseJSON.message) { + msg = jxhr.responseJSON.message; + } else if (jxhr.responseText) { + msg = jxhr.responseText; + } + $('#spanbgMappingSaveId').fadeIn(); + $('#spanbgMappingSaveId').html(msg); + $('#spanbgMappingSaveId').delay(2000).fadeOut(); + } + }); + } + } + }); + }); $('.btnprojectMappingSave').on('click',function(){ var projectMappingObj = { @@ -1102,7 +1400,10 @@ var projmappingcatalystEntityId = $tr.attr('id'); var mappingprojectSelectTagName = $tr.find('.mappingprojectSelectId :selected').val(); var mappingprojectName = $tr.find('.mappingprojectName').text(); - + if(mappingprojectSelectTagName === '' && $('#mappingprojectTable tbody tr').length === 1){ + bootbox.alert('Please select a value for updating Catalyst Project Tag'); + return false; + } var objprojectMapping = {}; objprojectMapping["catalystEntityId"] = projmappingcatalystEntityId; objprojectMapping["catalystEntityName"] = mappingprojectName; @@ -1111,19 +1412,31 @@ projectMappingObj.catalystEntityMapping.push(objprojectMapping); if(counter == $('#mappingprojectTable tbody tr').length){ - $.ajax({ - url: '/providers/'+urlproviderId+'/tag-mappings/project', - data: JSON.stringify(projectMappingObj), - type: 'PATCH', - contentType: "application/json", - success: function(data) { - $('#spanprojectMappingSaveId').fadeIn(); - $('#spanprojectMappingSaveId').html('Saved successfully'); - $('#spanprojectMappingSaveId').delay(2000).fadeOut(); - }, - error: function(jqxhr) { + var checkProjectNull = projectMappingObj.catalystEntityMapping; + var checkNullFlag = true; + for(var i = 0; i < checkProjectNull.length;i++){ + if(checkProjectNull[i].tagValue !== ''){ + checkNullFlag = false; } - }); + } + if(checkNullFlag){ + bootbox.alert('Please select at-lease one value for updating Catalyst Project Tag'); + return false; + }else { + $.ajax({ + url: '/providers/' + urlproviderId + '/tag-mappings/project', + data: JSON.stringify(projectMappingObj), + type: 'PATCH', + contentType: "application/json", + success: function (data) { + $('#spanprojectMappingSaveId').fadeIn(); + $('#spanprojectMappingSaveId').html('Saved successfully'); + $('#spanprojectMappingSaveId').delay(2000).fadeOut(); + }, + error: function (jqxhr) { + } + }); + } } }); }); @@ -1141,7 +1454,10 @@ var envmappingcatalystEntityId = $tr.attr('id'); var mappingenvSelectTagName = $tr.find('.mappingenvSelectId :selected').val(); var mappingenvName = $tr.find('.mappingenvName').text(); - + if(mappingenvSelectTagName === '' && $('#mappingenvTable tbody tr').length === 1){ + bootbox.alert('Please select a value for updating Catalyst Environment Tag'); + return false; + } var objenvMapping = {}; objenvMapping["catalystEntityId"] = envmappingcatalystEntityId; objenvMapping["catalystEntityName"] = mappingenvName; @@ -1149,28 +1465,40 @@ envMappingObj.catalystEntityMapping.push(objenvMapping); if(counter == $('#mappingenvTable tbody tr').length){ - $.ajax({ - url: '/providers/'+urlproviderId+'/tag-mappings/environment', - data: JSON.stringify(envMappingObj), - type: 'PATCH', - contentType: "application/json", - success: function(data) { - $('#spanenvMappingSaveId').fadeIn(); - $('#spanenvMappingSaveId').html('Saved successfully'); - $('#spanenvMappingSaveId').delay(2000).fadeOut(); - }, - error: function(jqxhr) { - var msg = " "; - if (jxhr.responseJSON && jxhr.responseJSON.message) { - msg = jxhr.responseJSON.message; - } else if (jxhr.responseText) { - msg = jxhr.responseText; - } - $('#spanenvMappingSaveId').fadeIn(); - $('#spanenvMappingSaveId').html(msg); - $('#spanenvMappingSaveId').delay(2000).fadeOut(); + var checkEnvNull = envMappingObj.catalystEntityMapping; + var checkNullFlag = true; + for(var i = 0; i < checkEnvNull.length;i++){ + if(checkEnvNull[i].tagValue !== ''){ + checkNullFlag = false; } - }); + } + if(checkNullFlag){ + bootbox.alert('Please select at-lease one value for updating Catalyst Environment Tag'); + return false; + }else { + $.ajax({ + url: '/providers/' + urlproviderId + '/tag-mappings/environment', + data: JSON.stringify(envMappingObj), + type: 'PATCH', + contentType: "application/json", + success: function (data) { + $('#spanenvMappingSaveId').fadeIn(); + $('#spanenvMappingSaveId').html('Saved successfully'); + $('#spanenvMappingSaveId').delay(2000).fadeOut(); + }, + error: function (jqxhr) { + var msg = " "; + if (jxhr.responseJSON && jxhr.responseJSON.message) { + msg = jxhr.responseJSON.message; + } else if (jxhr.responseText) { + msg = jxhr.responseText; + } + $('#spanenvMappingSaveId').fadeIn(); + $('#spanenvMappingSaveId').html(msg); + $('#spanenvMappingSaveId').delay(2000).fadeOut(); + } + }); + } } }); }); @@ -1386,6 +1714,7 @@ var envProjectMappingObject = {}; var catalystEntityProjName = $('#projectnameLabelId').attr('catalystEntitytype'); var catalystEntityEnvName = $('#envnameLabelId').attr('catalystEntitytype'); + var catalystEntitybgName = $('#bgNameLabelId').attr('catalystEntitytype'); for(var i=0;iImporting Instances if(objcatalystEntityType == catalystEntityEnvName){ envProjectMappingObject['environment'] = objtagName; } + if(objcatalystEntityType == catalystEntitybgName){ + envProjectMappingObject['bgName'] = objtagName; + } } if(key==='EC2'){ getUnassignedInstancesWithProjectAndEnv(envProjectMappingObject); @@ -1432,12 +1764,16 @@ "columns": [ {"data": "platformId","orderable" : true }, {"data": "os","orderable" : false }, - {"data": "ip","orderable" : true, - "render": function(data, type, full){ - if(data !== null){ - return data; + {"data": "","orderable" : true, + "render":function(data, type, full, meta) { + if(full.ip === null){ + if(full.privateIpAddress && full.privateIpAddress !== null){ + return full.privateIpAddress; + }else{ + return '-'; + } }else{ - return full.privateIpAddress; + return full.ip; } } }, @@ -1447,8 +1783,26 @@ } }, {"data": "state","orderable" : true }, - {"data": "projectName" ,"orderable" : false }, - {"data": "environmentName","orderable" : true }, + {"data": "" ,"orderable" : true , + "render":function(data, type, full, meta) { + return full.orgName?full.orgName:'-'; + } + }, + {"data": "" ,"orderable" : true , + "render":function(data, type, full, meta) { + return full.bgName?full.bgName:'-'; + } + }, + {"data": "" ,"orderable" : true, + "render":function(data, type, full, meta) { + return full.projectName?full.projectName:'-'; + } + }, + {"data": "","orderable" : true, + "render":function(data, type, full, meta) { + return full.environmentName?full.environmentName:'-'; + } + }, {"data": "","orderable" : false, "render":function(data, type, full, meta) { if (full.state === 'running') { @@ -1468,25 +1822,37 @@ "destroy":true, "ajax": '/resources?filterBy=providerId:'+ urlproviderId +'+resourceType:RDS+category:unassigned', "createdRow": function( row, data ) { - $( row ).attr({"resourceId" : data._id,"resourceType":data.resourceType, "projectTagsMapName" : envProjectMappingObject.project, "envTagsMapName" : envProjectMappingObject.environment}) + $( row ).attr({"resourceId" : data._id,"resourceType":data.resourceType,"bgTagsMapName" : envProjectMappingObject.bgName, "projectTagsMapName" : envProjectMappingObject.project, "envTagsMapName" : envProjectMappingObject.environment}) }, "columns": [ {"data": "resourceDetails.dbName", "orderable" : true}, {"data": "resourceDetails.dbEngine","orderable" : true }, {"data": "resourceDetails.region","orderable" : false }, - {"data": "projectTag" ,"orderable" : false, + {"data": "" ,"orderable" : false, + "render": function(data, type, full) { + if(full.tags && envProjectMappingObject.bgName && full.tags[envProjectMappingObject.bgName]) { + var tagValue = full.tags[envProjectMappingObject.bgName]; + return ''; + }else{ + return ''; + } + } + }, + {"data": "" ,"orderable" : false, "render": function(data, type, full) { - if(data !== null) { - return ''; + if(full.tags && envProjectMappingObject.project && full.tags[envProjectMappingObject.project]) { + var tagValue = full.tags[envProjectMappingObject.project]; + return ''; }else{ return ''; } } }, - {"data": "environmentTag" ,"orderable" : false, + {"data": "" ,"orderable" : false, "render": function(data, type, full) { - if(data !== null) { - return ''; + if(full.tags && envProjectMappingObject.environment && full.tags[envProjectMappingObject.environment]) { + var tagValue = full.tags[envProjectMappingObject.environment]; + return ''; }else{ return ''; } @@ -1513,25 +1879,37 @@ "destroy":true, "ajax": '/resources?filterBy=providerId:'+ urlproviderId +'+resourceType:S3+category:unassigned', "createdRow": function( row, data ) { - $( row ).attr({"resourceId" : data._id,"resourceType":data.resourceType, "projectTagsMapName" : envProjectMappingObject.project, "envTagsMapName" : envProjectMappingObject.environment}) + $( row ).attr({"resourceId" : data._id,"resourceType":data.resourceType,"bgTagsMapName" : envProjectMappingObject.bgName, "projectTagsMapName" : envProjectMappingObject.project, "envTagsMapName" : envProjectMappingObject.environment}) }, "columns": [ {"data": "resourceDetails.bucketName", "orderable" : true}, {"data": "resourceDetails.bucketOwnerName" ,"orderable" : false }, {"data": "resourceDetails.bucketSize","orderable" : true }, - {"data": "projectTag" ,"orderable" : false, + {"data": "" ,"orderable" : false, + "render": function(data, type, full) { + if(full.tags && envProjectMappingObject.bgName && full.tags[envProjectMappingObject.bgName]) { + var tagValue = full.tags[envProjectMappingObject.bgName]; + return ''; + }else{ + return ''; + } + } + }, + {"data": "" ,"orderable" : false, "render": function(data, type, full) { - if(data !== null) { - return ''; + if(full.tags && envProjectMappingObject.project && full.tags[envProjectMappingObject.project]) { + var tagValue = full.tags[envProjectMappingObject.project]; + return ''; }else{ return ''; } } }, - {"data": "environmentTag" ,"orderable" : false, + {"data": "" ,"orderable" : false, "render": function(data, type, full) { - if(data !== null) { - return ''; + if(full.tags && envProjectMappingObject.environment && full.tags[envProjectMappingObject.environment]) { + var tagValue = full.tags[envProjectMappingObject.environment]; + return ''; }else{ return ''; } @@ -1558,27 +1936,38 @@ "destroy":true, "ajax": '/providers/' + urlproviderId + '/unassigned-instances', "createdRow": function( row, data ) { - $( row ).attr({"instanceId" : data._id, "projectTagsMapName" : envProjectMappingObject.project, "envTagsMapName" : envProjectMappingObject.environment}) + $( row ).attr({"instanceId" : data._id,"bgTagsMapName" : envProjectMappingObject.bgName, "projectTagsMapName" : envProjectMappingObject.project, "envTagsMapName" : envProjectMappingObject.environment}) }, "columns": [ {"data": "platformId","orderable" : true }, {"data": "os","orderable" : false }, - {"data": "ip","orderable" : true, - "render": function(data, type, full){ - if(data !== null){ - return data; + {"data": "","orderable" : true, + "render":function(data, type, full, meta) { + if(full.ip === null){ + if(full.privateIpAddress && full.privateIpAddress !== null){ + return full.privateIpAddress; + }else{ + return '-'; + } }else{ - return full.privateIpAddress; + return full.ip; } } }, {"data": "state","orderable" : true }, {"data": "" ,"orderable" : false, "render": function(data, type, full) { - if(full.projectTag !== null){ - var tagValue = full.projectTag; - return ''; - }else if(envProjectMappingObject.project && full.tags[envProjectMappingObject.project]) { + if(full.tags && envProjectMappingObject.bgName && full.tags[envProjectMappingObject.bgName]) { + var tagValue = full.tags[envProjectMappingObject.bgName]; + return ''; + }else{ + return ''; + } + } + }, + {"data": "" ,"orderable" : false, + "render": function(data, type, full) { + if(full.tags && envProjectMappingObject.project && full.tags[envProjectMappingObject.project]) { var tagValue = full.tags[envProjectMappingObject.project]; return ''; }else{ @@ -1588,10 +1977,7 @@ }, {"data": "" ,"orderable" : false, "render": function(data, type, full) { - if(full.environmentTag !== null){ - var tagValue = full.environmentTag; - return ''; - }else if(envProjectMappingObject.environment && full.tags[envProjectMappingObject.environment]) { + if(full.tags && envProjectMappingObject.environment && full.tags[envProjectMappingObject.environment]) { var tagValue = full.tags[envProjectMappingObject.environment]; return ''; }else{ @@ -1623,12 +2009,31 @@ var instanceId = $(this).attr("instanceId"); var projectTagsMapName = $(this).attr("projectTagsMapName"); var envTagsMapName = $(this).attr("envTagsMapName"); + var bgTagsMapName = $(this).attr("bgTagsMapName"); var projectTagName = $(this).find('.projectTagName').val(); var envTagName = $(this).find('.envTagName').val(); + var bgTagName = $(this).find('.bgTagName').val(); updateUniqueInstanceTagsObj["id"] = instanceId; updateUniqueInstanceTagsObj["tags"] = {}; - updateUniqueInstanceTagsObj["tags"][projectTagsMapName] = projectTagName; - updateUniqueInstanceTagsObj["tags"][envTagsMapName] = envTagName; + if((typeof projectTagsMapName === 'undefined' || projectTagsMapName === '' || projectTagsMapName === null) && + (typeof envTagsMapName === 'undefined' || envTagsMapName === '' || envTagsMapName === null) && + (typeof bgTagsMapName === 'undefined' || bgTagsMapName === '' || bgTagsMapName === null)){ + bootbox.alert("Please configure tag-mapping for updating tags"); + return false; + } + if(projectTagName === '' && envTagName === '' && bgTagName ===''){ + bootbox.alert("Please update tag value in any text-box corresponding to selected check-box for updating tags"); + return false; + } + if(projectTagName !== ''){ + updateUniqueInstanceTagsObj["tags"][projectTagsMapName] = projectTagName; + } + if(envTagName !== ''){ + updateUniqueInstanceTagsObj["tags"][envTagsMapName] = envTagName; + } + if(bgTagName !== ''){ + updateUniqueInstanceTagsObj["tags"][bgTagsMapName] = bgTagName; + } updateInstanceTagsArr.push(updateUniqueInstanceTagsObj); }); updateInstanceTagsObj["instances"] = updateInstanceTagsArr; @@ -1652,6 +2057,7 @@ }); }else{ bootbox.alert("Please select corresponding check-box for updating tags"); + return false; } }); @@ -1667,13 +2073,31 @@ var resourceType = $(this).attr("resourceType"); var projectTagsMapName = $(this).attr("projectTagsMapName"); var envTagsMapName = $(this).attr("envTagsMapName"); + var bgTagsMapName = $(this).attr("bgTagsMapName"); var projectTagName = $(this).find('.projectTagName').val(); var envTagName = $(this).find('.envTagName').val(); + var bgTagName = $(this).find('.bgTagName').val(); updateUniqueBucketTagsObj["id"] = resourceId; - updateUniqueBucketTagsObj["resourceType"] = resourceType; updateUniqueBucketTagsObj["tags"] = {}; - updateUniqueBucketTagsObj["tags"][projectTagsMapName] = projectTagName; - updateUniqueBucketTagsObj["tags"][envTagsMapName] = envTagName; + if((projectTagsMapName === 'undefined' || projectTagsMapName === '' || projectTagsMapName === null) && + (envTagsMapName === 'undefined' || envTagsMapName === '' || envTagsMapName === null) && + (bgTagsMapName === 'undefined' || bgTagsMapName === '' || bgTagsMapName === null)){ + bootbox.alert("Please configure tag-mapping for updating tags"); + return false; + } + if(projectTagName === '' && envTagName === '' && bgTagName ===''){ + bootbox.alert("Please update tag value in any text-box corresponding to selected check-box for updating tags"); + return false; + } + if(projectTagName !== ''){ + updateUniqueBucketTagsObj["tags"][projectTagsMapName] = projectTagName; + } + if(envTagName !== ''){ + updateUniqueBucketTagsObj["tags"][envTagsMapName] = envTagName; + } + if(bgTagName !== ''){ + updateUniqueBucketTagsObj["tags"][bgTagsMapName] = bgTagName; + } updateBucketTagsArr.push(updateUniqueBucketTagsObj); }); updateBucketTagsObj["resources"] = updateBucketTagsArr; @@ -1695,6 +2119,7 @@ }); }else{ bootbox.alert("Please select corresponding check-box for updating tags"); + return false; } }); @@ -1710,13 +2135,31 @@ var resourceType = $(this).attr("resourceType"); var projectTagsMapName = $(this).attr("projectTagsMapName"); var envTagsMapName = $(this).attr("envTagsMapName"); + var bgTagsMapName = $(this).attr("bgTagsMapName"); var projectTagName = $(this).find('.projectTagName').val(); var envTagName = $(this).find('.envTagName').val(); + var bgTagName = $(this).find('.bgTagName').val(); updateUniqueDBTagsObj["id"] = resourceId; - updateUniqueDBTagsObj["resourceType"] = resourceType; updateUniqueDBTagsObj["tags"] = {}; - updateUniqueDBTagsObj["tags"][projectTagsMapName] = projectTagName; - updateUniqueDBTagsObj["tags"][envTagsMapName] = envTagName; + if((projectTagsMapName === 'undefined' || projectTagsMapName === '' || projectTagsMapName === null) && + (envTagsMapName === 'undefined' || envTagsMapName === '' || envTagsMapName === null) && + (bgTagsMapName === 'undefined' || bgTagsMapName === '' || bgTagsMapName === null)){ + bootbox.alert("Please configure tag-mapping for updating tags"); + return false; + } + if(projectTagName === '' && envTagName === '' && bgTagName ===''){ + bootbox.alert("Please update tag value in any text-box corresponding to selected check-box for updating tags"); + return false; + } + if(projectTagName !== ''){ + updateUniqueDBTagsObj["tags"][projectTagsMapName] = projectTagName; + } + if(envTagName !== ''){ + updateUniqueDBTagsObj["tags"][envTagsMapName] = envTagName; + } + if(bgTagName !== ''){ + updateUniqueDBTagsObj["tags"][bgTagsMapName] = bgTagName; + } updateDBTagsArr.push(updateUniqueDBTagsObj); }); updateDBTagsObj["resources"] = updateDBTagsArr; @@ -1739,6 +2182,7 @@ }); }else{ bootbox.alert("Please select corresponding check-box for updating tags"); + return false; } }); diff --git a/client/htmls/private/ajax/Settings/videos.html b/client/htmls/private/ajax/Settings/videos.html index ca62b4257..5f00fd48f 100755 --- a/client/htmls/private/ajax/Settings/videos.html +++ b/client/htmls/private/ajax/Settings/videos.html @@ -8,9 +8,7 @@ width: 20px; height: 20px; } -.row{ - margin-top: 25px; -} + .play-overlay { display: none; @@ -174,116 +172,122 @@
-
-
-
-
- -
-
-

Autoscale

-
- This video demonstrates launching autoscale group in CFT using catalyst and basic behavior. -
-
-
-
- -
-
-
- -
-
-

Azure Windows

-
- This video demonstrates integration of Azure as provider with Catalyst. -
-
-
-
- - - -
-
-
- -
-
-

Hp Helion

-
- This video demonstrates integration of HPHelion as provider with Catalyst. -
-
-
-
-
-
- -
-
- -
-
-
- -
-
-

New Design

-
- This video demonstrates the new design for Blueprint creation page. -
-
-
-
- - - - - -
-
-
- +
+
+
+
+ List of Videos +
+
+
+
+
+
+
+ +
+
+

Autoscale

+
+ This video demonstrates launching autoscale group in CFT using catalyst and basic behavior. +
+
+
+
+ +
+
+
+ +
+
+

Azure Windows

+
+ This video demonstrates integration of Azure as provider with Catalyst. +
+
+
+
+ + +
+
+
+ +
+
+

Hp Helion

+
+ This video demonstrates integration of HPHelion as provider with Catalyst. +
+
+
+
-
-

OpenStack

-
- This video demonstrates integration of OpenStack as provider with Catalyst. -
-
-
-
-
-
-
- -
-
-

VMware

-
- This video demonstrates integration of VMware as provider with Catalyst. -
-
-
-
-
-
-
-
-
-
-
- +
+ +
+
+ +
+
+
+ +
+
+

New Design

+
+ This video demonstrates the new design for Blueprint creation page. +
+
+
+
+ +
+
+
+ +
+
+

OpenStack

+
+ This video demonstrates integration of OpenStack as provider with Catalyst. +
+
+
+
+
+
+
+ +
+
+

VMware

+
+ This video demonstrates integration of VMware as provider with Catalyst. +
+
+
+
-
-

Upgrade

-
- This video demonstrates application deployment flow in catalyst. -
+
+
+
+
+
+
+ +
+
+

Upgrade

+
+ This video demonstrates application deployment flow in catalyst. +
+
+
+
-
+
-
+
diff --git a/client/htmls/private/index.html b/client/htmls/private/index.html index 01a83e25a..e3b419898 100644 --- a/client/htmls/private/index.html +++ b/client/htmls/private/index.html @@ -1062,31 +1062,7 @@
+ - - + + @@ -262,14 +267,19 @@

+ - - + + @@ -299,8 +309,12 @@

- - + + diff --git a/client/htmls/public/awsCapacity.html b/client/htmls/public/awsCapacity.html new file mode 100644 index 000000000..eae443bb0 --- /dev/null +++ b/client/htmls/public/awsCapacity.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + +
+
AWS Capacity Report  + + + + + + +
+
+
+
+
+
+

0

+

Total
No. of Instances

+
+
+ +
+ + +
+
+
+
+
+

0

+

Total
No. of Managed Instances

+
+
+ +
+ + View + +
+
+
+
+
+

0

+

Total
No. of Assigned Instances

+
+
+ +
+ + View + +
+
+
+
+
+

0

+

Total
No. of UnAssigned Instances

+
+
+ +
+ + View + +
+
+
+ + +
IP Address Region StatusOrgBg Project Environment ActionsIP Address Region StatusOrgBg Project Environment ActionsOS IP Address StatusBg Tag Value Project Tag Value Env. Tag Value ActionsInstance Type StatusOrgBg Project Environment RegionInstance Type RegionBg Tag Value Project Tag Value Env. Tag Value Actions
Bucket Name Bucket OwnerOrg NameOrgBg Project Environment Size(MB)Bucket Name Bucket Owner Size(MB)Bg Tag Value Project Tag Value Env. Tag Value Actions
InstanceId OrgBg Project Env OS IP Address Region StatusCostAvg. Cpu UsageCost + + Avg. Cpu Usage + +
InstanceId OrgBg Project Env OS IP Address Region StatusCostAvg. Cpu UsageCost + + Avg. Cpu Usage + +
IP Address Region StatusCostAvg. Cpu UsageCost + + Avg. Cpu Usage + +
+ + + + + + + + + + + + +
Instance IdOrgBgProjectEnvInstance IPInstance State
+
+ + +
+
+
+ +
+
+
+
+ + + \ No newline at end of file diff --git a/client/htmls/public/css/Dashboard.css b/client/htmls/public/css/Dashboard.css index b59020898..f9510d66a 100644 --- a/client/htmls/public/css/Dashboard.css +++ b/client/htmls/public/css/Dashboard.css @@ -58,6 +58,7 @@ z-index: 10; background: rgba(0, 0, 0, 0.1); text-decoration: none; + cursor: pointer; } .small-box > .small-box-footer:hover { color: #fff; diff --git a/client/htmls/public/css/capacity.css b/client/htmls/public/css/capacity.css new file mode 100644 index 000000000..b074d2d29 --- /dev/null +++ b/client/htmls/public/css/capacity.css @@ -0,0 +1,82 @@ +.form-controls { + display: inline; + height: 32px; + padding: 6px 12px; + font-size: 13px; + line-height: 1.428571429; + color: #555; + vertical-align: middle; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + height: 29px; + width:100%; + } + + .page-name { + font-size: 18px; + margin: 5px 0 15px 10px; + } + + .providerSelect { + float: right; + } + +#capacityDashboard .borderTop { + border-top: 1px dashed #ddd; + } + +#capacityDashboard .marginTop20 { + margin-top: 20px; + } + +#capacityDashboard .marginBottom15 { + margin-bottom: 15px; + font-size: 16px; + } + +#capacityDashboard .footer { + background: none repeat scroll 0 0 white; + left: 0; + right: 0; + } + +#capacityDashboard .form-actions { + display: block; + padding: 13px 14px 15px; + border-top: 1px solid rgba(0, 0, 0, .1); + background: rgba(249, 249, 249, .9); + margin-left: -13px; + margin-right: -13px; + } + + .orgClass { + font-weight: 200; + font-size: 14px; + } + + .orgWidth { + width: 45%; + } + + #instanceActionListLoader { + opacity: 0.6; + height: 100%; + width: 100%; + position: absolute; + background: #ddd; +} + +#capacityDashboard tr, tr input { + font-size: 12px!important; +} + +#instanceUnAssignedContainer { + min-height: 280px; +} + +.selectComponent { + border: 5px solid #396ea2; + margin-top: -5px; +} diff --git a/client/htmls/public/dashing.html b/client/htmls/public/dashing.html index 6fb6ca192..e6428ae9f 100644 --- a/client/htmls/public/dashing.html +++ b/client/htmls/public/dashing.html @@ -1,10 +1,10 @@ Cost Dashboard of AWS - + - +