lor6 8617faf9cf data rest crud, angular fe (#1199)
* data rest crud, angular fe

* fix formatting, remove extra imports

* fix config

* change student entity to employee

* expose ids

* update boot version, removes ids, check null id
2017-02-27 09:04:00 -06:00

198 lines
5.9 KiB
JavaScript

var app = angular.module('app', ['ui.grid','ui.grid.pagination']);
app.controller('StudentCtrl', ['$scope','StudentService', function ($scope,StudentService) {
var paginationOptions = {
pageNumber: 1,
pageSize: 5,
sort: null
};
StudentService.getStudents(paginationOptions.pageNumber,
paginationOptions.pageSize).success(function(data){
$scope.gridOptions.data = data.content;
$scope.gridOptions.totalItems = data.totalElements;
});
$scope.gridOptions = {
paginationPageSizes: [5, 10, 20],
paginationPageSize: paginationOptions.pageSize,
enableColumnMenus:false,
useExternalPagination: true,
columnDefs: [
{ name: 'id' },
{ name: 'name' },
{ name: 'gender' },
{ name: 'age' }
],
onRegisterApi: function(gridApi) {
$scope.gridApi = gridApi;
gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
paginationOptions.pageNumber = newPage;
paginationOptions.pageSize = pageSize;
StudentService.getStudents(newPage,pageSize).success(function(data){
$scope.gridOptions.data = data.content;
$scope.gridOptions.totalItems = data.totalElements;
});
});
}
};
}]);
app.service('StudentService',['$http', function ($http) {
function getStudents(pageNumber,size) {
pageNumber = pageNumber > 0?pageNumber - 1:0;
return $http({
method: 'GET',
url: 'student/get?page='+pageNumber+'&size='+size
});
}
return {
getStudents:getStudents
};
}]);
app.controller('EmployeeCRUDCtrl', ['$scope','EmployeeCRUDService', function ($scope,EmployeeCRUDService) {
$scope.updateEmployee = function () {
EmployeeCRUDService.updateEmployee($scope.employee.id,$scope.employee.name,$scope.employee.age)
.then(function success(response){
$scope.message = 'Employee data updated!';
$scope.errorMessage = '';
},
function error(response){
$scope.errorMessage = 'Error updating Employee!';
$scope.message = '';
});
}
$scope.getEmployee = function () {
var id = $scope.employee.id;
EmployeeCRUDService.getEmployee($scope.employee.id)
.then(function success(response){
$scope.employee = response.data;
$scope.employee.id = id;
$scope.message='';
$scope.errorMessage = '';
},
function error (response ){
$scope.message = '';
if (response.status === 404){
$scope.errorMessage = 'Employee not found!';
}
else {
$scope.errorMessage = "Error getting Employee!";
}
});
}
$scope.addEmployee = function () {
if ($scope.employee != null && $scope.employee.id) {
EmployeeCRUDService.addEmployee($scope.employee.id, $scope.employee.name, $scope.employee.age)
.then (function success(response){
$scope.message = 'Employee added!';
$scope.errorMessage = '';
},
function error(response){
$scope.errorMessage = 'Error adding Employee!';
$scope.message = '';
});
}
else {
$scope.errorMessage = 'Please enter an id!';
$scope.message = '';
}
}
$scope.deleteEmployee = function () {
EmployeeCRUDService.deleteEmployee($scope.employee.id)
.then (function success(response){
$scope.message = 'Employee deleted!';
$scope.employee = null;
$scope.errorMessage='';
},
function error(response){
$scope.errorMessage = 'Error deleting Employee!';
$scope.message='';
})
}
$scope.getAllEmployees = function () {
EmployeeCRUDService.getAllEmployees()
.then(function success(response){
$scope.employees = response.data._embedded.employee;
$scope.message='';
$scope.errorMessage = '';
},
function error (response ){
$scope.message='';
$scope.errorMessage = 'Error getting Employees!';
});
}
$scope.getEmployeesByName = function () {
EmployeeCRUDService.getEmployeesByName($scope.name)
.then(function success(response){
$scope.employees = response.data._embedded.employee;
$scope.message='';
$scope.errorMessage = '';
},
function error (response ){
$scope.message='';
$scope.errorMessage = 'Error getting Employees!';
});
}
}]);
app.service('EmployeeCRUDService',['$http', function ($http) {
this.getEmployee = function getEmployee(employeeId){
return $http({
method: 'GET',
url:'employees/'+employeeId
});
}
this.addEmployee = function addEmployee(id, name, age, gender){
return $http({
method: 'POST',
url:'employees',
data: {id:id, name:name, age:age}
});
}
this.deleteEmployee = function deleteEmployee(id){
return $http({
method: 'DELETE',
url: 'employees/'+id
})
}
this.updateEmployee = function updateEmployee(id,name,age){
return $http({
method: 'PATCH',
url: 'employees/'+id,
data: {name:name, age:age}
})
}
this.getAllEmployees = function getAllEmployees(){
return $http({
method: 'GET',
url:'employees'
});
}
this.getEmployeesByName = function getEmployeesByName(name){
return $http({
method: 'GET',
url:'employees/search/findByName',
params:{name:name}
});
}
}]);