Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mytime
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Narendar Vakiti
mytime
Commits
950a737a
Commit
950a737a
authored
Jun 01, 2018
by
Mahesh Gutam
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[MT-53] Mahesh: Import Employee details from Excel sheet
parent
5c8c121a
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
358 additions
and
94 deletions
+358
-94
build.gradle
build.gradle
+1
-0
ProjectTeamController.java
...va/com/nisum/mytime/controller/ProjectTeamController.java
+3
-3
VisaController.java
...main/java/com/nisum/mytime/controller/VisaController.java
+15
-1
EmployeeRoles.java
src/main/java/com/nisum/mytime/model/EmployeeRoles.java
+71
-29
VisaService.java
src/main/java/com/nisum/mytime/service/VisaService.java
+5
-0
VisaServiceImpl.java
src/main/java/com/nisum/mytime/service/VisaServiceImpl.java
+79
-23
logback-spring.xml
src/main/resources/logback-spring.xml
+30
-0
ExportDataController.js
src/main/webapp/WEB-INF/controllers/ExportDataController.js
+99
-0
LoginController.js
src/main/webapp/WEB-INF/controllers/LoginController.js
+11
-38
exportData.html
src/main/webapp/WEB-INF/templates/exportData.html
+43
-0
index.html
src/main/webapp/WEB-INF/templates/index.html
+1
-0
No files found.
build.gradle
View file @
950a737a
...
@@ -55,5 +55,6 @@ dependencies {
...
@@ -55,5 +55,6 @@ dependencies {
compile
(
'com.itextpdf:itextpdf:5.0.6'
)
compile
(
'com.itextpdf:itextpdf:5.0.6'
)
compile
(
'jcifs:jcifs:1.3.17'
)
compile
(
'jcifs:jcifs:1.3.17'
)
compile
(
'javax.servlet:servlet-api'
)
compile
(
'javax.servlet:servlet-api'
)
compile
(
'com.github.ozlerhakan:poiji:1.11'
)
}
}
\ No newline at end of file
src/main/java/com/nisum/mytime/controller/ProjectTeamController.java
View file @
950a737a
...
@@ -267,17 +267,17 @@ public class ProjectTeamController {
...
@@ -267,17 +267,17 @@ public class ProjectTeamController {
produces
=
MediaType
.
APPLICATION_JSON_VALUE
)
produces
=
MediaType
.
APPLICATION_JSON_VALUE
)
public
ResponseEntity
<
List
<
EmployeeRoles
>>
getEmployeesHavingVisa
(
public
ResponseEntity
<
List
<
EmployeeRoles
>>
getEmployeesHavingVisa
(
@RequestParam
(
"visa"
)
String
visa
)
throws
MyTimeException
{
@RequestParam
(
"visa"
)
String
visa
)
throws
MyTimeException
{
if
(
visa
!=
null
&&
!
visa
.
equalsIgnoreCase
(
"passport"
))
{
if
(
visa
!=
null
&&
!
"passport"
.
equalsIgnoreCase
(
visa
))
{
List
<
EmployeeVisa
>
employeeVisas
=
employeeVisaRepo
List
<
EmployeeVisa
>
employeeVisas
=
employeeVisaRepo
.
findByVisaName
(
visa
);
.
findByVisaName
(
visa
);
List
<
String
>
employeeIds
=
n
ew
ArrayList
()
;
List
<
String
>
employeeIds
=
n
ull
;
List
<
EmployeeRoles
>
employeesRoles
=
new
ArrayList
<>();
List
<
EmployeeRoles
>
employeesRoles
=
new
ArrayList
<>();
if
(
employeeVisas
!=
null
)
{
if
(
employeeVisas
!=
null
)
{
employeeIds
=
employeeVisas
.
stream
()
employeeIds
=
employeeVisas
.
stream
()
.
map
(
EmployeeVisa:
:
getEmployeeId
)
.
map
(
EmployeeVisa:
:
getEmployeeId
)
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
}
}
if
(
employeeIds
!=
null
&&
employeeIds
.
size
()
>
0
)
{
if
(
employeeIds
!=
null
&&
!
employeeIds
.
isEmpty
()
)
{
List
<
EmployeeRoles
>
emps
=
userService
.
getEmployeeRoles
();
List
<
EmployeeRoles
>
emps
=
userService
.
getEmployeeRoles
();
for
(
EmployeeRoles
e
:
emps
)
{
for
(
EmployeeRoles
e
:
emps
)
{
if
(
employeeIds
.
contains
(
e
.
getEmployeeId
()))
{
if
(
employeeIds
.
contains
(
e
.
getEmployeeId
()))
{
...
...
src/main/java/com/nisum/mytime/controller/VisaController.java
View file @
950a737a
...
@@ -9,7 +9,9 @@ import org.springframework.http.ResponseEntity;
...
@@ -9,7 +9,9 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.nisum.mytime.exception.handler.MyTimeException
;
import
com.nisum.mytime.exception.handler.MyTimeException
;
import
com.nisum.mytime.model.EmployeeVisa
;
import
com.nisum.mytime.model.EmployeeVisa
;
...
@@ -17,8 +19,11 @@ import com.nisum.mytime.model.TravelRequest;
...
@@ -17,8 +19,11 @@ import com.nisum.mytime.model.TravelRequest;
import
com.nisum.mytime.model.Visa
;
import
com.nisum.mytime.model.Visa
;
import
com.nisum.mytime.service.VisaService
;
import
com.nisum.mytime.service.VisaService
;
import
lombok.extern.slf4j.Slf4j
;
@RestController
@RestController
@RequestMapping
(
"/visa"
)
@RequestMapping
(
"/visa"
)
@Slf4j
public
class
VisaController
{
public
class
VisaController
{
@Autowired
@Autowired
...
@@ -42,7 +47,7 @@ public class VisaController {
...
@@ -42,7 +47,7 @@ public class VisaController {
EmployeeVisa
visa
=
visaService
.
addEmployeeVisas
(
employeeVisa
);
EmployeeVisa
visa
=
visaService
.
addEmployeeVisas
(
employeeVisa
);
return
new
ResponseEntity
<>(
visa
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
visa
,
HttpStatus
.
OK
);
}
}
@RequestMapping
(
value
=
"/updateEemployeeVisa"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
,
consumes
=
MediaType
.
APPLICATION_JSON_VALUE
)
@RequestMapping
(
value
=
"/updateEemployeeVisa"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
,
consumes
=
MediaType
.
APPLICATION_JSON_VALUE
)
public
ResponseEntity
<
EmployeeVisa
>
updateEemployeeVisa
(
@RequestBody
EmployeeVisa
eVisa
)
throws
MyTimeException
{
public
ResponseEntity
<
EmployeeVisa
>
updateEemployeeVisa
(
@RequestBody
EmployeeVisa
eVisa
)
throws
MyTimeException
{
EmployeeVisa
visa
=
visaService
.
updateEmployeeVisas
(
eVisa
);
EmployeeVisa
visa
=
visaService
.
updateEmployeeVisas
(
eVisa
);
...
@@ -54,6 +59,7 @@ public class VisaController {
...
@@ -54,6 +59,7 @@ public class VisaController {
visaService
.
deleteEmployeeVisas
(
eVisa
);
visaService
.
deleteEmployeeVisas
(
eVisa
);
return
new
ResponseEntity
<>(
"Success"
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
"Success"
,
HttpStatus
.
OK
);
}
}
@RequestMapping
(
value
=
"/getAllTravelRequests"
,
method
=
RequestMethod
.
GET
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
)
@RequestMapping
(
value
=
"/getAllTravelRequests"
,
method
=
RequestMethod
.
GET
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
)
public
ResponseEntity
<
List
<
TravelRequest
>>
getAllTravelRequests
()
throws
MyTimeException
{
public
ResponseEntity
<
List
<
TravelRequest
>>
getAllTravelRequests
()
throws
MyTimeException
{
List
<
TravelRequest
>
employeeVisas
=
visaService
.
getAllTravels
();
List
<
TravelRequest
>
employeeVisas
=
visaService
.
getAllTravels
();
...
@@ -79,4 +85,12 @@ public class VisaController {
...
@@ -79,4 +85,12 @@ public class VisaController {
return
new
ResponseEntity
<>(
"Success"
,
HttpStatus
.
OK
);
return
new
ResponseEntity
<>(
"Success"
,
HttpStatus
.
OK
);
}
}
@RequestMapping
(
value
=
"/fileUpload"
,
method
=
RequestMethod
.
POST
,
produces
=
MediaType
.
APPLICATION_JSON_VALUE
,
consumes
=
MediaType
.
MULTIPART_FORM_DATA_VALUE
)
public
ResponseEntity
<
String
>
exportDataFromFile
(
@RequestParam
(
value
=
"file"
)
MultipartFile
file
)
throws
MyTimeException
{
log
.
info
(
"Uploaded file: {} with size: {}"
,
file
.
getOriginalFilename
(),
file
.
getSize
());
String
result
=
visaService
.
exportDataFromExcelFile
(
file
);
return
new
ResponseEntity
<>(
result
,
HttpStatus
.
OK
);
}
}
}
\ No newline at end of file
src/main/java/com/nisum/mytime/model/EmployeeRoles.java
View file @
950a737a
...
@@ -8,6 +8,8 @@ import org.springframework.data.mongodb.core.mapping.Document;
...
@@ -8,6 +8,8 @@ import org.springframework.data.mongodb.core.mapping.Document;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.format.annotation.DateTimeFormat.ISO
;
import
org.springframework.format.annotation.DateTimeFormat.ISO
;
import
com.poiji.annotation.ExcelCellName
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.NoArgsConstructor
;
...
@@ -22,34 +24,74 @@ import lombok.ToString;
...
@@ -22,34 +24,74 @@ import lombok.ToString;
@Document
(
collection
=
"EmployeeDetails"
)
@Document
(
collection
=
"EmployeeDetails"
)
public
class
EmployeeRoles
implements
Serializable
{
public
class
EmployeeRoles
implements
Serializable
{
/**
/**
*
*
*/
*/
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@Id
@Id
private
String
id
;
private
String
id
;
private
String
employeeId
;
private
String
employeeName
;
@ExcelCellName
(
"Employee ID"
)
private
String
emailId
;
private
String
employeeId
;
private
String
role
;
private
String
designation
;
@ExcelCellName
(
"Employee Name"
)
private
String
shift
;
private
String
employeeName
;
private
String
baseTechnology
;
private
String
domain
;
@ExcelCellName
(
"Email ID"
)
private
String
empLocation
;
private
String
emailId
;
private
String
technologyKnown
;
private
String
mobileNumber
;
@ExcelCellName
(
"Role"
)
private
String
alternateMobileNumber
;
private
String
role
;
private
String
personalEmailId
;
private
String
functionalGroup
;
@ExcelCellName
(
"Designation"
)
private
String
empStatus
;
private
String
designation
;
private
String
employmentType
;
@DateTimeFormat
(
iso
=
ISO
.
DATE
)
@ExcelCellName
(
"Shift"
)
private
Date
dateOfJoining
;
private
String
shift
;
@DateTimeFormat
(
iso
=
ISO
.
DATE
)
private
Date
dateOfBirth
;
@ExcelCellName
(
"Primary Skill"
)
private
Date
createdOn
;
private
String
baseTechnology
;
private
Date
lastModifiedOn
;
@ExcelCellName
(
"Domain"
)
private
String
domain
;
@ExcelCellName
(
"Location"
)
private
String
empLocation
;
@ExcelCellName
(
"Skills"
)
private
String
technologyKnown
;
@ExcelCellName
(
"Primary Mobile"
)
private
String
mobileNumber
;
@ExcelCellName
(
"Alternate Mobile"
)
private
String
alternateMobileNumber
;
@ExcelCellName
(
"Personal Email"
)
private
String
personalEmailId
;
@ExcelCellName
(
"Functional Group"
)
private
String
functionalGroup
;
@ExcelCellName
(
"Employment Status"
)
private
String
empStatus
;
@ExcelCellName
(
"Employment Type"
)
private
String
employmentType
;
@ExcelCellName
(
"Date Of Joining"
)
@DateTimeFormat
(
iso
=
ISO
.
DATE
)
private
Date
dateOfJoining
;
@ExcelCellName
(
"Date Of Birth"
)
@DateTimeFormat
(
iso
=
ISO
.
DATE
)
private
Date
dateOfBirth
;
@ExcelCellName
(
"Created"
)
private
Date
createdOn
;
@ExcelCellName
(
"Last Modified"
)
private
Date
lastModifiedOn
;
}
}
src/main/java/com/nisum/mytime/service/VisaService.java
View file @
950a737a
...
@@ -5,6 +5,9 @@ package com.nisum.mytime.service;
...
@@ -5,6 +5,9 @@ package com.nisum.mytime.service;
import
java.util.List
;
import
java.util.List
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.nisum.mytime.exception.handler.MyTimeException
;
import
com.nisum.mytime.model.EmployeeVisa
;
import
com.nisum.mytime.model.EmployeeVisa
;
import
com.nisum.mytime.model.TravelRequest
;
import
com.nisum.mytime.model.TravelRequest
;
import
com.nisum.mytime.model.Visa
;
import
com.nisum.mytime.model.Visa
;
...
@@ -32,4 +35,6 @@ public interface VisaService {
...
@@ -32,4 +35,6 @@ public interface VisaService {
TravelRequest
updateTravelRequest
(
TravelRequest
e
);
TravelRequest
updateTravelRequest
(
TravelRequest
e
);
void
deleteEmployeeVisas
(
TravelRequest
e
);
void
deleteEmployeeVisas
(
TravelRequest
e
);
String
exportDataFromExcelFile
(
MultipartFile
file
)
throws
MyTimeException
;
}
}
src/main/java/com/nisum/mytime/service/VisaServiceImpl.java
View file @
950a737a
...
@@ -3,49 +3,50 @@
...
@@ -3,49 +3,50 @@
*/
*/
package
com
.
nisum
.
mytime
.
service
;
package
com
.
nisum
.
mytime
.
service
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
javax.mail.MessagingException
;
import
javax.mail.internet.MimeMessage
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.io.FileSystemResource
;
import
org.springframework.data.mongodb.core.FindAndModifyOptions
;
import
org.springframework.core.io.ResourceLoader
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.mail.javamail.JavaMailSender
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.mail.javamail.MimeMessageHelper
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
com.nisum.mytime.model.EmailDomain
;
import
com.nisum.mytime.exception.handler.MyTimeException
;
import
com.nisum.mytime.model.EmployeeRoles
;
import
com.nisum.mytime.model.EmployeeVisa
;
import
com.nisum.mytime.model.EmployeeVisa
;
import
com.nisum.mytime.model.TravelRequest
;
import
com.nisum.mytime.model.TravelRequest
;
import
com.nisum.mytime.model.Visa
;
import
com.nisum.mytime.model.Visa
;
import
com.nisum.mytime.repository.EmployeeRolesRepo
;
import
com.nisum.mytime.repository.EmployeeVisaRepo
;
import
com.nisum.mytime.repository.EmployeeVisaRepo
;
import
com.nisum.mytime.repository.TravelRepo
;
import
com.nisum.mytime.repository.TravelRepo
;
import
com.nisum.mytime.repository.VisaRepo
;
import
com.nisum.mytime.repository.VisaRepo
;
import
com.poiji.bind.Poiji
;
import
com.poiji.exception.PoijiExcelType
;
import
lombok.extern.slf4j.Slf4j
;
/**
/**
* @author nisum
* @author nisum
*
*
*/
*/
@Service
@Service
@Slf4j
public
class
VisaServiceImpl
implements
VisaService
{
public
class
VisaServiceImpl
implements
VisaService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
VisaServiceImpl
.
class
);
@Autowired
@Autowired
private
VisaRepo
visaRepo
;
private
VisaRepo
visaRepo
;
@Autowired
@Autowired
private
TravelRepo
travelRepo
;
private
TravelRepo
travelRepo
;
@Autowired
@Autowired
private
EmployeeVisaRepo
employeeVisaRepo
;
private
EmployeeVisaRepo
employeeVisaRepo
;
@Autowired
private
MongoTemplate
mongoTemplate
;
@Override
@Override
public
List
<
Visa
>
getAllVisas
()
{
public
List
<
Visa
>
getAllVisas
()
{
return
visaRepo
.
findAll
();
return
visaRepo
.
findAll
();
...
@@ -58,40 +59,95 @@ public class VisaServiceImpl implements VisaService {
...
@@ -58,40 +59,95 @@ public class VisaServiceImpl implements VisaService {
@Override
@Override
public
EmployeeVisa
addEmployeeVisas
(
EmployeeVisa
e
)
{
public
EmployeeVisa
addEmployeeVisas
(
EmployeeVisa
e
)
{
// TODO Auto-generated method stub
return
employeeVisaRepo
.
save
(
e
);
return
employeeVisaRepo
.
save
(
e
);
}
}
@Override
@Override
public
EmployeeVisa
updateEmployeeVisas
(
EmployeeVisa
e
)
{
public
EmployeeVisa
updateEmployeeVisas
(
EmployeeVisa
e
)
{
// TODO Auto-generated method stub
return
employeeVisaRepo
.
save
(
e
);
return
employeeVisaRepo
.
save
(
e
);
}
}
@Override
@Override
public
void
deleteEmployeeVisas
(
EmployeeVisa
e
)
{
public
void
deleteEmployeeVisas
(
EmployeeVisa
e
)
{
// TODO Auto-generated method stub
employeeVisaRepo
.
delete
(
e
);
employeeVisaRepo
.
delete
(
e
);
}
}
@Override
@Override
public
List
<
TravelRequest
>
getAllTravels
()
{
public
List
<
TravelRequest
>
getAllTravels
()
{
return
travelRepo
.
findAll
();
return
travelRepo
.
findAll
();
}
}
@Override
@Override
public
TravelRequest
addTravelRequest
(
TravelRequest
e
)
{
public
TravelRequest
addTravelRequest
(
TravelRequest
e
)
{
// TODO Auto-generated method stub
return
travelRepo
.
save
(
e
);
return
travelRepo
.
save
(
e
);
}
}
@Override
@Override
public
TravelRequest
updateTravelRequest
(
TravelRequest
e
)
{
public
TravelRequest
updateTravelRequest
(
TravelRequest
e
)
{
// TODO Auto-generated method stub
return
travelRepo
.
save
(
e
);
return
travelRepo
.
save
(
e
);
}
}
@Override
@Override
public
void
deleteEmployeeVisas
(
TravelRequest
e
)
{
public
void
deleteEmployeeVisas
(
TravelRequest
e
)
{
// TODO Auto-generated method stub
travelRepo
.
delete
(
e
);
travelRepo
.
delete
(
e
);
}
}
@Override
public
String
exportDataFromExcelFile
(
MultipartFile
file
)
throws
MyTimeException
{
String
result
=
"Failure"
;
int
counter
=
0
;
try
{
List
<
EmployeeRoles
>
employees
=
Poiji
.
fromExcel
(
file
.
getInputStream
(),
PoijiExcelType
.
XLS
,
EmployeeRoles
.
class
);
if
(!
employees
.
isEmpty
())
{
for
(
EmployeeRoles
employee:
employees
){
if
(
null
!=
employee
.
getEmployeeId
())
findAndModifyEmployeeRole
(
employee
);
else
counter
++;
}
if
(
counter
==
0
){
result
=
"Success"
;
log
.
info
(
"Exported {} employee records from file: {}"
,
employees
.
size
(),
file
.
getOriginalFilename
());
}
else
{
log
.
info
(
"Uploaded file: {}, does not contain valid employee records"
,
file
.
getOriginalFilename
());
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"Exception occured while exporting the data from excel file due to: {}"
,
e
);
throw
new
MyTimeException
(
""
);
}
return
result
;
}
private
void
findAndModifyEmployeeRole
(
EmployeeRoles
employee
)
{
Query
query
=
new
Query
(
Criteria
.
where
(
"employeeId"
).
is
(
employee
.
getEmployeeId
()))
.
addCriteria
(
Criteria
.
where
(
"emailId"
).
is
(
employee
.
getEmailId
()));
Update
update
=
new
Update
();
update
.
set
(
"employeeId"
,
employee
.
getEmployeeId
());
update
.
set
(
"employeeName"
,
employee
.
getEmployeeName
());
update
.
set
(
"emailId"
,
employee
.
getEmailId
());
update
.
set
(
"role"
,
employee
.
getRole
());
update
.
set
(
"functionalGroup"
,
employee
.
getFunctionalGroup
());
update
.
set
(
"empStatus"
,
employee
.
getEmpStatus
());
update
.
set
(
"employmentType"
,
employee
.
getEmploymentType
());
update
.
set
(
"empLocation"
,
employee
.
getEmpLocation
());
update
.
set
(
"domain"
,
employee
.
getDomain
());
update
.
set
(
"designation"
,
employee
.
getDesignation
());
update
.
set
(
"dateOfBirth"
,
employee
.
getDateOfBirth
());
update
.
set
(
"dateOfJoining"
,
employee
.
getDateOfJoining
());
update
.
set
(
"shift"
,
employee
.
getShift
());
update
.
set
(
"baseTechnology"
,
employee
.
getBaseTechnology
());
update
.
set
(
"technologyKnown"
,
employee
.
getTechnologyKnown
());
update
.
set
(
"mobileNumber"
,
employee
.
getMobileNumber
());
update
.
set
(
"alternateMobileNumber"
,
employee
.
getAlternateMobileNumber
());
update
.
set
(
"personalEmailId"
,
employee
.
getPersonalEmailId
());
update
.
set
(
"createdOn"
,
new
Date
());
update
.
set
(
"lastModifiedOn"
,
new
Date
());
FindAndModifyOptions
options
=
new
FindAndModifyOptions
();
options
.
returnNew
(
true
);
options
.
upsert
(
true
);
mongoTemplate
.
findAndModify
(
query
,
update
,
options
,
EmployeeRoles
.
class
);
log
.
info
(
"Inserted Employee record with Id: {}"
,
employee
.
getEmployeeId
());
}
}
}
src/main/resources/logback-spring.xml
0 → 100644
View file @
950a737a
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender
name=
"stdout"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder>
<springProfile
name=
"test,dev"
>
<pattern>
%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n
</pattern>
</springProfile>
<springProfile
name=
"stage"
>
<pattern>
%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n
</pattern>
</springProfile>
<springProfile
name=
"prod"
>
<pattern>
%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n
</pattern>
</springProfile>
<!-- If no active profile is set-->
<springProfile
name=
"default"
>
<pattern>
%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n
</pattern>
</springProfile>
</encoder>
</appender>
<springProfile
name=
"test,stage,dev,default"
>
<root
level=
"INFO"
>
<appender-ref
ref=
"stdout"
/>
</root>
</springProfile>
<springProfile
name=
"prod"
>
<root
level=
"DEBUG"
>
<appender-ref
ref=
"stdout"
/>
</root>
</springProfile>
</configuration>
\ No newline at end of file
src/main/webapp/WEB-INF/controllers/ExportDataController.js
0 → 100644
View file @
950a737a
myApp
.
directive
(
'fileModel'
,
[
'$parse'
,
function
(
$parse
)
{
return
{
restrict
:
'A'
,
link
:
function
(
scope
,
element
,
attrs
)
{
var
model
=
$parse
(
attrs
.
fileModel
);
var
modelSetter
=
model
.
assign
;
element
.
bind
(
'change'
,
function
()
{
scope
.
$apply
(
function
()
{
modelSetter
(
scope
,
element
[
0
].
files
[
0
]);
});
});
}
};
}
])
.
controller
(
'exportDataController'
,
function
(
$scope
,
myFactory
,
$mdDialog
,
$http
,
appConfig
,
$timeout
)
{
$scope
.
file
=
''
;
$scope
.
refreshPage
=
function
()
{
$scope
.
file
=
''
;
$
(
'#upload-file-info'
).
html
(
""
);
}
$scope
.
uploadFiles
=
function
()
{
var
file
=
$scope
.
file
;
if
(
file
==
""
||
file
.
length
==
0
)
{
showAlert
(
'Please choose a file to import data...'
);
$scope
.
refreshPage
();
}
else
if
(
file
.
name
.
indexOf
(
".xls"
)
==
-
1
)
{
showAlert
(
"Please choose an excel file to import data"
);
$scope
.
refreshPage
();
}
else
{
showProgressDialog
(
'Please wait while data is imported from file...!!!'
);
var
formData
=
new
FormData
();
formData
.
append
(
'file'
,
file
);
$http
.
post
(
appConfig
.
appUri
+
"visa/fileUpload"
,
formData
,
{
transformRequest
:
angular
.
identity
,
headers
:
{
'Content-Type'
:
undefined
},
transformResponse
:
[
function
(
data
)
{
return
data
;
}
]
})
.
then
(
function
mySuccess
(
response
)
{
$mdDialog
.
hide
();
console
.
log
(
response
.
data
);
if
(
response
.
data
==
"Success"
)
showAlert
(
'Data imported from file successfully.'
);
else
if
(
response
.
data
==
"Failure"
)
showAlert
(
'Uploaded file does not contain valid employee data...!!!'
);
$scope
.
refreshPage
();
},
function
myError
(
response
)
{
$mdDialog
.
hide
();
console
.
log
(
response
);
showAlert
(
'Something went wrong while importing the data from file...'
);
$scope
.
refreshPage
();
});
}
}
function
showAlert
(
message
)
{
$mdDialog
.
show
(
$mdDialog
.
alert
().
parent
(
angular
.
element
(
document
.
querySelector
(
'#popupContainer'
)))
.
clickOutsideToClose
(
true
).
textContent
(
message
)
.
ariaLabel
(
'Alert Dialog'
).
ok
(
'Ok'
));
}
function
showProgressDialog
(
msg
)
{
$mdDialog
.
show
({
templateUrl
:
'templates/progressDialog.html'
,
controller
:
ProgressController
,
parent
:
angular
.
element
(
document
.
body
),
clickOutsideToClose
:
false
,
locals
:
{
dataToPass
:
msg
}
});
}
function
ProgressController
(
$scope
,
dataToPass
)
{
$scope
.
progressText
=
dataToPass
;
}
});
\ No newline at end of file
src/main/webapp/WEB-INF/controllers/LoginController.js
View file @
950a737a
...
@@ -8,9 +8,6 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
...
@@ -8,9 +8,6 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
var
profile
=
googleUser
.
getBasicProfile
();
var
profile
=
googleUser
.
getBasicProfile
();
getUserRole
(
profile
);
getUserRole
(
profile
);
getAllUserRoles
();
getAllUserRoles
();
//getAllShifts();
//getAllDesignations();
// getAllTechnologies();
getAllLocations
();
getAllLocations
();
getAllAccounts
();
getAllAccounts
();
getMasterData
();
getMasterData
();
...
@@ -60,34 +57,7 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
...
@@ -60,34 +57,7 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
$scope
.
rolesData
=
[];
$scope
.
rolesData
=
[];
});
});
};
};
function
getAllShifts
(){
$http
({
method
:
"GET"
,
url
:
appConfig
.
appUri
+
"user/getAllShifts"
}).
then
(
function
mySuccess
(
response
)
{
myFactory
.
setShifts
(
response
.
data
);
},
function
myError
(
response
)
{
});
};
function
getAllDesignations
(){
$http
({
method
:
"GET"
,
url
:
appConfig
.
appUri
+
"user/getAllDesignations"
}).
then
(
function
mySuccess
(
response
)
{
myFactory
.
setDesignations
(
response
.
data
);
},
function
myError
(
response
)
{
});
};
function
getAllTechnologies
(){
$http
({
method
:
"GET"
,
url
:
appConfig
.
appUri
+
"user/getSkills"
}).
then
(
function
mySuccess
(
response
)
{
myFactory
.
setTechnologies
(
response
.
data
);
},
function
myError
(
response
)
{
});
};
function
getMasterData
(){
function
getMasterData
(){
$http
({
$http
({
method
:
"GET"
,
method
:
"GET"
,
...
@@ -282,7 +252,8 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
...
@@ -282,7 +252,8 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
menuItems
.
push
({
"menu"
:
"ReSync Data"
,
"icon"
:
"fa fa-recycle fa-2x"
,
"path"
:
"templates/resyncData.html"
});
menuItems
.
push
({
"menu"
:
"ReSync Data"
,
"icon"
:
"fa fa-recycle fa-2x"
,
"path"
:
"templates/resyncData.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/profile.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-book-o fa-2x"
,
"path"
:
"templates/profile.html"
});
menuItems
.
push
({
"menu"
:
"Import Data"
,
"icon"
:
"fa fa-upload fa-2x"
,
"path"
:
"templates/exportData.html"
});
}
else
if
(
role
==
"Manager"
){
}
else
if
(
role
==
"Manager"
){
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"Reportee Details"
,
"icon"
:
"fa fa-users fa-2x"
,
"path"
:
"templates/reportees.html"
});
menuItems
.
push
({
"menu"
:
"Reportee Details"
,
"icon"
:
"fa fa-users fa-2x"
,
"path"
:
"templates/reportees.html"
});
...
@@ -290,7 +261,7 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
...
@@ -290,7 +261,7 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
menuItems
.
push
({
"menu"
:
"View Projects"
,
"icon"
:
"fa fa-tasks fa-2x"
,
"path"
:
"templates/viewProjects.html"
});
menuItems
.
push
({
"menu"
:
"View Projects"
,
"icon"
:
"fa fa-tasks fa-2x"
,
"path"
:
"templates/viewProjects.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-
card
-o fa-2x"
,
"path"
:
"templates/profile.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-
book
-o fa-2x"
,
"path"
:
"templates/profile.html"
});
}
else
if
(
role
==
"HR Manager"
){
}
else
if
(
role
==
"HR Manager"
){
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"Employee Login Details"
,
"icon"
:
"fa fa-users fa-2x"
,
"path"
:
"templates/employees.html"
});
menuItems
.
push
({
"menu"
:
"Employee Login Details"
,
"icon"
:
"fa fa-users fa-2x"
,
"path"
:
"templates/employees.html"
});
...
@@ -302,14 +273,15 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
...
@@ -302,14 +273,15 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
menuItems
.
push
({
"menu"
:
"Shift Details"
,
"icon"
:
"fa fa-superpowers fa-2x"
,
"path"
:
"templates/shiftdetails.html"
});
menuItems
.
push
({
"menu"
:
"Shift Details"
,
"icon"
:
"fa fa-superpowers fa-2x"
,
"path"
:
"templates/shiftdetails.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/profile.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-book-o fa-2x"
,
"path"
:
"templates/profile.html"
});
menuItems
.
push
({
"menu"
:
"Import Data"
,
"icon"
:
"fa fa-upload fa-2x"
,
"path"
:
"templates/exportData.html"
});
}
else
if
(
role
==
"Lead"
){
}
else
if
(
role
==
"Lead"
){
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"Reportee Details"
,
"icon"
:
"fa fa-users fa-2x"
,
"path"
:
"templates/reportees.html"
});
menuItems
.
push
({
"menu"
:
"Reportee Details"
,
"icon"
:
"fa fa-users fa-2x"
,
"path"
:
"templates/reportees.html"
});
menuItems
.
push
({
"menu"
:
"Manage Team"
,
"icon"
:
"fa fa-sitemap fa-2x"
,
"path"
:
"templates/projectDetails.html"
});
menuItems
.
push
({
"menu"
:
"Manage Team"
,
"icon"
:
"fa fa-sitemap fa-2x"
,
"path"
:
"templates/projectDetails.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-
card
-o fa-2x"
,
"path"
:
"templates/profile.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-
book
-o fa-2x"
,
"path"
:
"templates/profile.html"
});
}
else
if
(
role
==
"Delivery Manager"
||
role
==
"Director"
){
}
else
if
(
role
==
"Delivery Manager"
||
role
==
"Director"
){
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"Employee Login Details"
,
"icon"
:
"fa fa-users fa-2x"
,
"path"
:
"templates/employees.html"
});
menuItems
.
push
({
"menu"
:
"Employee Login Details"
,
"icon"
:
"fa fa-users fa-2x"
,
"path"
:
"templates/employees.html"
});
...
@@ -321,16 +293,17 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
...
@@ -321,16 +293,17 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
menuItems
.
push
({
"menu"
:
"Manage Travels"
,
"icon"
:
"fa fa-tasks fa-2x"
,
"path"
:
"templates/onsiteTravelsList.html"
});
menuItems
.
push
({
"menu"
:
"Manage Travels"
,
"icon"
:
"fa fa-tasks fa-2x"
,
"path"
:
"templates/onsiteTravelsList.html"
});
menuItems
.
push
({
"menu"
:
"Attendance Report"
,
"icon"
:
"fa fa-bar-chart fa-2x"
,
"path"
:
"templates/attendanceReport.html"
});
menuItems
.
push
({
"menu"
:
"Attendance Report"
,
"icon"
:
"fa fa-bar-chart fa-2x"
,
"path"
:
"templates/attendanceReport.html"
});
menuItems
.
push
({
"menu"
:
"Shift Details"
,
"icon"
:
"fa fa-superpowers fa-2x"
,
"path"
:
"templates/shiftdetails.html"
});
menuItems
.
push
({
"menu"
:
"Shift Details"
,
"icon"
:
"fa fa-superpowers fa-2x"
,
"path"
:
"templates/shiftdetails.html"
});
menuItems
.
push
({
"menu"
:
"Dashboard"
,
"icon"
:
"fa fa-
life-ring
fa-2x"
,
"path"
:
"templates/dashboard.html"
});
menuItems
.
push
({
"menu"
:
"Dashboard"
,
"icon"
:
"fa fa-
television
fa-2x"
,
"path"
:
"templates/dashboard.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/profile.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-book-o fa-2x"
,
"path"
:
"templates/profile.html"
});
menuItems
.
push
({
"menu"
:
"Import Data"
,
"icon"
:
"fa fa-upload fa-2x"
,
"path"
:
"templates/exportData.html"
});
}
else
{
}
else
{
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"My Details"
,
"icon"
:
"fa fa-indent fa-2x"
,
"path"
:
"templates/employee.html"
});
menuItems
.
push
({
"menu"
:
"My Team"
,
"icon"
:
"fa fa-futbol-o fa-2x"
,
"path"
:
"templates/myTeam.html"
});
menuItems
.
push
({
"menu"
:
"My Team"
,
"icon"
:
"fa fa-futbol-o fa-2x"
,
"path"
:
"templates/myTeam.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Project Allocations"
,
"icon"
:
"fa fa-life-ring fa-2x"
,
"path"
:
"templates/myProjectAllocations.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Org"
,
"icon"
:
"fa fa-address-card-o fa-2x"
,
"path"
:
"templates/myOrg.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-
card
-o fa-2x"
,
"path"
:
"templates/profile.html"
});
menuItems
.
push
({
"menu"
:
"My Profile"
,
"icon"
:
"fa fa-address-
book
-o fa-2x"
,
"path"
:
"templates/profile.html"
});
}
}
myFactory
.
setMenuItems
(
menuItems
);
myFactory
.
setMenuItems
(
menuItems
);
...
...
src/main/webapp/WEB-INF/templates/exportData.html
0 → 100644
View file @
950a737a
<div
class=
"md-padding"
style=
"width: 100%; padding: 3px 0px 0px 0px;"
id=
"popupContainer"
ng-controller=
"exportDataController"
>
<div
class=
"container-fluid mainDivHeaderClass"
>
<div
class=
"row"
>
<div
class=
"col-lg-12"
>
<p
align=
"center"
class=
"col-xs-11"
style=
"vertical-align: middle; font-weight: bold; font-size: 30px;"
>
Import Employee Data
</p>
<p
align=
"right"
class=
"col-xs-1"
style=
"vertical-align: middle; font-weight: bold; font-size: 1.5em; margin-top: 8px; cursor: pointer;"
>
<i
class=
"fa fa-refresh"
aria-hidden=
"true"
ng-click=
"refreshPage()"
></i>
</p>
</div>
<div
class=
"clearfix"
></div>
</div>
</div>
<div
class=
"form-horizontal"
>
<div
class=
"form-group"
style=
"padding-left: 10px;"
>
<div
class=
"form-inline col-lg-12"
style=
"margin-left: 22%; margin-top: 5%;"
>
<div
class=
"form-group col-lg-4"
>
<a
class=
"btn btn-primary"
href=
'javascript:;'
style=
"background: cadetblue;border-color:cadetblue; margin-top: 1%;"
>
Choose File...
<input
type=
"file"
file-model=
"file"
style=
"position: absolute; z-index: 2; top: 0; left: 0; filter: alpha(opacity = 0); -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); opacity: 0; background-color: transparent; color: transparent;"
name=
"file_source"
onchange=
"$('#upload-file-info').html($(this).val());"
>
</a>
<span
class=
'label label-info'
id=
"upload-file-info"
></span>
</div>
<div
class=
"form-group col-lg-1"
></div>
<div
class=
"form-group col-lg-1"
>
<label
class=
""
for=
"submitBtn"
><md-button
class=
"md-raised md-primary"
style=
"width:120px;background: cadetblue;"
ng-click=
"uploadFiles()"
>
<i
class=
"fa fa-upload fa-2x"
style=
"margin-top: 5px; font-size: 1.5em; float: left"
></i>
Import Data
</md-button></label>
</div>
</div>
</div>
</div>
</div>
src/main/webapp/WEB-INF/templates/index.html
View file @
950a737a
...
@@ -69,6 +69,7 @@
...
@@ -69,6 +69,7 @@
<script
src=
"controllers/VisaController.js"
></script>
<script
src=
"controllers/VisaController.js"
></script>
<script
src=
"controllers/TravelController.js"
></script>
<script
src=
"controllers/TravelController.js"
></script>
<script
src=
"controllers/SessionHandlerController.js"
></script>
<script
src=
"controllers/SessionHandlerController.js"
></script>
<script
src=
"controllers/ExportDataController.js"
></script>
</head>
</head>
<body>
<body>
<ng-include
src=
"'templates/login.html'"
id=
"home"
></ng-include>
<ng-include
src=
"'templates/login.html'"
id=
"home"
></ng-include>
...
...
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