Commit 51db7d95 authored by đinh thị đầm's avatar đinh thị đầm

commit init

parent 61185cb8
...@@ -7,6 +7,7 @@ import org.springframework.validation.Validator; ...@@ -7,6 +7,7 @@ import org.springframework.validation.Validator;
import java.util.List; import java.util.List;
public interface EmployeeBusiness extends Validator { public interface EmployeeBusiness extends Validator {
List<Employee> findAll(); List<Employee> findAll();
...@@ -21,9 +22,8 @@ public interface EmployeeBusiness extends Validator { ...@@ -21,9 +22,8 @@ public interface EmployeeBusiness extends Validator {
void save(Employee employee); void save(Employee employee);
void deleteById(int id); void deleteById(int id);
// Optional<Employee> findOneWithEagerRelationships(@Param("id") int id);
boolean confirmEmployee(Employee employee); boolean confirmEmployee(Employee employee);
Page<Employee> findAll(Pageable pageable); public Page<Employee> findAll(Pageable pageable);
Page<Employee>findAllWithEagerRelationships(Pageable pageable);
} }
...@@ -52,11 +52,6 @@ public class EmployeeBusinessImpl implements EmployeeBusiness { ...@@ -52,11 +52,6 @@ public class EmployeeBusinessImpl implements EmployeeBusiness {
employeeRepository.deleteById(id); employeeRepository.deleteById(id);
} }
// @Override
// public Optional<Employee> findOneWithEagerRelationships(int id) {
// return Optional.empty();
// }
@Override @Override
public boolean confirmEmployee(Employee employee) { public boolean confirmEmployee(Employee employee) {
return true; return true;
...@@ -64,13 +59,9 @@ public class EmployeeBusinessImpl implements EmployeeBusiness { ...@@ -64,13 +59,9 @@ public class EmployeeBusinessImpl implements EmployeeBusiness {
@Override @Override
public Page<Employee> findAll(Pageable pageable) { public Page<Employee> findAll(Pageable pageable) {
return null; return employeeRepository.findAll(pageable);
} }
@Override
public Page<Employee> findAllWithEagerRelationships(Pageable pageable) {
return null;
}
@Override @Override
public boolean supports(Class<?> clazz) { public boolean supports(Class<?> clazz) {
......
package com.itsol.quantrivanphong.manager.employee.controller; package com.itsol.quantrivanphong.manager.employee.controller;
import com.itsol.quantrivanphong.manager.employee.business.EmployeeBusiness; import com.itsol.quantrivanphong.manager.employee.business.EmployeeBusiness;
import com.itsol.quantrivanphong.manager.employee.util.PaginationUtil;
import com.itsol.quantrivanphong.model.Employee; import com.itsol.quantrivanphong.model.Employee;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -11,9 +15,12 @@ import org.springframework.web.util.UriComponentsBuilder; ...@@ -11,9 +15,12 @@ import org.springframework.web.util.UriComponentsBuilder;
import java.util.List; import java.util.List;
@RestController @RestController
public class EmployeeController { public class EmployeeController {
Logger logger = Logger.getLogger(EmployeeController.class);
@Autowired @Autowired
//Retrieve Employee by id //Retrieve Employee by id
private EmployeeBusiness employeeBusiness; private EmployeeBusiness employeeBusiness;
...@@ -26,7 +33,7 @@ public class EmployeeController { ...@@ -26,7 +33,7 @@ public class EmployeeController {
System.out.println("Employee with id : " + id + " not found"); System.out.println("Employee with id : " + id + " not found");
return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND); return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND);
} }
return new ResponseEntity<Employee>( employee ,HttpStatus.OK); return new ResponseEntity<Employee>(employee, HttpStatus.OK);
} }
//Retrieve all employee //Retrieve all employee
...@@ -36,7 +43,7 @@ public class EmployeeController { ...@@ -36,7 +43,7 @@ public class EmployeeController {
if (employees == null) { if (employees == null) {
return new ResponseEntity<List<Employee>>(HttpStatus.NO_CONTENT); return new ResponseEntity<List<Employee>>(HttpStatus.NO_CONTENT);
} }
return new ResponseEntity<List<Employee>>( employees , null ,HttpStatus.OK); return new ResponseEntity<List<Employee>>(employees, null, HttpStatus.OK);
} }
//Update a Employee //Update a Employee
...@@ -64,26 +71,27 @@ public class EmployeeController { ...@@ -64,26 +71,27 @@ public class EmployeeController {
currentEmployee.setGraduationYear(employee.getGraduationYear()); currentEmployee.setGraduationYear(employee.getGraduationYear());
currentEmployee.setPicture(employee.getPicture()); currentEmployee.setPicture(employee.getPicture());
employeeBusiness.save(currentEmployee); employeeBusiness.save(currentEmployee);
return new ResponseEntity<Employee>( currentEmployee ,HttpStatus.OK); return new ResponseEntity<Employee>(currentEmployee, HttpStatus.OK);
} }
//Create a Employee //Create a Employee
@RequestMapping(value = "/list_employee", method = RequestMethod.POST) @RequestMapping(value = "/list_employee", method = RequestMethod.POST)
public ResponseEntity<Void> createEmployee(@RequestBody Employee employee, public ResponseEntity<Void> createEmployee(@RequestBody Employee employee,
UriComponentsBuilder uriComponentsBuilder){ UriComponentsBuilder uriComponentsBuilder) {
System.out.println("Create Employee "+ employee.getUsername()); System.out.println("Create Employee " + employee.getUsername());
employeeBusiness.save(employee); employeeBusiness.save(employee);
HttpHeaders httpHeaders = new HttpHeaders(); HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setLocation(uriComponentsBuilder.path("/employee/{id}").buildAndExpand(employee.getId()).toUri()); httpHeaders.setLocation(uriComponentsBuilder.path("/employee/{id}").buildAndExpand(employee.getId()).toUri());
return new ResponseEntity<Void>( httpHeaders ,HttpStatus.CREATED); return new ResponseEntity<Void>(httpHeaders, HttpStatus.CREATED);
} }
//Delete a Employee //Delete a Employee
@RequestMapping(value = "/employee/{id}" , method = RequestMethod.DELETE) @RequestMapping(value = "/employee/{id}", method = RequestMethod.DELETE)
public ResponseEntity<Employee> deleteEmployee(@PathVariable("id") int id){ public ResponseEntity<Employee> deleteEmployee(@PathVariable("id") int id) {
System.out.println("Fetching and deleting Employee with id :" + id ); System.out.println("Fetching and deleting Employee with id :" + id);
Employee employee = employeeBusiness.findById(id); Employee employee = employeeBusiness.findById(id);
if(employee == null) { if (employee == null) {
System.out.println("Unable to delete. Employee with id :" + id + "not found"); System.out.println("Unable to delete. Employee with id :" + id + "not found");
return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND); return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND);
...@@ -91,17 +99,16 @@ public class EmployeeController { ...@@ -91,17 +99,16 @@ public class EmployeeController {
employeeBusiness.deleteById(id); employeeBusiness.deleteById(id);
return new ResponseEntity<Employee>(HttpStatus.NO_CONTENT); return new ResponseEntity<Employee>(HttpStatus.NO_CONTENT);
} }
// @GetMapping("/list_employee")
// public ResponseEntity<List<Employee>> getAllOperations(Pageable pageable, @RequestParam MultiValueMap<String, String> queryParams, UriComponentsBuilder uriBuilder, @RequestParam(required = false, defaultValue = "false") boolean eagerload) { // paging
// Page<Employee> page; @RequestMapping( value ="/paging_employee",params = {"page","size"}, method = RequestMethod.GET)
// if (eagerload) { public ResponseEntity<List<Employee>> getAllEmployee(Pageable pageable) {
// page = employeeBusiness.findAllWithEagerRelationships(pageable); logger.info("Rest request to get a page of Employee");
// } else { Page<Employee> page = employeeBusiness.findAll(pageable);
// page = employeeBusiness.findAll(pageable);
// } HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/paging_employee");
// HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/list_employee"); return ResponseEntity.ok().headers(headers).body(page.getContent());
// return ResponseEntity.ok().headers(headers).body(page.getContent()); }
// }
} }
...@@ -3,7 +3,6 @@ package com.itsol.quantrivanphong.manager.employee.repository; ...@@ -3,7 +3,6 @@ package com.itsol.quantrivanphong.manager.employee.repository;
import com.itsol.quantrivanphong.model.Employee; import com.itsol.quantrivanphong.model.Employee;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Slice;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -20,17 +19,6 @@ public interface EmployeeRepository extends JpaRepository<Employee,Integer > { ...@@ -20,17 +19,6 @@ public interface EmployeeRepository extends JpaRepository<Employee,Integer > {
Employee findByEmailAddress(String emailAddress); Employee findByEmailAddress(String emailAddress);
Page<Employee> findByFirstName(String firstName, Pageable pageable); Page<Employee> findByFirstName(String firstName, Pageable pageable);
Slice<Employee> findByFirstNameAndLastName(String firstName, String lastName, Pageable pageable);
// @Query(value = "select distinct employee from Employee employee left join fetch employee.labels",
// countQuery = "select count(distinct employee) from Employee employee")
// Page<Employee> findAllWithEagerRelationships(Pageable pageable);
//
// @Query("select distinct employee from Employee employee left join fetch employee.labels")
// List<Employee> findAllWithEagerRelationships();
//
// @Query("select employee from Employee employee left join fetch employee.labels where employee.id =:id")
// Optional<Employee> findOneWithEagerRelationships(@Param("id") int id);
//================================================================================================================== //==================================================================================================================
......
...@@ -22,6 +22,7 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony ...@@ -22,6 +22,7 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony
<!-- font-awesome icons CSS --> <!-- font-awesome icons CSS -->
<link href="css/font-awesome.css" rel="stylesheet"> <link href="css/font-awesome.css" rel="stylesheet">
<!-- //font-awesome icons CSS--> <!-- //font-awesome icons CSS-->
<!-- side nav css file --> <!-- side nav css file -->
...@@ -50,6 +51,8 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony ...@@ -50,6 +51,8 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony
<script src="js/app.js"></script> <script src="js/app.js"></script>
<script src="pages/employee/employeeController.js"></script> <script src="pages/employee/employeeController.js"></script>
<script src="pages/employee/createEmployeeController.js"></script> <script src="pages/employee/createEmployeeController.js"></script>
<script src="js/dirPagination.js"></script>
<!-- end anguarjs app--> <!-- end anguarjs app-->
<link href="css/custom.css" rel="stylesheet"> <link href="css/custom.css" rel="stylesheet">
<!--//Metis Menu --> <!--//Metis Menu -->
...@@ -110,7 +113,7 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony ...@@ -110,7 +113,7 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony
lazyLoad : true, lazyLoad : true,
autoPlay : true, autoPlay : true,
pagination : true, pagination : true,
nav:true, nav:true
}); });
}); });
</script> </script>
...@@ -489,16 +492,19 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony ...@@ -489,16 +492,19 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony
}] }]
}; };
$(function() {
window.onload = function() { window.onload = function () {
var ctx = document.getElementById("canvas").getContext("2d"); var ctx = document.getElementById("canvas")
if(ctx)
{
ctx.getContext("2d");
window.myBar = new Chart(ctx, { window.myBar = new Chart(ctx, {
type: 'bar', type: 'bar',
data: barChartData, data: barChartData,
options: { options: {
responsive: true, responsive: true,
legend: { legend: {
position: 'top', position: 'top'
}, },
title: { title: {
display: true, display: true,
...@@ -507,22 +513,31 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony ...@@ -507,22 +513,31 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony
} }
}); });
}; }
}
});
document.getElementById('randomizeData').addEventListener('click', function() { var c= document.getElementById('randomizeData');
if(c) {
c.addEventListener('click', function () {
var zero = Math.random() < 0.2 ? true : false; var zero = Math.random() < 0.2 ? true : false;
barChartData.datasets.forEach(function(dataset) { barChartData.datasets.forEach(function (dataset) {
dataset.data = dataset.data.map(function() { dataset.data = dataset.data.map(function () {
return zero ? 0.0 : randomScalingFactor(); return zero ? 0.0 : randomScalingFactor();
}); });
}); });
window.myBar.update(); window.myBar.update();
}); });
}
var colorNames = Object.keys(window.chartColors); var colorNames = Object.keys(window.chartColors);
document.getElementById('addDataset').addEventListener('click', function() { var el= document.getElementById('addDataset');
var colorName = colorNames[barChartData.datasets.length % colorNames.length];; if(el) {
addEventListener('click', function () {
var colorName = colorNames[barChartData.datasets.length % colorNames.length];
;
var dsColor = window.chartColors[colorName]; var dsColor = window.chartColors[colorName];
var newDataset = { var newDataset = {
label: 'Dataset ' + barChartData.datasets.length, label: 'Dataset ' + barChartData.datasets.length,
...@@ -539,8 +554,10 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony ...@@ -539,8 +554,10 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony
barChartData.datasets.push(newDataset); barChartData.datasets.push(newDataset);
window.myBar.update(); window.myBar.update();
}); });
}
document.getElementById('addData').addEventListener('click', function() { var els= document.getElementById('addData');
if(els) {
addEventListener('click', function () {
if (barChartData.datasets.length > 0) { if (barChartData.datasets.length > 0) {
var month = MONTHS[barChartData.labels.length % MONTHS.length]; var month = MONTHS[barChartData.labels.length % MONTHS.length];
barChartData.labels.push(month); barChartData.labels.push(month);
...@@ -553,21 +570,28 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony ...@@ -553,21 +570,28 @@ SmartPhone Compatible web template, free WebDesigns for Nokia, Samsung, LG, Sony
window.myBar.update(); window.myBar.update();
} }
}); });
}
document.getElementById('removeDataset').addEventListener('click', function() { var rs= document.getElementById('removeDataset');
if(rs) {
addEventListener('click', function () {
barChartData.datasets.splice(0, 1); barChartData.datasets.splice(0, 1);
window.myBar.update(); window.myBar.update();
}); });
}
document.getElementById('removeData').addEventListener('click', function() { var res =document.getElementById('removeData');
if(res) {
addEventListener('click', function () {
barChartData.labels.splice(-1, 1); // remove the label first barChartData.labels.splice(-1, 1); // remove the label first
barChartData.datasets.forEach(function(dataset, datasetIndex) { barChartData.datasets.forEach(function (dataset, datasetIndex) {
dataset.data.pop(); dataset.data.pop();
}); });
window.myBar.update(); window.myBar.update();
}); });
}
</script> </script>
<!-- new added graphs chart js--> <!-- new added graphs chart js-->
......
This diff is collapsed.
/** /**
* *
*/ */
angular.module("myApp", ["ui.router"]).config(function ($stateProvider, $urlRouterProvider, $locationProvider) { angular.module("myApp", ['ui.router']).config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
$locationProvider.hashPrefix(''); $locationProvider.hashPrefix('');
$urlRouterProvider.otherwise("/employees"); $urlRouterProvider.otherwise("/employees");
......
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* *
*/ */
angular.module("myApp").controller("createEmployeeController", function ($scope, $http, $state, $stateParams) { angular.module("myApp").controller("createEmployeeController", function ($scope, $http, $state, $stateParams) {
console.log("Employee controller"); console.log("Create Employee controller");
console.log($stateParams.emp); console.log($stateParams.emp);
if ($stateParams.emp) { if ($stateParams.emp) {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
<td><a class="btn btn-info" href="#" ui-sref="createEmployee">Add</a></td>
<table class="table"> <table class="table">
<thead> <thead>
...@@ -37,8 +37,7 @@ ...@@ -37,8 +37,7 @@
<td>{{emp.department}}</td> <td>{{emp.department}}</td>
<td>{{emp.position}}</td> <td>{{emp.position}}</td>
<td><a href="#" ng-click="updateEmp(emp);">Edit</a> <td><a href="#" ng-click="updateEmp(emp);">Edit</a>
<td><a href="#" ng-confirm-click=" Do you want to delete this user?" <td><a href="#" ng-click="deleteEmp(emp);">Delete</a>
ng-click="delete(emp);">Delete</a>
</td> </td>
</tr> </tr>
...@@ -46,6 +45,10 @@ ...@@ -46,6 +45,10 @@
</tbody> </tbody>
</table> </table>
<tr>
<td><a class="btn btn-info" href="#" ui-sref="createEmployee">Add</a></td>
</tr>
</div> </div>
</div> </div>
......
...@@ -55,7 +55,7 @@ angular.module("myApp").controller("employeeController", function($scope, $http, ...@@ -55,7 +55,7 @@ angular.module("myApp").controller("employeeController", function($scope, $http,
// HTTP DELETE- delete employee by Id // HTTP DELETE- delete employee by Id
// Call: http://localhost:8080/employee/{id} // Call: http://localhost:8080/employee/{id}
$scope.delete = function (emp) { $scope.deleteEmp = function (emp) {
$http({ $http({
method: 'DELETE', method: 'DELETE',
url: '/employee/' + emp.id url: '/employee/' + emp.id
...@@ -91,7 +91,17 @@ angular.module("myApp").controller("employeeController", function($scope, $http, ...@@ -91,7 +91,17 @@ angular.module("myApp").controller("employeeController", function($scope, $http,
}, function errorCallback(response) { }, function errorCallback(response) {
console.log(response) console.log(response)
}); });
// $scope.reload = reload;
// function reload() {
// $http.get("http://localhost:8081/employees")
// success(function (data) {
// $scope.employees = data.employees;
// });
// $timeout(function(){
// $scope.reload();
// },3)
// };
// $scope.reload();
}); });
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment