Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

users.controller.js 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. angular.module('luticate')
  2. .controller('UsersController', ['$scope', '$state', 'luticateAuthUsers', 'dialogs', '$q', 'luticateDialogErrorHelper',
  3. function($scope, $state, luticateAuthUsers, dialogs, $q, luticateDialogErrorHelper) {
  4. $scope.page = 0;
  5. $scope.perPage = 15;
  6. $scope.users = [];
  7. $scope.pages = [];
  8. $scope.selectedUsers = [];
  9. var promiseLoadUsers = {
  10. id: "promiseLoadUsers",
  11. groups: ['userList']
  12. };
  13. var promiseDelUsers = {
  14. id: "promiseDelUsers",
  15. loadGroups: ['userList']
  16. };
  17. $scope.loadPage = function(page)
  18. {
  19. luticateAuthUsers.getAll({page: page, perPage: $scope.perPage}, promiseLoadUsers)
  20. .then(function(users)
  21. {
  22. $scope.page = page;
  23. $scope.users = users;
  24. $scope.pages = [];
  25. var start = Math.max(0, $scope.page - 5);
  26. var end = Math.min(start + 10, (users.Count / $scope.perPage) + (users.Count % $scope.perPage == 0 ? -1 : 0));
  27. for (var i = start; i < end; ++i) {
  28. $scope.pages.push(i);
  29. }
  30. }, function(error)
  31. {
  32. });
  33. };
  34. $scope.displayUser = function(user)
  35. {
  36. dialogs.create('views/modals/useredit.html', 'UserEditController', user)
  37. .result.then(function (data) {
  38. $scope.loadPage($scope.page);
  39. });
  40. };
  41. $scope.removeUsers = function()
  42. {
  43. if ($scope.selectedUsers.length == 0) {
  44. $scope.loadPage($scope.page);
  45. return;
  46. }
  47. luticateAuthUsers.del({user_id: $scope.selectedUsers[0]}, promiseDelUsers)
  48. .then(function(data)
  49. {
  50. $scope.selectedUsers.splice(0, 1);
  51. $scope.removeUsers();
  52. }, function(error)
  53. {
  54. luticateDialogErrorHelper.errorDialog(error)
  55. .result.then(function(data)
  56. {
  57. $scope.loadPage($scope.page);
  58. }, function(error) {});
  59. });
  60. };
  61. $scope.addUser = function()
  62. {
  63. dialogs.create('views/modals/useredit.html', 'UserEditController', null)
  64. .result.then(function (data) {
  65. $scope.loadPage($scope.page);
  66. });
  67. };
  68. $scope.toggleSelectedUser = function(id)
  69. {
  70. var idx = $scope.selectedUsers.indexOf(id);
  71. if (idx > -1) {
  72. $scope.selectedUsers.splice(idx, 1);
  73. }
  74. else {
  75. $scope.selectedUsers.push(id);
  76. }
  77. };
  78. $scope.toggleSelectAll = function()
  79. {
  80. if ($scope.selectedUsers.length == $scope.users.Data.length) {
  81. $scope.selectedUsers = [];
  82. }
  83. else {
  84. $scope.selectedUsers = [];
  85. for (var i = 0; i < $scope.users.Data.length; ++i) {
  86. $scope.selectedUsers.push($scope.users.Data[i].Id);
  87. }
  88. }
  89. };
  90. $scope.loadPage($scope.page);
  91. }]);