github.com/fanux/shipyard@v0.0.0-20161009071005-6515ce223235/controller/static/app/strategies/strategies.controller.js (about) 1 (function(){ 2 'use strict'; 3 4 angular 5 .module('shipyard.plugins') 6 .controller('strategiesController', StrategiesController); 7 8 StrategiesController.$inject = ['$scope', 'StrategyService', '$state','$stateParams']; 9 function StrategiesController($scope, StrategyService, $state,$stateParams) { 10 var vm = this; 11 vm.error = ""; 12 vm.errors = []; 13 vm.plugins = []; 14 vm.selected = {}; 15 vm.selectedItemCount = 0; 16 vm.selectedAll = false; 17 vm.numOfInstances = 1; 18 vm.selectedPlugin = null; 19 vm.selectedPluginId = ""; 20 vm.Name = ""; 21 vm.PluginName = $stateParams.id; 22 vm.Status = ""; 23 vm.Document = ""; 24 vm.jsonDocument=jsonDocument; 25 26 vm.showDeletePluginDialog = showDeletePluginDialog; 27 vm.showEnablePluginDialog = showEnablePluginDialog; 28 vm.showDisablePluginDialog = showDisablePluginDialog; 29 vm.showEditStrategyDialog = showEditStrategyDialog; 30 vm.enablePlugin = enablePlugin; 31 vm.disablePlugin = disablePlugin; 32 vm.deletePlugin = deletePlugin; 33 vm.editPlugin = editPlugin; 34 vm.refresh = refresh; 35 vm.pluginStatusText = pluginStatusText; 36 vm.checkAll = checkAll; 37 vm.clearAll = clearAll; 38 vm.destroyAll = destroyAll; 39 vm.stopAll = stopAll; 40 vm.restartAll = restartAll; 41 42 refresh(); 43 44 // Apply jQuery to dropdowns in table once ngRepeat has finished rendering 45 $scope.$on('ngRepeatFinished', function() { 46 $('.ui.sortable.celled.table').tablesort(); 47 $('#select-all-table-header').unbind(); 48 $('.ui.right.pointing.dropdown').dropdown(); 49 }); 50 51 $('#multi-action-menu').sidebar({dimPage: false, animation: 'overlay', transition: 'overlay'}); 52 53 $scope.$watch(function() { 54 var count = 0; 55 angular.forEach(vm.selected, function (s) { 56 if(s.Selected) { 57 count += 1; 58 } 59 }); 60 vm.selectedItemCount = count; 61 }); 62 63 // Remove selected items that are no longer visible 64 /* $scope.$watchCollection('filteredPlugins', function () { 65 angular.forEach(vm.selected, function(s) { 66 if(vm.selected[s.Id].Selected == true) { 67 var isVisible = false 68 angular.forEach($scope.filteredPlugins, function(c) { 69 if(c.Id == s.Id) { 70 isVisible = true; 71 return; 72 } 73 }); 74 vm.selected[s.Id].Selected = isVisible; 75 } 76 }); 77 return; 78 });*/ 79 function jsonDocument(obj){ 80 try { 81 var res= new Function("return " + obj + ";")(); 82 } catch (e) { 83 var res={"error": "类型异常,请修改!!!"}; 84 } 85 var out = JSON.stringify(res, null, 4); 86 return out; 87 } 88 function clearAll() { 89 angular.forEach(vm.selected, function (s) { 90 vm.selected[s.Id].Selected = false; 91 }); 92 } 93 94 function restartAll() { 95 angular.forEach(vm.selected, function (s) { 96 if(s.Selected == true) { 97 StrategyService.restart(s.Id) 98 .then(function(data) { 99 delete vm.selected[s.Id]; 100 vm.refresh(); 101 }, function(data) { 102 vm.error = data; 103 }); 104 } 105 }); 106 } 107 108 function stopAll() { 109 angular.forEach(vm.selected, function (s) { 110 if(s.Selected == true) { 111 StrategyService.stop(s.Id) 112 .then(function(data) { 113 delete vm.selected[s.Id]; 114 vm.refresh(); 115 }, function(data) { 116 vm.error = data; 117 }); 118 } 119 }); 120 } 121 122 function destroyAll() { 123 angular.forEach(vm.selected, function (s) { 124 if(s.Selected == true) { 125 StrategyService.destroy(s.Id) 126 .then(function(data) { 127 delete vm.selected[s.Id]; 128 vm.refresh(); 129 }, function(data) { 130 vm.error = data; 131 }); 132 } 133 }); 134 } 135 136 function checkAll() { 137 angular.forEach($scope.filteredPlugins, function (plugin) { 138 vm.selected[plugin.Id].Selected = vm.selectedAll; 139 }); 140 } 141 142 function refresh() { 143 StrategyService.list(vm.PluginName) 144 .then(function(data) { 145 vm.plugins = data; 146 angular.forEach(vm.plugins, function (plugin) { 147 vm.selected[plugin.Id] = {Id: plugin.Name, Selected: vm.selectedAll}; 148 }); 149 }, function(data) { 150 vm.error = data; 151 }); 152 153 vm.error = ""; 154 vm.errors = []; 155 vm.plugins = []; 156 vm.selected = {}; 157 vm.selectedItemCount = 0; 158 vm.selectedAll = false; 159 vm.numOfInstances = 1; 160 vm.selectedPluginId = ""; 161 } 162 163 function showDeletePluginDialog(plugin) { 164 vm.selectedPlugin = plugin; 165 vm.selectedPluginId = plugin.Name; 166 $('#sdelete-modal').modal('show'); 167 } 168 169 function showEnablePluginDialog(plugin) { 170 vm.selectedPlugin = plugin; 171 $('#senable-modal').modal('show'); 172 } 173 174 function showDisablePluginDialog(plugin) { 175 vm.selectedPlugin = plugin; 176 $('#sdisable-modal').modal('show'); 177 } 178 179 180 function showEditStrategyDialog(plugin) { 181 vm.selectedPlugin = plugin; 182 $('#sedit-modal').modal('show'); 183 } 184 185 186 function enablePlugin(strategy) { 187 StrategyService.enable(strategy) 188 .then(function(data) { 189 vm.refresh(); 190 }, function(data) { 191 vm.error = data; 192 }); 193 } 194 195 function disablePlugin(strategy) { 196 StrategyService.disable(strategy) 197 .then(function(data) { 198 vm.refresh(); 199 }, function(data) { 200 vm.error = data; 201 }); 202 } 203 204 function editPlugin(strategy) { 205 StrategyService.edit(strategy) 206 .then(function(data) { 207 vm.refresh(); 208 }, function(data) { 209 vm.error = data; 210 }); 211 } 212 213 function deletePlugin(plugin) { 214 StrategyService.delete(plugin) 215 .then(function(data) { 216 vm.refresh(); 217 }, function(data) { 218 vm.error = data; 219 }); 220 } 221 222 function pluginStatusText(plugin) { 223 if(plugin.Status.indexOf("enable")==0){ 224 if (plugin.Status.indexOf("(disable)") != -1) { 225 return "disable"; 226 } 227 return "enable"; 228 } 229 } 230 231 } 232 })();