Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Q
QLNS_N01
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nguyễn Văn Hiếu
QLNS_N01
Commits
22d92b95
Commit
22d92b95
authored
Jun 17, 2019
by
=
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
hieu final01
parent
e3332b54
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
812 additions
and
724 deletions
+812
-724
src/main/java/com/itsol/quantrivanphong/access/register/bussiness/EmailBussiness.java
...trivanphong/access/register/bussiness/EmailBussiness.java
+8
-32
src/main/java/com/itsol/quantrivanphong/access/register/bussiness/GeneratePasswordBussiness.java
.../access/register/bussiness/GeneratePasswordBussiness.java
+1
-7
src/main/java/com/itsol/quantrivanphong/access/register/controller/VerifyAccountController.java
...g/access/register/controller/VerifyAccountController.java
+4
-2
src/main/resources/public/js/app.js
src/main/resources/public/js/app.js
+20
-1
src/main/resources/public/layout/layout3.html
src/main/resources/public/layout/layout3.html
+388
-0
src/main/resources/public/pages/report/employeeListViews.html
...main/resources/public/pages/report/employeeListViews.html
+13
-13
src/main/resources/public/pages/report/employeeListViews1.html
...ain/resources/public/pages/report/employeeListViews1.html
+2
-1
src/main/resources/public/pages/report/reportController.js
src/main/resources/public/pages/report/reportController.js
+87
-84
src/main/resources/public/pages/report/reportDetailPage.html
src/main/resources/public/pages/report/reportDetailPage.html
+43
-20
src/main/resources/public/pages/report/reportListPage.html
src/main/resources/public/pages/report/reportListPage.html
+63
-15
src/main/resources/public/pages/report/reportPage.html
src/main/resources/public/pages/report/reportPage.html
+41
-39
src/main/resources/public/pages/report/timeSheetListViews.html
...ain/resources/public/pages/report/timeSheetListViews.html
+45
-45
src/main/resources/public/pages/report/timeSheetReport.html
src/main/resources/public/pages/report/timeSheetReport.html
+30
-28
src/main/resources/public/signup.html
src/main/resources/public/signup.html
+67
-437
No files found.
src/main/java/com/itsol/quantrivanphong/access/register/bussiness/EmailBussiness.java
View file @
22d92b95
...
...
@@ -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
);
}
...
...
src/main/java/com/itsol/quantrivanphong/access/register/bussiness/GeneratePasswordBussiness.java
View file @
22d92b95
...
...
@@ -24,18 +24,12 @@ 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
);
...
...
src/main/java/com/itsol/quantrivanphong/access/register/controller/VerifyAccountController.java
View file @
22d92b95
...
...
@@ -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
))
;
}
}
src/main/resources/public/js/app.js
View file @
22d92b95
...
...
@@ -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=======================================================================================================
...
...
src/main/resources/public/layout/layout3.html
0 → 100644
View file @
22d92b95
This diff is collapsed.
Click to expand it.
src/main/resources/public/pages/report/employeeListViews.html
View file @
22d92b95
...
...
@@ -2,12 +2,12 @@
<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 Thành viên thiếu TimeSheet
</h3>
<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>
<table
class=
"table"
>
<thead>
<table
class=
"table"
>
<thead>
<tr>
<th>
STT
</th>
<th>
Ảnh
</th>
...
...
@@ -17,8 +17,8 @@
<th>
SDT
</th>
<th>
Menu
</th>
</tr>
</thead>
<tbody>
</thead>
<tbody>
<tr
class=
"vide"
data-ng-repeat=
"emp in employeesList|filter:search"
>
<td>
{{$index+1}}
</td>
<td>
{{emp.picture}}
</td>
...
...
@@ -28,14 +28,14 @@
<td>
{{emp.phoneNumber}}
</td>
<td><a
ui-sref=
""
class=
"btn btn-info btn-circle btn-sm"
>
Xem
</a></td>
</tr>
</tbody>
</table>
</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>
<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>
...
...
src/main/resources/public/pages/report/employeeListViews1.html
View file @
22d92b95
...
...
@@ -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>
...
...
src/main/resources/public/pages/report/reportController.js
View file @
22d92b95
This diff is collapsed.
Click to expand it.
src/main/resources/public/pages/report/reportDetailPage.html
View file @
22d92b95
<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>
</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>
\ No newline at end of file
</div>
src/main/resources/public/pages/report/reportListPage.html
View file @
22d92b95
<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>-->
<!--<!– <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">-->
<!-- <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>–> {{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>
\ No newline at end of file
</div>
src/main/resources/public/pages/report/reportPage.html
View file @
22d92b95
<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>
<th>
Tên dự án
</th>
<th>
Mô tả
</th>
<th>
Thời gian
</th>
<th>
Trạng thái
</th>
<th>
Chọn khoảng thời gian
</th>
<th>
Menu
</th>
</tr>
<tr>
<th>
STT
</th>
<th>
Tên dự án
</th>
<th>
Mô tả
</th>
<th>
Thời gian
</th>
<th>
Trạng thái
</th>
<th>
Chọn khoảng thời gian
</th>
<th>
Menu
</th>
</tr>
</thead>
<tbody>
<form>
<tr
data-ng-repeat=
"pro in projects|filter:search"
>
<td>
{{$index+1}}
</td>
<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
class=
"form-label-group"
>
<!-- <label for="startDate">Ngày Bắt Đầu</label>-->
<td>
{{$index+1}}
</td>
<td>
{{pro.name}}
</td>
<td>
{{pro.descriptions}}
</td>
<td>
{{pro.startDate | date:"dd/MM/yyyy"}}
<br>
--> {{pro.endDate | date:"dd/MM/yyyy"}}
</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>-->
<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"
>
</td>
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>
<a
ui-sref=
"allReport({ID: pro.id})"
class=
"btn btn-warning btn-circle btn-sm"
>
Danh sách báo cáo
</a>
<br>
<a
ui-sref=
"reportEmployeeLack({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>
<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>
<a
ui-sref=
"allReport({ID: pro.id})"
class=
"btn btn-warning btn-circle btn-sm"
>
Danh sách báo cáo
</a>
<br>
<a
ui-sref=
"reportEmployeeLack({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>
</td>
</tr>
</tr>
</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>
\ No newline at end of file
</div>
src/main/resources/public/pages/report/timeSheetListViews.html
View file @
22d92b95
<div
class=
"card mb-3"
>
<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"
>
<thead>
<tr>
<th>
STT
</th>
<th>
Tiêu đề
</th>
<th>
Nội dung
</th>
<th>
Ghi chú
</th>
<th>
Ngày tạo
</th>
<th>
trạng thái duyệt
</th>
<th>
Menu
</th>
</tr>
</thead>
<tbody>
<tr
data-ng-repeat=
"item in timeSheets|filter:search"
>
<td>
{{$index+1}}
</td>
<td>
{{item.title}}
</td>
<td>
{{item.content}}
</td>
<td>
{{item.note}}
</td>
<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=
"unapproved"
>
Chưa duyệt
</option>
<option
value=
"approved"
>
Đã duyệt
</option>
<option
value=
"deny"
>
Từ chối
</option>
</select>
</td>
<td><a
ui-sref=
""
class=
"btn btn-info btn-circle btn-sm"
>
Xem
</a>
<a
ng-click=
"updateTimeSheetChecked(item.id, item.checked)"
class=
"btn btn-warning btn-circle btn-sm"
>
Duyệt
</a>
</td>
</tr>
</tbody>
</table>
<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;"
>
{{timeSheetsMessages.view}}
<table
class=
"table table-bordered"
id=
"dataTable"
width=
"100%"
cellspacing=
"0"
>
<thead>
<tr>
<th>
STT
</th>
<th>
Tiêu đề
</th>
<th>
Nội dung
</th>
<th>
Ghi chú
</th>
<th>
Ngày tạo
</th>
<th>
trạng thái duyệt
</th>
<th>
Menu
</th>
</tr>
</thead>
<tbody>
<tr
data-ng-repeat=
"item in timeSheets|filter:search"
>
<td>
{{$index+1}}
</td>
<td>
{{item.title}}
</td>
<td>
{{item.content}}
</td>
<td>
{{item.note}}
</td>
<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=
"unapproved"
>
Chưa duyệt
</option>
<option
value=
"approved"
>
Đã duyệt
</option>
<option
value=
"deny"
>
Từ chối
</option>
</select>
</td>
<td><a
ui-sref=
""
class=
"btn btn-info btn-circle btn-sm"
>
Xem
</a>
<a
ng-click=
"updateTimeSheetChecked(item.id, item.checked)"
class=
"btn btn-warning btn-circle btn-sm"
>
Duyệt
</a>
</td>
</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>
\ No newline at end of file
</div>
src/main/resources/public/pages/report/timeSheetReport.html
View file @
22d92b95
<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,25 +15,34 @@
<th>
Thời gian kết thúc
</th>
<th>
Trạng thái
</th>
<th>
Menu
</th>
</tr>
</thead>
<tbody>
<tr
data-ng-repeat=
"pro in projects|filter:search"
>
<td>
{{$index+1}}
</td>
<td>
{{pro.name}}
</td>
<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><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>
</td>
</tr>
<tr
data-ng-repeat=
"pro in projects|filter:search"
>
<td>
{{$index+1}}
</td>
<td>
{{pro.name}}
</td>
<td>
{{pro.descriptions}}
</td>
<td>
{{pro.startDate | date:"dd/MM/yyyy"}}
</td>
<td>
{{pro.endDate | date:"dd/MM/yyyy"}}
</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>
</td>
</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>
\ No newline at end of file
</div>
src/main/resources/public/signup.html
View file @
22d92b95
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment