[PORTAL-7] Rebase
[portal.git] / ecomp-portal-FE-common / client / app / views / microservice-onboarding / microservice-onboarding.controller.js
diff --git a/ecomp-portal-FE-common/client/app/views/microservice-onboarding/microservice-onboarding.controller.js b/ecomp-portal-FE-common/client/app/views/microservice-onboarding/microservice-onboarding.controller.js
new file mode 100644 (file)
index 0000000..6e711b7
--- /dev/null
@@ -0,0 +1,87 @@
+'use strict';
+(function () {
+    class MicroserviceOnboardingCtrl {
+        constructor($log, applicationsService, microserviceService, ngDialog, confirmBoxService,
+                    userProfileService, $cookies, $scope) {
+               
+               
+            let getOnboardingServices = () => {
+               microserviceService.getServiceList().then(res => {
+                     $scope.serviceList = res;
+                }).catch(err => {
+                    $log.error('MicroserviceOnboardingCtrl::getOnboardingServices caught error', err);
+                });
+            };
+            
+            
+            
+            let init = () => {
+                $scope.serviceList = [];
+                getOnboardingServices();
+                this.serviceTableHeaders = [
+                    {name: 'Microservice Name', value: 'name', isSortable: false},
+                    {name: 'Service Endpoint URL', value: 'url', isSortable: false},
+                    {name: 'Security Type', value: 'securityType', isSortable: false}
+                ];
+            };
+            
+            this.openAddNewMicroserviceModal = (selectedService) => {
+               let data = null; 
+                               if(selectedService){
+                                       if(!selectedService.id){
+                                               $log.error('MicroserviceOnboardingCtrl:openAddNewMicroserviceModal:service id not found');
+                                               return; 
+                                       } 
+                                       data = { 
+                                               service:selectedService,
+                                               list: $scope.serviceList
+                                       }
+                               }else{
+                                       data = {
+                                               list: $scope.serviceList        
+                                       }
+                               }
+                               
+                ngDialog.open({
+                    templateUrl: 'app/views/microservice-onboarding/microservice-add-details/microservice-add-details.html',
+                    controller: 'MicroserviceAddDetailsCtrl',
+                    controllerAs: 'microserviceAddDetails',
+                    data: data
+                }).closePromise.then(needUpdate => {
+                       if(needUpdate.value === true){
+                               getOnboardingServices();
+                    }
+                });
+            };
+                        
+            this.deleteService = service => { 
+                  confirmBoxService.deleteItem(service.name).then(isConfirmed => {   
+                       if(isConfirmed){
+                                       if(!service || !service.id){
+                           $log.error('MicroserviceOnboardingCtrl::deleteService: No service or ID... cannot delete');
+                           return;
+                       }
+                       microserviceService.deleteService(service.id).then((res) => {                              
+                          if(res.status == "WARN"){
+                                  confirmBoxService.showInformation("Failed: widgets " +  res.response + " are assoicated with this microservice!");
+                          }else{
+                                  $scope.serviceList.splice($scope.serviceList.indexOf(service), 1);
+                          }
+                       }).catch(err => {
+                           $log.error('MicroserviceOnboardingCtrl::deleteService error:',err);
+                       });
+                   }
+               }).catch(err => {
+                   $log.error('MicroserviceOnboardingCtrl::deleteService error:',err);
+               });
+
+                
+            };
+            
+            init();
+        }
+    }
+    MicroserviceOnboardingCtrl.$inject = ['$log', 'applicationsService', 'microserviceService', 'ngDialog', 'confirmBoxService',
+        'userProfileService','$cookies', '$scope'];
+    angular.module('ecompApp').controller('MicroserviceOnboardingCtrl', MicroserviceOnboardingCtrl);
+})();
\ No newline at end of file