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; } }]);