v.2.27
Fixed reports
This commit is contained in:
271
web/controllers/staff.js
Normal file
271
web/controllers/staff.js
Normal file
@@ -0,0 +1,271 @@
|
||||
(function() {
|
||||
'use strict';
|
||||
angular
|
||||
.module('app')
|
||||
.controller('StaffCtrl', StaffCtrl);
|
||||
|
||||
StaffCtrl.$inject = ['$scope', 'smartRequest', 'Notification', '$timeout'];
|
||||
function StaffCtrl($scope, smartRequest, Notification, $timeout) {
|
||||
$scope.groups = [];
|
||||
$scope.personals = [];
|
||||
$scope.parentGroup = 0;
|
||||
$scope.parentGroupCode = '';
|
||||
$scope.search = {
|
||||
query: ''
|
||||
};
|
||||
$scope.interfaces = [];
|
||||
$scope.rights = [];
|
||||
|
||||
$scope.currentPersonalObject = {
|
||||
id: 0
|
||||
};
|
||||
$scope.currentGroupObject = {
|
||||
id: 0
|
||||
};
|
||||
|
||||
var promise = 0;
|
||||
|
||||
smartRequest.get('v1/clearcache?folder=staff', function () {});
|
||||
|
||||
$scope.update = function() {
|
||||
smartRequest.get('staff/group/list', function(data) {
|
||||
$scope.groups = data.groups;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.updateGroups = function (callback, id) {
|
||||
smartRequest.get('staff/group/list', function(data) {
|
||||
$scope.groups = data.groups;
|
||||
if (callback) {
|
||||
var newGroup = $scope.getItemById($scope.groups, id);
|
||||
callback(newGroup);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.updatePersonals = function (callback, id) {
|
||||
smartRequest.get('staff/list?group_code=' + $scope.parentGroupCode, function(data) {
|
||||
$scope.personals = data.staff;
|
||||
|
||||
if (callback) {
|
||||
var newStaff = $scope.getItemById($scope.personals, id);
|
||||
callback(newStaff);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.addGroup = function() {
|
||||
smartRequest.post('staff/group/store', {
|
||||
name: 'Новая группа'
|
||||
}, function(data) {
|
||||
var groupId = data.group_id;
|
||||
$scope.updateGroups($scope.showGroup, groupId);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.addPersonal = function() {
|
||||
smartRequest.post('staff/store', {
|
||||
name: 'Новый персонал',
|
||||
group_code: $scope.parentGroupCode
|
||||
}, function(data) {
|
||||
var staffId = data.staff_id;
|
||||
$scope.updatePersonals($scope.showPersonal, staffId);
|
||||
});
|
||||
};
|
||||
|
||||
$scope.openGroup = function(group) {
|
||||
$scope.currentGroupObject = {
|
||||
id: 0
|
||||
};
|
||||
|
||||
$scope.parentGroup = group.id;
|
||||
$scope.parentGroupCode = group.code;
|
||||
|
||||
$scope.personals = [];
|
||||
|
||||
$scope.updatePersonal();
|
||||
};
|
||||
|
||||
$scope.showPersonal = function(personal) {
|
||||
$scope.currentGroupObject = {
|
||||
id: 0
|
||||
};
|
||||
|
||||
$scope.currentPersonalObject = personal;
|
||||
};
|
||||
|
||||
$scope.showGroup = function(group) {
|
||||
$scope.currentPersonalObject = {
|
||||
id: 0
|
||||
};
|
||||
|
||||
$scope.currentGroupObject = group;
|
||||
|
||||
for(var i = 0; i < $scope.rights.length; i++) {
|
||||
$scope.rights[i].is_active = false;
|
||||
}
|
||||
|
||||
smartRequest.get('staff/right/list?group_code=' + $scope.currentGroupObject.code, function(data) {
|
||||
for(var i = 0; i < data.rights.length; i++) {
|
||||
for(var j = 0; j < $scope.rights.length; j++) {
|
||||
if(data.rights[i].code === $scope.rights[j].code) {
|
||||
$scope.rights[j].is_active = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.updatePersonal = function() {
|
||||
smartRequest.get('staff/list?group_code=' + $scope.parentGroupCode, function(data) {
|
||||
$scope.personals = data.staff;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.closeCard = function() {
|
||||
$scope.currentPersonalObject = {
|
||||
id: 0
|
||||
};
|
||||
|
||||
$scope.currentGroupObject = {
|
||||
id: 0
|
||||
};
|
||||
};
|
||||
|
||||
$scope.getItemById = function(list, id) {
|
||||
var res;
|
||||
list.forEach(function (item) {
|
||||
if (item.id == id) {
|
||||
res = item;
|
||||
return;
|
||||
}
|
||||
});
|
||||
return res;
|
||||
};
|
||||
|
||||
$scope.savePersonal = function() {
|
||||
smartRequest.post('staff/update', {
|
||||
id: $scope.currentPersonalObject.id,
|
||||
name: $scope.currentPersonalObject.name,
|
||||
password: $scope.currentPersonalObject.password,
|
||||
interface_code: $scope.currentPersonalObject.interface_code,
|
||||
group_code: $scope.currentPersonalObject.group_code
|
||||
},
|
||||
function(data) {
|
||||
Notification.success('Персонал сохранен');
|
||||
$scope.closeCard();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.saveGroup = function() {
|
||||
var activeRights = $scope.rights.filter(right => right.is_active);
|
||||
smartRequest.post('staff/group/update', {
|
||||
id: $scope.currentGroupObject.id,
|
||||
name: $scope.currentGroupObject.name,
|
||||
interface_code: $scope.currentGroupObject.interface_code,
|
||||
sub_interface_code: $scope.currentGroupObject.sub_interface_code,
|
||||
rights: JSON.stringify(activeRights.map(activeRight => activeRight.code))
|
||||
}, function(data) {
|
||||
Notification.success('Группа сохранена');
|
||||
$scope.closeCard();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.upFolder = function() {
|
||||
$scope.currentPersonalObject = {
|
||||
id: 0
|
||||
};
|
||||
$scope.currentGroupObject = {
|
||||
id: 0
|
||||
};
|
||||
|
||||
$scope.parentGroup = 0;
|
||||
|
||||
$scope.update();
|
||||
};
|
||||
|
||||
$scope.removePersonal = function() {
|
||||
$('#personal-confirm-delete').modal('toggle');
|
||||
|
||||
smartRequest.post('staff/delete', {
|
||||
id: $scope.currentPersonalObject.id
|
||||
}, function(data) {
|
||||
$scope.currentPersonalObject = {
|
||||
id: 0
|
||||
};
|
||||
|
||||
$scope.updatePersonal();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.removeGroup = function() {
|
||||
$('#group-confirm-delete').modal('toggle');
|
||||
|
||||
smartRequest.post('staff/group/delete', {
|
||||
id: $scope.currentGroupObject.id
|
||||
}, function(data) {
|
||||
$scope.currentGroupObject = {
|
||||
id: 0
|
||||
};
|
||||
|
||||
$scope.update();
|
||||
});
|
||||
};
|
||||
|
||||
$scope.personalSearch = function() {
|
||||
if(promise){
|
||||
$timeout.cancel(promise);
|
||||
}
|
||||
promise = $timeout(function() {
|
||||
if($scope.search.query.length > 0) {
|
||||
smartRequest.post('staff/search', {
|
||||
name: $scope.search.query
|
||||
},
|
||||
function (data) {
|
||||
$scope.personals = data.staff;
|
||||
});
|
||||
}
|
||||
else {
|
||||
$scope.upFolder();
|
||||
}
|
||||
}, 300);
|
||||
};
|
||||
|
||||
$scope.setRights = function() {
|
||||
$scope.removeActiveToggle();
|
||||
$scope.onRightsByTemplate();
|
||||
};
|
||||
|
||||
$scope.removeActiveToggle = function() {
|
||||
$scope.rights.forEach(function (item) {
|
||||
if (item.is_active) {
|
||||
item.is_active = false;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.onRightsByTemplate = function() {
|
||||
smartRequest.get('staff/rights/template?code=' + $scope.currentGroupObject.interface_code + '&sub_code=' + $scope.currentGroupObject.sub_interface_code, function (data) {
|
||||
for(var i = 0; i < data.rights.length; i++) {
|
||||
for(var j = 0; j < $scope.rights.length; j++) {
|
||||
if(data.rights[i].code === $scope.rights[j].code) {
|
||||
$scope.rights[j].is_active = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
$scope.update();
|
||||
|
||||
smartRequest.get('staff/interface/list', function(data) {
|
||||
$scope.interfaces = data.interfaces;
|
||||
});
|
||||
|
||||
smartRequest.get('staff/right/all', function(data) {
|
||||
$scope.rights = data.rights;
|
||||
});
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user