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