Commit 22d92b95 authored by ='s avatar =

hieu final01

parent e3332b54
......@@ -21,43 +21,21 @@ public class EmailBussiness {
public boolean sendEmail(EmailDTO emailDTO) {
boolean check;
// MimeMessage message = sender.createMimeMessage();
// MimeMessageHelper helper = new MimeMessageHelper(message);
//
//
// try {
// helper.setTo(emailDTO.getRecipientEmail());
// helper.setText(emailDTO.getMessage(),"text/html");
// helper.setSubject(emailDTO.getSubject());
// sender.send(message);
// check = true;
// } catch (Exception e) {
// e.printStackTrace();
// check = false;
// }
// Recipient's email ID needs to be mentioned.
String to = emailDTO.getRecipientEmail();
// Sender's email ID needs to be mentioned
//Cấu hình email người gửi
String from = "hieunv2496@gmail.com";
final String username = "hieunv2496@gmail.com";//change accordingly
final String password = "anhieu1996";//change accordingly
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
// Get the Session object.
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
......@@ -72,24 +50,22 @@ public class EmailBussiness {
// Set To: header field of the header.
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
InternetAddress.parse(emailDTO.getRecipientEmail()));
// Set Subject: header field
message.setSubject(emailDTO.getSubject());
// Send the actual HTML message, as big as you like
message.setContent(
emailDTO.getMessage(),
"text/html");
message.setContent(emailDTO.getMessage(),"text/html");
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
......
......@@ -25,17 +25,11 @@ public class GeneratePasswordBussiness {
public String getAlphaNumericString(){
// length is bounded by 256 Character
byte[] array = new byte[256];
new Random().nextBytes(array);
int n = 8;
String randomString = new String(array, Charset.forName("UTF-8"));
// Create license StringBuffer to store the result
StringBuffer pass = new StringBuffer();
// Append first 20 alphanumeric characters
// from the generated random String into the result
for (int k = 0; k < randomString.length(); k++) {
char ch = randomString.charAt(k);
......
......@@ -2,7 +2,9 @@ package com.itsol.quantrivanphong.access.register.controller;
import com.itsol.quantrivanphong.access.register.bussiness.GeneratePasswordBussiness;
import com.itsol.quantrivanphong.model.notification;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -16,11 +18,11 @@ public class VerifyAccountController {
private GeneratePasswordBussiness generatePasswordBussiness;
@GetMapping(path = "/{username}")
public String verifyPassword(@PathVariable("username") String username){
public ResponseEntity verifyPassword(@PathVariable("username") String username){
String mess = generatePasswordBussiness.insertPassword(username);
return mess;
return ResponseEntity.ok(new notification(200,mess));
}
}
......@@ -23,7 +23,14 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct
}
}
})
.state("layout3", {
abstract: true,
views: {
"layout": {
templateUrl: "layout/layout3.html"
}
}
})
.state("employees", {
parent: 'layout1',
......@@ -209,6 +216,18 @@ angular.module("myApp", ["ngAnimate", "ui.router", "ui.bootstrap"]).config(funct
}
}
})
.state("register", {
parent: 'layout3',
url: "/register",
views: {
"content": {
templateUrl: "signup.html",
controller: "employeeController"
}
}
})
//end report=======================================================================================================
......
This diff is collapsed.
......@@ -2,7 +2,7 @@
<div class="container">
<div class="row">
<div class="col-md-8">
<div>
<div ng-controller="listLackOfReportController">
<input class="search" ng-model="search" type="text" placeholder="Search" ng-change="currentPage =1">
<h3>Danh Sách Thành viên thiếu TimeSheet</h3>
......
......@@ -60,12 +60,13 @@
</tr>
</tbody>
</table>
<div><a ng-click="history.go(-1);" class="btn btn-primary btn-circle btn-sm" style="margin-bottom: 10px;" > Trở Về</a></div>
<uib-pagination total-items="getTotalItems()" boundary-link-numbers="true" ng-model="currentPage"
ng-change="pageChangedIndex()" rotate="true"
items-per-page="employeePerPage"></uib-pagination>
</div>
<div><a ng-click="history.go(-1);" class="btn btn-primary btn-circle btn-sm" style="margin-bottom: 10px;" > Trở Về</a></div>
</div>
</div>
......
var app = angular.module('myApp');
app.controller('reportController',projectList);
app.controller('timeSheetListController' , timeSheetList);
app.controller('updateTimeSheetStatusController',updateTimeSheetStatus);
app.controller('updateTimeSheetCheckedController', updateTimeSheetChecked);
app.controller('listLackOfReportController',employeeList);
app.controller('insertProjectReportController', insertProjectReport);
app.controller('allProjectReportController',allProjectReport);
app.controller('projectReportDetailController', projectReportDetail);
app.controller('deleteReportController',deleteReport);
app.controller('listEmployeeLackController',listEmployeeLack);
//Báo cáo ngày
// Danh sách các dự án đang triển khai
function projectList($scope, $http) {
......@@ -30,33 +26,42 @@ function projectList($scope, $http) {
console.log(response)
});
}
// Thêm mới báo cáo theo khoảng thời gian
$scope.insertReport = function (id, firstDate, finalDate) {
//======================================================================================================================
// Danh Sách Báo cáo ngày của dự án đó
function timeSheetList($scope, $http, $stateParams){
$scope.request = {
"currentDate": ""
};
var date = new Date();
$scope.request.currentDate = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2);
"projectId": id,
"firstPoint": "",
"finalPoint": ""
}
$scope.request.firstPoint = firstDate.getFullYear() + '-' + ('0' + (firstDate.getMonth() + 1)).slice(-2) + '-' + ('0' + firstDate.getDate()).slice(-2);
$scope.request.finalPoint = finalDate.getFullYear() + '-' + ('0' + (finalDate.getMonth() + 1)).slice(-2) + '-' + ('0' + finalDate.getDate()).slice(-2);
if (confirm("Bạn có muốn thực hiện ?")) {
$http({
method: 'GET',
url: "http://localhost:8081/admin/report/project/"+$stateParams.ID+"/timeSheet/"+$scope.request.currentDate,
method: 'POST',
url: "http://localhost:8081/admin/report/project/newReport",
data: $scope.request,
headers: {
'Content-Type': 'application/json'
}
}).then(successCallback, errorCallback);
//tạo funtion nếu thành công!
function successCallback(response) {
$scope.messages=response.data;
alert($scope.messages.view);
}
//tạo funtion kiểm tra nếu thất bại
function errorCallback(error) {
//error code
console.log("Create FALSE !!!");
}
}
};
}).then(function successCallback(response) {
console.log(response);
$scope.timeSheets= response.data;
console.log($scope.timeSheets);
}, function errorCallback(error) {
console.log(error)
});
}
//Khởi tạo thành viên thiếu báo cáo ngày hôm đó
function updateTimeSheetStatus($scope, $window, $http) {
$scope.request = {
"currentDate": ""
};
......@@ -85,9 +90,36 @@ function updateTimeSheetStatus($scope, $window, $http) {
}
}
};
};
function updateTimeSheetChecked($scope, $window, $http) {
}
//======================================================================================================================
//Báo cáo ngày
// Danh Sách Báo cáo ngày của dự án đó
function timeSheetList($scope, $http, $stateParams, $state){
$scope.request = {
"currentDate": ""
};
var date = new Date();
$scope.request.currentDate = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2);
$http({
method: 'GET',
url: "http://localhost:8081/admin/report/project/"+$stateParams.ID+"/timeSheet/"+$scope.request.currentDate,
headers: {
'Content-Type': 'application/json'
}
}).then(function successCallback(response) {
console.log(response);
$scope.timeSheets= response.data;
console.log($scope.timeSheets);
}, function errorCallback(error) {
console.log(error)
});
//Báo cáo ngày
//Duyệt báo cáo ngày đó (chấp nhận, từ chối)
$scope.updateTimeSheetChecked = function (id, check) {
if (confirm("Bạn có muốn thực hiện ?")) {
$http({
......@@ -101,6 +133,7 @@ function updateTimeSheetChecked($scope, $window, $http) {
//tạo funtion nếu thành công!
function successCallback(response) {
$scope.timeSheetsMessages=response.data;
$state.reload();
alert($scope.timeSheetsMessages.view);
}
//tạo funtion kiểm tra nếu thất bại
......@@ -112,6 +145,7 @@ function updateTimeSheetChecked($scope, $window, $http) {
};
};
// Danh Sách Các Thành viên Thiếu Báo Cáo Ngày Của Dự Án
function employeeList($scope, $http, $stateParams){
$scope.request = {
......@@ -137,23 +171,30 @@ function employeeList($scope, $http, $stateParams){
}
//======================================================================================================================
function insertProjectReport($scope, $window, $http) {
$scope.insertReport = function (id, firstDate, finalDate) {
function allProjectReport($scope, $http, $stateParams, $state){
$scope.request = {
"projectId": id,
"firstPoint": "",
"finalPoint": ""
//Lấy tất cả báo cáo
$http({
method: 'GET',
url: "http://localhost:8081/admin/report/project/"+$stateParams.ID +"/allReport",
headers: {
'Content-Type': 'application/json'
}
$scope.request.firstPoint = firstDate.getFullYear() + '-' + ('0' + (firstDate.getMonth() + 1)).slice(-2) + '-' + ('0' + firstDate.getDate()).slice(-2);
$scope.request.finalPoint = finalDate.getFullYear() + '-' + ('0' + (finalDate.getMonth() + 1)).slice(-2) + '-' + ('0' + finalDate.getDate()).slice(-2);
}).then(function successCallback(response) {
console.log(response);
$scope.ProjectReports= response.data;
console.log($scope.ProjectReports);
}, function errorCallback(response) {
console.log(response)
});
if (confirm("Bạn có muốn thực hiện ?")) {
//Xóa một báo cáo
$scope.deleteReport = function (id) {
if (confirm("Bạn có muốn xóa ?")) {
$http({
method: 'POST',
url: "http://localhost:8081/admin/report/project/newReport",
data: $scope.request,
url: "http://localhost:8081/admin/report/project/report/delete/" + id,
headers: {
'Content-Type': 'application/json'
}
......@@ -161,34 +202,22 @@ function insertProjectReport($scope, $window, $http) {
//tạo funtion nếu thành công!
function successCallback(response) {
$scope.messages=response.data;
$state.reload();
alert($scope.messages.view);
}
//tạo funtion kiểm tra nếu thất bại
function errorCallback(error) {
//error code
console.log("Create FALSE !!!");
console.log("Delete FALSE !!!");
}
}
};
};
function allProjectReport($scope, $http, $stateParams){
$http({
method: 'GET',
url: "http://localhost:8081/admin/report/project/"+$stateParams.ID +"/allReport",
headers: {
'Content-Type': 'application/json'
}
}).then(function successCallback(response) {
console.log(response);
$scope.ProjectReports= response.data;
console.log($scope.ProjectReports);
}, function errorCallback(response) {
console.log(response)
});
}
// Xem chi tiết 1 báo cáo
function projectReportDetail($scope, $http, $stateParams){
$http({
......@@ -206,32 +235,6 @@ function projectReportDetail($scope, $http, $stateParams){
console.log(response)
});
}
function deleteReport($scope, $window, $http, $state) {
$scope.deleteReport = function (id) {
if (confirm("Bạn có muốn xóa ?")) {
$http({
method: 'POST',
url: "http://localhost:8081/admin/report/project/report/delete/" + id,
headers: {
'Content-Type': 'application/json'
}
}).then(successCallback, errorCallback);
//tạo funtion nếu thành công!
function successCallback(response) {
$scope.messages=response.data;
$state.reload();
alert($scope.messages.view);
}
//tạo funtion kiểm tra nếu thất bại
function errorCallback(error) {
//error code
console.log("Delete FALSE !!!");
}
}
};
};
//======================================================================================================================
......
<div class="card mb-3">
<div class="container">
<div class="row">
<div class="col-md-8">
<div ng-controller="projectReportDetailController">
<input class="search" ng-model="search" type="text" placeholder="Search" ng-change="currentPage =1">
<h3> Báo cáo chi tiết</h3>
<div class="card-header">
<i class="fas fa-table"></i> Báo cáo chi tiết
<table class="table">
<thead>
<tr>
<th>Tiêu đề</th>
<th>Nội dung</th>
</tr>
</thead>
<tbody>
<tr class="vide">
<td>Tên Dự Án</td>
<td>{{projectReportDetails.projectName}}</td>
</tr>
<tr>
<td>Team Leader</td>
<td>{{projectReportDetails.teamLeader}}</td>
</tr>
<tr>
<td>Số Thành Viên</td>
<td>{{projectReportDetails.numberOfMember}}</td>
</tr>
<tr>
<td>Điểm</td>
<td>{{projectReportDetails.calendarEffort}}</td>
</tr>
<tr>
<td>Số Thành Viên Thiếu Báo Cáo</td>
<td>{{projectReportDetails.lackOfReport}}</td>
</tr>
<tr>
<td>Khoảng Thời Gian</td>
<td>{{projectReportDetails.firstDate | date:"dd-MM-yyyy"}} --> {{projectReportDetails.finalDate | date:"dd-MM-yyyy"}}</td>
</tr>
</tbody>
</table>
</div>
<div class="card-body" ng-controller="projectReportDetailController">
<div>
<h4>Tên Dự Án:</h4><br>
<p>{{projectReportDetails.projectName}}</p>
<h4>Team Leader</h4>
<p>{{projectReportDetails.teamLeader}}</p>
<h4>Số Thành Viên</h4>
<p>{{projectReportDetails.numberOfMember}}</p>
<h4>Điểm</h4>
<p>{{projectReportDetails.calendarEffort}}</p>
<h4>Số Thành Viên Thiếu Báo Cáo</h4>
<p>{{projectReportDetails.lackOfReport}}</p>
<h4>Khoảng Thời Gian</h4>
<p>{{projectReportDetails.firstDate}} --> {{projectReportDetails.firstDate}}</p>
</div>
</div>
</div>
<div class="card mb-3">
<!--<div class="card mb-3">-->
<!-- <div class="card-header">-->
<!-- <i class="fas fa-table"></i> Danh sách báo cáo theo thời gian của dự án-->
<!-- </div>-->
<!-- <div class="card-body">-->
<!-- <div class="table-responsive" ng-controller="allProjectReportController">-->
<!-- <div>-->
<!--&lt;!&ndash; <a ui-sref="addproject" class="btn btn-primary btn-circle btn-sm" style="margin-bottom: 10px;"> Thêm </a>&ndash;&gt;-->
<!-- <input type="text" ng-model="search" placeholder="Search" style="margin-bottom: 10px;">-->
<!-- {{messages.view}}-->
<!-- <table class="table table-bordered" id="dataTable" width="100%"-->
<!-- cellspacing="0">-->
<!-- <thead>-->
<!-- <tr>-->
<!-- <th>STT</th>-->
<!-- <th>Tên Dự Án</th>-->
<!-- <th>Team Leader</th>-->
<!-- <th>Số Thành Viên</th>-->
<!-- <th>Điểm Nỗ Lực</th>-->
<!-- <th>Số TV Thiếu Báo Cáo</th>-->
<!-- <th>Thời gian</th>-->
<!-- <th>Menu</th>-->
<!-- </tr>-->
<!-- </thead>-->
<!-- <tbody>-->
<!-- <tr data-ng-repeat="pr in ProjectReports|filter:search">-->
<!-- <td>{{$index+1}}</td>-->
<!-- <td>{{pr.projectName}}</td>-->
<!-- <td>{{pr.teamLeader}}</td>-->
<!-- <td>{{pr.numberOfMember}}</td>-->
<!-- <td>{{pr.calendarEffort}}</td>-->
<!-- <td>{{pr.lackOfReport}}</td>-->
<!-- <td>{{pr.firstDate | date:"dd/MM/yyyy"}} <br>&ndash;&gt; {{pr.finalDate | date:"dd/MM/yyyy"}}</td>-->
<!-- <td><a ui-sref="reportDetail({ID: pr.id})" class="btn btn-info btn-circle btn-sm">Xem </a>-->
<!-- <a ng-click="deleteReport(pr.id)" class="btn btn-warning btn-circle btn-sm">Xóa </a>-->
<!-- </td>-->
<!-- </tr>-->
<!-- </tbody>-->
<!-- </table>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!--</div>-->
<div class="card-header">
<i class="fas fa-table"></i> Danh sách báo cáo theo thời gian của dự án
</div>
<div class="card-body">
<div class="table-responsive" ng-controller="allProjectReportController">
<div ng-controller="deleteReportController">
<!-- <a ui-sref="addproject" class="btn btn-primary btn-circle btn-sm" style="margin-bottom: 10px;"> Thêm </a>-->
<input type="text" ng-model="search" placeholder="Search" style="margin-bottom: 10px;">
{{messages.view}}
<table class="table table-bordered" id="dataTable" width="100%"
cellspacing="0">
<div class="container">
<div class="row">
<div class="col-md-8">
<div ng-controller="allProjectReportController">
<input class="search" ng-model="search" type="text" placeholder="Search" ng-change="currentPage =1">
<h3>Danh sách báo cáo theo thời gian của dự án</h3>
{{messages.view}}
<table class="table">
<thead>
<tr>
<th>STT</th>
......@@ -22,11 +65,10 @@
<th>Số TV Thiếu Báo Cáo</th>
<th>Thời gian</th>
<th>Menu</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="pr in ProjectReports|filter:search">
<tr class="vide" data-ng-repeat="pr in ProjectReports|filter:search">
<td>{{$index+1}}</td>
<td>{{pr.projectName}}</td>
<td>{{pr.teamLeader}}</td>
......@@ -40,7 +82,13 @@
</tr>
</tbody>
</table>
<uib-pagination total-items="getTotalItems()" boundary-link-numbers="true" ng-model="currentPage"
ng-change="pageChangedIndex()" rotate="true"
items-per-page="employeePerPage"></uib-pagination>
</div>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<i class="fas fa-table"></i>Danh Sách Dự án (Đang được triển khai)
</div>
<div class="card-body">
<div class="table-responsive" ng-controller="reportController">
<div ng-controller="insertProjectReportController">
<!-- <a ui-sref="addproject" class="btn btn-primary btn-circle btn-sm" style="margin-bottom: 10px;">-->
<!-- Thêm </a>-->
<input type="text" ng-model="search" placeholder="Search" style="margin-bottom: 10px;">
<div class="container">
<div class="row">
<div class="col-md-8">
<div ng-controller="reportController">
<input class="search" ng-model="search" type="text" placeholder="Search" ng-change="currentPage =1">
<h3>Danh Sách Dự án (Đang được triển khai)</h3>
{{messages.view}}
<table class="table table-bordered" id="dataTable" width="100%"
cellspacing="0">
<table class="table">
<thead>
<tr>
<th>STT</th>
......@@ -22,7 +16,6 @@
<th>Trạng thái</th>
<th>Chọn khoảng thời gian</th>
<th>Menu</th>
</tr>
</thead>
<tbody>
......@@ -32,15 +25,19 @@
<td>{{pro.name}}</td>
<td>{{pro.descriptions}}</td>
<td>{{pro.startDate | date:"dd/MM/yyyy"}} <br>--> {{pro.endDate | date:"dd/MM/yyyy"}}</td>
<td>{{pro.status}}</td>
<td>
<span ng-if="pro.status == 0">Chưa triển khai </span>
<span ng-if="pro.status == 1">Đang triển khai </span>
<span ng-if="pro.status == 2"> Đã hoàn thành </span>
</td>
<td class="form-label-group" >
<!-- <label for="startDate">Ngày Bắt Đầu</label>-->
<!-- <label for="startDate">Ngày Bắt Đầu</label>-->
<input type="date" ng-model="request.firstDate" id="startDate" class="form-control"
placeholder="điểm đầu" required="required">
placeholder="điểm đầu" required="required" style="width: auto">
<!-- <label for="endDate">Ngày Kết Thúc</label>-->
<!-- <label for="endDate">Ngày Kết Thúc</label>-->
<input type="date" ng-model="request.finalDate" id="endDate" class="form-control"
placeholder="điểm cuối" required="required">
placeholder="điểm cuối" required="required" style="width: auto">
</td>
<td>
<a ng-click="insertReport(pro.id, request.firstDate, request.finalDate)" class="btn btn-info btn-circle btn-sm">Thêm mới báo cáo></a><br>
......@@ -51,6 +48,11 @@
</form>
</tbody>
</table>
<uib-pagination total-items="getTotalItems()" boundary-link-numbers="true" ng-model="currentPage"
ng-change="pageChangedIndex()" rotate="true"
items-per-page="employeePerPage"></uib-pagination>
</div>
</div>
</div>
......
<div class="card mb-3">
<div class="card-header">
<i class="fas fa-table"></i> Danh Sách Timesheet Dự án
</div>
<div class="card-body">
<div class="table-responsive">
<div ng-controller="updateTimeSheetCheckedController">
<!-- <a ui-sref="addproject" class="btn btn-primary btn-circle btn-sm" style="margin-bottom: 10px;"> Thêm </a>-->
<input type="text" ng-model="search" placeholder="Search" style="margin-bottom: 10px;">
<div class="container">
<div class="row">
<div class="col-md-8">
<div>
<input class="search" ng-model="search" type="text" placeholder="Search" ng-change="currentPage =1">
<h3>Danh Sách Timesheet Dự án</h3>
{{timeSheetsMessages.view}}
<table class="table table-bordered" id="dataTable" width="100%"
cellspacing="0">
<table class="table">
<thead>
<tr>
<th>STT</th>
......@@ -20,7 +15,6 @@
<th>Ngày tạo</th>
<th>trạng thái duyệt</th>
<th>Menu</th>
</tr>
</thead>
<tbody>
......@@ -32,7 +26,7 @@
<td>{{item.createdAt | date:"dd/MM/yyyy" }}</td>
<td>
<select ng-model="item.checked" class="form-control" autofocus="autofocus" required="required">
<!-- <option value="">==> Trạng Thái</option>-->
<!-- <option value="">==> Trạng Thái</option>-->
<option value="unapproved">Chưa duyệt</option>
<option value="approved">Đã duyệt</option>
<option value="deny">Từ chối</option>
......@@ -44,7 +38,13 @@
</tr>
</tbody>
</table>
<uib-pagination total-items="getTotalItems()" boundary-link-numbers="true" ng-model="currentPage"
ng-change="pageChangedIndex()" rotate="true"
items-per-page="employeePerPage"></uib-pagination>
</div>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<i class="fas fa-table"></i>Danh Sách Dự án (Đang được triển khai)
</div>
<div class="card-body">
<div class="table-responsive" ng-controller="reportController">
<div ng-controller="updateTimeSheetStatusController">
<!-- <a ui-sref="addproject" class="btn btn-primary btn-circle btn-sm" style="margin-bottom: 10px;">-->
<!-- Thêm </a>-->
<input type="text" ng-model="search" placeholder="Search" style="margin-bottom: 10px;">
<div class="container">
<div class="row">
<div class="col-md-8">
<div ng-controller="reportController">
<input class="search" ng-model="search" type="text" placeholder="Search" ng-change="currentPage =1">
<h3>Danh Sách Dự án (Đang được triển khai)</h3>
{{timeSheetsMessages.view}}
<table class="table table-bordered" id="dataTable" width="100%"
cellspacing="0">
<table class="table">
<thead>
<tr>
<th>STT</th>
......@@ -22,7 +15,6 @@
<th>Thời gian kết thúc</th>
<th>Trạng thái</th>
<th>Menu</th>
</tr>
</thead>
<tbody>
......@@ -32,7 +24,11 @@
<td>{{pro.descriptions}}</td>
<td>{{pro.startDate | date:"dd/MM/yyyy"}}</td>
<td>{{pro.endDate | date:"dd/MM/yyyy"}}</td>
<td>{{pro.status}}</td>
<td>
<span ng-if="pro.status == 0">Chưa triển khai </span>
<span ng-if="pro.status == 1">Đang triển khai </span>
<span ng-if="pro.status == 2"> Đã hoàn thành </span>
</td>
<td><a ui-sref="reportTimeSheet({ID: pro.id})" class="btn btn-info btn-circle btn-sm">Ds báo cáo ngày </a><br>
<a ng-click="updateTimeSheetStatus(pro.id)" class="btn btn-warning btn-circle btn-sm">khởi tạo tv thiếu báo cáo</a> <br>
<a ui-sref="reportEmployee({ID: pro.id})" class="btn btn-danger btn-circle btn-sm" data-ng-click="">Ds thành viên thiếu báo cáo</a>
......@@ -40,7 +36,13 @@
</tr>
</tbody>
</table>
<uib-pagination total-items="getTotalItems()" boundary-link-numbers="true" ng-model="currentPage"
ng-change="pageChangedIndex()" rotate="true"
items-per-page="employeePerPage"></uib-pagination>
</div>
</div>
</div>
</div>
This diff is collapsed.
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