Commit 79a350ba authored by Phạm Duy Phi's avatar Phạm Duy Phi

Merge branch 'master' of https://git.myitsol.com/hieunv/qlns_n01

# Conflicts:
#	src/main/resources/application.properties
#	src/main/resources/public/common/css/all.css
#	src/main/resources/public/common/css/bootstrap-combined.min.css
#	src/main/resources/public/index.html
#	src/main/resources/public/js/angular-resource.js
#	src/main/resources/public/js/app.js
#	src/main/resources/public/layout/layout1.html
parents ca7526a5 e3332b54
package com.itsol.quantrivanphong.manager.project.project.bussiness;
import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO;
import com.itsol.quantrivanphong.model.Project;
import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRepository;
import com.itsol.quantrivanphong.model.Project;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
......
package com.itsol.quantrivanphong.manager.project.project.controller;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import com.itsol.quantrivanphong.manager.project.project.bussiness.ProjectBussiness;
import com.itsol.quantrivanphong.manager.project.project.dto.ProjectDTO;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
......
......@@ -8,7 +8,7 @@ import java.util.List;
public interface ProjectRRepository extends JpaRepository<Project, Integer> {
@Query(value = "SELECT p.id, p.name, p.descriptions, p.start_date, p.end_date, p.status FROM project p where p.status = 2", nativeQuery = true)
@Query(value = "SELECT p.id, p.name, p.descriptions, p.start_date, p.end_date, p.status FROM project p where p.status = 1", nativeQuery = true)
List<Project> listProjectWorking();
@Query(value = "SELECT p.name FROM project p where p.id = ?1", nativeQuery = true)
......
package com.itsol.quantrivanphong.manager.project.projectgroup.bussiness;
import com.itsol.quantrivanphong.model.Project;
import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRepository;
import com.itsol.quantrivanphong.manager.project.projectgroup.common.EmployeeRepositoryImpl;
import com.itsol.quantrivanphong.manager.project.projectgroup.common.ProjectGroupUtils;
import com.itsol.quantrivanphong.manager.project.projectgroup.dto.ProjectGroupDTO;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.manager.project.projectgroup.repository.ProjectGroupRepository;
import com.itsol.quantrivanphong.model.Eproject;
import com.itsol.quantrivanphong.model.Project;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......
package com.itsol.quantrivanphong.manager.project.projectgroup.controller;
import com.itsol.quantrivanphong.manager.project.project.controller.ProjectController;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import com.itsol.quantrivanphong.manager.project.projectgroup.bussiness.ProjectGroupBussiness;
import com.itsol.quantrivanphong.manager.project.projectgroup.dto.ProjectGroupDTO;
import com.itsol.quantrivanphong.report.issue.common.SystemConstants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
......
......@@ -4,7 +4,6 @@ package com.itsol.quantrivanphong.manager.reportdetail.bussiness;
import com.itsol.quantrivanphong.manager.employee.repository.EmployeeRepository;
import com.itsol.quantrivanphong.manager.project.project.repository.ProjectRRepository;
import com.itsol.quantrivanphong.manager.reportdetail.dto.request.ReportDTO;
import com.itsol.quantrivanphong.manager.reportdetail.dto.request.TimesheetRequestDTO;
import com.itsol.quantrivanphong.manager.reportdetail.repository.ProjectReportRepository;
import com.itsol.quantrivanphong.model.*;
import com.itsol.quantrivanphong.report.timesheet.repository.EProjectRepository;
......@@ -45,36 +44,44 @@ public class ReportProjectBussiness {
}
//======================================================================================================================
public List<TimeSheet> findAllTimesheetStatusTrue(ReportDTO reportDTO){
public List<TimeSheet> findAllTimeSheetStatusTrue(int projectId, String currentDate){
List<TimeSheet> timeSheetList = timeSheetRepository.findAllTimesheetStatusTrue(reportDTO.getProjectId(), reportDTO.getCurrentDate());
List<TimeSheet> timeSheetList = timeSheetRepository.findAllTimeSheetStatusTrue(projectId, currentDate);
return timeSheetList;
}
public String updateTimesheetStatus(ReportDTO reportDTO){
public String updateTimeSheetStatus(int projectId, String currentDate){
String mess;
try {
List<Eproject> eprojectList = eProjectRepository.listEprojectLack(reportDTO.getProjectId(), reportDTO.getCurrentDate());
List<Eproject> eprojectList = eProjectRepository.listEprojectLack(projectId, currentDate);
if(eprojectList.isEmpty()){
mess = "Đã khởi tạo những thành viên chưa viết timeSheet rồi";
}else {
List<Integer> list = new ArrayList<>();
for (Eproject eproject: eprojectList) {
for (Eproject eproject : eprojectList) {
list.add(eproject.getId());
}
for (Integer i: list){
timeSheetRepository.updateLack(i,false,"checked");
for (Integer i : list) {
timeSheetRepository.updateLack(i, false, "approved");
}
mess = "Tạo tự động thành công !";
}
mess = "OK !";
}catch (Exception e){
mess = e.getMessage();
}
return mess;
}
public List<Employee> listLackOfReport(int projectId, String currentDate){
List<Employee> employeeList = employeeRepository.listLackOfReport(projectId, currentDate);
return employeeList;
}
public String updateTimesheetChecked(TimesheetRequestDTO timesheetRequestDTO){
public String updateTimeSheetChecked(int timeSheetId, String check){
String mess;
try {
timeSheetRepository.updateTimesheetChecked(timesheetRequestDTO.getChecked(),timesheetRequestDTO.getId());
mess = "OK !";
timeSheetRepository.updateTimeSheetChecked(check, timeSheetId);
mess = "Đã đổi trạng thái thành công !";
}catch (Exception e){
mess = e.getMessage();
}
......@@ -85,24 +92,18 @@ public class ReportProjectBussiness {
public List<ProjectReport> allProjectReport(ReportDTO reportDTO){
public List<ProjectReport> allProjectReport(int projectId){
List<ProjectReport> projectReportList = projectReportRepository.allProjectReport(reportDTO.getProjectId());
if (projectReportList.isEmpty()){
return null;
}else
List<ProjectReport> projectReportList = projectReportRepository.allProjectReport(projectId);
return projectReportList;
}
public ProjectReport latestReport(ReportDTO reportDTO){
public ProjectReport latestReport(int projectId){
return projectReportRepository.latestReport(reportDTO.getProjectId());
return projectReportRepository.latestReport(projectId);
}
public List<Employee> listLackOfReport(ReportDTO reportDTO){
List<Employee> employeeList = employeeRepository.listLackOfReport(reportDTO.getProjectId(), reportDTO.getCurrentDate());
return employeeList;
}
public String insertProjectReport(ReportDTO reportDTO){
String mess;
......@@ -116,11 +117,11 @@ public class ReportProjectBussiness {
projectReport.setLackOfReport(timeSheetRepository.numberEmployeeLack(reportDTO.getProjectId(), reportDTO.getFirstPoint(), reportDTO.getFinalPoint()));
projectReport.setFirstDate(reportDTO.getFirstPoint());
projectReport.setFinalDate(reportDTO.getFinalPoint());
projectReport.setStatus(reportDTO.isStatus());
projectReportRepository.insertProjectReport(projectReport.getProjectName(),projectReport.getTeamLeader(), projectReport.getNumberOfMember(), projectReport.getCalendarEffort(), projectReport.getLackOfReport(), projectReport.isStatus(),reportDTO.getProjectId(), projectReport.getFirstDate(), projectReport.getFinalDate());
mess = "Ok !";
projectReportRepository.insertProjectReport(projectReport.getProjectName(),projectReport.getTeamLeader(), projectReport.getNumberOfMember(), projectReport.getCalendarEffort(), projectReport.getLackOfReport(), reportDTO.getProjectId(), projectReport.getFirstDate(), projectReport.getFinalDate());
mess = "Đã tạo mới báo cáo!";
}catch (Exception e){
mess = e.getMessage();
}
......@@ -129,20 +130,41 @@ public class ReportProjectBussiness {
}
public ProjectReport findProjectReportById(int id){
return projectReportRepository.findById(id);
}
public String deleteProjectReportById(int id){
String mess;
ProjectReport pr = projectReportRepository.findById(id);
if (pr == null){
mess = "Không tìm thấy BC cần xóa";
}else {
projectReportRepository.deleteById(id);
pr = projectReportRepository.findById(id);
if(pr==null){
mess = "Xóa thành công !";
}else {
mess = "Xóa thất bại";
}
}
return mess;
}
//======================================================================================================================
public List<Employee> listEmployeeLack(ReportDTO reportDTO) {
List<Employee> employeeList = employeeRepository.listEmployeeLackOfReport(reportDTO.getFirstPoint(), reportDTO.getFinalPoint(), reportDTO.getProjectId());
public List<Employee> listEmployeeLack(String firstDate, String finalDate, int projectId) {
List<Employee> employeeList = employeeRepository.listEmployeeLackOfReport(firstDate, finalDate, projectId);
return employeeList;
}
public int numberLack(ReportDTO reportDTO){
return employeeRepository.numberLack(reportDTO.getFirstPoint(), reportDTO.getFinalPoint(), reportDTO.getProjectId(), reportDTO.getEmployeeId());
public int numberLack(String firstDate, String finalDate, int projectId, int employeeId){
return employeeRepository.numberLack(firstDate, finalDate, projectId, employeeId);
}
public List<TimeSheet> listDateOfLack(ReportDTO reportDTO) {
List<TimeSheet> timeSheetList = timeSheetRepository.listDateOfLack(reportDTO.getFirstPoint(), reportDTO.getFinalPoint(), reportDTO.getProjectId(), reportDTO.getEmployeeId());
public List<TimeSheet> listDateOfLack(String firstDate, String finalDate, int projectId, int employeeId) {
List<TimeSheet> timeSheetList = timeSheetRepository.listDateOfLack(firstDate,finalDate,projectId, employeeId);
return timeSheetList;
}
......
......@@ -11,14 +11,19 @@ import java.util.List;
public interface ProjectReportRepository extends JpaRepository<ProjectReport, Integer> {
ProjectReport findById(int id);
void deleteById(int id);
@Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC limit 1", nativeQuery = true)
ProjectReport latestReport(int projectId);
@Query(value = "SELECT * FROM project_report pr WHERE pr.project_id = ?1 ORDER BY pr.created_at DESC", nativeQuery = true)
List<ProjectReport> allProjectReport(int projectId);
@Transactional
@Modifying
@Query(value = "INSERT INTO project_report(project_name, team_leader, number_of_members, calendar_effort, lack_of_reports, created_at, updated_at, status, project_id, first_date, final_date) VALUES (?1, ?2, ?3, ?4, ?5, CURRENT_DATE(), CURRENT_DATE() ,?6, ?7, ?8, ?9)",nativeQuery = true)
void insertProjectReport(String projectName, String teamLeader, int NumberOfMember, int CalendarEffort, int LackOfReport, boolean status, int projectId, String firstDate, String finalDate);
@Query(value = "INSERT INTO project_report(project_name, team_leader, number_of_members, calendar_effort, lack_of_reports, created_at, updated_at, project_id, first_date, final_date) VALUES (?1, ?2, ?3, ?4, ?5, CURRENT_DATE(), CURRENT_DATE() ,?6, ?7, ?8)",nativeQuery = true)
void insertProjectReport(String projectName, String teamLeader, int NumberOfMember, int CalendarEffort, int LackOfReport, int projectId, String firstDate, String finalDate);
}
package com.itsol.quantrivanphong.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.itsol.quantrivanphong.model.Employee;
import com.itsol.quantrivanphong.model.TimeSheet;
import com.itsol.quantrivanphong.model.Project;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -34,9 +31,11 @@ public class Eproject {
@Column(name = "out_date",nullable = true)
private Timestamp outDate;
@JsonIgnore
@ManyToOne(fetch = FetchType.EAGER)
private Employee employee;
@JsonIgnore
@ManyToOne(fetch = FetchType.EAGER)
private Project project;
......
......@@ -38,9 +38,6 @@ public class ProjectReport extends DateAudit {
@Column(name = "lack_of_reports")
private int lackOfReport;
@Column(name = "status")
private boolean status;
@Column(name = "first_date")
private String firstDate;
......
package com.itsol.quantrivanphong.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.itsol.quantrivanphong.audit.DateAudit;
import lombok.AllArgsConstructor;
......@@ -39,7 +40,7 @@ public class TimeSheet extends DateAudit {
@Column(name = "status")
private boolean status;
// @JsonIgnore
@JsonIgnore
@ManyToOne(fetch = FetchType.EAGER)
private Eproject eproject;
}
package com.itsol.quantrivanphong.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class notification {
private int status;
private String view;
}
......@@ -6,7 +6,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
......@@ -45,10 +44,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) {
log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
}
return list;
}
......@@ -63,10 +58,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) {
entityManager.getTransaction().rollback();
log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
}
}
......@@ -82,10 +73,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) {
entityManager.getTransaction().rollback();
log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
}
return entity;
}
......@@ -107,10 +94,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) {
entityManager.getTransaction().rollback();
log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
}
return count;
}
......@@ -131,10 +114,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) {
entityManager.getTransaction().rollback();
log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
}
return count;
}
......@@ -151,10 +130,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (Exception e) {
entityManager.getTransaction().rollback();
log.info(e.getMessage());
} finally {
if (entityManager != null) {
entityManager.close();
}
}
return entity;
}
......@@ -181,10 +156,6 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
} catch (HibernateException e) {
entityManager.getTransaction().rollback();
log.info(e.getMessage());
}finally {
if (entityManager != null) {
entityManager.close();
}
}
return list;
}
......@@ -218,27 +189,11 @@ public class AbstractEntityManagerDao<ID extends Serializable, T> implements Gen
}
list = query1.getResultList();
// số phần tử trong list
// StringBuilder sql2 = new StringBuilder("Select count(*) from ");
// sql2.append(getPersistenceClass());
// if (value != null && property != null) {
// sql2.append(" where ").append(property).append("= ?1");
// }
// TypedQuery<T> query2 = entityManager.createQuery(sql2.toString(),persistenceClass);
// if (value != null) {
// query2.setParameter(1,value);
// }
//
//// trả về size
totalItem = finAllEntity().size();
entityManager.getTransaction().commit();
} catch (HibernateException e) {
entityManager.getTransaction().rollback();
} finally {
if (entityManager != null) {
entityManager.close();
}
}
return new Object[]{totalItem, list};
}
......
......@@ -37,7 +37,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
//Timesheet Of Hieunv
@Query(value = "SELECT * FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ep.project_id = ?1 AND ts.status = true and ts.created_at like ?2%", nativeQuery = true)
List<TimeSheet> findAllTimesheetStatusTrue(int projectId, String currentDate);
List<TimeSheet> findAllTimeSheetStatusTrue(int projectId, String currentDate);
@Transactional
......@@ -48,7 +48,7 @@ public interface TimeSheetRepository extends JpaRepository<TimeSheet, Integer> {
@Transactional
@Modifying
@Query(value = "update TimeSheet ts set ts.checked = ?1 where ts.id = ?2", nativeQuery = true)
void updateTimesheetChecked(String checked, int id);
void updateTimeSheetChecked(String checked, int id);
@Query(value = "SELECT Count(DISTINCT ts.eproject_id) FROM timesheet ts JOIN eproject ep ON ep.id = ts.eproject_id WHERE ts.status = false AND ep.project_id = ?1 AND created_at >= ?2 AND created_at <= ?3",nativeQuery = true)
int numberEmployeeLack(int ProjectId, String firstDate, String finalDate);
......
<<<<<<< HEAD
#server.port=8081
# ===============================
# DATABASE CONNECTION
......@@ -17,6 +18,23 @@ spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
#spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
#spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
#server.servlet.session.timeout=30s
=======
server.port=8081
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/quantrivanphong
spring.datasource.username=root
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext
server.servlet.session.timeout=30s
>>>>>>> e3332b54ca974d5c2f7700ae82c5db0b6e52667f
# ===============================
# SEND EMAIL
# ==============================
......
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing.jswing=$.easing.swing;var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});
\ No newline at end of file
......@@ -36,7 +36,15 @@
<!-- <script src="js/angular-route.js"></script>-->
<script src="js/angular-ui-router.min.js"></script>
<script src="js/app.js"></script>
<<<<<<< HEAD
<script src="pages/project/groupproject/groupProjectController.js"></script>
=======
<script src="pages/report/reportController.js"></script>
<script src="pages/employee/employeeController.js"></script>
<!-- <script src="pages/project/projectController.js"></script>-->
<script src="pages/leaveform/leaveFormController.js"></script>
<script src="pages/homepage/homeController.js"></script>
>>>>>>> e3332b54ca974d5c2f7700ae82c5db0b6e52667f
<script src="pages/timesheet/timeSheetController.js"></script>
<script src="pages/leaveform/leaveFormController.js"></script>
<script src="pages/leaveform/leaveFormDetailController.js"></script>
......
This diff is collapsed.
<div class="container" style="text-align: center">
<h1>Chào Mừng bạn đến với trang ADMIN</h1>
</div>
\ No newline at end of file
angular.module("myApp").controller("adminController", function($scope, $http,$window) {
console.log("adminController");
});
\ No newline at end of file
<div class="card card-login mx-auto mt-5">
<div class="card-header">Reset Password</div>
<div class="card-body">
<div class="text-center mb-4">
<h4>Lấy lại mật khẩu bằng Email đăng ký?</h4>
</div>
<form>
<div class="form-group">
<div class="form-label-group">
<input type="email" id="inputEmail" class="form-control" placeholder="Enter email address"
required="required" autofocus="autofocus">
<label for="inputEmail">Enter email address</label>
</div>
</div>
<a class="btn btn-primary btn-block" href="login.html">Reset Password</a>
</form>
<div class="text-center">
<a class="d-block small mt-3" ui-sref="register">Đăng ký tài khoản</a>
<a class="d-block small" ui-sref="login">Đăng Nhập</a>
</div>
</div>
</div>
\ No newline at end of file
<div class="card card-login mx-auto mt-5">
<div class="card-header" style="text-align: center">Đăng Nhập Hệ Thống</div>
<div class="card-body">
<form>
<div class="form-group">
<div class="form-label-group">
<input type="text" id="username" class="form-control" placeholder="Tên Đăng Nhập"
autofocus="autofocus" required>
<label for="username">Tên Đăng Nhập</label>
</div>
</div>
<div class="form-group">
<div class="form-label-group">
<input type="password" id="inputPassword" class="form-control" placeholder="Mật Khẩu"
required="required">
<label for="inputPassword">Mật Khẩu</label>
</div>
</div>
<input class="btn btn-primary btn-block" type="submit" value="Đăng Nhập"/>
</form>
<div class="text-center">
<a class="d-block small mt-3" ui-sref="register">Đăng Ký</a>
<a class="d-block small" ui-sref="forgot-password">Lấy Lại Mật Khẩu?</a>
</div>
</div>
</div>
\ No newline at end of file
angular.module("myApp").controller("loginController", function($scope, $http,$window) {
console.log("loginController");
});
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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