LinkNamespaceController.js 5.7 KB
Newer Older
L
lepdou 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
application_module.controller("LinkNamespaceController",
                              ['$scope', '$location', '$window', 'toastr', 'AppService', 'AppUtil', 'NamespaceService',
                               function ($scope, $location, $window, toastr, AppService, AppUtil, NamespaceService) {

                                   var params = AppUtil.parseParams($location.$$url);
                                   $scope.appId = params.appid;
                                   $scope.isRootUser = params.root ? true : false;

                                   ////// load env //////
                                   AppService.load_nav_tree($scope.appId).then(function (result) {
                                       $scope.namespaceIdentifers = [];
                                       result.nodes.forEach(function (node) {
                                           var env = node.env;
                                           node.clusters.forEach(function (cluster) {
                                               cluster.env = env;
                                               cluster.checked = false;
                                               $scope.namespaceIdentifers.push(cluster);
                                           })
                                       });
                                   }, function (result) {
                                       toastr.error(AppUtil.errorMsg(result), "加载环境出错");
                                   });
                                   
                                   NamespaceService.find_public_namespaces().then(function (result) {
                                       var publicNamespaces = [];
                                       result.forEach(function (item) {
                                            var namespace = {};
                                           namespace.id = item.name;
                                           namespace.text = item.name;
                                           publicNamespaces.push(namespace);
                                       }); 
                                       $('#namespaces').select2({
                                                                    width: '250px',
                                                                    data: publicNamespaces
                                                                });
                                   }, function (result) {
                                       toastr.error(AppUtil.errorMsg(result), "load public namespace error");
                                   });
                                   
                                   $scope.saveNamespace = function () {
                                       var selectedClusters = collectSelectedClusters();
                                       if (selectedClusters.length == 0){
                                           toastr.warning("请选择集群");
                                           return;
                                       }
                                       var namespaceName = $('#namespaces').select2('data')[0].id;
                                       selectedClusters.forEach(function (cluster) {
                                           NamespaceService.save($scope.appId, cluster.env, cluster.clusterName,
                                                                 namespaceName).then(function (result) {
                                               toastr.success(
                                                   cluster.env + "_" + result.clusterName + "_" + result.namespaceName
                                                   + "创建成功");
                                           }, function (result) {
                                               toastr.error(AppUtil.errorMsg(result),
                                                            cluster.env + "_" + cluster.clusterName + "_"
                                                            + namespaceName + "创建失败");
                                           });
                                       })
                                   };

                                   var envAllSelected = false;
                                   $scope.toggleEnvsCheckedStatus = function () {
                                       envAllSelected = !envAllSelected;
                                       $scope.namespaceIdentifers.forEach(function (namespaceIdentifer) {
                                           namespaceIdentifer.checked = envAllSelected;
                                       })
                                   };

                                   function collectSelectedClusters() {
                                       var selectedClusters = [];
                                       $scope.namespaceIdentifers.forEach(function (namespaceIdentifer) {
                                           if (namespaceIdentifer.checked){
                                               namespaceIdentifer.clusterName = namespaceIdentifer.name;
                                               selectedClusters.push(namespaceIdentifer);
                                           }
                                       });
                                       return selectedClusters;
                                   }


                                   $scope.namespaceType = 1;
                                   $scope.selectNamespaceType = function (type) {
                                       $scope.namespaceType = type;
                                   };

                                   $scope.switchSelect = function (o) {
                                       o.checked = !o.checked;
                                   }
                               }]);