(function() { 'use strict'; angular .module('app') .controller('UsersCtrl', UsersCtrl); UsersCtrl.$inject = ['$scope', 'smartRequest', '$rootScope']; function UsersCtrl($scope, smartRequest, $rootScope) { $scope.users = []; $scope.currentUser = {}; $scope.newUser = {}; $scope.update = function() { smartRequest.get('settings/users/list', function(data) { $scope.users = data.users; }); }; $scope.edit = function(user) { $scope.currentUser = user; $scope.allRights = []; smartRequest.get('right/all', function(data) { $scope.allRights = data.rights; smartRequest.get('right/user?id=' + $scope.currentUser.id, function(data) { for (var i = 0; i < $scope.allRights.length; i++) { $scope.allRights[i].is_active = false; for (var j = 0; j < data.rights.length; j++) { if($scope.allRights[i].code === data.rights[j].code) { $scope.allRights[i].is_active = true; break; } } } $scope.currentUser.rights = $scope.allRights; }); }); $('#edit-user').modal(); }; $scope.save = function() { $('#edit-user').modal('toggle'); smartRequest.post('settings/users/edit', { id: $scope.currentUser.id, name: $scope.currentUser.name, login: $scope.currentUser.login, password: $scope.currentUser.password }, function(data) { $scope.update(); }); }; $scope.delete = function() { $('#edit-user').modal('toggle'); $('#edit-user-confirm-delete').modal('toggle'); smartRequest.post('settings/users/delete', { id: $scope.currentUser.id }, function(data) { $scope.currentUser = {}; $scope.update(); }); }; $scope.add = function() { $scope.newUser = {}; $('#new-user').modal(); }; $scope.create = function() { $('#new-user').modal('toggle'); smartRequest.post('settings/users/add', { name: $scope.newUser.name, login: $scope.newUser.login, password: $scope.newUser.password }, function(data) { $scope.update(); }); }; $scope.onRight = function(code) { smartRequest.post('right/toggle', { id: $scope.currentUser.id, code: code }, function(data) { smartRequest.get('right/list', function(data) { $rootScope.globals.currentUser.rights = data.rights; }); }); }; $scope.update(); } })();