You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

lupermissionsedit.js 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. /**
  2. * Created by robin on 11/4/15.
  3. */
  4. angular.module('luticateUtils')
  5. .directive('luPermissionEdit', ['dialogs', 'luticateDialogErrorHelper', 'luticateAuthPermissions',
  6. function(dialogs, luticateDialogErrorHelper, luticateAuthPermissions) {
  7. return {
  8. restrict: 'E',
  9. scope: {
  10. luModel: '&'
  11. },
  12. templateUrl: "/luticate/lupermissionedit.html",
  13. link: function ($scope, element, attrs) {
  14. $scope.permissions = [];
  15. $scope.allPermissions = [];
  16. $scope.tmpPermission = {
  17. Name: "",
  18. Value: true
  19. };
  20. var luModel = $scope.luModel();
  21. $scope.editPermission = function(permission, value)
  22. {
  23. var promiseEditPermission = {
  24. id: "promiseEditPermission_" + permission.Name,
  25. loaderGroups: ['permission_' + permission.Name]
  26. };
  27. luModel.getEditPermissionPromise(permission.Name, value, promiseEditPermission)
  28. .then(function(data)
  29. {
  30. permission.Value = value;
  31. }, luticateDialogErrorHelper.errorDialog);
  32. };
  33. $scope.delPermission = function(permission)
  34. {
  35. var promiseDelPermission = {
  36. id: "promiseDelPermission_" + permission.Name,
  37. loaderGroups: ['permission_' + permission.Name]
  38. };
  39. luModel.getDelPermissionPromise(permission.Name, promiseDelPermission)
  40. .then(function(data)
  41. {
  42. $scope.loadPermissions();
  43. }, luticateDialogErrorHelper.errorDialog);
  44. };
  45. $scope.addPermission = function(permission)
  46. {
  47. var promiseAddPermission = {
  48. id: "promiseAddPermission_" + permission.Name,
  49. loaderGroups: ['permission_add']
  50. };
  51. luModel.getAddPermissionPromise(permission.Name, permission.Value, promiseAddPermission)
  52. .then(function(data)
  53. {
  54. $scope.loadPermissions();
  55. }, luticateDialogErrorHelper.errorDialog);
  56. };
  57. $scope.loadPermissions = function() {
  58. var promiseLoadPermissions = {
  59. id: "promiseLoadPermissions_",
  60. groups: ['permissionList']
  61. };
  62. luModel.getGetAllPromise(null, null, promiseLoadPermissions)
  63. .then(function (permissions) {
  64. $scope.permissions = permissions.Data;
  65. }, luticateDialogErrorHelper.errorDialog);
  66. };
  67. $scope.loadAllPermissions = function() {
  68. var promiseLoadAllPermissions = {
  69. id: "promiseLoadAllPermissions",
  70. groups: ['permission_add']
  71. };
  72. luticateAuthPermissions.getAll(null, promiseLoadAllPermissions)
  73. .then(function (permissions) {
  74. $scope.allPermissions = permissions.Data;
  75. $scope.tmpPermission.Name = $scope.allPermissions[0].Name;
  76. }, luticateDialogErrorHelper.errorDialog);
  77. };
  78. $scope.loadPermissions();
  79. $scope.loadAllPermissions();
  80. }
  81. };
  82. }]);
  83. angular.module('luticateUtils').run(['$templateCache', function($templateCache)
  84. {
  85. $templateCache.put('/luticate/lupermissionedit.html', '<div class="col-sm-12">' +
  86. ' <div class="form-group col-sm-12" lu-busy="permissionList">' +
  87. ' <div class="col-sm-6" ng-repeat="permission in permissions" lu-busy="{group: \'permission_\' + permission.Name}">' +
  88. ' <label class="col-sm-6 control-label">{{ permission.Name }}</label>' +
  89. '<div class="col-sm-6">' +
  90. ' <div class="btn-group">' +
  91. ' <a class="btn btn-default dropdown-toggle btn-select" data-toggle="dropdown" href="">' +
  92. ' {{ permission.Value ? \'Allow\' : \'Disallow\' }} <span class="caret"></span>' +
  93. ' </a>' +
  94. ' <ul class="dropdown-menu">' +
  95. ' <li><a href="" ng-click="editPermission(permission, false)">Disallow</a></li>' +
  96. '<li><a href="" ng-click="editPermission(permission, true)">Allow</a></li>' +
  97. '</ul>' +
  98. '</div>' +
  99. '<div class="btn-group">' +
  100. ' <button type="button" class="btn btn-default" ng-click="delPermission(permission)">' +
  101. ' <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>' +
  102. ' </button>' +
  103. ' </div>' +
  104. ' </div>' +
  105. ' </div>' +
  106. ' </div>' +
  107. ' <div class="clearfix"></div>' +
  108. ' <div class="col-sm-12" lu-busy="permission_add">' +
  109. ' <div class="btn-group">' +
  110. ' <a class="btn btn-default dropdown-toggle btn-select" data-toggle="dropdown" href="">' +
  111. ' {{ tmpPermission.Name }} <span class="caret"></span>' +
  112. ' </a>' +
  113. ' <ul class="dropdown-menu">' +
  114. ' <li ng-repeat="permission in allPermissions">' +
  115. ' <a href="" ng-click="tmpPermission.Name = permission.Name">{{ permission.Name}}</a>' +
  116. '</li>' +
  117. '</ul>' +
  118. '</div>' +
  119. '<div class="btn-group">' +
  120. ' <a class="btn btn-default dropdown-toggle btn-select" data-toggle="dropdown" href="">' +
  121. ' {{ tmpPermission.Value ? \'Allow\' : \'Disallow\' }} <span class="caret"></span>' +
  122. ' </a>' +
  123. ' <ul class="dropdown-menu">' +
  124. ' <li><a href="" ng-click="tmpPermission.Value = false">Disallow</a></li>' +
  125. '<li><a href="" ng-click="tmpPermission.Value = true">Allow</a></li>' +
  126. '</ul>' +
  127. '</div>' +
  128. '<button type="button" class="btn btn-default" ng-click="addPermission(tmpPermission)">' +
  129. ' <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add' +
  130. ' </button>' +
  131. ' </div>' +
  132. ' </div>');
  133. }]);