Commit d9c9279775d906dc656d1bfb891988a87c6a052e

Authored by 徐烜
2 parents 1df69b8d 9893d655

Merge branch 'master' of 192.168.168.201:panzhaov5/bsth_control

Too many changes to show.

To preserve performance only 7 of 18 files are displayed.

README.md
1 -公交调度系统BS版 0.1  
2 -======  
3 -----------  
4 -## 目录  
5 ----------  
6 -* [字典表](#字典表)  
7 -* [车载 gps 相关数据](#gps)  
8 - * [实时gps数据接口 http](#实时gps接口)  
9 - * [进出站数据 mysql 表](#进站数据)  
10 -  
11 -----------  
12 -  
13 -## 字典表  
14 -----------  
15 -字典操作全部由前端负责,主要有2种。  
16 -  
17 -1、将字典代码转换为中文 。片段加载完成后,包含 `class="nt-dictionary"` 的标签会被转换,data-group 为所属字典组。  
18 -``` html  
19 -  
20 -<span class="nt-dictionary" data-group="XianLuXingZhi">GJXL</span>  
21 -  
22 ---转换后  
23 -<span class="dictionary" data-group="XianLuXingZhi" data-code="GJXL" >过江线路</span>  
24 -```  
25 -2、生成下拉框,当包含`class="nt-dictionary"` 的标签是`select`时。  
26 -``` html  
27 -<!- 原 -->  
28 -<select class="nt-dictionary" data-group="XianLuXingZhi" data-code="GJXL"></select>  
29 -  
30 -<!-- 转换后 -->  
31 -<select class="nt-dictionary" data-group="XianLuXingZhi" >  
32 - <option value="GJXL">过江线路</option>  
33 - <option value="CCTXL">村村通线路</option>  
34 - <option value="YXXL">夜宵线路</option>  
35 - <option value="CSBS">穿梭巴士</option>  
36 -</select>  
37 -```  
38 -  
39 -## gps  
40 -----------  
41 -### 实时gps接口  
42 -  
43 -所有在线GPS: [http://192.168.168.192:8080/transport_server/rtgps](http://192.168.168.192:8080/transport_server/rtgps/)  
44 -根据设备号查询:[http://192.168.168.192:8080/transport_server/rtgps/05B01901](http://192.168.168.192:8080/transport_server/rtgps/05B01901)  
45 -  
46 -<span style="color: red">Response</span>:  
47 -```json  
48 -{  
49 - "data":[  
50 - {  
51 - "companyCode":5,  
52 - "lineId":10329,  
53 - "deviceId":"05B01901",  
54 - "carparkNo":"00000000",  
55 - "stopNo":"7C890002",  
56 - "lon":121.549866,  
57 - "lat":31.238798,  
58 - "timestamp":1397104499000,  
59 - "speed":42.0,  
60 - "direction":245.9,  
61 - "state":0,  
62 - "upDown":0  
63 - }]  
64 -}  
65 -```  
66 -  
67 -| -字段- | -类型-|-备注-|  
68 -| ---- | ---- | ---- |  
69 -| companyCode | int | 公司代码 |  
70 -| lineId | int | 线路编码 |  
71 -| deviceId | String | 设备编号 |  
72 -| carparkNo | String | 停车场编码 |  
73 -| stopNo | String | 站点编码 |  
74 -| lon | float | 经度 |  
75 -| lat | float | 纬度 |  
76 -| timestamp | long | 时间戳 |  
77 -| speed | float | 速度|  
78 -| direction | float | 方向(角度) |  
79 -| state | int | 营运状态( 0 营运 ,1 非营运, -1 无效) |  
80 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效)|  
81 -  
82 -  
83 -### 进站数据  
84 -----------  
85 -mysql:  
86 -表名:  
87 -  
88 -| 字段 | 类型 | 备注 |  
89 -| ---- | ---- | ---- |  
90 -| id | int | ID |  
91 -| deviceId | String | 设备号 |  
92 -| lineId | int | 线路编码 |  
93 -| stopNo | long | 站点编码 |  
94 -| timestamp | long | 时间戳 |  
95 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
96 -| createDate | Date | 创建时间 |  
97 -  
98 -  
99 -  
100 -  
101 -  
102 -  
103 -  
104 - 1 +公交调度系统BS版 0.1
  2 +======
  3 +----------
  4 +## 目录
  5 +---------
  6 + * [字典表](#字典表)
  7 + * [车载 gps 相关数据](#gps)
  8 + * [实时gps数据接口 http](#实时gps接口)
  9 + * [进出站数据表结构](#进站数据)
  10 + * [异常警报表结构](#异常警报)
  11 + * [大间隔](#大间隔)
  12 + * [超速](#超速)
  13 + * [越界](#越界)
  14 + * [越站](#越站)
  15 + * [聚集](#聚集)
  16 + * [掉线](#掉线)
  17 +
  18 +
  19 +----------
  20 +
  21 +## 字典表
  22 +----------
  23 +字典操作全部由前端负责,主要有2种。
  24 +
  25 +1、将字典代码转换为中文 。片段加载完成后,包含 `class="nt-dictionary"` 的标签会被转换,data-group 为所属字典组。
  26 +``` html
  27 +
  28 +<span class="nt-dictionary" data-group="XianLuXingZhi">GJXL</span>
  29 +
  30 +--转换后
  31 +<span class="dictionary" data-group="XianLuXingZhi" data-code="GJXL" >过江线路</span>
  32 +```
  33 +2、生成下拉框,当包含`class="nt-dictionary"` 的标签是`select`时。
  34 +``` html
  35 +<!- 原 -->
  36 +<select class="nt-dictionary" data-group="XianLuXingZhi" data-code="GJXL"></select>
  37 +
  38 +<!-- 转换后 -->
  39 +<select class="nt-dictionary" data-group="XianLuXingZhi" >
  40 + <option value="GJXL">过江线路</option>
  41 + <option value="CCTXL">村村通线路</option>
  42 + <option value="YXXL">夜宵线路</option>
  43 + <option value="CSBS">穿梭巴士</option>
  44 +</select>
  45 +```
  46 +
  47 +## gps
  48 +----------
  49 +### 实时gps接口
  50 +
  51 +所有在线GPS: [http://192.168.168.192:8080/transport_server/rtgps](http://192.168.168.192:8080/transport_server/rtgps/)
  52 +根据设备号查询:[http://192.168.168.192:8080/transport_server/rtgps/05B01901](http://192.168.168.192:8080/transport_server/rtgps/05B01901)
  53 +
  54 +<span style="color: red">Response</span>:
  55 +```json
  56 +{
  57 + "data":[
  58 + {
  59 + "companyCode":5,
  60 + "lineId":10329,
  61 + "deviceId":"05B01901",
  62 + "carparkNo":"00000000",
  63 + "stopNo":"7C890002",
  64 + "lon":121.549866,
  65 + "lat":31.238798,
  66 + "timestamp":1397104499000,
  67 + "speed":42.0,
  68 + "direction":245.9,
  69 + "state":0,
  70 + "upDown":0
  71 + }]
  72 +}
  73 +```
  74 +
  75 +| -- | --|--|
  76 +| ---- | ---- | ---- |
  77 +| companyCode | int | 公司代码 |
  78 +| lineId | int | 线路编码 |
  79 +| deviceId | String | 设备编号 |
  80 +| carparkNo | String | 停车场编码 |
  81 +| stopNo | String | 站点编码 |
  82 +| lon | float | 经度 |
  83 +| lat | float | 纬度 |
  84 +| timestamp | long | 时间戳 |
  85 +| speed | float | 速度|
  86 +| direction | float | 方向(角度) |
  87 +| state | int | 营运状态( 0 营运 ,1 非营运, -1 无效) |
  88 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效)|
  89 +
  90 +
  91 +### 进站数据
  92 +----------
  93 +表名:
  94 +
  95 +| .. | .. | .. |
  96 +| ---- | ---- | ---- |
  97 +| id | int | 主键 |
  98 +| deviceId | String | 设备号 |
  99 +| lineId | int | 线路编码 |
  100 +| stopNo | long | 站点编码 |
  101 +| timestamp | long | 时间戳 |
  102 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  103 +| createDate | Date | 创建时间 |
  104 +
  105 +
  106 +### 异常警报
  107 +----------
  108 +
  109 +### 大间隔
  110 +----------
  111 +表名:
  112 +
  113 +| .. | .. | .. |
  114 +| ---- | ---- | ---- |
  115 +| id | int | 主键 |
  116 +| line | int | 线路编码 |
  117 +| station | String | 站点编码 |
  118 +| cVehicle | String | 当前车辆编码 |
  119 +| lastVehicle | String | 上一个车辆编码 |
  120 +| interval | long | 间隔时间(秒) |
  121 +| createDate | Date | 创建时间 |
  122 +
  123 +### 超速
  124 +----------
  125 +表名:
  126 +
  127 +| .. | .. | .. |
  128 +| ---- | ---- | ---- |
  129 +| id | int | 主键 |
  130 +| vehicle | String | 车辆编码 |
  131 +| line | int | 线路编码 |
  132 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  133 +| lon | float | 经度 |
  134 +| lat | float | 纬度|
  135 +| speed | float | 速度 |
  136 +| createDate | Date | 时间 |
  137 +
  138 +### 越界
  139 +----------
  140 +表名:
  141 +
  142 +| .. | .. | .. |
  143 +| ---- | ---- | ---- |
  144 +| id | int | 主键 |
  145 +| vehicle | String | 车辆编码 |
  146 +| line | int | 线路编码 |
  147 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  148 +| lon | float | 经度 |
  149 +| lat | float | 纬度|
  150 +| location | String | 越界位置(由线调页面进行初始转换)意思是该字段默认为空,页面第一次查看时会写入值|
  151 +| createDate | Date | 时间 |
  152 +
  153 +
  154 +### 越站
  155 +----------
  156 +表名:
  157 +
  158 +| .. | .. | .. |
  159 +| ---- | ---- | ---- |
  160 +| id | int | 主键 |
  161 +| line | int | 线路编码 |
  162 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  163 +| station | String | 站点编码 |
  164 +| vehicle | String | 车辆编码 |
  165 +| inData | Date | 进站时间 |
  166 +| outDate | Date | 出站时间 |
  167 +
  168 +
  169 +### 聚集
  170 +----------
  171 +表名:
  172 +
  173 +| .. | .. | .. |
  174 +| ---- | ---- | ---- |
  175 +| id | int | 主键 |
  176 +| line | int | 线路编码 |
  177 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  178 +| stations | String | 站点(多个用 , 号分隔。应该是连续站点) |
  179 +| vehicles | String | 车辆编码(多个用 , 号分隔) |
  180 +| createDate | Date | 时间 |
  181 +
  182 +
  183 +### 掉线
  184 +----------
  185 +表名:
  186 +
  187 +| .. | .. | .. |
  188 +| ---- | ---- | ---- |
  189 +| id | int | 主键 |
  190 +| line | int | 线路编码 |
  191 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  192 +| vehicle | String | 车辆编码 |
  193 +| lon | float | 经度 |
  194 +| lat | float | 纬度|
  195 +| createDate | Date | 时间 |
105 \ No newline at end of file 196 \ No newline at end of file
src/main/java/com/bsth/controller/LineInformationController.java
@@ -4,7 +4,6 @@ import org.springframework.web.bind.annotation.RequestMapping; @@ -4,7 +4,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
4 import org.springframework.web.bind.annotation.RestController; 4 import org.springframework.web.bind.annotation.RestController;
5 5
6 import com.bsth.entity.LineInformation; 6 import com.bsth.entity.LineInformation;
7 -import com.bsth.entity.Section;  
8 7
9 /** 8 /**
10 * 9 *
src/main/java/com/bsth/controller/StationRouteController.java
1 package com.bsth.controller; 1 package com.bsth.controller;
2 2
  3 +import org.springframework.beans.factory.annotation.Autowired;
3 import org.springframework.web.bind.annotation.RequestMapping; 4 import org.springframework.web.bind.annotation.RequestMapping;
4 import org.springframework.web.bind.annotation.RestController; 5 import org.springframework.web.bind.annotation.RestController;
5 6
6 import com.bsth.entity.StationRoute; 7 import com.bsth.entity.StationRoute;
  8 +import com.bsth.service.StationRouteService;
7 9
8 /** 10 /**
9 * 11 *
@@ -23,5 +25,25 @@ import com.bsth.entity.StationRoute; @@ -23,5 +25,25 @@ import com.bsth.entity.StationRoute;
23 @RestController 25 @RestController
24 @RequestMapping("stationroute") 26 @RequestMapping("stationroute")
25 public class StationRouteController extends BaseController<StationRoute, Integer> { 27 public class StationRouteController extends BaseController<StationRoute, Integer> {
  28 +
  29 + @Autowired
  30 + StationRouteService service;
  31 +
  32 + /*
  33 + public Page<StationRoute> list(Map<String, Object> map,
  34 + @RequestParam(defaultValue = "0") int page,
  35 + @RequestParam(defaultValue = "5") int size,
  36 + @RequestParam(defaultValue = "id") String order,
  37 + @RequestParam(defaultValue = "DESC") String direction) {
  38 +
  39 + Direction d;
  40 +
  41 + if(null != direction && direction.equals("ASC"))
  42 + d = Direction.ASC;
  43 + else
  44 + d = Direction.DESC;
  45 +
  46 + return service.list(map, new PageRequest(page, size, new Sort(d, order)));
  47 + }*/
26 48
27 } 49 }
src/main/resources/static/index.html
@@ -34,8 +34,12 @@ @@ -34,8 +34,12 @@
34 <!-- 日期控件 --> 34 <!-- 日期控件 -->
35 <link href="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker.min.css" rel="stylesheet" type="text/css" /> 35 <link href="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/css/bootstrap-datetimepicker.min.css" rel="stylesheet" type="text/css" />
36 36
  37 +<!-- table 表格控件 -->
  38 +<link href="/metronic_v4.5.4/plugins/bootstrap-datatables/css/datatables.bootstrap.css" rel="stylesheet" type="text/css" />
  39 +<link href="/metronic_v4.5.4/plugins/bootstrap-datatables/css/datatables.css" rel="stylesheet" type="text/css" />
37 <style type="text/css"> 40 <style type="text/css">
38 .searchForm{ 41 .searchForm{
  42 +
39 } 43 }
40 .searchForm .form-group .control-label{ 44 .searchForm .form-group .control-label{
41 padding-right: 0px; 45 padding-right: 0px;
@@ -268,7 +272,10 @@ tr.row-active td { @@ -268,7 +272,10 @@ tr.row-active td {
268 <script src="/assets/plugins/pinyin.js"></script> 272 <script src="/assets/plugins/pinyin.js"></script>
269 <!-- 日期控件 --> 273 <!-- 日期控件 -->
270 <script src="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/js/bootstrap-datetimepicker.min.js" type="text/javascript"></script> 274 <script src="/metronic_v4.5.4/plugins/bootstrap-datetimepicker-2/js/bootstrap-datetimepicker.min.js" type="text/javascript"></script>
271 - 275 +<!-- 表格控件 -->
  276 +<script src="/metronic_v4.5.4/scripts/datatable.js" type="text/javascript"></script>
  277 +<script src="/metronic_v4.5.4/plugins/bootstrap-datatables/datatables.js" type="text/javascript"></script>
  278 +<script src="/metronic_v4.5.4/plugins/bootstrap-datatables/datatables.bootstrap.js" type="text/javascript"></script>
272 <!-- 地图相关 --> 279 <!-- 地图相关 -->
273 <!-- 百度 --> 280 <!-- 百度 -->
274 <script src="http://api.map.baidu.com/api?v=2.0&ak=IGGrr4UjwIYzatoCRFKEL8sT" ></script> 281 <script src="http://api.map.baidu.com/api?v=2.0&ak=IGGrr4UjwIYzatoCRFKEL8sT" ></script>
src/main/resources/static/metronic_v4.5.4/plugins/bootstrap-datatables/css/datatables.bootstrap.css 0 → 100644
  1 +table.dataTable {
  2 + clear: both;
  3 + margin-top: 6px !important;
  4 + margin-bottom: 6px !important;
  5 + max-width: none !important;
  6 +}
  7 +table.dataTable td, table.dataTable th {
  8 + -webkit-box-sizing: content-box;
  9 + -moz-box-sizing: content-box;
  10 + box-sizing: content-box;
  11 +}
  12 +table.dataTable td.dataTables_empty, table.dataTable th.dataTables_empty {
  13 + text-align: center;
  14 +}
  15 +table.dataTable.nowrap th, table.dataTable.nowrap td {
  16 + white-space: nowrap;
  17 +}
  18 +div.dataTables_wrapper div.dataTables_length label {
  19 + font-weight: normal;
  20 + text-align: left;
  21 + white-space: nowrap;
  22 +}
  23 +div.dataTables_wrapper div.dataTables_length select {
  24 + width: 75px;
  25 + display: inline-block;
  26 +}
  27 +div.dataTables_wrapper div.dataTables_filter {
  28 + text-align: right;
  29 +}
  30 +div.dataTables_wrapper div.dataTables_filter label {
  31 + font-weight: normal;
  32 + white-space: nowrap;
  33 + text-align: left;
  34 +}
  35 +div.dataTables_wrapper div.dataTables_filter input {
  36 + margin-left: 0.5em;
  37 + display: inline-block;
  38 + width: auto;
  39 +}
  40 +div.dataTables_wrapper div.dataTables_info {
  41 + padding-top: 8px;
  42 + white-space: nowrap;
  43 +}
  44 +div.dataTables_wrapper div.dataTables_paginate {
  45 + margin: 0;
  46 + white-space: nowrap;
  47 + text-align: right;
  48 +}
  49 +div.dataTables_wrapper div.dataTables_paginate ul.pagination {
  50 + margin: 2px 0;
  51 + white-space: nowrap;
  52 +}
  53 +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 {
  54 + padding-right: 30px;
  55 +}
  56 +table.dataTable thead>tr>th:active, table.dataTable thead>tr>td:active {
  57 + outline: none;
  58 +}
  59 +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 {
  60 + cursor: pointer;
  61 + position: relative;
  62 +}
  63 +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 {
  64 + position: absolute;
  65 + bottom: 8px;
  66 + right: 8px;
  67 + display: block;
  68 + font-family: 'Glyphicons Halflings';
  69 + opacity: 0.5;
  70 +}
  71 +table.dataTable thead .sorting:after {
  72 + opacity: 0.2;
  73 + content: "\e150"}
  74 +table.dataTable thead .sorting_asc:after {
  75 + content: "\e155"}
  76 +table.dataTable thead .sorting_desc:after {
  77 + content: "\e156"}
  78 +table.dataTable thead .sorting_asc_disabled:after, table.dataTable thead .sorting_desc_disabled:after {
  79 + color: #eee;
  80 +}
  81 +div.dataTables_scrollHead table.dataTable {
  82 + margin-bottom: 0 !important;
  83 +}
  84 +div.dataTables_scrollBody table {
  85 + border-top: none;
  86 + margin-top: 0 !important;
  87 + margin-bottom: 0 !important;
  88 +}
  89 +div.dataTables_scrollBody table thead .sorting:after, div.dataTables_scrollBody table thead .sorting_asc:after, div.dataTables_scrollBody table thead .sorting_desc:after {
  90 + display: none;
  91 +}
  92 +div.dataTables_scrollBody table tbody tr:first-child th, div.dataTables_scrollBody table tbody tr:first-child td {
  93 + border-top: none;
  94 +}
  95 +div.dataTables_scrollFoot table {
  96 + margin-top: 0 !important;
  97 + border-top: none;
  98 +}
  99 +@media screen and (max-width: 767px) {
  100 + div.dataTables_wrapper div.dataTables_length, div.dataTables_wrapper div.dataTables_filter, div.dataTables_wrapper div.dataTables_info, div.dataTables_wrapper div.dataTables_paginate {
  101 + text-align: center;
  102 +}
  103 +}table.dataTable.table-condensed>thead>tr>th {
  104 + padding-right: 20px;
  105 +}
  106 +table.dataTable.table-condensed .sorting:after, table.dataTable.table-condensed .sorting_asc:after, table.dataTable.table-condensed .sorting_desc:after {
  107 + top: 6px;
  108 + right: 6px;
  109 +}
  110 +table.table-bordered.dataTable {
  111 + border-collapse: separate !important;
  112 +}
  113 +table.table-bordered.dataTable th, table.table-bordered.dataTable td {
  114 + border-left-width: 0;
  115 +}
  116 +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 {
  117 + border-right-width: 0;
  118 +}
  119 +table.table-bordered.dataTable tbody th, table.table-bordered.dataTable tbody td {
  120 + border-bottom-width: 0;
  121 +}
  122 +div.dataTables_scrollHead table.table-bordered {
  123 + border-bottom-width: 0;
  124 +}
0 \ No newline at end of file 125 \ No newline at end of file
src/main/resources/static/metronic_v4.5.4/plugins/bootstrap-datatables/css/datatables.css 0 → 100644
  1 +/*
  2 + * This combined file was created by the DataTables downloader builder:
  3 + * https://datatables.net/download
  4 + *
  5 + * To rebuild or modify this file with the latest versions of the included
  6 + * software please visit:
  7 + * https://datatables.net/download/#dt/jszip-2.5.0,pdfmake-0.1.18,dt-1.10.10,af-2.1.0,b-1.1.0,b-colvis-1.1.0,b-flash-1.1.0,b-html5-1.1.0,b-print-1.1.0,cr-1.3.0,fc-3.2.0,fh-3.1.0,r-2.0.0,rr-1.1.0,sc-1.4.0,se-1.1.0
  8 + *
  9 + * Included libraries:
  10 + * JSZip 2.5.0, pdfmake 0.1.18, DataTables 1.10.10, AutoFill 2.1.0, Buttons 1.1.0, Column visibility 1.1.0, Flash export 1.1.0, HTML5 export 1.1.0, Print view 1.1.0, ColReorder 1.3.0, FixedColumns 3.2.0, FixedHeader 3.1.0, Responsive 2.0.0, RowReorder 1.1.0, Scroller 1.4.0, Select 1.1.0
  11 + */
  12 +
  13 +/*
  14 + * Table styles
  15 + */
  16 +table.dataTable {
  17 + width: 100%;
  18 + margin: 0 auto;
  19 + clear: both;
  20 + border-collapse: separate;
  21 + border-spacing: 0;
  22 + /*
  23 + * Header and footer styles
  24 + */
  25 + /*
  26 + * Body styles
  27 + */
  28 +}
  29 +table.dataTable thead th,
  30 +table.dataTable tfoot th {
  31 + font-weight: bold;
  32 +}
  33 +table.dataTable thead th,
  34 +table.dataTable thead td {
  35 + padding: 10px 18px;
  36 + border-bottom: 1px solid #111;
  37 +}
  38 +table.dataTable thead th:active,
  39 +table.dataTable thead td:active {
  40 + outline: none;
  41 +}
  42 +table.dataTable tfoot th,
  43 +table.dataTable tfoot td {
  44 + padding: 10px 18px 6px 18px;
  45 + border-top: 1px solid #111;
  46 +}
  47 +table.dataTable thead .sorting,
  48 +table.dataTable thead .sorting_asc,
  49 +table.dataTable thead .sorting_desc {
  50 + cursor: pointer;
  51 + *cursor: hand;
  52 +}
  53 +table.dataTable thead .sorting,
  54 +table.dataTable thead .sorting_asc,
  55 +table.dataTable thead .sorting_desc,
  56 +table.dataTable thead .sorting_asc_disabled,
  57 +table.dataTable thead .sorting_desc_disabled {
  58 + background-repeat: no-repeat;
  59 + background-position: center right;
  60 +}
  61 +table.dataTable thead .sorting {
  62 + background-image: url("DataTables-1.10.10/images/sort_both.png");
  63 +}
  64 +table.dataTable thead .sorting_asc {
  65 + background-image: url("DataTables-1.10.10/images/sort_asc.png");
  66 +}
  67 +table.dataTable thead .sorting_desc {
  68 + background-image: url("DataTables-1.10.10/images/sort_desc.png");
  69 +}
  70 +table.dataTable thead .sorting_asc_disabled {
  71 + background-image: url("DataTables-1.10.10/images/sort_asc_disabled.png");
  72 +}
  73 +table.dataTable thead .sorting_desc_disabled {
  74 + background-image: url("DataTables-1.10.10/images/sort_desc_disabled.png");
  75 +}
  76 +table.dataTable tbody tr {
  77 + background-color: #ffffff;
  78 +}
  79 +table.dataTable tbody tr.selected {
  80 + background-color: #B0BED9;
  81 +}
  82 +table.dataTable tbody th,
  83 +table.dataTable tbody td {
  84 + padding: 8px 10px;
  85 +}
  86 +table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
  87 + border-top: 1px solid #ddd;
  88 +}
  89 +table.dataTable.row-border tbody tr:first-child th,
  90 +table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
  91 +table.dataTable.display tbody tr:first-child td {
  92 + border-top: none;
  93 +}
  94 +table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
  95 + border-top: 1px solid #ddd;
  96 + border-right: 1px solid #ddd;
  97 +}
  98 +table.dataTable.cell-border tbody tr th:first-child,
  99 +table.dataTable.cell-border tbody tr td:first-child {
  100 + border-left: 1px solid #ddd;
  101 +}
  102 +table.dataTable.cell-border tbody tr:first-child th,
  103 +table.dataTable.cell-border tbody tr:first-child td {
  104 + border-top: none;
  105 +}
  106 +table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
  107 + background-color: #f9f9f9;
  108 +}
  109 +table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
  110 + background-color: #acbad4;
  111 +}
  112 +table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
  113 + background-color: #f6f6f6;
  114 +}
  115 +table.dataTable.hover tbody tr:hover.selected, table.dataTable.display tbody tr:hover.selected {
  116 + background-color: #aab7d1;
  117 +}
  118 +table.dataTable.order-column tbody tr > .sorting_1,
  119 +table.dataTable.order-column tbody tr > .sorting_2,
  120 +table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
  121 +table.dataTable.display tbody tr > .sorting_2,
  122 +table.dataTable.display tbody tr > .sorting_3 {
  123 + background-color: #fafafa;
  124 +}
  125 +table.dataTable.order-column tbody tr.selected > .sorting_1,
  126 +table.dataTable.order-column tbody tr.selected > .sorting_2,
  127 +table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
  128 +table.dataTable.display tbody tr.selected > .sorting_2,
  129 +table.dataTable.display tbody tr.selected > .sorting_3 {
  130 + background-color: #acbad5;
  131 +}
  132 +table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
  133 + background-color: #f1f1f1;
  134 +}
  135 +table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
  136 + background-color: #f3f3f3;
  137 +}
  138 +table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
  139 + background-color: whitesmoke;
  140 +}
  141 +table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
  142 + background-color: #a6b4cd;
  143 +}
  144 +table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
  145 + background-color: #a8b5cf;
  146 +}
  147 +table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
  148 + background-color: #a9b7d1;
  149 +}
  150 +table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
  151 + background-color: #fafafa;
  152 +}
  153 +table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
  154 + background-color: #fcfcfc;
  155 +}
  156 +table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
  157 + background-color: #fefefe;
  158 +}
  159 +table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
  160 + background-color: #acbad5;
  161 +}
  162 +table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
  163 + background-color: #aebcd6;
  164 +}
  165 +table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
  166 + background-color: #afbdd8;
  167 +}
  168 +table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
  169 + background-color: #eaeaea;
  170 +}
  171 +table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
  172 + background-color: #ececec;
  173 +}
  174 +table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
  175 + background-color: #efefef;
  176 +}
  177 +table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
  178 + background-color: #a2aec7;
  179 +}
  180 +table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
  181 + background-color: #a3b0c9;
  182 +}
  183 +table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
  184 + background-color: #a5b2cb;
  185 +}
  186 +table.dataTable.no-footer {
  187 + border-bottom: 1px solid #111;
  188 +}
  189 +table.dataTable.nowrap th, table.dataTable.nowrap td {
  190 + white-space: nowrap;
  191 +}
  192 +table.dataTable.compact thead th,
  193 +table.dataTable.compact thead td {
  194 + padding: 4px 17px 4px 4px;
  195 +}
  196 +table.dataTable.compact tfoot th,
  197 +table.dataTable.compact tfoot td {
  198 + padding: 4px;
  199 +}
  200 +table.dataTable.compact tbody th,
  201 +table.dataTable.compact tbody td {
  202 + padding: 4px;
  203 +}
  204 +table.dataTable th.dt-left,
  205 +table.dataTable td.dt-left {
  206 + text-align: left;
  207 +}
  208 +table.dataTable th.dt-center,
  209 +table.dataTable td.dt-center,
  210 +table.dataTable td.dataTables_empty {
  211 + text-align: center;
  212 +}
  213 +table.dataTable th.dt-right,
  214 +table.dataTable td.dt-right {
  215 + text-align: right;
  216 +}
  217 +table.dataTable th.dt-justify,
  218 +table.dataTable td.dt-justify {
  219 + text-align: justify;
  220 +}
  221 +table.dataTable th.dt-nowrap,
  222 +table.dataTable td.dt-nowrap {
  223 + white-space: nowrap;
  224 +}
  225 +table.dataTable thead th.dt-head-left,
  226 +table.dataTable thead td.dt-head-left,
  227 +table.dataTable tfoot th.dt-head-left,
  228 +table.dataTable tfoot td.dt-head-left {
  229 + text-align: left;
  230 +}
  231 +table.dataTable thead th.dt-head-center,
  232 +table.dataTable thead td.dt-head-center,
  233 +table.dataTable tfoot th.dt-head-center,
  234 +table.dataTable tfoot td.dt-head-center {
  235 + text-align: center;
  236 +}
  237 +table.dataTable thead th.dt-head-right,
  238 +table.dataTable thead td.dt-head-right,
  239 +table.dataTable tfoot th.dt-head-right,
  240 +table.dataTable tfoot td.dt-head-right {
  241 + text-align: right;
  242 +}
  243 +table.dataTable thead th.dt-head-justify,
  244 +table.dataTable thead td.dt-head-justify,
  245 +table.dataTable tfoot th.dt-head-justify,
  246 +table.dataTable tfoot td.dt-head-justify {
  247 + text-align: justify;
  248 +}
  249 +table.dataTable thead th.dt-head-nowrap,
  250 +table.dataTable thead td.dt-head-nowrap,
  251 +table.dataTable tfoot th.dt-head-nowrap,
  252 +table.dataTable tfoot td.dt-head-nowrap {
  253 + white-space: nowrap;
  254 +}
  255 +table.dataTable tbody th.dt-body-left,
  256 +table.dataTable tbody td.dt-body-left {
  257 + text-align: left;
  258 +}
  259 +table.dataTable tbody th.dt-body-center,
  260 +table.dataTable tbody td.dt-body-center {
  261 + text-align: center;
  262 +}
  263 +table.dataTable tbody th.dt-body-right,
  264 +table.dataTable tbody td.dt-body-right {
  265 + text-align: right;
  266 +}
  267 +table.dataTable tbody th.dt-body-justify,
  268 +table.dataTable tbody td.dt-body-justify {
  269 + text-align: justify;
  270 +}
  271 +table.dataTable tbody th.dt-body-nowrap,
  272 +table.dataTable tbody td.dt-body-nowrap {
  273 + white-space: nowrap;
  274 +}
  275 +
  276 +table.dataTable,
  277 +table.dataTable th,
  278 +table.dataTable td {
  279 + -webkit-box-sizing: content-box;
  280 + -moz-box-sizing: content-box;
  281 + box-sizing: content-box;
  282 +}
  283 +
  284 +/*
  285 + * Control feature layout
  286 + */
  287 +.dataTables_wrapper {
  288 + position: relative;
  289 + clear: both;
  290 + *zoom: 1;
  291 + zoom: 1;
  292 +}
  293 +.dataTables_wrapper .dataTables_length {
  294 + float: left;
  295 +}
  296 +.dataTables_wrapper .dataTables_filter {
  297 + float: right;
  298 + text-align: right;
  299 +}
  300 +.dataTables_wrapper .dataTables_filter input {
  301 + margin-left: 0.5em;
  302 +}
  303 +.dataTables_wrapper .dataTables_info {
  304 + clear: both;
  305 + float: left;
  306 + padding-top: 0.755em;
  307 +}
  308 +.dataTables_wrapper .dataTables_paginate {
  309 + float: right;
  310 + text-align: right;
  311 + padding-top: 0.25em;
  312 +}
  313 +.dataTables_wrapper .dataTables_paginate .paginate_button {
  314 + box-sizing: border-box;
  315 + display: inline-block;
  316 + min-width: 1.5em;
  317 + padding: 0.5em 1em;
  318 + margin-left: 2px;
  319 + text-align: center;
  320 + text-decoration: none !important;
  321 + cursor: pointer;
  322 + *cursor: hand;
  323 + color: #333 !important;
  324 + border: 1px solid transparent;
  325 + border-radius: 2px;
  326 +}
  327 +.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  328 + color: #333 !important;
  329 + border: 1px solid #979797;
  330 + background-color: white;
  331 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));
  332 + /* Chrome,Safari4+ */
  333 + background: -webkit-linear-gradient(top, white 0%, #dcdcdc 100%);
  334 + /* Chrome10+,Safari5.1+ */
  335 + background: -moz-linear-gradient(top, white 0%, #dcdcdc 100%);
  336 + /* FF3.6+ */
  337 + background: -ms-linear-gradient(top, white 0%, #dcdcdc 100%);
  338 + /* IE10+ */
  339 + background: -o-linear-gradient(top, white 0%, #dcdcdc 100%);
  340 + /* Opera 11.10+ */
  341 + background: linear-gradient(to bottom, white 0%, #dcdcdc 100%);
  342 + /* W3C */
  343 +}
  344 +.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
  345 + cursor: default;
  346 + color: #666 !important;
  347 + border: 1px solid transparent;
  348 + background: transparent;
  349 + box-shadow: none;
  350 +}
  351 +.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  352 + color: white !important;
  353 + border: 1px solid #111;
  354 + background-color: #585858;
  355 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));
  356 + /* Chrome,Safari4+ */
  357 + background: -webkit-linear-gradient(top, #585858 0%, #111 100%);
  358 + /* Chrome10+,Safari5.1+ */
  359 + background: -moz-linear-gradient(top, #585858 0%, #111 100%);
  360 + /* FF3.6+ */
  361 + background: -ms-linear-gradient(top, #585858 0%, #111 100%);
  362 + /* IE10+ */
  363 + background: -o-linear-gradient(top, #585858 0%, #111 100%);
  364 + /* Opera 11.10+ */
  365 + background: linear-gradient(to bottom, #585858 0%, #111 100%);
  366 + /* W3C */
  367 +}
  368 +.dataTables_wrapper .dataTables_paginate .paginate_button:active {
  369 + outline: none;
  370 + background-color: #2b2b2b;
  371 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));
  372 + /* Chrome,Safari4+ */
  373 + background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
  374 + /* Chrome10+,Safari5.1+ */
  375 + background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
  376 + /* FF3.6+ */
  377 + background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
  378 + /* IE10+ */
  379 + background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
  380 + /* Opera 11.10+ */
  381 + background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);
  382 + /* W3C */
  383 + box-shadow: inset 0 0 3px #111;
  384 +}
  385 +.dataTables_wrapper .dataTables_paginate .ellipsis {
  386 + padding: 0 1em;
  387 +}
  388 +.dataTables_wrapper .dataTables_processing {
  389 + position: absolute;
  390 + top: 50%;
  391 + left: 50%;
  392 + width: 100%;
  393 + height: 40px;
  394 + margin-left: -50%;
  395 + margin-top: -25px;
  396 + padding-top: 20px;
  397 + text-align: center;
  398 + font-size: 1.2em;
  399 + background-color: white;
  400 + background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
  401 + background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
  402 + background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
  403 + background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
  404 + background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
  405 + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
  406 +}
  407 +.dataTables_wrapper .dataTables_length,
  408 +.dataTables_wrapper .dataTables_filter,
  409 +.dataTables_wrapper .dataTables_info,
  410 +.dataTables_wrapper .dataTables_processing,
  411 +.dataTables_wrapper .dataTables_paginate {
  412 + color: #333;
  413 +}
  414 +.dataTables_wrapper .dataTables_scroll {
  415 + clear: both;
  416 +}
  417 +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
  418 + *margin-top: -1px;
  419 + -webkit-overflow-scrolling: touch;
  420 +}
  421 +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td {
  422 + vertical-align: middle;
  423 +}
  424 +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th > div.dataTables_sizing,
  425 +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td > div.dataTables_sizing {
  426 + height: 0;
  427 + overflow: hidden;
  428 + margin: 0 !important;
  429 + padding: 0 !important;
  430 +}
  431 +.dataTables_wrapper.no-footer .dataTables_scrollBody {
  432 + border-bottom: 1px solid #111;
  433 +}
  434 +.dataTables_wrapper.no-footer div.dataTables_scrollHead table,
  435 +.dataTables_wrapper.no-footer div.dataTables_scrollBody table {
  436 + border-bottom: none;
  437 +}
  438 +.dataTables_wrapper:after {
  439 + visibility: hidden;
  440 + display: block;
  441 + content: "";
  442 + clear: both;
  443 + height: 0;
  444 +}
  445 +
  446 +@media screen and (max-width: 767px) {
  447 + .dataTables_wrapper .dataTables_info,
  448 + .dataTables_wrapper .dataTables_paginate {
  449 + float: none;
  450 + text-align: center;
  451 + }
  452 + .dataTables_wrapper .dataTables_paginate {
  453 + margin-top: 0.5em;
  454 + }
  455 +}
  456 +@media screen and (max-width: 640px) {
  457 + .dataTables_wrapper .dataTables_length,
  458 + .dataTables_wrapper .dataTables_filter {
  459 + float: none;
  460 + text-align: center;
  461 + }
  462 + .dataTables_wrapper .dataTables_filter {
  463 + margin-top: 0.5em;
  464 + }
  465 +}
  466 +
  467 +
  468 +div.dt-autofill-handle{position:absolute;height:8px;width:8px;z-index:102;box-sizing:border-box;border:1px solid #316ad1;background:linear-gradient(to bottom, #abcffb 0%, #4989de 100%)}div.dt-autofill-select{position:absolute;z-index:1001;background-color:#4989de;background-image:repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,0.5) 5px, rgba(255,255,255,0.5) 10px)}div.dt-autofill-select.top,div.dt-autofill-select.bottom{height:3px;margin-top:-1px}div.dt-autofill-select.left,div.dt-autofill-select.right{width:3px;margin-left:-1px}div.dt-autofill-list{position:fixed;top:50%;left:50%;width:500px;margin-left:-250px;background-color:white;border-radius:6px;box-shadow:0 0 5px #555;border:2px solid #444;z-index:11;box-sizing:border-box;padding:1.5em 2em}div.dt-autofill-list ul{display:table;margin:0;padding:0;list-style:none;width:100%}div.dt-autofill-list ul li{display:table-row}div.dt-autofill-list ul li:last-child div.dt-autofill-question,div.dt-autofill-list ul li:last-child div.dt-autofill-button{border-bottom:none}div.dt-autofill-list ul li:hover{background-color:#f6f6f6}div.dt-autofill-list div.dt-autofill-question{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-list div.dt-autofill-question input[type=number]{padding:6px;width:30px;margin:-2px 0}div.dt-autofill-list div.dt-autofill-button{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-list div.dt-autofill-button button{color:white;margin:0;padding:6px 12px;text-align:center;border:1px solid #2e6da4;background-color:#337ab7;border-radius:4px;cursor:pointer;vertical-align:middle}div.dt-autofill-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:10}
  469 +
  470 +
  471 +div.dt-button-info {
  472 + position: fixed;
  473 + top: 50%;
  474 + left: 50%;
  475 + width: 400px;
  476 + margin-top: -100px;
  477 + margin-left: -200px;
  478 + background-color: white;
  479 + border: 2px solid #111;
  480 + box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
  481 + border-radius: 3px;
  482 + text-align: center;
  483 + z-index: 21;
  484 +}
  485 +div.dt-button-info h2 {
  486 + padding: 0.5em;
  487 + margin: 0;
  488 + font-weight: normal;
  489 + border-bottom: 1px solid #ddd;
  490 + background-color: #f3f3f3;
  491 +}
  492 +div.dt-button-info > div {
  493 + padding: 1em;
  494 +}
  495 +
  496 +button.dt-button,
  497 +div.dt-button,
  498 +a.dt-button {
  499 + position: relative;
  500 + display: inline-block;
  501 + box-sizing: border-box;
  502 + margin-right: 0.333em;
  503 + padding: 0.5em 1em;
  504 + border: 1px solid #999;
  505 + border-radius: 2px;
  506 + cursor: pointer;
  507 + font-size: 0.88em;
  508 + color: black;
  509 + white-space: nowrap;
  510 + overflow: hidden;
  511 + background-color: #e9e9e9;
  512 + /* Fallback */
  513 + background-image: -webkit-linear-gradient(top, white 0%, #e9e9e9 100%);
  514 + /* Chrome 10+, Saf5.1+, iOS 5+ */
  515 + background-image: -moz-linear-gradient(top, white 0%, #e9e9e9 100%);
  516 + /* FF3.6 */
  517 + background-image: -ms-linear-gradient(top, white 0%, #e9e9e9 100%);
  518 + /* IE10 */
  519 + background-image: -o-linear-gradient(top, white 0%, #e9e9e9 100%);
  520 + /* Opera 11.10+ */
  521 + background-image: linear-gradient(top, white 0%, #e9e9e9 100%);
  522 + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='white', EndColorStr='#e9e9e9');
  523 + -webkit-user-select: none;
  524 + -moz-user-select: none;
  525 + -ms-user-select: none;
  526 + user-select: none;
  527 + text-decoration: none;
  528 + outline: none;
  529 +}
  530 +button.dt-button.disabled,
  531 +div.dt-button.disabled,
  532 +a.dt-button.disabled {
  533 + color: #999;
  534 + border: 1px solid #d0d0d0;
  535 + cursor: default;
  536 + background-color: #f9f9f9;
  537 + /* Fallback */
  538 + background-image: -webkit-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
  539 + /* Chrome 10+, Saf5.1+, iOS 5+ */
  540 + background-image: -moz-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
  541 + /* FF3.6 */
  542 + background-image: -ms-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
  543 + /* IE10 */
  544 + background-image: -o-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
  545 + /* Opera 11.10+ */
  546 + background-image: linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
  547 + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#ffffff', EndColorStr='#f9f9f9');
  548 +}
  549 +button.dt-button:active:not(.disabled), button.dt-button.active:not(.disabled),
  550 +div.dt-button:active:not(.disabled),
  551 +div.dt-button.active:not(.disabled),
  552 +a.dt-button:active:not(.disabled),
  553 +a.dt-button.active:not(.disabled) {
  554 + background-color: #e2e2e2;
  555 + /* Fallback */
  556 + background-image: -webkit-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
  557 + /* Chrome 10+, Saf5.1+, iOS 5+ */
  558 + background-image: -moz-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
  559 + /* FF3.6 */
  560 + background-image: -ms-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
  561 + /* IE10 */
  562 + background-image: -o-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
  563 + /* Opera 11.10+ */
  564 + background-image: linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
  565 + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f3f3f3', EndColorStr='#e2e2e2');
  566 + box-shadow: inset 1px 1px 3px #999999;
  567 +}
  568 +button.dt-button:active:not(.disabled):hover:not(.disabled), button.dt-button.active:not(.disabled):hover:not(.disabled),
  569 +div.dt-button:active:not(.disabled):hover:not(.disabled),
  570 +div.dt-button.active:not(.disabled):hover:not(.disabled),
  571 +a.dt-button:active:not(.disabled):hover:not(.disabled),
  572 +a.dt-button.active:not(.disabled):hover:not(.disabled) {
  573 + box-shadow: inset 1px 1px 3px #999999;
  574 + background-color: #cccccc;
  575 + /* Fallback */
  576 + background-image: -webkit-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
  577 + /* Chrome 10+, Saf5.1+, iOS 5+ */
  578 + background-image: -moz-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
  579 + /* FF3.6 */
  580 + background-image: -ms-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
  581 + /* IE10 */
  582 + background-image: -o-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
  583 + /* Opera 11.10+ */
  584 + background-image: linear-gradient(top, #eaeaea 0%, #cccccc 100%);
  585 + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#eaeaea', EndColorStr='#cccccc');
  586 +}
  587 +button.dt-button:hover,
  588 +div.dt-button:hover,
  589 +a.dt-button:hover {
  590 + text-decoration: none;
  591 +}
  592 +button.dt-button:hover:not(.disabled),
  593 +div.dt-button:hover:not(.disabled),
  594 +a.dt-button:hover:not(.disabled) {
  595 + border: 1px solid #666;
  596 + background-color: #e0e0e0;
  597 + /* Fallback */
  598 + background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
  599 + /* Chrome 10+, Saf5.1+, iOS 5+ */
  600 + background-image: -moz-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
  601 + /* FF3.6 */
  602 + background-image: -ms-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
  603 + /* IE10 */
  604 + background-image: -o-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
  605 + /* Opera 11.10+ */
  606 + background-image: linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
  607 + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f9f9f9', EndColorStr='#e0e0e0');
  608 +}
  609 +button.dt-button:focus:not(.disabled),
  610 +div.dt-button:focus:not(.disabled),
  611 +a.dt-button:focus:not(.disabled) {
  612 + border: 1px solid #426c9e;
  613 + text-shadow: 0 1px 0 #c4def1;
  614 + outline: none;
  615 + background-color: #79ace9;
  616 + /* Fallback */
  617 + background-image: -webkit-linear-gradient(top, #bddef4 0%, #79ace9 100%);
  618 + /* Chrome 10+, Saf5.1+, iOS 5+ */
  619 + background-image: -moz-linear-gradient(top, #bddef4 0%, #79ace9 100%);
  620 + /* FF3.6 */
  621 + background-image: -ms-linear-gradient(top, #bddef4 0%, #79ace9 100%);
  622 + /* IE10 */
  623 + background-image: -o-linear-gradient(top, #bddef4 0%, #79ace9 100%);
  624 + /* Opera 11.10+ */
  625 + background-image: linear-gradient(top, #bddef4 0%, #79ace9 100%);
  626 + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#bddef4', EndColorStr='#79ace9');
  627 +}
  628 +
  629 +.dt-button embed {
  630 + outline: none;
  631 +}
  632 +
  633 +div.dt-buttons {
  634 + position: relative;
  635 + float: left;
  636 +}
  637 +div.dt-buttons.buttons-right {
  638 + float: right;
  639 +}
  640 +
  641 +div.dt-button-collection {
  642 + position: absolute;
  643 + top: 0;
  644 + left: 0;
  645 + width: 150px;
  646 + margin-top: 3px;
  647 + padding: 8px 8px 4px 8px;
  648 + border: 1px solid #ccc;
  649 + border: 1px solid rgba(0, 0, 0, 0.4);
  650 + background-color: white;
  651 + overflow: hidden;
  652 + z-index: 2002;
  653 + border-radius: 5px;
  654 + box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
  655 + z-index: 2002;
  656 + -webkit-column-gap: 8px;
  657 + -moz-column-gap: 8px;
  658 + -ms-column-gap: 8px;
  659 + -o-column-gap: 8px;
  660 + column-gap: 8px;
  661 +}
  662 +div.dt-button-collection button.dt-button,
  663 +div.dt-button-collection div.dt-button,
  664 +div.dt-button-collection a.dt-button {
  665 + position: relative;
  666 + left: 0;
  667 + right: 0;
  668 + display: block;
  669 + float: none;
  670 + margin-bottom: 4px;
  671 + margin-right: 0;
  672 +}
  673 +div.dt-button-collection button.dt-button:active:not(.disabled), div.dt-button-collection button.dt-button.active:not(.disabled),
  674 +div.dt-button-collection div.dt-button:active:not(.disabled),
  675 +div.dt-button-collection div.dt-button.active:not(.disabled),
  676 +div.dt-button-collection a.dt-button:active:not(.disabled),
  677 +div.dt-button-collection a.dt-button.active:not(.disabled) {
  678 + background-color: #dadada;
  679 + /* Fallback */
  680 + background-image: -webkit-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
  681 + /* Chrome 10+, Saf5.1+, iOS 5+ */
  682 + background-image: -moz-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
  683 + /* FF3.6 */
  684 + background-image: -ms-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
  685 + /* IE10 */
  686 + background-image: -o-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
  687 + /* Opera 11.10+ */
  688 + background-image: linear-gradient(top, #f0f0f0 0%, #dadada 100%);
  689 + filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f0f0f0', EndColorStr='#dadada');
  690 + box-shadow: inset 1px 1px 3px #666;
  691 +}
  692 +div.dt-button-collection.fixed {
  693 + position: fixed;
  694 + top: 50%;
  695 + left: 50%;
  696 + margin-left: -75px;
  697 + border-radius: 0;
  698 +}
  699 +div.dt-button-collection.fixed.two-column {
  700 + margin-left: -150px;
  701 +}
  702 +div.dt-button-collection.fixed.three-column {
  703 + margin-left: -225px;
  704 +}
  705 +div.dt-button-collection.fixed.four-column {
  706 + margin-left: -300px;
  707 +}
  708 +div.dt-button-collection > * {
  709 + -webkit-column-break-inside: avoid;
  710 + break-inside: avoid;
  711 +}
  712 +div.dt-button-collection.two-column {
  713 + width: 300px;
  714 + padding-bottom: 1px;
  715 + -webkit-column-count: 2;
  716 + -moz-column-count: 2;
  717 + -ms-column-count: 2;
  718 + -o-column-count: 2;
  719 + column-count: 2;
  720 +}
  721 +div.dt-button-collection.three-column {
  722 + width: 450px;
  723 + padding-bottom: 1px;
  724 + -webkit-column-count: 3;
  725 + -moz-column-count: 3;
  726 + -ms-column-count: 3;
  727 + -o-column-count: 3;
  728 + column-count: 3;
  729 +}
  730 +div.dt-button-collection.four-column {
  731 + width: 600px;
  732 + padding-bottom: 1px;
  733 + -webkit-column-count: 4;
  734 + -moz-column-count: 4;
  735 + -ms-column-count: 4;
  736 + -o-column-count: 4;
  737 + column-count: 4;
  738 +}
  739 +
  740 +div.dt-button-background {
  741 + position: fixed;
  742 + top: 0;
  743 + left: 0;
  744 + width: 100%;
  745 + height: 100%;
  746 + background: rgba(0, 0, 0, 0.7);
  747 + /* Fallback */
  748 + background: -ms-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
  749 + /* IE10 Consumer Preview */
  750 + background: -moz-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
  751 + /* Firefox */
  752 + background: -o-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
  753 + /* Opera */
  754 + background: -webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, rgba(0, 0, 0, 0.3)), color-stop(1, rgba(0, 0, 0, 0.7)));
  755 + /* Webkit (Safari/Chrome 10) */
  756 + background: -webkit-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
  757 + /* Webkit (Chrome 11+) */
  758 + background: radial-gradient(ellipse farthest-corner at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
  759 + /* W3C Markup, IE10 Release Preview */
  760 + z-index: 2001;
  761 +}
  762 +
  763 +@media screen and (max-width: 640px) {
  764 + div.dt-buttons {
  765 + float: none !important;
  766 + text-align: center;
  767 + }
  768 +}
  769 +
  770 +
  771 +table.DTCR_clonedTable {
  772 + background-color: rgba(255, 255, 255, 0.7);
  773 + z-index: 202;
  774 +}
  775 +
  776 +div.DTCR_pointer {
  777 + width: 1px;
  778 + background-color: #0259C4;
  779 + z-index: 201;
  780 +}
  781 +
  782 +
  783 +table.DTFC_Cloned thead,
  784 +table.DTFC_Cloned tfoot {
  785 + background-color: white;
  786 +}
  787 +
  788 +div.DTFC_Blocker {
  789 + background-color: white;
  790 +}
  791 +
  792 +div.DTFC_LeftWrapper table.dataTable,
  793 +div.DTFC_RightWrapper table.dataTable {
  794 + margin-bottom: 0;
  795 + z-index: 2;
  796 +}
  797 +div.DTFC_LeftWrapper table.dataTable.no-footer,
  798 +div.DTFC_RightWrapper table.dataTable.no-footer {
  799 + border-bottom: none;
  800 +}
  801 +
  802 +
  803 +table.fixedHeader-floating {
  804 + position: fixed !important;
  805 + background-color: white;
  806 +}
  807 +
  808 +table.fixedHeader-floating.no-footer {
  809 + border-bottom-width: 0;
  810 +}
  811 +
  812 +table.fixedHeader-locked {
  813 + position: absolute !important;
  814 + background-color: white;
  815 +}
  816 +
  817 +@media print {
  818 + table.fixedHeader-floating {
  819 + display: none;
  820 + }
  821 +}
  822 +
  823 +
  824 +table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
  825 +table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
  826 +table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
  827 + cursor: default !important;
  828 +}
  829 +table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
  830 +table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
  831 +table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
  832 + display: none !important;
  833 +}
  834 +table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child,
  835 +table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child {
  836 + position: relative;
  837 + padding-left: 30px;
  838 + cursor: pointer;
  839 +}
  840 +table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,
  841 +table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {
  842 + top: 8px;
  843 + left: 4px;
  844 + height: 16px;
  845 + width: 16px;
  846 + display: block;
  847 + position: absolute;
  848 + color: white;
  849 + border: 2px solid white;
  850 + border-radius: 16px;
  851 + box-shadow: 0 0 3px #444;
  852 + box-sizing: content-box;
  853 + font-family: 'Courier New', Courier, monospace;
  854 + text-indent: 4px;
  855 + line-height: 16px;
  856 + content: '+';
  857 + background-color: #31b131;
  858 +}
  859 +table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
  860 +table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
  861 + content: '-';
  862 + background-color: #d33333;
  863 +}
  864 +table.dataTable.dtr-inline.collapsed > tbody > tr.child td:before {
  865 + display: none;
  866 +}
  867 +table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
  868 +table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
  869 + padding-left: 27px;
  870 +}
  871 +table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
  872 +table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
  873 + top: 5px;
  874 + left: 4px;
  875 + height: 14px;
  876 + width: 14px;
  877 + border-radius: 14px;
  878 + line-height: 14px;
  879 + text-indent: 3px;
  880 +}
  881 +table.dataTable.dtr-column > tbody > tr > td.control,
  882 +table.dataTable.dtr-column > tbody > tr > th.control {
  883 + position: relative;
  884 + cursor: pointer;
  885 +}
  886 +table.dataTable.dtr-column > tbody > tr > td.control:before,
  887 +table.dataTable.dtr-column > tbody > tr > th.control:before {
  888 + top: 50%;
  889 + left: 50%;
  890 + height: 16px;
  891 + width: 16px;
  892 + margin-top: -10px;
  893 + margin-left: -10px;
  894 + display: block;
  895 + position: absolute;
  896 + color: white;
  897 + border: 2px solid white;
  898 + border-radius: 16px;
  899 + box-shadow: 0 0 3px #444;
  900 + box-sizing: content-box;
  901 + font-family: 'Courier New', Courier, monospace;
  902 + text-indent: 4px;
  903 + line-height: 16px;
  904 + content: '+';
  905 + background-color: #31b131;
  906 +}
  907 +table.dataTable.dtr-column > tbody > tr.parent td.control:before,
  908 +table.dataTable.dtr-column > tbody > tr.parent th.control:before {
  909 + content: '-';
  910 + background-color: #d33333;
  911 +}
  912 +table.dataTable > tbody > tr.child {
  913 + padding: 0.5em 1em;
  914 +}
  915 +table.dataTable > tbody > tr.child:hover {
  916 + background: transparent !important;
  917 +}
  918 +table.dataTable > tbody > tr.child ul {
  919 + display: inline-block;
  920 + list-style-type: none;
  921 + margin: 0;
  922 + padding: 0;
  923 +}
  924 +table.dataTable > tbody > tr.child ul li {
  925 + border-bottom: 1px solid #efefef;
  926 + padding: 0.5em 0;
  927 +}
  928 +table.dataTable > tbody > tr.child ul li:first-child {
  929 + padding-top: 0;
  930 +}
  931 +table.dataTable > tbody > tr.child ul li:last-child {
  932 + border-bottom: none;
  933 +}
  934 +table.dataTable > tbody > tr.child span.dtr-title {
  935 + display: inline-block;
  936 + min-width: 75px;
  937 + font-weight: bold;
  938 +}
  939 +
  940 +div.dtr-modal {
  941 + position: fixed;
  942 + box-sizing: border-box;
  943 + top: 0;
  944 + left: 0;
  945 + height: 100%;
  946 + width: 100%;
  947 + z-index: 100;
  948 + padding: 10em 1em;
  949 +}
  950 +div.dtr-modal div.dtr-modal-display {
  951 + position: absolute;
  952 + top: 0;
  953 + left: 0;
  954 + bottom: 0;
  955 + right: 0;
  956 + width: 50%;
  957 + height: 50%;
  958 + overflow: auto;
  959 + margin: auto;
  960 + z-index: 102;
  961 + overflow: auto;
  962 + background-color: #f5f5f7;
  963 + border: 1px solid black;
  964 + border-radius: 0.5em;
  965 + box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
  966 +}
  967 +div.dtr-modal div.dtr-modal-content {
  968 + position: relative;
  969 + padding: 1em;
  970 +}
  971 +div.dtr-modal div.dtr-modal-close {
  972 + position: absolute;
  973 + top: 6px;
  974 + right: 6px;
  975 + width: 22px;
  976 + height: 22px;
  977 + border: 1px solid #eaeaea;
  978 + background-color: #f9f9f9;
  979 + text-align: center;
  980 + border-radius: 3px;
  981 + cursor: pointer;
  982 + z-index: 12;
  983 +}
  984 +div.dtr-modal div.dtr-modal-close:hover {
  985 + background-color: #eaeaea;
  986 +}
  987 +div.dtr-modal div.dtr-modal-background {
  988 + position: fixed;
  989 + top: 0;
  990 + left: 0;
  991 + right: 0;
  992 + bottom: 0;
  993 + z-index: 101;
  994 + background: rgba(0, 0, 0, 0.6);
  995 +}
  996 +
  997 +@media screen and (max-width: 767px) {
  998 + div.dtr-modal div.dtr-modal-display {
  999 + width: 95%;
  1000 + }
  1001 +}
  1002 +
  1003 +
  1004 +table.dt-rowReorder-float {
  1005 + position: absolute !important;
  1006 + opacity: 0.8;
  1007 + table-layout: static;
  1008 + outline: 2px solid #888;
  1009 + outline-offset: -2px;
  1010 + z-index: 2001;
  1011 +}
  1012 +
  1013 +tr.dt-rowReorder-moving {
  1014 + outline: 2px solid #555;
  1015 + outline-offset: -2px;
  1016 +}
  1017 +
  1018 +body.dt-rowReorder-noOverflow {
  1019 + overflow-x: hidden;
  1020 +}
  1021 +
  1022 +table.dataTable td.reorder {
  1023 + text-align: center;
  1024 + cursor: move;
  1025 +}
  1026 +
  1027 +
  1028 +div.DTS tbody th,
  1029 +div.DTS tbody td {
  1030 + white-space: nowrap;
  1031 +}
  1032 +div.DTS tbody tr.even {
  1033 + background-color: white;
  1034 +}
  1035 +div.DTS div.DTS_Loading {
  1036 + z-index: 1;
  1037 +}
  1038 +div.DTS div.dataTables_scrollBody {
  1039 + background: repeating-linear-gradient(45deg, #edeeff, #edeeff 10px, white 10px, white 20px);
  1040 +}
  1041 +div.DTS div.dataTables_scrollBody table {
  1042 + z-index: 2;
  1043 +}
  1044 +div.DTS div.dataTables_paginate {
  1045 + display: none;
  1046 +}
  1047 +
  1048 +
  1049 +table.dataTable tbody > tr.selected,
  1050 +table.dataTable tbody > tr > .selected {
  1051 + background-color: #B0BED9;
  1052 +}
  1053 +table.dataTable.stripe tbody > tr.odd.selected,
  1054 +table.dataTable.stripe tbody > tr.odd > .selected, table.dataTable.display tbody > tr.odd.selected,
  1055 +table.dataTable.display tbody > tr.odd > .selected {
  1056 + background-color: #acbad4;
  1057 +}
  1058 +table.dataTable.hover tbody > tr.selected:hover,
  1059 +table.dataTable.hover tbody > tr > .selected:hover, table.dataTable.display tbody > tr.selected:hover,
  1060 +table.dataTable.display tbody > tr > .selected:hover {
  1061 + background-color: #aab7d1;
  1062 +}
  1063 +table.dataTable.order-column tbody > tr.selected > .sorting_1,
  1064 +table.dataTable.order-column tbody > tr.selected > .sorting_2,
  1065 +table.dataTable.order-column tbody > tr.selected > .sorting_3,
  1066 +table.dataTable.order-column tbody > tr > .selected, table.dataTable.display tbody > tr.selected > .sorting_1,
  1067 +table.dataTable.display tbody > tr.selected > .sorting_2,
  1068 +table.dataTable.display tbody > tr.selected > .sorting_3,
  1069 +table.dataTable.display tbody > tr > .selected {
  1070 + background-color: #acbad5;
  1071 +}
  1072 +table.dataTable.display tbody > tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_1 {
  1073 + background-color: #a6b4cd;
  1074 +}
  1075 +table.dataTable.display tbody > tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_2 {
  1076 + background-color: #a8b5cf;
  1077 +}
  1078 +table.dataTable.display tbody > tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.odd.selected > .sorting_3 {
  1079 + background-color: #a9b7d1;
  1080 +}
  1081 +table.dataTable.display tbody > tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_1 {
  1082 + background-color: #acbad5;
  1083 +}
  1084 +table.dataTable.display tbody > tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_2 {
  1085 + background-color: #aebcd6;
  1086 +}
  1087 +table.dataTable.display tbody > tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody > tr.even.selected > .sorting_3 {
  1088 + background-color: #afbdd8;
  1089 +}
  1090 +table.dataTable.display tbody > tr.odd > .selected, table.dataTable.order-column.stripe tbody > tr.odd > .selected {
  1091 + background-color: #a6b4cd;
  1092 +}
  1093 +table.dataTable.display tbody > tr.even > .selected, table.dataTable.order-column.stripe tbody > tr.even > .selected {
  1094 + background-color: #acbad5;
  1095 +}
  1096 +table.dataTable.display tbody > tr.selected:hover > .sorting_1, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_1 {
  1097 + background-color: #a2aec7;
  1098 +}
  1099 +table.dataTable.display tbody > tr.selected:hover > .sorting_2, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_2 {
  1100 + background-color: #a3b0c9;
  1101 +}
  1102 +table.dataTable.display tbody > tr.selected:hover > .sorting_3, table.dataTable.order-column.hover tbody > tr.selected:hover > .sorting_3 {
  1103 + background-color: #a5b2cb;
  1104 +}
  1105 +table.dataTable.display tbody > tr:hover > .selected,
  1106 +table.dataTable.display tbody > tr > .selected:hover, table.dataTable.order-column.hover tbody > tr:hover > .selected,
  1107 +table.dataTable.order-column.hover tbody > tr > .selected:hover {
  1108 + background-color: #a2aec7;
  1109 +}
  1110 +table.dataTable td.select-checkbox {
  1111 + position: relative;
  1112 +}
  1113 +table.dataTable td.select-checkbox:before, table.dataTable td.select-checkbox:after {
  1114 + display: block;
  1115 + position: absolute;
  1116 + top: 1.2em;
  1117 + left: 50%;
  1118 + width: 12px;
  1119 + height: 12px;
  1120 + box-sizing: border-box;
  1121 +}
  1122 +table.dataTable td.select-checkbox:before {
  1123 + content: ' ';
  1124 + margin-top: -6px;
  1125 + margin-left: -6px;
  1126 + border: 1px solid black;
  1127 + border-radius: 3px;
  1128 +}
  1129 +table.dataTable tr.selected td.select-checkbox:after {
  1130 + content: '\2714';
  1131 + margin-top: -11px;
  1132 + margin-left: -4px;
  1133 + text-align: center;
  1134 + text-shadow: 1px 1px #B0BED9, -1px -1px #B0BED9, 1px -1px #B0BED9, -1px 1px #B0BED9;
  1135 +}
  1136 +
  1137 +div.dataTables_wrapper span.select-info,
  1138 +div.dataTables_wrapper span.select-item {
  1139 + margin-left: 0.5em;
  1140 +}
  1141 +
  1142 +@media screen and (max-width: 640px) {
  1143 + div.dataTables_wrapper span.select-info,
  1144 + div.dataTables_wrapper span.select-item {
  1145 + margin-left: 0;
  1146 + display: block;
  1147 + }
  1148 +}
  1149 +
  1150 +
src/main/resources/static/metronic_v4.5.4/plugins/bootstrap-datatables/dataTables.bootstrap.js 0 → 100644
  1 +/*! DataTables Bootstrap 3 integration
  2 + * ©2011-2014 SpryMedia Ltd - datatables.net/license
  3 + */
  4 +
  5 +/**
  6 + * DataTables integration for Bootstrap 3. This requires Bootstrap 3 and
  7 + * DataTables 1.10 or newer.
  8 + *
  9 + * This file sets the defaults and adds options to DataTables to style its
  10 + * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
  11 + * for further information.
  12 + */
  13 +(function(window, document, undefined){
  14 +
  15 +var factory = function( $, DataTable ) {
  16 +"use strict";
  17 +
  18 +
  19 +/* Set the defaults for DataTables initialisation */
  20 +$.extend( true, DataTable.defaults, {
  21 + dom:
  22 + "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
  23 + "<'row'<'col-sm-12'tr>>" +
  24 + "<'row'<'col-sm-5'i><'col-sm-7'p>>",
  25 + renderer: 'bootstrap'
  26 +} );
  27 +
  28 +
  29 +/* Default class modification */
  30 +$.extend( DataTable.ext.classes, {
  31 + sWrapper: "dataTables_wrapper form-inline dt-bootstrap",
  32 + sFilterInput: "form-control input-sm",
  33 + sLengthSelect: "form-control input-sm"
  34 +} );
  35 +
  36 +
  37 +/* Bootstrap paging button renderer */
  38 +DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
  39 + var api = new DataTable.Api( settings );
  40 + var classes = settings.oClasses;
  41 + var lang = settings.oLanguage.oPaginate;
  42 + var btnDisplay, btnClass, counter=0;
  43 +
  44 + var attach = function( container, buttons ) {
  45 + var i, ien, node, button;
  46 + var clickHandler = function ( e ) {
  47 + e.preventDefault();
  48 + if ( !$(e.currentTarget).hasClass('disabled') ) {
  49 + api.page( e.data.action ).draw( false );
  50 + }
  51 + };
  52 +
  53 + for ( i=0, ien=buttons.length ; i<ien ; i++ ) {
  54 + button = buttons[i];
  55 +
  56 + if ( $.isArray( button ) ) {
  57 + attach( container, button );
  58 + }
  59 + else {
  60 + btnDisplay = '';
  61 + btnClass = '';
  62 +
  63 + switch ( button ) {
  64 + case 'ellipsis':
  65 + btnDisplay = '&hellip;';
  66 + btnClass = 'disabled';
  67 + break;
  68 +
  69 + case 'first':
  70 + btnDisplay = lang.sFirst;
  71 + btnClass = button + (page > 0 ?
  72 + '' : ' disabled');
  73 + break;
  74 +
  75 + case 'previous':
  76 + btnDisplay = lang.sPrevious;
  77 + btnClass = button + (page > 0 ?
  78 + '' : ' disabled');
  79 + break;
  80 +
  81 + case 'next':
  82 + btnDisplay = lang.sNext;
  83 + btnClass = button + (page < pages-1 ?
  84 + '' : ' disabled');
  85 + break;
  86 +
  87 + case 'last':
  88 + btnDisplay = lang.sLast;
  89 + btnClass = button + (page < pages-1 ?
  90 + '' : ' disabled');
  91 + break;
  92 +
  93 + default:
  94 + btnDisplay = button + 1;
  95 + btnClass = page === button ?
  96 + 'active' : '';
  97 + break;
  98 + }
  99 +
  100 + if ( btnDisplay ) {
  101 + node = $('<li>', {
  102 + 'class': classes.sPageButton+' '+btnClass,
  103 + 'id': idx === 0 && typeof button === 'string' ?
  104 + settings.sTableId +'_'+ button :
  105 + null
  106 + } )
  107 + .append( $('<a>', {
  108 + 'href': '#',
  109 + 'aria-controls': settings.sTableId,
  110 + 'data-dt-idx': counter,
  111 + 'tabindex': settings.iTabIndex
  112 + } )
  113 + .html( btnDisplay )
  114 + )
  115 + .appendTo( container );
  116 +
  117 + settings.oApi._fnBindAction(
  118 + node, {action: button}, clickHandler
  119 + );
  120 +
  121 + counter++;
  122 + }
  123 + }
  124 + }
  125 + };
  126 +
  127 + // IE9 throws an 'unknown error' if document.activeElement is used
  128 + // inside an iframe or frame.
  129 + var activeEl;
  130 +
  131 + try {
  132 + // Because this approach is destroying and recreating the paging
  133 + // elements, focus is lost on the select button which is bad for
  134 + // accessibility. So we want to restore focus once the draw has
  135 + // completed
  136 + activeEl = $(document.activeElement).data('dt-idx');
  137 + }
  138 + catch (e) {}
  139 +
  140 + attach(
  141 + $(host).empty().html('<ul class="pagination"/>').children('ul'),
  142 + buttons
  143 + );
  144 +
  145 + if ( activeEl ) {
  146 + $(host).find( '[data-dt-idx='+activeEl+']' ).focus();
  147 + }
  148 +};
  149 +
  150 +
  151 +/*
  152 + * TableTools Bootstrap compatibility
  153 + * Required TableTools 2.1+
  154 + */
  155 +if ( DataTable.TableTools ) {
  156 + // Set the classes that TableTools uses to something suitable for Bootstrap
  157 + $.extend( true, DataTable.TableTools.classes, {
  158 + "container": "DTTT btn-group",
  159 + "buttons": {
  160 + "normal": "btn btn-default",
  161 + "disabled": "disabled"
  162 + },
  163 + "collection": {
  164 + "container": "DTTT_dropdown dropdown-menu",
  165 + "buttons": {
  166 + "normal": "",
  167 + "disabled": "disabled"
  168 + }
  169 + },
  170 + "print": {
  171 + "info": "DTTT_print_info"
  172 + },
  173 + "select": {
  174 + "row": "active"
  175 + }
  176 + } );
  177 +
  178 + // Have the collection use a bootstrap compatible drop down
  179 + $.extend( true, DataTable.TableTools.DEFAULTS.oTags, {
  180 + "collection": {
  181 + "container": "ul",
  182 + "button": "li",
  183 + "liner": "a"
  184 + }
  185 + } );
  186 +}
  187 +
  188 +}; // /factory
  189 +
  190 +
  191 +// Define as an AMD module if possible
  192 +if ( typeof define === 'function' && define.amd ) {
  193 + define( ['jquery', 'datatables'], factory );
  194 +}
  195 +else if ( typeof exports === 'object' ) {
  196 + // Node/CommonJS
  197 + factory( require('jquery'), require('datatables') );
  198 +}
  199 +else if ( jQuery ) {
  200 + // Otherwise simply initialise as normal, stopping multiple evaluation
  201 + factory( jQuery, jQuery.fn.dataTable );
  202 +}
  203 +
  204 +
  205 +})(window, document);
  206 +