Commit 483f0e7d 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/public/index.html
#	src/main/resources/public/js/app.js
parents ee2fc955 14cbe76c
...@@ -2,16 +2,20 @@ package com.itsol.quantrivanphong; ...@@ -2,16 +2,20 @@ package com.itsol.quantrivanphong;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Bean;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing; import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.web.filter.ShallowEtagHeaderFilter;
@SpringBootApplication @SpringBootApplication
@EnableJpaAuditing @EnableJpaAuditing
//@ComponentScan(basePackages = {"com.itsol.quantrivanphong.report.timesheet.controller", "com.itsol.quantrivanphong.report.timesheet.business"})
public class QuantrivanphongApplication { public class QuantrivanphongApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(QuantrivanphongApplication.class, args); SpringApplication.run(QuantrivanphongApplication.class, args);
} }
@Bean
public ShallowEtagHeaderFilter shallowEtagHeaderFilter() {
return new ShallowEtagHeaderFilter();
}
} }
package com.itsol.quantrivanphong.manager.employee.business; package com.itsol.quantrivanphong.manager.employee.business;
import com.itsol.quantrivanphong.model.Employee; import com.itsol.quantrivanphong.model.Employee;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.validation.Validator; import org.springframework.validation.Validator;
import java.util.List; import java.util.List;
public interface EmployeeBusiness extends Validator { public interface EmployeeBusiness extends Validator {
List<Employee> findAll(); List<Employee> findAll();
...@@ -21,4 +24,8 @@ public interface EmployeeBusiness extends Validator { ...@@ -21,4 +24,8 @@ public interface EmployeeBusiness extends Validator {
void deleteById(int id); void deleteById(int id);
boolean confirmEmployee(Employee employee); boolean confirmEmployee(Employee employee);
public Page<Employee> findAll(Pageable pageable);
} }
...@@ -4,6 +4,8 @@ import com.itsol.quantrivanphong.manager.employee.business.EmployeeBusiness; ...@@ -4,6 +4,8 @@ import com.itsol.quantrivanphong.manager.employee.business.EmployeeBusiness;
import com.itsol.quantrivanphong.manager.employee.repository.EmployeeRepository; import com.itsol.quantrivanphong.manager.employee.repository.EmployeeRepository;
import com.itsol.quantrivanphong.model.Employee; import com.itsol.quantrivanphong.model.Employee;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.Errors; import org.springframework.validation.Errors;
...@@ -15,7 +17,8 @@ public class EmployeeBusinessImpl implements EmployeeBusiness { ...@@ -15,7 +17,8 @@ public class EmployeeBusinessImpl implements EmployeeBusiness {
private EmployeeRepository employeeRepository; private EmployeeRepository employeeRepository;
@Override @Override
public List<Employee> findAll() { public List<Employee> findAll()
{
return employeeRepository.findAll(); return employeeRepository.findAll();
} }
...@@ -54,6 +57,12 @@ public class EmployeeBusinessImpl implements EmployeeBusiness { ...@@ -54,6 +57,12 @@ public class EmployeeBusinessImpl implements EmployeeBusiness {
return true; return true;
} }
@Override
public Page<Employee> findAll(Pageable pageable) {
return employeeRepository.findAll(pageable);
}
@Override @Override
public boolean supports(Class<?> clazz) { public boolean supports(Class<?> clazz) {
return Employee.class.isAssignableFrom(clazz); return Employee.class.isAssignableFrom(clazz);
......
package com.itsol.quantrivanphong.manager.employee.controller; package com.itsol.quantrivanphong.manager.employee.controller;
import com.itsol.quantrivanphong.exception.ResourceNotFoundException;
import com.itsol.quantrivanphong.manager.employee.business.EmployeeBusiness; import com.itsol.quantrivanphong.manager.employee.business.EmployeeBusiness;
import com.itsol.quantrivanphong.manager.employee.util.PaginationUtil;
import com.itsol.quantrivanphong.model.Employee; import com.itsol.quantrivanphong.model.Employee;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -12,32 +15,27 @@ import org.springframework.web.util.UriComponentsBuilder; ...@@ -12,32 +15,27 @@ import org.springframework.web.util.UriComponentsBuilder;
import java.util.List; import java.util.List;
@RestController @RestController
public class EmployeeController { public class EmployeeController {
Logger logger = Logger.getLogger(EmployeeController.class);
@Autowired @Autowired
//Retrieve Employee by id //Retrieve Employee by id
private EmployeeBusiness employeeBusiness; private EmployeeBusiness employeeBusiness;
// @RequestMapping(value = "/employee/{id}", method = RequestMethod.GET) @RequestMapping(value = "/employee/{id}", method = RequestMethod.GET)
// public ResponseEntity<Employee> getEmployee(@PathVariable("id") int id) { public ResponseEntity<Employee> getEmployee(@PathVariable("id") int id) {
// System.out.println("Fetching employee with id " + id); System.out.println("Fetching employee with id " + id);
// Employee employee = employeeBusiness.findById(id); Employee employee = employeeBusiness.findById(id);
// if (employee == null) { if (employee == null) {
// System.out.println("Employee with id : " + id + " not found"); System.out.println("Employee with id : " + id + " not found");
// return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND); return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND);
// }
// return new ResponseEntity<Employee>( employee ,HttpStatus.OK);
// }
@GetMapping("/employee/{empId}")
public Employee getEmployee(@PathVariable(value = "empId") int empId){
Employee employee = employeeBusiness.findById(empId);
if(employee == null) {
throw new ResourceNotFoundException("Employee", "empId", empId);
} }
return employee; return new ResponseEntity<Employee>(employee, HttpStatus.OK);
} }
//Retrieve all employee //Retrieve all employee
@RequestMapping(value = "/list_employee", method = RequestMethod.GET) @RequestMapping(value = "/list_employee", method = RequestMethod.GET)
public ResponseEntity<List<Employee>> listAllEmployee() { public ResponseEntity<List<Employee>> listAllEmployee() {
...@@ -45,7 +43,7 @@ public class EmployeeController { ...@@ -45,7 +43,7 @@ public class EmployeeController {
if (employees == null) { if (employees == null) {
return new ResponseEntity<List<Employee>>(HttpStatus.NO_CONTENT); return new ResponseEntity<List<Employee>>(HttpStatus.NO_CONTENT);
} }
return new ResponseEntity<List<Employee>>( employees , null ,HttpStatus.OK); return new ResponseEntity<List<Employee>>(employees, null, HttpStatus.OK);
} }
//Update a Employee //Update a Employee
...@@ -73,26 +71,27 @@ public class EmployeeController { ...@@ -73,26 +71,27 @@ public class EmployeeController {
currentEmployee.setGraduationYear(employee.getGraduationYear()); currentEmployee.setGraduationYear(employee.getGraduationYear());
currentEmployee.setPicture(employee.getPicture()); currentEmployee.setPicture(employee.getPicture());
employeeBusiness.save(currentEmployee); employeeBusiness.save(currentEmployee);
return new ResponseEntity<Employee>( currentEmployee ,HttpStatus.OK); return new ResponseEntity<Employee>(currentEmployee, HttpStatus.OK);
} }
//Create a Employee //Create a Employee
@RequestMapping(value = "/list_employee", method = RequestMethod.POST) @RequestMapping(value = "/list_employee", method = RequestMethod.POST)
public ResponseEntity<Void> createEmployee(@RequestBody Employee employee, public ResponseEntity<Void> createEmployee(@RequestBody Employee employee,
UriComponentsBuilder uriComponentsBuilder){ UriComponentsBuilder uriComponentsBuilder) {
System.out.println("Create Employee "+ employee.getUsername()); System.out.println("Create Employee " + employee.getUsername());
employeeBusiness.save(employee); employeeBusiness.save(employee);
HttpHeaders httpHeaders = new HttpHeaders(); HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setLocation(uriComponentsBuilder.path("/employee/{id}").buildAndExpand(employee.getId()).toUri()); httpHeaders.setLocation(uriComponentsBuilder.path("/employee/{id}").buildAndExpand(employee.getId()).toUri());
return new ResponseEntity<Void>( httpHeaders ,HttpStatus.CREATED); return new ResponseEntity<Void>(httpHeaders, HttpStatus.CREATED);
} }
//Delete a Employee //Delete a Employee
@RequestMapping(value = "/employee/{id}" , method = RequestMethod.DELETE) @RequestMapping(value = "/employee/{id}", method = RequestMethod.DELETE)
public ResponseEntity<Employee> deleteEmployee(@PathVariable("id") int id){ public ResponseEntity<Employee> deleteEmployee(@PathVariable("id") int id) {
System.out.println("Fetching and deleting Employee with id :" + id ); System.out.println("Fetching and deleting Employee with id :" + id);
Employee employee = employeeBusiness.findById(id); Employee employee = employeeBusiness.findById(id);
if(employee == null) { if (employee == null) {
System.out.println("Unable to delete. Employee with id :" + id + "not found"); System.out.println("Unable to delete. Employee with id :" + id + "not found");
return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND); return new ResponseEntity<Employee>(HttpStatus.NOT_FOUND);
...@@ -101,5 +100,15 @@ public class EmployeeController { ...@@ -101,5 +100,15 @@ public class EmployeeController {
return new ResponseEntity<Employee>(HttpStatus.NO_CONTENT); return new ResponseEntity<Employee>(HttpStatus.NO_CONTENT);
} }
// paging
@RequestMapping( value ="/paging_employee",params = {"page","size"}, method = RequestMethod.GET)
public ResponseEntity<List<Employee>> getAllEmployee(Pageable pageable) {
logger.info("Rest request to get a page of Employee");
Page<Employee> page = employeeBusiness.findAll(pageable);
HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/paging_employee");
return ResponseEntity.ok().headers(headers).body(page.getContent());
}
} }
package com.itsol.quantrivanphong.manager.employee.repository; package com.itsol.quantrivanphong.manager.employee.repository;
import com.itsol.quantrivanphong.model.Employee; import com.itsol.quantrivanphong.model.Employee;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -16,7 +18,7 @@ public interface EmployeeRepository extends JpaRepository<Employee,Integer > { ...@@ -16,7 +18,7 @@ public interface EmployeeRepository extends JpaRepository<Employee,Integer > {
public Employee findEmployeeByUsernameAndPassword(String username, String password); public Employee findEmployeeByUsernameAndPassword(String username, String password);
Employee findByEmailAddress(String emailAddress); Employee findByEmailAddress(String emailAddress);
Page<Employee> findByFirstName(String firstName, Pageable pageable);
//================================================================================================================== //==================================================================================================================
......
package com.itsol.quantrivanphong.manager.employee.util;
import org.springframework.data.domain.Page;
import org.springframework.http.HttpHeaders;
import org.springframework.web.util.UriComponentsBuilder;
public final class PaginationUtil {
private PaginationUtil() {
}
public static HttpHeaders generatePaginationHttpHeaders(Page page, String baseUrl) {
HttpHeaders headers = new HttpHeaders();
headers.add("X-Total-Count", "" + Long.toString(page.getTotalElements()));
String link = "";
if ((page.getNumber() + 1) < page.getTotalPages()) {
link = "<" + generateUri(baseUrl, page.getNumber() + 1, page.getSize()) + ">; rel=\"next\",";
}
// prev link
if ((page.getNumber()) > 0) {
link += "<" + generateUri(baseUrl, page.getNumber() - 1, page.getSize()) + ">; rel=\"prev\",";
}
// last and first link
int lastPage = 0;
if (page.getTotalPages() > 0) {
lastPage = page.getTotalPages() - 1;
}
link += "<" + generateUri(baseUrl, lastPage, page.getSize()) + ">; rel=\"last\",";
link += "<" + generateUri(baseUrl, 0, page.getSize()) + ">; rel=\"first\"";
headers.add(HttpHeaders.LINK, link);
return headers;
}
private static String generateUri(String baseUrl, int page, int size) {
return UriComponentsBuilder.fromUriString(baseUrl).queryParam("page", page).queryParam("size", size).toUriString();
}
}
<<<<<<< HEAD server.port=8081
## Spring DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/quantrivanphong?useSSL=false
spring.datasource.username = root
spring.datasource.password = vanloc
dataSource.setUsername(System.getProperty("root"));
## Hibernate Properties
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = update
###### Email Properties ######
spring.mail.host = smtp.gmail.com
spring.mail.port = 587
spring.mail.properties.mail.smtp.starttls.enable = true
spring.mail.username = nguyenlocxtnd@gmail.com
spring.mail.password = Nguyenvanloc19951995
spring.mail.properties.mail.smtp.starttls.required = true
spring.mail.properties.mail.smtp.auth = true
spring.mail.properties.mail.smtp.connectiontimeout = 5000
spring.mail.properties.mail.smtp.timeout = 5000
spring.mail.properties.mail.smtp.writetimeout = 5000
We are using the Gmail SMTP server for this exam
=======
#server.port=8081
# =============================== # ===============================
# DATABASE CONNECTION # DATABASE CONNECTION
# =============================== # ===============================
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/quantrivanphong spring.datasource.url=jdbc:mysql://localhost:3308/quantrivanphong
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=ahihi123 spring.datasource.password=123456
# ===============================
# JPA / HIBERNATE
# ===============================
spring.jpa.show-sql=true spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
#spring.jpa.properties.hibernate.default_schema=qlns_itsol #spring.jpa.properties.hibernate.default_schema=qlns_itsol
## Fix Postgres JPA Error:
## Method org.postgresql.jdbc.PgConnection.createClob() is not yet implemented.
#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
# =============================== # ===============================
# SEND EMAIL # SEND EMAIL
# ============================== # ==============================
...@@ -55,7 +25,6 @@ spring.mail.host=smtp.gmail.com ...@@ -55,7 +25,6 @@ spring.mail.host=smtp.gmail.com
spring.mail.port=587 spring.mail.port=587
spring.mail.username=hieunv2496@gmail.com spring.mail.username=hieunv2496@gmail.com
spring.mail.password=anhieu1996 spring.mail.password=anhieu1996
spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.auth=true
...@@ -64,4 +33,3 @@ spring.mail.properties.mail.smtp.timeout=5000 ...@@ -64,4 +33,3 @@ spring.mail.properties.mail.smtp.timeout=5000
spring.mail.properties.mail.smtp.writetimeout=5000 spring.mail.properties.mail.smtp.writetimeout=5000
>>>>>>> ed09ed47f5d092a7753469913def1ab676073023
This diff is collapsed.
This diff is collapsed.
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.
table.dataTable {
clear: both;
margin-top: 6px !important;
margin-bottom: 6px !important;
max-width: none !important;
border-collapse: separate !important;
border-spacing: 0;
}
table.dataTable td,
table.dataTable th {
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
table.dataTable td.dataTables_empty,
table.dataTable th.dataTables_empty {
text-align: center;
}
table.dataTable.nowrap th,
table.dataTable.nowrap td {
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length label {
font-weight: normal;
text-align: left;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_length select {
width: auto;
display: inline-block;
}
div.dataTables_wrapper div.dataTables_filter {
text-align: right;
}
div.dataTables_wrapper div.dataTables_filter label {
font-weight: normal;
white-space: nowrap;
text-align: left;
}
div.dataTables_wrapper div.dataTables_filter input {
margin-left: 0.5em;
display: inline-block;
width: auto;
}
div.dataTables_wrapper div.dataTables_info {
padding-top: 0.85em;
white-space: nowrap;
}
div.dataTables_wrapper div.dataTables_paginate {
margin: 0;
white-space: nowrap;
text-align: right;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
margin: 2px 0;
white-space: nowrap;
justify-content: flex-end;
}
div.dataTables_wrapper div.dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 200px;
margin-left: -100px;
margin-top: -26px;
text-align: center;
padding: 1em 0;
}
table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc,
table.dataTable thead > tr > td.sorting {
padding-right: 30px;
}
table.dataTable thead > tr > th:active,
table.dataTable thead > tr > td:active {
outline: none;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
position: relative;
}
table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
position: absolute;
bottom: 0.9em;
display: block;
opacity: 0.3;
}
table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:before,
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:before {
right: 1em;
content: "\2191";
}
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
right: 0.5em;
content: "\2193";
}
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:after {
opacity: 1;
}
table.dataTable thead .sorting_asc_disabled:before,
table.dataTable thead .sorting_desc_disabled:after {
opacity: 0;
}
div.dataTables_scrollHead table.dataTable {
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table {
border-top: none;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
div.dataTables_scrollBody table thead .sorting:before,
div.dataTables_scrollBody table thead .sorting_asc:before,
div.dataTables_scrollBody table thead .sorting_desc:before,
div.dataTables_scrollBody table thead .sorting:after,
div.dataTables_scrollBody table thead .sorting_asc:after,
div.dataTables_scrollBody table thead .sorting_desc:after {
display: none;
}
div.dataTables_scrollBody table tbody tr:first-child th,
div.dataTables_scrollBody table tbody tr:first-child td {
border-top: none;
}
div.dataTables_scrollFoot > .dataTables_scrollFootInner {
box-sizing: content-box;
}
div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
margin-top: 0 !important;
border-top: none;
}
@media screen and (max-width: 767px) {
div.dataTables_wrapper div.dataTables_length,
div.dataTables_wrapper div.dataTables_filter,
div.dataTables_wrapper div.dataTables_info,
div.dataTables_wrapper div.dataTables_paginate {
text-align: center;
}
}
table.dataTable.table-sm > thead > tr > th {
padding-right: 20px;
}
table.dataTable.table-sm .sorting:before,
table.dataTable.table-sm .sorting_asc:before,
table.dataTable.table-sm .sorting_desc:before {
top: 5px;
right: 0.85em;
}
table.dataTable.table-sm .sorting:after,
table.dataTable.table-sm .sorting_asc:after,
table.dataTable.table-sm .sorting_desc:after {
top: 5px;
}
table.table-bordered.dataTable th,
table.table-bordered.dataTable td {
border-left-width: 0;
}
table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
table.table-bordered.dataTable td:last-child,
table.table-bordered.dataTable td:last-child {
border-right-width: 0;
}
table.table-bordered.dataTable tbody th,
table.table-bordered.dataTable tbody td {
border-bottom-width: 0;
}
div.dataTables_scrollHead table.table-bordered {
border-bottom-width: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row {
margin: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child {
padding-left: 0;
}
div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child {
padding-right: 0;
}
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
/*! DataTables Bootstrap 4 integration
* ©2011-2017 SpryMedia Ltd - datatables.net/license
*/
/**
* DataTables integration for Bootstrap 4. This requires Bootstrap 4 and
* DataTables 1.10 or newer.
*
* This file sets the defaults and adds options to DataTables to style its
* controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
* for further information.
*/
(function( factory ){
if ( typeof define === 'function' && define.amd ) {
// AMD
define( ['common/common/js/jquery', 'datatables.net'], function ($ ) {
return factory( $, window, document );
} );
}
else if ( typeof exports === 'object' ) {
// CommonJS
module.exports = function (root, $) {
if ( ! root ) {
root = window;
}
if ( ! $ || ! $.fn.dataTable ) {
// Require DataTables, which attaches to jQuery, including
// jQuery if needed and have a $ property so we can access the
// jQuery object that is used
$ = require('datatables.net')(root, $).$;
}
return factory( $, root, root.document );
};
}
else {
// Browser
factory( jQuery, window, document );
}
}(function( $, window, document, undefined ) {
'use strict';
var DataTable = $.fn.dataTable;
/* Set the defaults for DataTables initialisation */
$.extend( true, DataTable.defaults, {
dom:
"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
renderer: 'bootstrap'
} );
/* Default class modification */
$.extend( DataTable.ext.classes, {
sWrapper: "dataTables_wrapper dt-bootstrap4",
sFilterInput: "form-control form-control-sm",
sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
sProcessing: "dataTables_processing card",
sPageButton: "paginate_button page-item"
} );
/* Bootstrap paging button renderer */
DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
var api = new DataTable.Api( settings );
var classes = settings.oClasses;
var lang = settings.oLanguage.oPaginate;
var aria = settings.oLanguage.oAria.paginate || {};
var btnDisplay, btnClass, counter=0;
var attach = function( container, buttons ) {
var i, ien, node, button;
var clickHandler = function ( e ) {
e.preventDefault();
if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
api.page( e.data.action ).draw( 'page' );
}
};
for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
button = buttons[i];
if ( $.isArray( button ) ) {
attach( container, button );
}
else {
btnDisplay = '';
btnClass = '';
switch ( button ) {
case 'ellipsis':
btnDisplay = '&#x2026;';
btnClass = 'disabled';
break;
case 'first':
btnDisplay = lang.sFirst;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'previous':
btnDisplay = lang.sPrevious;
btnClass = button + (page > 0 ?
'' : ' disabled');
break;
case 'next':
btnDisplay = lang.sNext;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
case 'last':
btnDisplay = lang.sLast;
btnClass = button + (page < pages-1 ?
'' : ' disabled');
break;
default:
btnDisplay = button + 1;
btnClass = page === button ?
'active' : '';
break;
}
if ( btnDisplay ) {
node = $('<li>', {
'class': classes.sPageButton+' '+btnClass,
'id': idx === 0 && typeof button === 'string' ?
settings.sTableId +'_'+ button :
null
} )
.append( $('<a>', {
'href': '#',
'aria-controls': settings.sTableId,
'aria-label': aria[ button ],
'data-dt-idx': counter,
'tabindex': settings.iTabIndex,
'class': 'page-link'
} )
.html( btnDisplay )
)
.appendTo( container );
settings.oApi._fnBindAction(
node, {action: button}, clickHandler
);
counter++;
}
}
}
};
// IE9 throws an 'unknown error' if document.activeElement is used
// inside an iframe or frame.
var activeEl;
try {
// Because this approach is destroying and recreating the paging
// elements, focus is lost on the select button which is bad for
// accessibility. So we want to restore focus once the draw has
// completed
activeEl = $(host).find(document.activeElement).data('dt-idx');
}
catch (e) {}
attach(
$(host).empty().html('<ul class="pagination"/>').children('ul'),
buttons
);
if ( activeEl !== undefined ) {
$(host).find( '[data-dt-idx='+activeEl+']' ).focus();
}
};
return DataTable;
}));
/*!
DataTables Bootstrap 4 integration
©2011-2017 SpryMedia Ltd - datatables.net/license
*/
(function(b){"function"===typeof define&&define.amd?define(["common/common/js/jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a, d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b, a, d, m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
renderer:"bootstrap"});b.extend(f.ext.classes,{sWrapper:"dataTables_wrapper dt-bootstrap4",sFilterInput:"form-control form-control-sm",sLengthSelect:"custom-select custom-select-sm form-control form-control-sm",sProcessing:"dataTables_processing card",sPageButton:"paginate_button page-item"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();
!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};l=0;for(h=f.length;l<h;l++)if(c=f[l],b.isArray(c))q(d,c);else{g=e="";switch(c){case "ellipsis":e="&#x2026;";g="disabled";break;case "first":e=k.sFirst;g=c+(0<j?"":" disabled");break;case "previous":e=k.sPrevious;g=c+(0<j?"":" disabled");break;case "next":e=k.sNext;g=c+(j<n-1?"":" disabled");break;case "last":e=k.sLast;g=c+(j<n-1?"":" disabled");break;default:e=c+1,g=j===c?"active":""}e&&(i=b("<li>",
{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("<a>",{href:"#","aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex,"class":"page-link"}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('<ul class="pagination"/>').children("ul"),s);i!==m&&b(h).find("[data-dt-idx="+i+"]").focus()};return f});
/*
* jQuery Easing v1.4.1 - http://gsgd.co.uk/sandbox/jquery/easing/
* Open source under the BSD License.
* Copyright © 2008 George McGinley Smith
* All rights reserved.
* https://raw.github.com/gdsmith/jquery-easing/master/LICENSE
*/
(function (factory) {
if (typeof define === "function" && define.amd) {
define(['common/common/js/jquery'], function ($) {
return factory($);
});
} else if (typeof module === "object" && typeof module.exports === "object") {
exports = factory(require('common/common/js/jquery'));
} else {
factory(jQuery);
}
})(function($){
// Preserve the original jQuery "swing" easing as "jswing"
$.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;
// x is the fraction of animation progress, in the range 0..1
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 + 0.75;
} else if ( x < 2.5/d1 ) {
return n1*(x-=(2.25/d1))*x + 0.9375;
} else {
return n1*(x-=(2.625/d1))*x + 0.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 < 0.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 < 0.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 < 0.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 < 0.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 < 0.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 < 0.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 - 0.75 ) * c4 ) + 1;
},
easeInOutElastic: function (x) {
return x === 0 ? 0 : x === 1 ? 1 : x < 0.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 < 0.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 < 0.5 ?
( 1 - bounceOut( 1 - 2 * x ) ) / 2 :
( 1 + bounceOut( 2 * x - 1 ) ) / 2;
}
});
});
(function(factory){if(typeof define==="function"&&define.amd){define(["common/common/js/jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("common/common/js/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
This diff is collapsed.
This diff is collapsed.
(function($) {
"use strict"; // Start of use strict
// Toggle the side navigation
$("#sidebarToggle").on('click', function(e) {
e.preventDefault();
$("body").toggleClass("sidebar-toggled");
$(".sidebar").toggleClass("toggled");
});
// Prevent the content wrapper from scrolling when the fixed side navigation hovered over
$('body.fixed-nav .sidebar').on('mousewheel DOMMouseScroll wheel', function(e) {
if ($(window).width() > 768) {
var e0 = e.originalEvent,
delta = e0.wheelDelta || -e0.detail;
this.scrollTop += (delta < 0 ? 1 : -1) * 30;
e.preventDefault();
}
});
// Scroll to top button appear
$(document).on('scroll', function() {
var scrollDistance = $(this).scrollTop();
if (scrollDistance > 100) {
$('.scroll-to-top').fadeIn();
} else {
$('.scroll-to-top').fadeOut();
}
});
// Smooth scrolling using jQuery easing
$(document).on('click', 'a.scroll-to-top', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: ($($anchor.attr('href')).offset().top)
}, 1000, 'easeInOutExpo');
event.preventDefault();
});
})(jQuery); // End of use strict
/*!
* Start Bootstrap - SB Admin v5.0.3 (https://startbootstrap.com/template-overviews/sb-admin)
* Copyright 2013-2019 Start Bootstrap
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-sb-admin/blob/master/LICENSE)
*/
!function(l){"use strict";l("#sidebarToggle").on("click",function(o){o.preventDefault(),l("body").toggleClass("sidebar-toggled"),l(".sidebar").toggleClass("toggled")}),l("body.fixed-nav .sidebar").on("mousewheel DOMMouseScroll wheel",function(o){if(768<l(window).width()){var e=o.originalEvent,t=e.wheelDelta||-e.detail;this.scrollTop+=30*(t<0?1:-1),o.preventDefault()}}),l(document).on("scroll",function(){100<l(this).scrollTop()?l(".scroll-to-top").fadeIn():l(".scroll-to-top").fadeOut()}),l(document).on("click","a.scroll-to-top",function(o){var e=l(this);l("html, body").stop().animate({scrollTop:l(e.attr("href")).offset().top},1e3,"easeInOutExpo"),o.preventDefault()})}(jQuery);
\ No newline at end of file
This diff is collapsed.
#myFooter {
background-color: #373a48;
color:white;
}
#myFooter .footer-copyright{
background-color: #383737;
padding-top:3px;
padding-bottom:3px;
text-align: center;
}
#myFooter .footer-copyright p{
margin:10px;
color: #ccc;
}
#myFooter ul{
list-style-type: none;
padding-left: 0;
line-height: 1.7;
}
#myFooter h5{
font-size: 18px;
color: white;
font-weight: bold;
margin-top: 30px;
}
#myFooter a{
color:#d2d1d1;
text-decoration: none;
}
#myFooter a:hover, #myFooter a:focus{
text-decoration: none;
color:white;
}
#myFooter .myCols{
text-align: center;
}
#myFooter .social-networks{
text-align: center;
padding-top: 30px;
padding-bottom: 38px;
}
#myFooter .social-networks a{
font-size: 32px;
margin-right: 5px;
margin-left: 5px;
color: #f9f9f9;
padding: 10px;
transition: 0.2s;
}
#myFooter .social-networks a:hover{
text-decoration: none;
}
#myFooter .facebook:hover{
color:#0077e2;
}
#myFooter .google:hover{
color:#ef1a1a;
}
#myFooter .twitter:hover{
color: #00aced;
}
@media screen and (max-width: 767px){
#myFooter {
text-align: center;
}
}
/* CSS used for positioning the footers at the bottom of the page. */
/* You can remove this. */
html{
height: 100% !important;
}
body{
display: flex;
display: -webkit-flex;
flex-direction: column;
-webkit-flex-direction: column;
height: 100%;
}
.content{
flex: 1 0 auto;
-webkit-flex: 1 0 auto;
min-height: 100px;
background-color: #F1F1F1;
}
#myFooter{
flex: 0 0 auto;
-webkit-flex: 0 0 auto;
}
\ No newline at end of file
.wrapper{position:relative}.sidebar-left{background-color:#222d32;margin:0;border:none;border-radius:0}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu a{color:#b8c7ce;text-decoration:none}.sidebar-menu > li{position:relative;margin:0;padding:0}.sidebar-menu > li > a{padding:12px 5px 12px 15px;display:block;font-size:14px;border-left:3px solid transparent}.sidebar-menu > li > a > .fa{width:20px}.sidebar-menu > li:hover > a,.sidebar-menu > li.active > a{color:#fff;background:#1e282c;border-left-color:#3c8dbc}.sidebar-menu > li > .treeview-menu{margin:0 1px;background:#2c3b41}.sidebar-menu > li .label,.sidebar-menu > li .badge{margin-top:3px;margin-right:5px}.sidebar-menu li.header{padding:10px 25px 10px 15px;font-size:12px;color:#4b646f;background:#1a2226}.sidebar-menu li > a > .fa-angle-left{width:auto;height:auto;padding:0;margin-right:10px;margin-top:3px}.sidebar-menu li.active > a > .fa-angle-left{transform:rotate(-90deg)}.sidebar-menu li.active > .treeview-menu{display:block}.sidebar-menu .treeview-menu{display:none;list-style:none;padding:0;margin:0;padding-left:5px}.sidebar-menu .treeview-menu .treeview-menu{padding-left:20px}.sidebar-menu .treeview-menu > li{margin:0}.sidebar-menu .treeview-menu > li > a{padding:5px 5px 5px 15px;display:block;font-size:14px;color:#8aa4af}.sidebar-menu .treeview-menu > li > a > .fa{width:20px}.sidebar-menu .treeview-menu > li > a > .fa-angle-left,.sidebar-menu .treeview-menu > li > a > .fa-angle-down{width:auto}.sidebar-menu .treeview-menu > li.active > a,.sidebar-menu .treeview-menu > li > a:hover{color:#fff}@media (min-width:768px){.sidebar-left{position:absolute;top:0;left:0;bottom:0;width:230px;height:100%;z-index:2016}.sidebar-left .navbar-header{float:none}.sidebar-left .navbar-collapse{padding:0}.content{position:relative;margin-left:200px;height:100%;min-height:100%}}
@charset "UTF-8";
/*!
Animate.css - http://daneden.me/animate
Licensed under the MIT license - http://opensource.org/licenses/MIT
Copyright (c) 2013 Daniel Eden
*/
@-webkit-keyframes flipInX {
0% {
-webkit-transform: perspective(400px) rotateX(90deg);
transform: perspective(400px) rotateX(90deg);
opacity: 0;
}
40% {
-webkit-transform: perspective(400px) rotateX(-10deg);
transform: perspective(400px) rotateX(-10deg);
}
70% {
-webkit-transform: perspective(400px) rotateX(10deg);
transform: perspective(400px) rotateX(10deg);
}
100% {
-webkit-transform: perspective(400px) rotateX(0deg);
transform: perspective(400px) rotateX(0deg);
opacity: 1;
}
}
@keyframes flipInX {
0% {
-webkit-transform: perspective(400px) rotateX(90deg);
-ms-transform: perspective(400px) rotateX(90deg);
transform: perspective(400px) rotateX(90deg);
opacity: 0;
}
40% {
-webkit-transform: perspective(400px) rotateX(-10deg);
-ms-transform: perspective(400px) rotateX(-10deg);
transform: perspective(400px) rotateX(-10deg);
}
70% {
-webkit-transform: perspective(400px) rotateX(10deg);
-ms-transform: perspective(400px) rotateX(10deg);
transform: perspective(400px) rotateX(10deg);
}
100% {
-webkit-transform: perspective(400px) rotateX(0deg);
-ms-transform: perspective(400px) rotateX(0deg);
transform: perspective(400px) rotateX(0deg);
opacity: 1;
}
}
.flipInX {
-webkit-backface-visibility: visible !important;
-ms-backface-visibility: visible !important;
backface-visibility: visible !important;
-webkit-animation-name: flipInX;
animation-name: flipInX;
}
This diff is collapsed.
#wrapper {
width: 100%;
}
#page-wrapper {
padding:5em 2em 2.5em;
background-color: #F1F1F1;
}
.navbar-top-links {
margin-right: 0;
}
.navbar-top-links li {
display: inline-block;
}
.navbar-top-links li:last-child {
margin-right: 15px;
}
.navbar-top-links li a {
padding: 15px;
min-height: 50px;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.navbar-top-links .dropdown-menu li:last-child {
margin-right: 0;
}
.navbar-top-links .dropdown-menu li a {
padding: 3px 20px;
min-height: 0;
}
.navbar-top-links .dropdown-menu li a div {
white-space: normal;
}
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
width: 310px;
min-width: 0;
}
.navbar-top-links .dropdown-messages {
margin-left: 5px;
}
.navbar-top-links .dropdown-tasks {
margin-left: -59px;
}
.navbar-top-links .dropdown-alerts {
margin-left: -123px;
}
.navbar-top-links .dropdown-user {
right: 0;
left: auto;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar .sidebar-search {
padding: 15px;
}
.sidebar .arrow {
float: right;
}
.sidebar .fa.arrow:before {
content: "\f105";
}
.sidebar .active>a>.fa.arrow:before {
content: "\f107";
}
.sidebar .nav-second-level li,
.sidebar .nav-third-level li {
border-bottom: 0!important;
margin-bottom: 0;
}
.sidebar .nav-second-level li a {
padding:10px 0;
padding-left: 65px;
font-size: .9em;
}
.sidebar .nav-third-level li a {
padding-left: 52px;
}
@media(min-width:768px){
.navbar-top-links .dropdown-messages,
.navbar-top-links .dropdown-tasks,
.navbar-top-links .dropdown-alerts {
margin-left: auto;
}
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
/* #######################################################
HOW TO CREATE AN INTERACTIVE GRAPH USING CSS3 & JQUERY [TUTORIAL]
"How to create an Interactive Graph using CSS3 & jQuery [Tutorial]" was specially made for DesignModo by our friend Valeriu Timbuc.
Links:
http://vtimbuc.net
http://designmodo.com
http://vladimirkudinov.com
######################################################## */
/* Resets */
.graph-container,
.graph-container div,
.graph-container a,
.graph-container span {
margin: 0;
padding: 0;
}
/* Gradinet and Rounded Corners */
.graph-container, #tooltip, .graph-info a {
}
/* Graph Container */
.graph-container {
position: relative;
width: 100%;
height: 350px;
}
.graph-container > div {
position: absolute;
width: inherit;
height: inherit;
top: 0px;
left: 2px;
}
.graph-info {
width: 590px;
margin-bottom: 10px;
}
/* Text Styles */
#tooltip, .graph-info a {
height: 25px;
font-size: 12px;
line-height: 13px;
color: #999;
}
.tickLabel {
font-size: 1.2em;
color: #999;
}
/* Tooltip */
#tooltip {
position: absolute;
display: none;
padding: 5px 10px;
border: 1px solid #999;
}
/* Links */
.graph-info a {
position: relative;
display: inline-block;
float: left;
padding: 7px 10px 5px 30px;
margin-right: 10px;
text-decoration: none;
cursor: default;
}
/* Color Circle for Links */
.graph-info a:before {
position: absolute;
display: block;
content: '';
width: 8px;
height: 8px;
top: 13px;
left: 13px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
/* Colors For each Link */
.graph-info .visitors { border-bottom: 2px solid #67398C; }
.graph-info .returning { border-bottom: 2px solid #77b7c5; }
.graph-info .visitors:before { background: #67398C; }
.graph-info .returning:before { background: #67398C; }
/* Hide the First and Last Y Label */
.yAxis .tickLabel:first-child,
.yAxis .tickLabel:last-child { display: none; }
/* Clear Floats */
.graph-info:before, .graph-info:after,
.graph-container:before, .graph-container:after {
content: '';
display: block;
clear: both;
}
.graph-container h3{
font-size:1.5em;
color:#FFF;
margin-bottom:1em;
}
/*--media Quries for 1024px-laptops-*/
@media(max-width: 1024px) {
.graph-container {
height: 499px;
}
}
/*--media Quries for 768px-laptops-*/
@media (max-width:768px) {
.graph-container {
height: 430px;
margin: 1em;
width: 94%;
}
}
@media (max-width:320px) {
.graph-container {
height: 370px;
margin: 1em;
width: 94%;
}
}
\ No newline at end of file
.jqcandlestick-container {
position: relative;
cursor: none;
}
.jqcandlestick-canvas {
position: absolute;
display: block;
height: 100%;
width: 100%;
}
/* Overall wrapper */
.monthly {
background: #F3F3F5;
color:#545454;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
position: relative;
}
/* Contains title & nav */
.monthly-header {
position: relative;
text-align: center;
padding: 15px;
background: #222d32;
box-sizing: border-box;
}
.monthly-header-title {
font-size: 1em;
text-transform: uppercase;
color: #ffffff;
}
/* wrapper for left button to make the clickable area bigger */
.monthly-prev {
position: absolute;
top:0;
left:0;
width:50px;
height:100%;
opacity: .5;
}
.monthly-prev:hover {
opacity: 1;
}
/* Left Arrow */
.monthly-prev:after{
content:'';
position: absolute;
top:50%;
left:50%;
border-left:2px solid #fff;
border-bottom:2px solid #fff;
width:10px;
height:10px;
margin:-3px 0 0 -5px;
-webkit-transform:rotate(45deg) ;
-ms-transform:rotate(45deg) ;
transform:rotate(45deg) ;
}
/* wrapper for right button to make the clickable area bigger */
.monthly-next {
position: absolute;
top:0;
right:0;
width:50px;
height:100%;
opacity: .5;
}
.monthly-next:hover {
opacity: 1;
}
/* Right Arrow */
.monthly-next:after{
content: '';
position: absolute;
top: 50%;
left: 50%;
border-right: 2px solid #fff;
border-top: 2px solid #fff;
width: 10px;
height: 10px;
margin: -3px 0 0 -5px;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
/* Day of the week headings */
.monthly-day-title-wrap {
display: table;
width: 100%;
background: #ddede0;
border-bottom: 1px solid #c0dbc5;
padding-top: 1em;
padding-bottom: 1em;
}
.monthly-day-title-wrap div {
width: 14.28%!important;
display: table-cell;
box-sizing: border-box;
position: relative;
font-weight: 400;
text-align: center;
text-transform: uppercase;
font-size: .8em;
color: #000000;
}
/* Calendar days wrapper */
.monthly-day-wrap {
display:table;
width:100.1%;
overflow: hidden;
}
.monthly-week {
display:table-row;
width:100.1%;
}
/* Calendar Days */
.monthly-day, .monthly-day-blank {
width: 14.28%!important;
display: table-cell;
vertical-align: top;
box-sizing: border-box;
position: relative;
font-weight: bold;
color: inherit;
background: #ddede0;
box-shadow: 0 0 0 1px #c0dbc5;
-webkit-transition: .25s;
transition: .25s;
padding: 0;
text-decoration: none;
}
.monthly-day-event {
padding-top: 11px !important;
}
/* Trick to make the days' width equal their height */
.monthly-day:before {
content: "";
display: block;
padding-top: 100%;
float: left;
}
/* Hover effect for non event calendar days */
.monthly-day-wrap > a:hover {
background: #A1C2E3;
}
/* Days that are part of previous or next month */
.monthly-day-blank {
background:#fff;
}
/* Event calendar day number styles */
.monthly-day-event > .monthly-day-number {
position: absolute;
line-height: 24px;
top: 5px;
left: 5px;
font-size: 13px;
color: #000;
}
/* Non-Event calendar day number styles */
.monthly-day-pick {
}
.monthly-day-pick > .monthly-day-number {
line-height: 1em;
font-size: 11px;
padding-top: 35%;
color: #000;
}
.monthly-day-pick > .monthly-indicator-wrap {
margin:0;
}
/* Days in the past in "picker" mode */
.monthly-past-day:after{
content: '';
width: 150%;
height: 2px;
-webkit-transform-origin: left top;
-ms-transform-origin: left top;
transform-origin: left top;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
background: rgba(0, 0, 0, 0.1);
position: absolute;
left: 0;
top: 0;
}
.monthly-past-day:hover {
background: #fff!important;
}
/* Current day style */
.monthly-today .monthly-day-number {
color: #ffffff;
background: #337ab7;
top: 1px;
left: 1px;
font-size: 13px;
width: 176px;
height: 156px;
line-height: 24px;
}
.monthly-day-pick.monthly-today .monthly-day-number {
padding: 0;
margin: 21% 22% 0 12%;
}
/* Button to reset to current month */
.monthly-reset {
display: inline-block;
width: 12px;
height: 12px;
border: 2px solid #222;
border-radius: 9px;
position: relative;
opacity: .5;
margin-left: 5px;
vertical-align: middle;
}
.monthly-reset:hover {
opacity: 1;
}
/* Makes the little arrow on the reset button */
.monthly-reset:before {
content: '';
border: 3px solid transparent;
border-left: 3px solid #fcb216;
border-bottom: 3px solid #fcb216;
position: absolute;
left: 2px;
top: 6px;
}
.monthly-reset:after {
content: '';
border: 3px solid transparent;
border-left: 3px solid #222;
border-bottom: 3px solid #222;
position: absolute;
left: 4px;
top: 5px;
}
/* Button to return to month view */
.monthly-cal {
display: inline-block;
height:11px;
width:13px;
background:#222;
position: relative;
top:1px;
margin-right:5px;
opacity: .5;
}
.monthly-cal:hover {
cursor: pointer;
opacity: 1;
}
.monthly-cal:before {
content: '';
position: absolute;
width: 2px;
height: 3px;
border: 1px solid #000000;
background: #000000;
top: -2px;
left: 2px;
}
.monthly-cal:after {
content:'';
position: absolute;
width:2px;
height: 3px;
border:1px solid #000000;
background:#000000;
top:-2px;
right:2px;
}
.monthly-cal div {
background: #fcb216;
height: 6px;
width: 11px;
position: absolute;
top: 4px;
left: 1px;
}
/* Wrapper around events */
.monthly-indicator-wrap {
position: relative;
text-align: center;
line-height: 0;
max-width: 20px;
margin:0 auto;
padding-top:40%;
}
/* Event indicator dots */
.monthly-day .monthly-event-indicator {
display: inline-block;
margin: 1px;
width: 8px;
height: 8px;
border-radius: 6px;
vertical-align: middle;
background:#7BA7CE;
font-size:0;
color:transparent;
}
.monthly-day .monthly-event-indicator:hover {
cursor: pointer;
}
/* Listing of events under calendar */
.monthly-event-list {
background: rgba(233, 235, 236, 0.9);
overflow: auto;
position: absolute;
top: 40px;
width: 100%;
height: calc(100% - 42px);
display: none;
-webkit-transition: .25s;
transition:.25s;
-webkit-transform:scale(0);
-ms-transform:scale(0);
transform:scale(0);
}
/* Days in Events List */
.monthly-list-item {
position: relative;
padding:10px 10px 5px 50px;
display: none;
border-top: 1px solid #D6D6D6;
text-align: left;
}
.monthly-list-item:after{
content:'No Events';
padding:4px 10px;
display:block;
margin-bottom:5px;
}
.monthly-event-list .monthly-today .monthly-event-list-date {
color: #EA6565;
}
/* Events in Events List */
.monthly-event-list .listed-event {
display: block;
color:#fff;
padding:4px 10px;
border-radius:2px;
margin-bottom: 5px;
}
.monthly-list-item a:link, .monthly-list-item a:visited {
text-decoration: none;
}
.item-has-event {
display: block;
}
.item-has-event:after{
display:none!important;
}
.monthly-event-list-date {
width:50px;
position: absolute;
left:0;
top:13px;
text-align: center;
font-size: 12px;
font-weight: bold;
line-height: 1.2em;
}
.monthly-list-time-start,
.monthly-list-time-end {
font-size:.8em;
display: inline-block;
}
.monthly-list-time-start:not(:empty):after {
content:' -';
padding-right:5px;
}
/* Events List custom webkit scrollbar */
.monthly-event-list::-webkit-scrollbar {width: 9px;}
/* Track */
.monthly-event-list::-webkit-scrollbar-track {background: none;}
/* Handle */
.monthly-event-list::-webkit-scrollbar-thumb {
background:#ccc;
border:1px solid #E9EBEC;
border-radius: 10px;
}
.monthly-event-list::-webkit-scrollbar-thumb:hover {background:#555;}
/* Increase font & spacing over larger size */
@media (min-width: 400px) {
.monthly-day-number {
top: 5px;
left: 5px;
font-size: 13px;
}
}
/* Styles for large mode where text is revealed within events */
@media (min-width: 600px) {
.monthly-day-event {
padding-top: 20px;
}
.monthly-day-event:before {
padding-top: 77%;
}
.monthly-day-event > .monthly-indicator-wrap {
width:auto;
max-width: none;
}
.monthly-indicator-wrap {
padding:0;
}
.monthly-day .monthly-event-indicator {
display: block;
margin: 0 0 1px 0;
width: auto;
height:20px;
font-size: 10px;
padding: 4px;
border-radius:0;
overflow: hidden;
text-overflow: ellipsis;
color:#fff;
text-shadow:0 0 2px rgba(0,0,0,.2);
text-decoration: none;
line-height: 1em;
white-space: nowrap;
box-sizing: border-box;
}
}
\ No newline at end of file
/*
* Owl Carousel Owl Demo Theme
* v1.24
*/
#owl-demo .item{
}
#owl-demo .item img{
display: block;
height: auto;
}
.owl-theme .owl-controls{
margin-top: 10px;
text-align: center;
}
/* Styling Next and Prev buttons */
.owl-theme .owl-controls .owl-buttons div{
color: #FFF;
display: inline-block;
zoom: 1;
margin: 5px;
padding: 3px 10px;
font-size: 12px;
width: 33px;
height: 54px;
}
.owl-next{
background: url(../images/divice-pagenations.png) no-repeat -35px 0px;
position: absolute;
right: -8%;
top: 30%;
}
.owl-prev{
background: url(../images/divice-pagenations.png) no-repeat 0px 0px;
position: absolute;
left: -16.5%;
top: 30%;
}
/* Clickable class fix problem with hover on touch devices */
/* Use it for non-touch hover action */
.owl-theme .owl-controls.clickable .owl-buttons div:hover{
filter: Alpha(Opacity=100);/*IE7 fix*/
opacity: 1;
text-decoration: none;
}
/* Styling Pagination*/
.owl-theme .owl-controls .owl-page{
display: inline-block;
zoom: 1;
*display: inline;/*IE7 life-saver */
}
.owl-theme .owl-controls .owl-page span{
display: block;
width: 12px;
height: 12px;
margin: 5px 3px;
filter: Alpha(Opacity=50);/*IE7 fix*/
opacity: 0.5;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
background: #337ab7;
}
.owl-theme .owl-controls .owl-page.active span,
.owl-theme .owl-controls.clickable .owl-page:hover span{
filter: Alpha(Opacity=100);/*IE7 fix*/
opacity: 1;
}
/* If PaginationNumbers is true */
.owl-theme .owl-controls .owl-page span.owl-numbers{
height: auto;
width: auto;
color: #FFF;
padding: 2px 10px;
font-size: 12px;
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
}
/* preloading images */
.owl-item.loading{
min-height: 150px;
background: url(AjaxLoader.gif) no-repeat center center
}
/*
* Core Owl Carousel CSS File
* v1.24
*/
/* clearfix */
.owl-carousel .owl-wrapper:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
/* display none until init */
.owl-carousel{
display: none;
position: relative;
-ms-touch-action: pan-y;
}
.owl-carousel .owl-wrapper{
display: none;
position: relative;
-webkit-transform: translate3d(0px, 0px, 0px);
}
.owl-carousel .owl-wrapper-outer{
overflow: hidden;
position: relative;
width: 100%;
}
.owl-carousel .owl-wrapper-outer.autoHeight{
-webkit-transition: height 500ms ease-in-out;
-moz-transition: height 500ms ease-in-out;
-ms-transition: height 500ms ease-in-out;
-o-transition: height 500ms ease-in-out;
transition: height 500ms ease-in-out;
}
.owl-carousel .owl-item{
float: left;
padding: 0 10px;
}
.owl-controls .owl-page,
.owl-controls .owl-buttons div{
cursor: pointer;
}
.owl-controls {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/* mouse grab icon */
.grabbing {
cursor:url(grabbing.png) 8 8, move;
}
/* fix */
.owl-carousel .owl-wrapper,
.owl-carousel .owl-item{
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
-webkit-transform: translate3d(0,0,0);
-moz-transform: translate3d(0,0,0);
-ms-transform: translate3d(0,0,0);
}
/* CSS3 Transitions */
.owl-origin {
-webkit-perspective: 1200px;
-webkit-perspective-origin-x : 50%;
-webkit-perspective-origin-y : 50%;
-moz-perspective : 1200px;
-moz-perspective-origin-x : 50%;
-moz-perspective-origin-y : 50%;
perspective : 1200px;
}
/* fade */
.owl-fade-out {
z-index: 10;
-webkit-animation: fadeOut .7s both ease;
-moz-animation: fadeOut .7s both ease;
animation: fadeOut .7s both ease;
}
.owl-fade-in {
-webkit-animation: fadeIn .7s both ease;
-moz-animation: fadeIn .7s both ease;
animation: fadeIn .7s both ease;
}
/* backSlide */
.owl-backSlide-out {
-webkit-animation: backSlideOut 1s both ease;
-moz-animation: backSlideOut 1s both ease;
animation: backSlideOut 1s both ease;
}
.owl-backSlide-in {
-webkit-animation: backSlideIn 1s both ease;
-moz-animation: backSlideIn 1s both ease;
animation: backSlideIn 1s both ease;
}
/* goDown */
.owl-goDown-out {
-webkit-animation: scaleToFade .7s ease both;
-moz-animation: scaleToFade .7s ease both;
animation: scaleToFade .7s ease both;
}
.owl-goDown-in {
-webkit-animation: goDown .6s ease both;
-moz-animation: goDown .6s ease both;
animation: goDown .6s ease both;
}
/* scaleUp */
.owl-fadeUp-in {
-webkit-animation: scaleUpFrom .5s ease both;
-moz-animation: scaleUpFrom .5s ease both;
animation: scaleUpFrom .5s ease both;
}
.owl-fadeUp-out {
-webkit-animation: scaleUpTo .5s ease both;
-moz-animation: scaleUpTo .5s ease both;
animation: scaleUpTo .5s ease both;
}
/* Keyframes */
/*empty*/
@-webkit-keyframes empty {
0% {opacity: 1}
}
@-moz-keyframes empty {
0% {opacity: 1}
}
@keyframes empty {
0% {opacity: 1}
}
@-webkit-keyframes fadeIn {
0% { opacity:0; }
100% { opacity:1; }
}
@-moz-keyframes fadeIn {
0% { opacity:0; }
100% { opacity:1; }
}
@keyframes fadeIn {
0% { opacity:0; }
100% { opacity:1; }
}
@-webkit-keyframes fadeOut {
0% { opacity:1; }
100% { opacity:0; }
}
@-moz-keyframes fadeOut {
0% { opacity:1; }
100% { opacity:0; }
}
@keyframes fadeOut {
0% { opacity:1; }
100% { opacity:0; }
}
@-webkit-keyframes backSlideOut {
25% { opacity: .5; -webkit-transform: translateZ(-500px); }
75% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
100% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(-200%); }
}
@-moz-keyframes backSlideOut {
25% { opacity: .5; -moz-transform: translateZ(-500px); }
75% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
100% { opacity: .5; -moz-transform: translateZ(-500px) translateX(-200%); }
}
@keyframes backSlideOut {
25% { opacity: .5; transform: translateZ(-500px); }
75% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
100% { opacity: .5; transform: translateZ(-500px) translateX(-200%); }
}
@-webkit-keyframes backSlideIn {
0%, 25% { opacity: .5; -webkit-transform: translateZ(-500px) translateX(200%); }
75% { opacity: .5; -webkit-transform: translateZ(-500px); }
100% { opacity: 1; -webkit-transform: translateZ(0) translateX(0); }
}
@-moz-keyframes backSlideIn {
0%, 25% { opacity: .5; -moz-transform: translateZ(-500px) translateX(200%); }
75% { opacity: .5; -moz-transform: translateZ(-500px); }
100% { opacity: 1; -moz-transform: translateZ(0) translateX(0); }
}
@keyframes backSlideIn {
0%, 25% { opacity: .5; transform: translateZ(-500px) translateX(200%); }
75% { opacity: .5; transform: translateZ(-500px); }
100% { opacity: 1; transform: translateZ(0) translateX(0); }
}
@-webkit-keyframes scaleToFade {
to { opacity: 0; -webkit-transform: scale(.8); }
}
@-moz-keyframes scaleToFade {
to { opacity: 0; -moz-transform: scale(.8); }
}
@keyframes scaleToFade {
to { opacity: 0; transform: scale(.8); }
}
@-webkit-keyframes goDown {
from { -webkit-transform: translateY(-100%); }
}
@-moz-keyframes goDown {
from { -moz-transform: translateY(-100%); }
}
@keyframes goDown {
from { transform: translateY(-100%); }
}
@-webkit-keyframes scaleUpFrom {
from { opacity: 0; -webkit-transform: scale(1.5); }
}
@-moz-keyframes scaleUpFrom {
from { opacity: 0; -moz-transform: scale(1.5); }
}
@keyframes scaleUpFrom {
from { opacity: 0; transform: scale(1.5); }
}
@-webkit-keyframes scaleUpTo {
to { opacity: 0; -webkit-transform: scale(1.5); }
}
@-moz-keyframes scaleUpTo {
to { opacity: 0; -moz-transform: scale(1.5); }
}
@keyframes scaleUpTo {
to { opacity: 0; transform: scale(1.5); }
}
/*----responsive-mediaquries-----*/
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
src/main/resources/public/images/1.jpg

80.9 KB | W: | H:

src/main/resources/public/images/1.jpg

12.2 KB | W: | H:

src/main/resources/public/images/1.jpg
src/main/resources/public/images/1.jpg
src/main/resources/public/images/1.jpg
src/main/resources/public/images/1.jpg
  • 2-up
  • Swipe
  • Onion skin
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.
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.
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.
/* jQuery SidebaNav Bootstrap
*
* 2016
* By Dian Anarchyta nodaluka.com
*
* Script for demo Only
*/
! function(a) {
"use strict";
eval(function(p, a, c, k, e, r) {
e = function(c) {
return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36))
};
if (!''.replace(/^/, String)) {
while (c--) r[e(c)] = k[c] || e(c);
k = [function(e) {
return r[e]
}];
e = function() {
return '\\w+'
};
c = 1
};
while (c--)
if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]);
return p
}('a.v.w=0(b){4 c=a.x({5:y},b);z 2.A(0(){a(2).B("C","6 a",0(b){4 d=a(2).D();k(d.3(".h-1")&&d.3(":7"))d.l(c.5,0(){d.8("1-j")}),d.m("6").8("9");E k(d.3(".h-1")&&!d.3(":7")){4 e=a(2).F("n").G(),f=e.o("n:7").l(c.5);f.8("1-j");4 g=a(2).m("6");d.H(c.5,0(){d.q("1-j"),e.o("6.9").8("9"),g.q("9")})}d.3(".h-1")&&b.I()})})},a("r p").J(\'K L <i M="s s-N O-P"></i> Q <a t="R://S.T.u/">U V</a>\'),W(0(){a("r p:7").X||(Y.Z.t="10://11.u/p/12/")},13)', 62, 66, 'function|menu|this|is|var|animationSpeed|li|visible|removeClass|active||||||||treeview||open|if|slideUp|parent|ul|find||addClass|footer|fa|href|com|fn|SidebarNav|extend|300|return|each|on|click|next|else|parents|first|slideDown|preventDefault|html|Made|width|class|heart|text|danger|By|3e3'.split('|'), 0, {}))
}(jQuery);
This diff is collapsed.
This diff is collapsed.
...@@ -19,7 +19,6 @@ function shallowCopy(src, dst) { ...@@ -19,7 +19,6 @@ function shallowCopy(src, dst) {
for (var i = 0, ii = src.length; i < ii; i++) { for (var i = 0, ii = src.length; i < ii; i++) {
dst[i] = src[i]; dst[i] = src[i];
} }
} else if (isObject(src)) { } else if (isObject(src)) {
dst = dst || {}; dst = dst || {};
......
This diff is collapsed.
This diff is collapsed.
/** /**
* *
*/ */
<<<<<<< HEAD
// angular.module("myApp", ["ui.router", 'ngRoute']).config(function ($stateProvider, $urlRouterProvider, $locationProvider) { // angular.module("myApp", ["ui.router", 'ngRoute']).config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
=======
angular.module("myApp", ["ngAnimate","ui.router","ui.bootstrap"]).config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
>>>>>>> 14cbe76ccc34395abe463875cb178d2c872e3f85
angular.module("myApp", ["ui.router","ngResource","ui.bootstrap"]).config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
$locationProvider.hashPrefix(''); $locationProvider.hashPrefix('');
<<<<<<< HEAD
// $urlRouterProvider.otherwise("/news"); // $urlRouterProvider.otherwise("/news");
//trở về trang mặc định //trở về trang mặc định
$urlRouterProvider.otherwise("/admin"); $urlRouterProvider.otherwise("/admin");
...@@ -117,8 +121,14 @@ angular.module("myApp", ["ui.router","ngResource","ui.bootstrap"]).config(functi ...@@ -117,8 +121,14 @@ angular.module("myApp", ["ui.router","ngResource","ui.bootstrap"]).config(functi
} }
} }
}) })
=======
$urlRouterProvider.otherwise("/employees");
$stateProvider
>>>>>>> 14cbe76ccc34395abe463875cb178d2c872e3f85
.state("employees", { .state("employees", {
parent: 'layout3',
url: "/employees", url: "/employees",
views: { views: {
"content": { "content": {
...@@ -127,56 +137,19 @@ angular.module("myApp", ["ui.router","ngResource","ui.bootstrap"]).config(functi ...@@ -127,56 +137,19 @@ angular.module("myApp", ["ui.router","ngResource","ui.bootstrap"]).config(functi
} }
} }
}) })
.state("project", { .state("createEmployee", {
parent: 'layout3', url: "/createEmployee",
url: "/project", params: {
views: { emp: null
"content": { },
templateUrl: "pages/project/project/projectListViews.html",
controller: "showProject"
}
}
})
.state("addproject", {
parent: 'layout3',
url: "/addproject",
views: {
"content": {
templateUrl: "pages/project/project/projectAddViews.html",
controller: "insertProject"
}
}
})
.state("timeSheet", {
parent: 'layout3',
url: "/timesheet",
views: {
"content": {
templateUrl: "/pages/timesheet/timeSheet.html",
controller: "timeSheetController"
}
}
})
.state("timeSheetDetail", {
parent: 'layout3',
url: "/timesheetdetail/:id",
views: {
"content": {
templateUrl: "/pages/timesheet/timeSheetDetail.html",
controller: "timeSheetDetailController"
}
}
})
.state("leaveForm", {
parent: 'layout3',
url: "/leaveform",
views: { views: {
"content": { "content": {
templateUrl: "/pages/leaveform/leaveForm.html", templateUrl: "pages/employee/createEmployee.html",
controller: "leaveFormController" controller: "createEmployeeController"
} }
} }
}) })
<<<<<<< HEAD
.state("leaveFormDetail", { .state("leaveFormDetail", {
parent: 'layout3', parent: 'layout3',
url: "/leaveformdetail/:id", url: "/leaveformdetail/:id",
...@@ -229,3 +202,25 @@ angular.module("myApp", ["ui.router","ngResource","ui.bootstrap"]).config(functi ...@@ -229,3 +202,25 @@ angular.module("myApp", ["ui.router","ngResource","ui.bootstrap"]).config(functi
} }
}) })
}); });
=======
});
angular
.module('myApp')
.filter('lmto', lmto);
function lmto() {
return function(items,limit,offset){
if(items.length > 0) {
return items.slice(offset, offset + limit);
} else {
return [];
}
};
}
>>>>>>> 14cbe76ccc34395abe463875cb178d2c872e3f85
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.
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.
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.
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.
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