Primer Commit
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
#Generales
|
||||||
|
# 0 - QAS
|
||||||
|
# 1 - PDR
|
||||||
|
APP_MODE = 0
|
||||||
|
|
||||||
|
#Variables HMNGY Middleware productivo
|
||||||
|
API_URL = https://apis.hmngyportal.com
|
||||||
|
#API_URL=https://apihmngy.stofactura.com
|
||||||
|
API_KEY_DEFINITION = x-api-key
|
||||||
|
API_KEY = jNJdG9zBY92NSAALgnEdsoEIRycJiAScB6pBgIADsyg=
|
||||||
|
|
||||||
|
#Variables HMNGY Middleware Calidad
|
||||||
|
DEV_API_URL = http://127.0.0.1:8000
|
||||||
|
DEV_API_KEY_DEFINITION = x-api-key
|
||||||
|
DEV_API_KEY = jNJdG9zBY92NSAALgnEdsoEIRycJiAScB6pBgIADsyg=
|
||||||
|
|
||||||
|
#VARIABLES DB
|
||||||
|
DB_HOST = 122.8.178.132
|
||||||
|
DB_USER = adminHMNGY
|
||||||
|
DB_PASS = h$yoLrombE36Vgn
|
||||||
|
DB_NAME = apirest
|
||||||
|
|
||||||
|
#VARIABLES DB
|
||||||
|
DEV_DB_HOST = 127.0.0.1
|
||||||
|
DEV_DB_USER = root
|
||||||
|
DEV_DB_PASS =
|
||||||
|
DEV_DB_NAME = apirest_dev
|
||||||
|
|
||||||
|
#SAP PROD
|
||||||
|
SAP_URL=122.8.178.132
|
||||||
|
SAP_USR=WS-USER
|
||||||
|
SAP_PASS=bmas.2024
|
||||||
|
|
||||||
|
#SAP QAS
|
||||||
|
DEV_SAP_URL=110.238.82.143
|
||||||
|
DEV_SAP_USR=WS-USER
|
||||||
|
DEV_SAP_PASS=bmas.2024
|
||||||
|
|
||||||
|
#RUTAS
|
||||||
|
CFDI_XML_FILE_URL = ../../facturacion/xml
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Operación a realizar: consulta, inserción, actualización, eliminación, etc.
|
||||||
|
$operacion = isset($_POST['operacion']) ? $_POST['operacion'] : '';
|
||||||
|
|
||||||
|
// Datos relacionados con la operación
|
||||||
|
$correo = isset($_POST['Correo']) ? $_POST['Correo'] : '';
|
||||||
|
$nombre = isset($_POST['Nombre']) ? $_POST['Nombre'] : '';
|
||||||
|
$ceco = isset($_POST['Ceco']) ? $_POST['Ceco'] : '';
|
||||||
|
$contrasena = isset($_POST['Contrasena']) ? $_POST['Contrasena'] : '';
|
||||||
|
$fecha = isset($_POST['Fecha']) ? $_POST['Fecha'] : '';
|
||||||
|
$unidad = isset($_POST['Unidad_de_negocio']) ? $_POST['Unidad_de_negocio'] : '';
|
||||||
|
$centro = isset($_POST['Centro']) ? $_POST['Centro'] : '';
|
||||||
|
$esta = isset($_POST['Estatus']) ? $_POST['Estatus'] : '';
|
||||||
|
$foto = isset($_POST['Foto']) ? $_POST['Foto'] : '';
|
||||||
|
$rol = isset($_POST['Rol']) ? $_POST['Rol'] : '';
|
||||||
|
$correop = isset($_POST['Correoprov']) ? $_POST['Correoprov'] : '';
|
||||||
|
|
||||||
|
|
||||||
|
// Realizar la operación según el valor de la variable $operacion
|
||||||
|
switch ($operacion) {
|
||||||
|
|
||||||
|
case 'Inicio':
|
||||||
|
|
||||||
|
$data = array(
|
||||||
|
'correo' => $correo,
|
||||||
|
'password' => $contrasena,
|
||||||
|
);
|
||||||
|
// API Key
|
||||||
|
include ('rutasApi.php');
|
||||||
|
"$api_key_definition: $api_key";
|
||||||
|
|
||||||
|
// Inicializar cURL
|
||||||
|
$ch = curl_init();
|
||||||
|
|
||||||
|
// Establecer la URL
|
||||||
|
$url = $loginUser;
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_URL, $url);
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_POST, 1);
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
||||||
|
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
|
||||||
|
"$api_key_definition: $api_key"
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Configurar para recibir la respuesta como cadena
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
|
||||||
|
// Ejecutar la petición
|
||||||
|
$response = curl_exec($ch);
|
||||||
|
|
||||||
|
// Verificar si hay errores
|
||||||
|
if ($response === false) {
|
||||||
|
echo "Error al realizar la solicitud.";
|
||||||
|
} else {
|
||||||
|
// Decodificar la respuesta JSON
|
||||||
|
$user = json_decode($response, true);
|
||||||
|
|
||||||
|
if($user['estatus']==0)
|
||||||
|
{
|
||||||
|
echo json_encode(['resultado' => -1, 'mensaje' => 'Credenciales Incorrectas']);
|
||||||
|
}
|
||||||
|
session_start();
|
||||||
|
// Almacenar los datos del usuario en variables de sesión
|
||||||
|
$_SESSION['user_id'] = $user['correo'];
|
||||||
|
$_SESSION['username'] = $user['nombre'];
|
||||||
|
//$_SESSION['CeCo'] = $user['ceco']??'';
|
||||||
|
//$_SESSION['Unidad_de_negocio'] = $user['unidad'];
|
||||||
|
//$_SESSION['centro'] = $user['centro'];
|
||||||
|
$_SESSION['rol'] = $user['rol'];
|
||||||
|
|
||||||
|
if (!isset($_SESSION['csrf_token'])) {
|
||||||
|
$_SESSION['csrf_token'] = bin2hex(random_bytes(32)); // Genera un token CSRF de 32 bytes
|
||||||
|
}
|
||||||
|
setcookie('csrf_token', $_SESSION['csrf_token'], 0, '/');
|
||||||
|
|
||||||
|
|
||||||
|
if ($_SESSION['rol'] == '0') {
|
||||||
|
echo '1';
|
||||||
|
} else if ($_SESSION['rol'] == '1') {
|
||||||
|
echo 'admin';
|
||||||
|
} else if ($_SESSION['rol'] == '99') {
|
||||||
|
echo 'admin';
|
||||||
|
}
|
||||||
|
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
curl_close($ch);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Operación no válida
|
||||||
|
echo json_encode(['resultado' => -1, 'mensaje' => 'Operación no válida']);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
function validarSesion()
|
||||||
|
{
|
||||||
|
session_start();
|
||||||
|
if (!isset($_COOKIE['csrf_token']) || $_COOKIE['csrf_token'] !== $_SESSION['csrf_token']) {
|
||||||
|
http_response_code(403);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,127 @@
|
|||||||
|
<p align="center">
|
||||||
|
<img src="https://www.humanergy.app/assets/img/human-single.png" alt="Logo" width="100" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
# Official Designation of the Software
|
||||||
|
|
||||||
|
<!-- Uncomment only the badges that represent your technology stack -->
|
||||||
|
|
||||||
|
<!--BackEnd logo
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--FrontEnd logo
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--Libraries logo
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--Database logo
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--Extra logo
|
||||||
|

|
||||||
|
-->
|
||||||
|
|
||||||
|
Sistema hecho en PHP , HTML Y CSS, para poder agregar nuevas empresar y que genere un apikey para el uso de la API de Humanergy Pasarela
|
||||||
|
|
||||||
|
- **Cliente:**
|
||||||
|
- **Tipo de proyecto:** Pasarela
|
||||||
|
- **Estado:** initial development
|
||||||
|
- **Desarrollo inicial:** Luis Angel Salinas Islas
|
||||||
|
- **Lenguajes:** PHP, HTML, CSS, JAVASCRIPT
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Puesta a Punto
|
||||||
|
|
||||||
|
### Requerimientos del Sistema
|
||||||
|
|
||||||
|
- PHP
|
||||||
|
- HTML
|
||||||
|
|
||||||
|
- **Component Name:** `Minimum Version Required`
|
||||||
|
|
||||||
|
#### Extensiones PHP necesarias (include if is PHP project)
|
||||||
|
|
||||||
|
Asegúrate de tener habilitadas las siguientes extensiones:
|
||||||
|
|
||||||
|
- CURL
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Inicialización
|
||||||
|
|
||||||
|
1. **Step 1** . Descompresion de archivo.
|
||||||
|
|
||||||
|
> Descomprimir el zip o tar, o copiar los archivos a la raiz del proyecto.
|
||||||
|
|
||||||
|
2. **Step 2**. Inicio de sesion:
|
||||||
|
```
|
||||||
|
Para iniciar sesion es necesario haber cargado la ruta de los archivos de la API
|
||||||
|
```
|
||||||
|
3. **Step with env**. Description.
|
||||||
|
|
||||||
|
| Variable | Descripción | Origen del valor |
|
||||||
|
|----------------------|---------------------------------------------------------------|------------------------------------------|
|
||||||
|
| APP_MODE | Modo de ejecución: `0` para QAS, `1` para PDR | Definido manualmente según entorno |
|
||||||
|
| API_URL | URL de la API HMNGY en producción | Proporcionado por HMNGY Middleware |
|
||||||
|
| API_KEY_DEFINITION | Cabecera HTTP utilizada para enviar la API key | Estándar del servicio HMNGY |
|
||||||
|
| API_KEY | API Key para entorno productivo | Proporcionado por HMNGY Middleware |
|
||||||
|
| DEV_API_URL | URL de la API HMNGY en desarrollo o calidad | Local o entorno de pruebas |
|
||||||
|
| DEV_API_KEY_DEFINITION | Cabecera HTTP para API Key en desarrollo | Estándar del servicio HMNGY |
|
||||||
|
| DEV_API_KEY | API Key para entorno de desarrollo | Proporcionado por HMNGY Middleware |
|
||||||
|
| DB_HOST | Dirección IP del servidor de base de datos en producción | Infraestructura de producción |
|
||||||
|
| DB_USER | Usuario para base de datos en producción | Asignado por el administrador |
|
||||||
|
| DB_PASS | Contraseña de la base de datos en producción | Asignado por el administrador |
|
||||||
|
| DB_NAME | Nombre de la base de datos en producción | Estándar del sistema |
|
||||||
|
| DEV_DB_HOST | Dirección IP del servidor de base de datos en desarrollo | Localhost o entorno de pruebas |
|
||||||
|
| DEV_DB_USER | Usuario de base de datos en desarrollo | Estándar local |
|
||||||
|
| DEV_DB_PASS | Contraseña para base de datos en desarrollo | Estándar local |
|
||||||
|
| DEV_DB_NAME | Nombre de la base de datos en desarrollo | Estándar local |
|
||||||
|
| SAP_URL | Dirección IP del sistema SAP en producción | Proporcionado por equipo SAP |
|
||||||
|
| SAP_USR | Usuario para conexión a SAP | Asignado por equipo SAP |
|
||||||
|
| SAP_PASS | Contraseña de SAP en producción | Asignado por equipo SAP |
|
||||||
|
| DEV_SAP_URL | Dirección IP del sistema SAP en pruebas | Proporcionado por equipo SAP |
|
||||||
|
| DEV_SAP_USR | Usuario para SAP en pruebas | Asignado por equipo SAP |
|
||||||
|
| DEV_SAP_PASS | Contraseña de SAP en pruebas | Asignado por equipo SAP |
|
||||||
|
| CFDI_XML_FILE_URL | Ruta local para almacenar archivos XML del CFDI | Definido por estructura del proyecto |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Librarías Utilizadas
|
||||||
|
|
||||||
|
- dependency_name (version_used)
|
||||||
|
|
||||||
|
Optionally include a short note describing the problem it solves or the module it's supporting.
|
||||||
Binary file not shown.
@@ -0,0 +1,171 @@
|
|||||||
|
@keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-o-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-o-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-ms-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-ms-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-webkit-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-moz-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-button-info {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 400px;
|
||||||
|
margin-top: -100px;
|
||||||
|
margin-left: -200px;
|
||||||
|
background-color: white;
|
||||||
|
border: 2px solid #111;
|
||||||
|
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 21;
|
||||||
|
}
|
||||||
|
div.dt-button-info h2 {
|
||||||
|
padding: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: normal;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
div.dt-button-info > div {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 0.3em 0 0.5em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.dt-button-collection.dropdown-menu {
|
||||||
|
display: block;
|
||||||
|
z-index: 2002;
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.dropdown-menu.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.dropdown-menu.fixed.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.dropdown-menu.fixed.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.dropdown-menu.fixed.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.dropdown-menu > * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.dropdown-menu.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.dropdown-menu.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.dropdown-menu.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.dropdown-menu .dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-background {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 2001;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
div.dt-buttons {
|
||||||
|
float: none;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
div.dt-buttons a.btn {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-buttons button.btn.processing,
|
||||||
|
div.dt-buttons div.btn.processing,
|
||||||
|
div.dt-buttons a.btn.processing {
|
||||||
|
color: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
div.dt-buttons button.btn.processing:after,
|
||||||
|
div.dt-buttons div.btn.processing:after,
|
||||||
|
div.dt-buttons a.btn.processing:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: block;
|
||||||
|
content: ' ';
|
||||||
|
border: 2px solid #282828;
|
||||||
|
border-radius: 50%;
|
||||||
|
border-left-color: transparent;
|
||||||
|
border-right-color: transparent;
|
||||||
|
animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}ul.dt-button-collection.dropdown-menu{display:block;z-index:2002;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}ul.dt-button-collection.dropdown-menu.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}ul.dt-button-collection.dropdown-menu.fixed.two-column{margin-left:-150px}ul.dt-button-collection.dropdown-menu.fixed.three-column{margin-left:-225px}ul.dt-button-collection.dropdown-menu.fixed.four-column{margin-left:-300px}ul.dt-button-collection.dropdown-menu>*{-webkit-column-break-inside:avoid;break-inside:avoid}ul.dt-button-collection.dropdown-menu.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}ul.dt-button-collection.dropdown-menu.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}ul.dt-button-collection.dropdown-menu.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}ul.dt-button-collection.dropdown-menu .dt-button{border-radius:0}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2001}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5em}div.dt-buttons a.btn{float:none}}div.dt-buttons button.btn.processing,div.dt-buttons div.btn.processing,div.dt-buttons a.btn.processing{color:rgba(0,0,0,0.2)}div.dt-buttons button.btn.processing:after,div.dt-buttons div.btn.processing:after,div.dt-buttons a.btn.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}
|
||||||
@@ -0,0 +1,235 @@
|
|||||||
|
@keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-o-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-o-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-ms-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-ms-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-webkit-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-moz-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-button-info {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 400px;
|
||||||
|
margin-top: -100px;
|
||||||
|
margin-left: -200px;
|
||||||
|
background-color: white;
|
||||||
|
border: 2px solid #111;
|
||||||
|
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 21;
|
||||||
|
}
|
||||||
|
div.dt-button-info h2 {
|
||||||
|
padding: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: normal;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
div.dt-button-info > div {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 0.3em 0 0.5em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection.dropdown-menu {
|
||||||
|
display: block;
|
||||||
|
z-index: 2002;
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.fixed.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.fixed.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.fixed.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu > * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu .dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection {
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection > * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
div.dt-button-collection .dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed {
|
||||||
|
max-width: none;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed:before, div.dt-button-collection.fixed:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-background {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
div.dt-buttons {
|
||||||
|
float: none;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
div.dt-buttons a.btn {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-buttons button.btn.processing,
|
||||||
|
div.dt-buttons div.btn.processing,
|
||||||
|
div.dt-buttons a.btn.processing {
|
||||||
|
color: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
div.dt-buttons button.btn.processing:after,
|
||||||
|
div.dt-buttons div.btn.processing:after,
|
||||||
|
div.dt-buttons a.btn.processing:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: block;
|
||||||
|
content: ' ';
|
||||||
|
border: 2px solid #282828;
|
||||||
|
border-radius: 50%;
|
||||||
|
border-left-color: transparent;
|
||||||
|
border-right-color: transparent;
|
||||||
|
animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}div.dt-button-collection.dropdown-menu{display:block;z-index:2002;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection.dropdown-menu.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.dropdown-menu.fixed.two-column{margin-left:-150px}div.dt-button-collection.dropdown-menu.fixed.three-column{margin-left:-225px}div.dt-button-collection.dropdown-menu.fixed.four-column{margin-left:-300px}div.dt-button-collection.dropdown-menu>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.dropdown-menu.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.dropdown-menu.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.dropdown-menu.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection.dropdown-menu .dt-button{border-radius:0}div.dt-button-collection{-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-150px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-collection.fixed{max-width:none}div.dt-button-collection.fixed:before,div.dt-button-collection.fixed:after{display:none}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:999}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5em}div.dt-buttons a.btn{float:none}}div.dt-buttons button.btn.processing,div.dt-buttons div.btn.processing,div.dt-buttons a.btn.processing{color:rgba(0,0,0,0.2)}div.dt-buttons button.btn.processing:after,div.dt-buttons div.btn.processing:after,div.dt-buttons a.btn.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}
|
||||||
@@ -0,0 +1,369 @@
|
|||||||
|
@keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-o-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-o-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-ms-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-ms-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-webkit-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-moz-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-button-info {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 400px;
|
||||||
|
margin-top: -100px;
|
||||||
|
margin-left: -200px;
|
||||||
|
background-color: white;
|
||||||
|
border: 2px solid #111;
|
||||||
|
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 21;
|
||||||
|
}
|
||||||
|
div.dt-button-info h2 {
|
||||||
|
padding: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: normal;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
div.dt-button-info > div {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 0.3em 0 0.5em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.dt-button,
|
||||||
|
div.dt-button,
|
||||||
|
a.dt-button {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-right: 0.333em;
|
||||||
|
margin-bottom: 0.333em;
|
||||||
|
padding: 0.5em 1em;
|
||||||
|
border: 1px solid #999;
|
||||||
|
border-radius: 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 0.88em;
|
||||||
|
line-height: 1.6em;
|
||||||
|
color: black;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
background-color: #e9e9e9;
|
||||||
|
/* Fallback */
|
||||||
|
background-image: -webkit-linear-gradient(top, white 0%, #e9e9e9 100%);
|
||||||
|
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||||
|
background-image: -moz-linear-gradient(top, white 0%, #e9e9e9 100%);
|
||||||
|
/* FF3.6 */
|
||||||
|
background-image: -ms-linear-gradient(top, white 0%, #e9e9e9 100%);
|
||||||
|
/* IE10 */
|
||||||
|
background-image: -o-linear-gradient(top, white 0%, #e9e9e9 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background-image: linear-gradient(to bottom, white 0%, #e9e9e9 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='white', EndColorStr='#e9e9e9');
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
text-decoration: none;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
button.dt-button.disabled,
|
||||||
|
div.dt-button.disabled,
|
||||||
|
a.dt-button.disabled {
|
||||||
|
color: #999;
|
||||||
|
border: 1px solid #d0d0d0;
|
||||||
|
cursor: default;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
/* Fallback */
|
||||||
|
background-image: -webkit-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
|
||||||
|
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||||
|
background-image: -moz-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
|
||||||
|
/* FF3.6 */
|
||||||
|
background-image: -ms-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
|
||||||
|
/* IE10 */
|
||||||
|
background-image: -o-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background-image: linear-gradient(to bottom, #ffffff 0%, #f9f9f9 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#ffffff', EndColorStr='#f9f9f9');
|
||||||
|
}
|
||||||
|
button.dt-button:active:not(.disabled), button.dt-button.active:not(.disabled),
|
||||||
|
div.dt-button:active:not(.disabled),
|
||||||
|
div.dt-button.active:not(.disabled),
|
||||||
|
a.dt-button:active:not(.disabled),
|
||||||
|
a.dt-button.active:not(.disabled) {
|
||||||
|
background-color: #e2e2e2;
|
||||||
|
/* Fallback */
|
||||||
|
background-image: -webkit-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
|
||||||
|
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||||
|
background-image: -moz-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
|
||||||
|
/* FF3.6 */
|
||||||
|
background-image: -ms-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
|
||||||
|
/* IE10 */
|
||||||
|
background-image: -o-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background-image: linear-gradient(to bottom, #f3f3f3 0%, #e2e2e2 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f3f3f3', EndColorStr='#e2e2e2');
|
||||||
|
box-shadow: inset 1px 1px 3px #999999;
|
||||||
|
}
|
||||||
|
button.dt-button:active:not(.disabled):hover:not(.disabled), button.dt-button.active:not(.disabled):hover:not(.disabled),
|
||||||
|
div.dt-button:active:not(.disabled):hover:not(.disabled),
|
||||||
|
div.dt-button.active:not(.disabled):hover:not(.disabled),
|
||||||
|
a.dt-button:active:not(.disabled):hover:not(.disabled),
|
||||||
|
a.dt-button.active:not(.disabled):hover:not(.disabled) {
|
||||||
|
box-shadow: inset 1px 1px 3px #999999;
|
||||||
|
background-color: #cccccc;
|
||||||
|
/* Fallback */
|
||||||
|
background-image: -webkit-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
|
||||||
|
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||||
|
background-image: -moz-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
|
||||||
|
/* FF3.6 */
|
||||||
|
background-image: -ms-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
|
||||||
|
/* IE10 */
|
||||||
|
background-image: -o-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background-image: linear-gradient(to bottom, #eaeaea 0%, #cccccc 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#eaeaea', EndColorStr='#cccccc');
|
||||||
|
}
|
||||||
|
button.dt-button:hover,
|
||||||
|
div.dt-button:hover,
|
||||||
|
a.dt-button:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
button.dt-button:hover:not(.disabled),
|
||||||
|
div.dt-button:hover:not(.disabled),
|
||||||
|
a.dt-button:hover:not(.disabled) {
|
||||||
|
border: 1px solid #666;
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
/* Fallback */
|
||||||
|
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
|
||||||
|
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||||
|
background-image: -moz-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
|
||||||
|
/* FF3.6 */
|
||||||
|
background-image: -ms-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
|
||||||
|
/* IE10 */
|
||||||
|
background-image: -o-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background-image: linear-gradient(to bottom, #f9f9f9 0%, #e0e0e0 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f9f9f9', EndColorStr='#e0e0e0');
|
||||||
|
}
|
||||||
|
button.dt-button:focus:not(.disabled),
|
||||||
|
div.dt-button:focus:not(.disabled),
|
||||||
|
a.dt-button:focus:not(.disabled) {
|
||||||
|
border: 1px solid #426c9e;
|
||||||
|
text-shadow: 0 1px 0 #c4def1;
|
||||||
|
outline: none;
|
||||||
|
background-color: #79ace9;
|
||||||
|
/* Fallback */
|
||||||
|
background-image: -webkit-linear-gradient(top, #bddef4 0%, #79ace9 100%);
|
||||||
|
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||||
|
background-image: -moz-linear-gradient(top, #bddef4 0%, #79ace9 100%);
|
||||||
|
/* FF3.6 */
|
||||||
|
background-image: -ms-linear-gradient(top, #bddef4 0%, #79ace9 100%);
|
||||||
|
/* IE10 */
|
||||||
|
background-image: -o-linear-gradient(top, #bddef4 0%, #79ace9 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background-image: linear-gradient(to bottom, #bddef4 0%, #79ace9 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#bddef4', EndColorStr='#79ace9');
|
||||||
|
}
|
||||||
|
|
||||||
|
.dt-button embed {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-buttons {
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
div.dt-buttons.buttons-right {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 150px;
|
||||||
|
margin-top: 3px;
|
||||||
|
padding: 8px 8px 4px 8px;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.4);
|
||||||
|
background-color: white;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 2002;
|
||||||
|
border-radius: 5px;
|
||||||
|
box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection button.dt-button,
|
||||||
|
div.dt-button-collection div.dt-button,
|
||||||
|
div.dt-button-collection a.dt-button {
|
||||||
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 100%;
|
||||||
|
display: block;
|
||||||
|
float: none;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection button.dt-button:active:not(.disabled), div.dt-button-collection button.dt-button.active:not(.disabled),
|
||||||
|
div.dt-button-collection div.dt-button:active:not(.disabled),
|
||||||
|
div.dt-button-collection div.dt-button.active:not(.disabled),
|
||||||
|
div.dt-button-collection a.dt-button:active:not(.disabled),
|
||||||
|
div.dt-button-collection a.dt-button.active:not(.disabled) {
|
||||||
|
background-color: #dadada;
|
||||||
|
/* Fallback */
|
||||||
|
background-image: -webkit-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
|
||||||
|
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||||
|
background-image: -moz-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
|
||||||
|
/* FF3.6 */
|
||||||
|
background-image: -ms-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
|
||||||
|
/* IE10 */
|
||||||
|
background-image: -o-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background-image: linear-gradient(to bottom, #f0f0f0 0%, #dadada 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f0f0f0', EndColorStr='#dadada');
|
||||||
|
box-shadow: inset 1px 1px 3px #666;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection > * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
div.dt-button-collection .dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-background {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.7);
|
||||||
|
/* Fallback */
|
||||||
|
background: -ms-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* IE10 Consumer Preview */
|
||||||
|
background: -moz-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* Firefox */
|
||||||
|
background: -o-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* Opera */
|
||||||
|
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)));
|
||||||
|
/* Webkit (Safari/Chrome 10) */
|
||||||
|
background: -webkit-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* Webkit (Chrome 11+) */
|
||||||
|
background: radial-gradient(ellipse farthest-corner at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* W3C Markup, IE10 Release Preview */
|
||||||
|
z-index: 2001;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 640px) {
|
||||||
|
div.dt-buttons {
|
||||||
|
float: none !important;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
button.dt-button.processing,
|
||||||
|
div.dt-button.processing,
|
||||||
|
a.dt-button.processing {
|
||||||
|
color: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
button.dt-button.processing:after,
|
||||||
|
div.dt-button.processing:after,
|
||||||
|
a.dt-button.processing:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: block;
|
||||||
|
content: ' ';
|
||||||
|
border: 2px solid #282828;
|
||||||
|
border-radius: 50%;
|
||||||
|
border-left-color: transparent;
|
||||||
|
border-right-color: transparent;
|
||||||
|
animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,204 @@
|
|||||||
|
@keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-o-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-o-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-ms-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-ms-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-webkit-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-moz-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-button-info {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 400px;
|
||||||
|
margin-top: -100px;
|
||||||
|
margin-left: -200px;
|
||||||
|
background-color: white;
|
||||||
|
border: 2px solid #111;
|
||||||
|
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 21;
|
||||||
|
}
|
||||||
|
div.dt-button-info h2 {
|
||||||
|
padding: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: normal;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
div.dt-button-info > div {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 0.3em 0 0.5em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.dt-buttons li {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
ul.dt-buttons li.active a {
|
||||||
|
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.6);
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.dt-buttons.button-group a {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.dt-button-collection.f-dropdown {
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown.fixed.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown.fixed.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown.fixed.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown > * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown .dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown.fixed {
|
||||||
|
max-width: none;
|
||||||
|
}
|
||||||
|
ul.dt-button-collection.f-dropdown.fixed:before, ul.dt-button-collection.f-dropdown.fixed:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-background {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 88;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
ul.dt-buttons {
|
||||||
|
float: none;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
ul.dt-buttons li {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.button-group.stacked.dropdown-pane {
|
||||||
|
margin-top: 2px;
|
||||||
|
padding: 1px;
|
||||||
|
z-index: 89;
|
||||||
|
}
|
||||||
|
div.button-group.stacked.dropdown-pane a.button {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 1px;
|
||||||
|
border-right: none;
|
||||||
|
}
|
||||||
|
div.button-group.stacked.dropdown-pane a.button:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-right: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-buttons button.button.processing,
|
||||||
|
div.dt-buttons div.button.processing,
|
||||||
|
div.dt-buttons a.button.processing {
|
||||||
|
color: rgba(0, 0, 0, 0.2);
|
||||||
|
color: rgba(255, 255, 255, 0.2);
|
||||||
|
border-top-color: white;
|
||||||
|
border-bottom-color: white;
|
||||||
|
}
|
||||||
|
div.dt-buttons button.button.processing:after,
|
||||||
|
div.dt-buttons div.button.processing:after,
|
||||||
|
div.dt-buttons a.button.processing:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: block;
|
||||||
|
content: ' ';
|
||||||
|
border: 2px solid #282828;
|
||||||
|
border-radius: 50%;
|
||||||
|
border-left-color: transparent;
|
||||||
|
border-right-color: transparent;
|
||||||
|
animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}ul.dt-buttons li{margin:0}ul.dt-buttons li.active a{box-shadow:inset 0 0 10px rgba(0,0,0,0.6)}ul.dt-buttons.button-group a{margin-bottom:0}ul.dt-button-collection.f-dropdown{-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}ul.dt-button-collection.f-dropdown.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}ul.dt-button-collection.f-dropdown.fixed.two-column{margin-left:-150px}ul.dt-button-collection.f-dropdown.fixed.three-column{margin-left:-225px}ul.dt-button-collection.f-dropdown.fixed.four-column{margin-left:-300px}ul.dt-button-collection.f-dropdown>*{-webkit-column-break-inside:avoid;break-inside:avoid}ul.dt-button-collection.f-dropdown.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}ul.dt-button-collection.f-dropdown.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}ul.dt-button-collection.f-dropdown.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}ul.dt-button-collection.f-dropdown .dt-button{border-radius:0}ul.dt-button-collection.f-dropdown.fixed{max-width:none}ul.dt-button-collection.f-dropdown.fixed:before,ul.dt-button-collection.f-dropdown.fixed:after{display:none}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:88}@media screen and (max-width: 767px){ul.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5rem}ul.dt-buttons li{float:none}}div.button-group.stacked.dropdown-pane{margin-top:2px;padding:1px;z-index:89}div.button-group.stacked.dropdown-pane a.button{display:block;margin-bottom:1px;border-right:none}div.button-group.stacked.dropdown-pane a.button:last-child{margin-bottom:0;margin-right:1px}div.dt-buttons button.button.processing,div.dt-buttons div.button.processing,div.dt-buttons a.button.processing{color:rgba(0,0,0,0.2);color:rgba(255,255,255,0.2);border-top-color:white;border-bottom-color:white}div.dt-buttons button.button.processing:after,div.dt-buttons div.button.processing:after,div.dt-buttons a.button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}
|
||||||
@@ -0,0 +1,231 @@
|
|||||||
|
@keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-o-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-o-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-ms-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-ms-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-webkit-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-moz-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-button-info {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 400px;
|
||||||
|
margin-top: -100px;
|
||||||
|
margin-left: -200px;
|
||||||
|
background-color: white;
|
||||||
|
border: 2px solid #111;
|
||||||
|
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 21;
|
||||||
|
}
|
||||||
|
div.dt-button-info h2 {
|
||||||
|
padding: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: normal;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
div.dt-button-info > div {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 0.3em 0 0.5em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-buttons {
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
div.dt-buttons .dt-button {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
div.dt-buttons .dt-button span.ui-icon {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-top: -2px;
|
||||||
|
}
|
||||||
|
div.dt-buttons .dt-button:active {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
div.dt-buttons .dt-button:hover > span {
|
||||||
|
background-color: rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 150px;
|
||||||
|
margin-top: 3px;
|
||||||
|
padding: 8px 8px 4px 8px;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.4);
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
background-color: rgba(255, 255, 255, 0.3);
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 2002;
|
||||||
|
border-radius: 5px;
|
||||||
|
box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
|
||||||
|
z-index: 2002;
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
-webkit-column-gap: 0;
|
||||||
|
-moz-column-gap: 0;
|
||||||
|
-ms-column-gap: 0;
|
||||||
|
-o-column-gap: 0;
|
||||||
|
column-gap: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection .dt-button {
|
||||||
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: block;
|
||||||
|
float: none;
|
||||||
|
margin-right: 0;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection .dt-button:hover > span {
|
||||||
|
background-color: rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection > * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
div.dt-button-collection .dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-background {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.7);
|
||||||
|
/* Fallback */
|
||||||
|
background: -ms-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* IE10 Consumer Preview */
|
||||||
|
background: -moz-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* Firefox */
|
||||||
|
background: -o-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* Opera */
|
||||||
|
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)));
|
||||||
|
/* Webkit (Safari/Chrome 10) */
|
||||||
|
background: -webkit-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* Webkit (Chrome 11+) */
|
||||||
|
background: radial-gradient(ellipse farthest-corner at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||||
|
/* W3C Markup, IE10 Release Preview */
|
||||||
|
z-index: 2001;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 640px) {
|
||||||
|
div.dt-buttons {
|
||||||
|
float: none !important;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
button.dt-button.processing,
|
||||||
|
div.dt-button.processing,
|
||||||
|
a.dt-button.processing {
|
||||||
|
color: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
button.dt-button.processing:after,
|
||||||
|
div.dt-button.processing:after,
|
||||||
|
a.dt-button.processing:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: block;
|
||||||
|
content: ' ';
|
||||||
|
border: 2px solid #282828;
|
||||||
|
border-radius: 50%;
|
||||||
|
border-left-color: transparent;
|
||||||
|
border-right-color: transparent;
|
||||||
|
animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}div.dt-buttons{position:relative;float:left}div.dt-buttons .dt-button{margin-right:0}div.dt-buttons .dt-button span.ui-icon{display:inline-block;vertical-align:middle;margin-top:-2px}div.dt-buttons .dt-button:active{outline:none}div.dt-buttons .dt-button:hover>span{background-color:rgba(0,0,0,0.05)}div.dt-button-collection{position:absolute;top:0;left:0;width:150px;margin-top:3px;padding:8px 8px 4px 8px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.4);background-color:#f3f3f3;background-color:rgba(255,255,255,0.3);overflow:hidden;z-index:2002;border-radius:5px;box-shadow:3px 3px 5px rgba(0,0,0,0.3);z-index:2002;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px;-webkit-column-gap:0;-moz-column-gap:0;-ms-column-gap:0;-o-column-gap:0;column-gap:0}div.dt-button-collection .dt-button{position:relative;left:0;right:0;width:100%;box-sizing:border-box;display:block;float:none;margin-right:0;margin-bottom:4px}div.dt-button-collection .dt-button:hover>span{background-color:rgba(0,0,0,0.05)}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-150px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:-ms-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-moz-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-o-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);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)));background:-webkit-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:2001}@media screen and (max-width: 640px){div.dt-buttons{float:none !important;text-align:center}}button.dt-button.processing,div.dt-button.processing,a.dt-button.processing{color:rgba(0,0,0,0.2)}button.dt-button.processing:after,div.dt-button.processing:after,a.dt-button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}
|
||||||
@@ -0,0 +1,184 @@
|
|||||||
|
@charset "UTF-8";
|
||||||
|
@keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-o-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-o-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-ms-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-ms-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-webkit-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-moz-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-button-info {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 400px;
|
||||||
|
margin-top: -100px;
|
||||||
|
margin-left: -200px;
|
||||||
|
background-color: white;
|
||||||
|
border: 2px solid #111;
|
||||||
|
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 21;
|
||||||
|
}
|
||||||
|
div.dt-button-info h2 {
|
||||||
|
padding: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: normal;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
div.dt-button-info > div {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 0.3em 0 0.5em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 150px;
|
||||||
|
margin-top: 3px !important;
|
||||||
|
z-index: 2002;
|
||||||
|
background: white;
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection > * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
div.dt-button-collection .dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.buttons-collection.ui.button span:after {
|
||||||
|
display: inline-block;
|
||||||
|
content: "▾";
|
||||||
|
padding-left: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-background {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 2001;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
div.dt-buttons {
|
||||||
|
float: none;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
div.dt-buttons a.btn {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-buttons button.button.processing,
|
||||||
|
div.dt-buttons div.button.processing,
|
||||||
|
div.dt-buttons a.button.processing {
|
||||||
|
position: relative;
|
||||||
|
color: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
div.dt-buttons button.button.processing:after,
|
||||||
|
div.dt-buttons div.button.processing:after,
|
||||||
|
div.dt-buttons a.button.processing:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: block;
|
||||||
|
content: ' ';
|
||||||
|
border: 2px solid #282828;
|
||||||
|
border-radius: 50%;
|
||||||
|
border-left-color: transparent;
|
||||||
|
border-right-color: transparent;
|
||||||
|
animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}div.dt-button-collection{position:absolute;top:0;left:0;width:150px;margin-top:3px !important;z-index:2002;background:white;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-150px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}button.buttons-collection.ui.button span:after{display:inline-block;content:"▾";padding-left:0.5em}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2001}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5em}div.dt-buttons a.btn{float:none}}div.dt-buttons button.button.processing,div.dt-buttons div.button.processing,div.dt-buttons a.button.processing{position:relative;color:rgba(0,0,0,0.2)}div.dt-buttons button.button.processing:after,div.dt-buttons div.button.processing:after,div.dt-buttons a.button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
div.dt-button-info {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 400px;
|
||||||
|
margin-top: -100px;
|
||||||
|
margin-left: -200px;
|
||||||
|
background-color: white;
|
||||||
|
border: 2px solid #111;
|
||||||
|
box-shadow: 3px 3px 8px rgba( 0, 0, 0, 0.3);
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 21;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
padding: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: normal;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
|
||||||
|
> div {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 0.3em 0 0.5em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
@@ -0,0 +1,141 @@
|
|||||||
|
|
||||||
|
@mixin dtb-two-stop-gradient($fromColor, $toColor) {
|
||||||
|
background-color: $toColor; /* Fallback */
|
||||||
|
background-image: -webkit-linear-gradient(top, $fromColor 0%, $toColor 100%); /* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||||
|
background-image: -moz-linear-gradient(top, $fromColor 0%, $toColor 100%); /* FF3.6 */
|
||||||
|
background-image: -ms-linear-gradient(top, $fromColor 0%, $toColor 100%); /* IE10 */
|
||||||
|
background-image: -o-linear-gradient(top, $fromColor 0%, $toColor 100%); /* Opera 11.10+ */
|
||||||
|
background-image: linear-gradient(to bottom, $fromColor 0%, $toColor 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#{nth( $fromColor, 1 )}', EndColorStr='#{nth( $toColor, 1 )}');
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin dtb-radial-gradient ($fromColor, $toColor ) {
|
||||||
|
background: $toColor; /* Fallback */
|
||||||
|
background: -ms-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* IE10 Consumer Preview */
|
||||||
|
background: -moz-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* Firefox */
|
||||||
|
background: -o-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* Opera */
|
||||||
|
background: -webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, $fromColor), color-stop(1, $toColor)); /* Webkit (Safari/Chrome 10) */
|
||||||
|
background: -webkit-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* Webkit (Chrome 11+) */
|
||||||
|
background: radial-gradient(ellipse farthest-corner at center, $fromColor 0%, $toColor 100%); /* W3C Markup, IE10 Release Preview */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@mixin dtb-fixed-collection {
|
||||||
|
// Fixed positioning feature
|
||||||
|
&.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
|
||||||
|
&.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Multi-column layout feature
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
|
||||||
|
> * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Chrome fix - 531528
|
||||||
|
.dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@mixin dtb-processing {
|
||||||
|
color: rgba(0, 0, 0, 0.2);
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
display: block;
|
||||||
|
content: ' ';
|
||||||
|
border: 2px solid rgb(40,40,40);
|
||||||
|
border-radius: 50%;
|
||||||
|
border-left-color: transparent;
|
||||||
|
border-right-color: transparent;
|
||||||
|
animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes dtb-spinner {
|
||||||
|
100%{ transform: rotate(360deg); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@-o-keyframes dtb-spinner {
|
||||||
|
100%{ -o-transform: rotate(360deg); transform: rotate(360deg); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@-ms-keyframes dtb-spinner {
|
||||||
|
100%{ -ms-transform: rotate(360deg); transform: rotate(360deg); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes dtb-spinner {
|
||||||
|
100%{ -webkit-transform: rotate(360deg); transform: rotate(360deg); }
|
||||||
|
}
|
||||||
|
|
||||||
|
@-moz-keyframes dtb-spinner {
|
||||||
|
100%{ -moz-transform: rotate(360deg); transform: rotate(360deg); }
|
||||||
|
}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
/*! Bootstrap integration for DataTables' Buttons
|
||||||
|
* ©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function( factory ){
|
||||||
|
if ( typeof define === 'function' && define.amd ) {
|
||||||
|
// AMD
|
||||||
|
define( ['jquery', 'datatables.net-bs', 'datatables.net-buttons'], function ( $ ) {
|
||||||
|
return factory( $, window, document );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
else if ( typeof exports === 'object' ) {
|
||||||
|
// CommonJS
|
||||||
|
module.exports = function (root, $) {
|
||||||
|
if ( ! root ) {
|
||||||
|
root = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $ || ! $.fn.dataTable ) {
|
||||||
|
$ = require('datatables.net-bs')(root, $).$;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $.fn.dataTable.Buttons ) {
|
||||||
|
require('datatables.net-buttons')(root, $);
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory( $, root, root.document );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Browser
|
||||||
|
factory( jQuery, window, document );
|
||||||
|
}
|
||||||
|
}(function( $, window, document, undefined ) {
|
||||||
|
'use strict';
|
||||||
|
var DataTable = $.fn.dataTable;
|
||||||
|
|
||||||
|
|
||||||
|
$.extend( true, DataTable.Buttons.defaults, {
|
||||||
|
dom: {
|
||||||
|
container: {
|
||||||
|
className: 'dt-buttons btn-group'
|
||||||
|
},
|
||||||
|
button: {
|
||||||
|
className: 'btn btn-default'
|
||||||
|
},
|
||||||
|
collection: {
|
||||||
|
tag: 'ul',
|
||||||
|
className: 'dt-button-collection dropdown-menu',
|
||||||
|
button: {
|
||||||
|
tag: 'li',
|
||||||
|
className: 'dt-button',
|
||||||
|
active: 'active',
|
||||||
|
disabled: 'disabled'
|
||||||
|
},
|
||||||
|
buttonLiner: {
|
||||||
|
tag: 'a',
|
||||||
|
className: ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
DataTable.ext.buttons.collection.text = function ( dt ) {
|
||||||
|
return dt.i18n('buttons.collection', 'Collection <span class="caret"/>');
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
return DataTable.Buttons;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
Bootstrap integration for DataTables' Buttons
|
||||||
|
©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs")(a,b).$);b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{className:"dt-buttons btn-group"},
|
||||||
|
button:{className:"btn btn-default"},collection:{tag:"ul",className:"dt-button-collection dropdown-menu",button:{tag:"li",className:"dt-button",active:"active",disabled:"disabled"},buttonLiner:{tag:"a",className:""}}}});a.ext.buttons.collection.text=function(a){return a.i18n("buttons.collection",'Collection <span class="caret"/>')};return a.Buttons});
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
/*! Bootstrap integration for DataTables' Buttons
|
||||||
|
* ©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function( factory ){
|
||||||
|
if ( typeof define === 'function' && define.amd ) {
|
||||||
|
// AMD
|
||||||
|
define( ['jquery', 'datatables.net-bs4', 'datatables.net-buttons'], function ( $ ) {
|
||||||
|
return factory( $, window, document );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
else if ( typeof exports === 'object' ) {
|
||||||
|
// CommonJS
|
||||||
|
module.exports = function (root, $) {
|
||||||
|
if ( ! root ) {
|
||||||
|
root = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $ || ! $.fn.dataTable ) {
|
||||||
|
$ = require('datatables.net-bs4')(root, $).$;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $.fn.dataTable.Buttons ) {
|
||||||
|
require('datatables.net-buttons')(root, $);
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory( $, root, root.document );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Browser
|
||||||
|
factory( jQuery, window, document );
|
||||||
|
}
|
||||||
|
}(function( $, window, document, undefined ) {
|
||||||
|
'use strict';
|
||||||
|
var DataTable = $.fn.dataTable;
|
||||||
|
|
||||||
|
$.extend( true, DataTable.Buttons.defaults, {
|
||||||
|
dom: {
|
||||||
|
container: {
|
||||||
|
className: 'dt-buttons btn-group'
|
||||||
|
},
|
||||||
|
button: {
|
||||||
|
className: 'btn btn-secondary'
|
||||||
|
},
|
||||||
|
collection: {
|
||||||
|
tag: 'div',
|
||||||
|
className: 'dt-button-collection dropdown-menu',
|
||||||
|
button: {
|
||||||
|
tag: 'a',
|
||||||
|
className: 'dt-button dropdown-item',
|
||||||
|
active: 'active',
|
||||||
|
disabled: 'disabled'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
buttonCreated: function ( config, button ) {
|
||||||
|
return config.buttons ?
|
||||||
|
$('<div class="btn-group"/>').append(button) :
|
||||||
|
button;
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
DataTable.ext.buttons.collection.className += ' dropdown-toggle';
|
||||||
|
DataTable.ext.buttons.collection.rightAlignClassName = 'dropdown-menu-right';
|
||||||
|
|
||||||
|
return DataTable.Buttons;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
Bootstrap integration for DataTables' Buttons
|
||||||
|
©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs4")(a,b).$);b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{className:"dt-buttons btn-group"},
|
||||||
|
button:{className:"btn btn-secondary"},collection:{tag:"div",className:"dt-button-collection dropdown-menu",button:{tag:"a",className:"dt-button dropdown-item",active:"active",disabled:"disabled"}}},buttonCreated:function(a,b){return a.buttons?c('<div class="btn-group"/>').append(b):b}});a.ext.buttons.collection.className+=" dropdown-toggle";a.ext.buttons.collection.rightAlignClassName="dropdown-menu-right";return a.Buttons});
|
||||||
@@ -0,0 +1,213 @@
|
|||||||
|
/*!
|
||||||
|
* Column visibility buttons for Buttons and DataTables.
|
||||||
|
* 2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function( factory ){
|
||||||
|
if ( typeof define === 'function' && define.amd ) {
|
||||||
|
// AMD
|
||||||
|
define( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) {
|
||||||
|
return factory( $, window, document );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
else if ( typeof exports === 'object' ) {
|
||||||
|
// CommonJS
|
||||||
|
module.exports = function (root, $) {
|
||||||
|
if ( ! root ) {
|
||||||
|
root = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $ || ! $.fn.dataTable ) {
|
||||||
|
$ = require('datatables.net')(root, $).$;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $.fn.dataTable.Buttons ) {
|
||||||
|
require('datatables.net-buttons')(root, $);
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory( $, root, root.document );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Browser
|
||||||
|
factory( jQuery, window, document );
|
||||||
|
}
|
||||||
|
}(function( $, window, document, undefined ) {
|
||||||
|
'use strict';
|
||||||
|
var DataTable = $.fn.dataTable;
|
||||||
|
|
||||||
|
|
||||||
|
$.extend( DataTable.ext.buttons, {
|
||||||
|
// A collection of column visibility buttons
|
||||||
|
colvis: function ( dt, conf ) {
|
||||||
|
return {
|
||||||
|
extend: 'collection',
|
||||||
|
text: function ( dt ) {
|
||||||
|
return dt.i18n( 'buttons.colvis', 'Column visibility' );
|
||||||
|
},
|
||||||
|
className: 'buttons-colvis',
|
||||||
|
buttons: [ {
|
||||||
|
extend: 'columnsToggle',
|
||||||
|
columns: conf.columns,
|
||||||
|
columnText: conf.columnText
|
||||||
|
} ]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
// Selected columns with individual buttons - toggle column visibility
|
||||||
|
columnsToggle: function ( dt, conf ) {
|
||||||
|
var columns = dt.columns( conf.columns ).indexes().map( function ( idx ) {
|
||||||
|
return {
|
||||||
|
extend: 'columnToggle',
|
||||||
|
columns: idx,
|
||||||
|
columnText: conf.columnText
|
||||||
|
};
|
||||||
|
} ).toArray();
|
||||||
|
|
||||||
|
return columns;
|
||||||
|
},
|
||||||
|
|
||||||
|
// Single button to toggle column visibility
|
||||||
|
columnToggle: function ( dt, conf ) {
|
||||||
|
return {
|
||||||
|
extend: 'columnVisibility',
|
||||||
|
columns: conf.columns,
|
||||||
|
columnText: conf.columnText
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
// Selected columns with individual buttons - set column visibility
|
||||||
|
columnsVisibility: function ( dt, conf ) {
|
||||||
|
var columns = dt.columns( conf.columns ).indexes().map( function ( idx ) {
|
||||||
|
return {
|
||||||
|
extend: 'columnVisibility',
|
||||||
|
columns: idx,
|
||||||
|
visibility: conf.visibility,
|
||||||
|
columnText: conf.columnText
|
||||||
|
};
|
||||||
|
} ).toArray();
|
||||||
|
|
||||||
|
return columns;
|
||||||
|
},
|
||||||
|
|
||||||
|
// Single button to set column visibility
|
||||||
|
columnVisibility: {
|
||||||
|
columns: undefined, // column selector
|
||||||
|
text: function ( dt, button, conf ) {
|
||||||
|
return conf._columnText( dt, conf );
|
||||||
|
},
|
||||||
|
className: 'buttons-columnVisibility',
|
||||||
|
action: function ( e, dt, button, conf ) {
|
||||||
|
var col = dt.columns( conf.columns );
|
||||||
|
var curr = col.visible();
|
||||||
|
|
||||||
|
col.visible( conf.visibility !== undefined ?
|
||||||
|
conf.visibility :
|
||||||
|
! (curr.length ? curr[0] : false )
|
||||||
|
);
|
||||||
|
},
|
||||||
|
init: function ( dt, button, conf ) {
|
||||||
|
var that = this;
|
||||||
|
button.attr( 'data-cv-idx', conf.columns );
|
||||||
|
|
||||||
|
dt
|
||||||
|
.on( 'column-visibility.dt'+conf.namespace, function (e, settings) {
|
||||||
|
if ( ! settings.bDestroying && settings.nTable == dt.settings()[0].nTable ) {
|
||||||
|
that.active( dt.column( conf.columns ).visible() );
|
||||||
|
}
|
||||||
|
} )
|
||||||
|
.on( 'column-reorder.dt'+conf.namespace, function (e, settings, details) {
|
||||||
|
// Don't rename buttons based on column name if the button
|
||||||
|
// controls more than one column!
|
||||||
|
if ( dt.columns( conf.columns ).count() !== 1 ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
conf.columns = $.inArray( conf.columns, details.mapping );
|
||||||
|
button.attr( 'data-cv-idx', conf.columns );
|
||||||
|
|
||||||
|
// Reorder buttons for new table order
|
||||||
|
button
|
||||||
|
.parent()
|
||||||
|
.children('[data-cv-idx]')
|
||||||
|
.sort( function (a, b) {
|
||||||
|
return (a.getAttribute('data-cv-idx')*1) - (b.getAttribute('data-cv-idx')*1);
|
||||||
|
} )
|
||||||
|
.appendTo(button.parent());
|
||||||
|
} );
|
||||||
|
|
||||||
|
this.active( dt.column( conf.columns ).visible() );
|
||||||
|
},
|
||||||
|
destroy: function ( dt, button, conf ) {
|
||||||
|
dt
|
||||||
|
.off( 'column-visibility.dt'+conf.namespace )
|
||||||
|
.off( 'column-reorder.dt'+conf.namespace );
|
||||||
|
},
|
||||||
|
|
||||||
|
_columnText: function ( dt, conf ) {
|
||||||
|
// Use DataTables' internal data structure until this is presented
|
||||||
|
// is a public API. The other option is to use
|
||||||
|
// `$( column(col).node() ).text()` but the node might not have been
|
||||||
|
// populated when Buttons is constructed.
|
||||||
|
var idx = dt.column( conf.columns ).index();
|
||||||
|
var title = dt.settings()[0].aoColumns[ idx ].sTitle
|
||||||
|
.replace(/\n/g," ") // remove new lines
|
||||||
|
.replace(/<br\s*\/?>/gi, " ") // replace line breaks with spaces
|
||||||
|
.replace(/<select(.*?)<\/select>/g, "") // remove select tags, including options text
|
||||||
|
.replace(/<!\-\-.*?\-\->/g, "") // strip HTML comments
|
||||||
|
.replace(/<.*?>/g, "") // strip HTML
|
||||||
|
.replace(/^\s+|\s+$/g,""); // trim
|
||||||
|
|
||||||
|
return conf.columnText ?
|
||||||
|
conf.columnText( dt, idx, title ) :
|
||||||
|
title;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
colvisRestore: {
|
||||||
|
className: 'buttons-colvisRestore',
|
||||||
|
|
||||||
|
text: function ( dt ) {
|
||||||
|
return dt.i18n( 'buttons.colvisRestore', 'Restore visibility' );
|
||||||
|
},
|
||||||
|
|
||||||
|
init: function ( dt, button, conf ) {
|
||||||
|
conf._visOriginal = dt.columns().indexes().map( function ( idx ) {
|
||||||
|
return dt.column( idx ).visible();
|
||||||
|
} ).toArray();
|
||||||
|
},
|
||||||
|
|
||||||
|
action: function ( e, dt, button, conf ) {
|
||||||
|
dt.columns().every( function ( i ) {
|
||||||
|
// Take into account that ColReorder might have disrupted our
|
||||||
|
// indexes
|
||||||
|
var idx = dt.colReorder && dt.colReorder.transpose ?
|
||||||
|
dt.colReorder.transpose( i, 'toOriginal' ) :
|
||||||
|
i;
|
||||||
|
|
||||||
|
this.visible( conf._visOriginal[ idx ] );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
colvisGroup: {
|
||||||
|
className: 'buttons-colvisGroup',
|
||||||
|
|
||||||
|
action: function ( e, dt, button, conf ) {
|
||||||
|
dt.columns( conf.show ).visible( true, false );
|
||||||
|
dt.columns( conf.hide ).visible( false, false );
|
||||||
|
|
||||||
|
dt.columns.adjust();
|
||||||
|
},
|
||||||
|
|
||||||
|
show: [],
|
||||||
|
|
||||||
|
hide: []
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
return DataTable.Buttons;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
/*!
|
||||||
|
Column visibility buttons for Buttons and DataTables.
|
||||||
|
2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(f){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(c){return f(c,window,document)}):"object"===typeof exports?module.exports=function(c,e){c||(c=window);e&&e.fn.dataTable||(e=require("datatables.net")(c,e).$);e.fn.dataTable.Buttons||require("datatables.net-buttons")(c,e);return f(e,c,c.document)}:f(jQuery,window,document)})(function(f,c,e,h){c=f.fn.dataTable;f.extend(c.ext.buttons,{colvis:function(b,a){return{extend:"collection",
|
||||||
|
text:function(a){return a.i18n("buttons.colvis","Column visibility")},className:"buttons-colvis",buttons:[{extend:"columnsToggle",columns:a.columns,columnText:a.columnText}]}},columnsToggle:function(b,a){return b.columns(a.columns).indexes().map(function(b){return{extend:"columnToggle",columns:b,columnText:a.columnText}}).toArray()},columnToggle:function(b,a){return{extend:"columnVisibility",columns:a.columns,columnText:a.columnText}},columnsVisibility:function(b,a){return b.columns(a.columns).indexes().map(function(b){return{extend:"columnVisibility",
|
||||||
|
columns:b,visibility:a.visibility,columnText:a.columnText}}).toArray()},columnVisibility:{columns:h,text:function(b,a,d){return d._columnText(b,d)},className:"buttons-columnVisibility",action:function(b,a,d,g){b=a.columns(g.columns);a=b.visible();b.visible(g.visibility!==h?g.visibility:!(a.length&&a[0]))},init:function(b,a,d){var g=this;a.attr("data-cv-idx",d.columns);b.on("column-visibility.dt"+d.namespace,function(a,c){c.bDestroying||c.nTable!=b.settings()[0].nTable||g.active(b.column(d.columns).visible())}).on("column-reorder.dt"+
|
||||||
|
d.namespace,function(c,g,e){1===b.columns(d.columns).count()&&(d.columns=f.inArray(d.columns,e.mapping),a.attr("data-cv-idx",d.columns),a.parent().children("[data-cv-idx]").sort(function(a,b){return 1*a.getAttribute("data-cv-idx")-1*b.getAttribute("data-cv-idx")}).appendTo(a.parent()))});this.active(b.column(d.columns).visible())},destroy:function(b,a,d){b.off("column-visibility.dt"+d.namespace).off("column-reorder.dt"+d.namespace)},_columnText:function(b,a){var d=b.column(a.columns).index(),c=b.settings()[0].aoColumns[d].sTitle.replace(/\n/g,
|
||||||
|
" ").replace(/<br\s*\/?>/gi," ").replace(/<select(.*?)<\/select>/g,"").replace(/<!\-\-.*?\-\->/g,"").replace(/<.*?>/g,"").replace(/^\s+|\s+$/g,"");return a.columnText?a.columnText(b,d,c):c}},colvisRestore:{className:"buttons-colvisRestore",text:function(b){return b.i18n("buttons.colvisRestore","Restore visibility")},init:function(b,a,d){d._visOriginal=b.columns().indexes().map(function(a){return b.column(a).visible()}).toArray()},action:function(b,a,d,c){a.columns().every(function(b){b=a.colReorder&&
|
||||||
|
a.colReorder.transpose?a.colReorder.transpose(b,"toOriginal"):b;this.visible(c._visOriginal[b])})}},colvisGroup:{className:"buttons-colvisGroup",action:function(b,a,d,c){a.columns(c.show).visible(!0,!1);a.columns(c.hide).visible(!1,!1);a.columns.adjust()},show:[],hide:[]}});return c.Buttons});
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,88 @@
|
|||||||
|
/*! Foundation integration for DataTables' Buttons
|
||||||
|
* ©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function( factory ){
|
||||||
|
if ( typeof define === 'function' && define.amd ) {
|
||||||
|
// AMD
|
||||||
|
define( ['jquery', 'datatables.net-zf', 'datatables.net-buttons'], function ( $ ) {
|
||||||
|
return factory( $, window, document );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
else if ( typeof exports === 'object' ) {
|
||||||
|
// CommonJS
|
||||||
|
module.exports = function (root, $) {
|
||||||
|
if ( ! root ) {
|
||||||
|
root = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $ || ! $.fn.dataTable ) {
|
||||||
|
$ = require('datatables.net-zf')(root, $).$;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $.fn.dataTable.Buttons ) {
|
||||||
|
require('datatables.net-buttons')(root, $);
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory( $, root, root.document );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Browser
|
||||||
|
factory( jQuery, window, document );
|
||||||
|
}
|
||||||
|
}(function( $, window, document, undefined ) {
|
||||||
|
'use strict';
|
||||||
|
var DataTable = $.fn.dataTable;
|
||||||
|
|
||||||
|
|
||||||
|
// F6 has different requirements for the dropdown button set. We can use the
|
||||||
|
// Foundation version found by DataTables in order to support both F5 and F6 in
|
||||||
|
// the same file, but not that this requires DataTables 1.10.11+ for F6 support.
|
||||||
|
var collection = DataTable.ext.foundationVersion === 6 ?
|
||||||
|
{
|
||||||
|
tag: 'div',
|
||||||
|
className: 'dt-button-collection dropdown-pane is-open button-group stacked'
|
||||||
|
} :
|
||||||
|
{
|
||||||
|
tag: 'ul',
|
||||||
|
className: 'dt-button-collection f-dropdown open dropdown-pane is-open',
|
||||||
|
button: {
|
||||||
|
tag: 'li',
|
||||||
|
className: 'small',
|
||||||
|
active: 'active',
|
||||||
|
disabled: 'disabled'
|
||||||
|
},
|
||||||
|
buttonLiner: {
|
||||||
|
tag: 'a'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$.extend( true, DataTable.Buttons.defaults, {
|
||||||
|
dom: {
|
||||||
|
container: {
|
||||||
|
tag: 'div',
|
||||||
|
className: 'dt-buttons button-group'
|
||||||
|
},
|
||||||
|
buttonContainer: {
|
||||||
|
tag: null,
|
||||||
|
className: ''
|
||||||
|
},
|
||||||
|
button: {
|
||||||
|
tag: 'a',
|
||||||
|
className: 'button small',
|
||||||
|
active: 'secondary'
|
||||||
|
},
|
||||||
|
buttonLiner: {
|
||||||
|
tag: null
|
||||||
|
},
|
||||||
|
collection: collection
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
DataTable.ext.buttons.collection.className = 'buttons-collection dropdown';
|
||||||
|
|
||||||
|
|
||||||
|
return DataTable.Buttons;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
Foundation integration for DataTables' Buttons
|
||||||
|
©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-zf","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-zf")(a,b).$);b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{tag:"div",className:"dt-buttons button-group"},
|
||||||
|
buttonContainer:{tag:null,className:""},button:{tag:"a",className:"button small",active:"secondary"},buttonLiner:{tag:null},collection:6===a.ext.foundationVersion?{tag:"div",className:"dt-button-collection dropdown-pane is-open button-group stacked"}:{tag:"ul",className:"dt-button-collection f-dropdown open dropdown-pane is-open",button:{tag:"li",className:"small",active:"active",disabled:"disabled"},buttonLiner:{tag:"a"}}}});a.ext.buttons.collection.className="buttons-collection dropdown";return a.Buttons});
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,62 @@
|
|||||||
|
/*! jQuery UI integration for DataTables' Buttons
|
||||||
|
* ©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function( factory ){
|
||||||
|
if ( typeof define === 'function' && define.amd ) {
|
||||||
|
// AMD
|
||||||
|
define( ['jquery', 'datatables.net-jqui', 'datatables.net-buttons'], function ( $ ) {
|
||||||
|
return factory( $, window, document );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
else if ( typeof exports === 'object' ) {
|
||||||
|
// CommonJS
|
||||||
|
module.exports = function (root, $) {
|
||||||
|
if ( ! root ) {
|
||||||
|
root = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $ || ! $.fn.dataTable ) {
|
||||||
|
$ = require('datatables.net-jqui')(root, $).$;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $.fn.dataTable.Buttons ) {
|
||||||
|
require('datatables.net-buttons')(root, $);
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory( $, root, root.document );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Browser
|
||||||
|
factory( jQuery, window, document );
|
||||||
|
}
|
||||||
|
}(function( $, window, document, undefined ) {
|
||||||
|
'use strict';
|
||||||
|
var DataTable = $.fn.dataTable;
|
||||||
|
|
||||||
|
|
||||||
|
$.extend( true, DataTable.Buttons.defaults, {
|
||||||
|
dom: {
|
||||||
|
container: {
|
||||||
|
className: 'dt-buttons ui-buttonset'
|
||||||
|
},
|
||||||
|
button: {
|
||||||
|
className: 'dt-button ui-button ui-state-default ui-button-text-only',
|
||||||
|
disabled: 'ui-state-disabled',
|
||||||
|
active: 'ui-state-active'
|
||||||
|
},
|
||||||
|
buttonLiner: {
|
||||||
|
tag: 'span',
|
||||||
|
className: 'ui-button-text'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
DataTable.ext.buttons.collection.text = function ( dt ) {
|
||||||
|
return dt.i18n('buttons.collection', 'Collection <span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-s"/>');
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
return DataTable.Buttons;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
jQuery UI integration for DataTables' Buttons
|
||||||
|
©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-jqui","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-jqui")(a,b).$);b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{className:"dt-buttons ui-buttonset"},
|
||||||
|
button:{className:"dt-button ui-button ui-state-default ui-button-text-only",disabled:"ui-state-disabled",active:"ui-state-active"},buttonLiner:{tag:"span",className:"ui-button-text"}}});a.ext.buttons.collection.text=function(a){return a.i18n("buttons.collection",'Collection <span class="ui-button-icon-primary ui-icon ui-icon-triangle-1-s"/>')};return a.Buttons});
|
||||||
@@ -0,0 +1,210 @@
|
|||||||
|
/*!
|
||||||
|
* Print button for Buttons and DataTables.
|
||||||
|
* 2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function( factory ){
|
||||||
|
if ( typeof define === 'function' && define.amd ) {
|
||||||
|
// AMD
|
||||||
|
define( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) {
|
||||||
|
return factory( $, window, document );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
else if ( typeof exports === 'object' ) {
|
||||||
|
// CommonJS
|
||||||
|
module.exports = function (root, $) {
|
||||||
|
if ( ! root ) {
|
||||||
|
root = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $ || ! $.fn.dataTable ) {
|
||||||
|
$ = require('datatables.net')(root, $).$;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $.fn.dataTable.Buttons ) {
|
||||||
|
require('datatables.net-buttons')(root, $);
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory( $, root, root.document );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Browser
|
||||||
|
factory( jQuery, window, document );
|
||||||
|
}
|
||||||
|
}(function( $, window, document, undefined ) {
|
||||||
|
'use strict';
|
||||||
|
var DataTable = $.fn.dataTable;
|
||||||
|
|
||||||
|
|
||||||
|
var _link = document.createElement( 'a' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clone link and style tags, taking into account the need to change the source
|
||||||
|
* path.
|
||||||
|
*
|
||||||
|
* @param {node} el Element to convert
|
||||||
|
*/
|
||||||
|
var _styleToAbs = function( el ) {
|
||||||
|
var url;
|
||||||
|
var clone = $(el).clone()[0];
|
||||||
|
var linkHost;
|
||||||
|
|
||||||
|
if ( clone.nodeName.toLowerCase() === 'link' ) {
|
||||||
|
clone.href = _relToAbs( clone.href );
|
||||||
|
}
|
||||||
|
|
||||||
|
return clone.outerHTML;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert a URL from a relative to an absolute address so it will work
|
||||||
|
* correctly in the popup window which has no base URL.
|
||||||
|
*
|
||||||
|
* @param {string} href URL
|
||||||
|
*/
|
||||||
|
var _relToAbs = function( href ) {
|
||||||
|
// Assign to a link on the original page so the browser will do all the
|
||||||
|
// hard work of figuring out where the file actually is
|
||||||
|
_link.href = href;
|
||||||
|
var linkHost = _link.host;
|
||||||
|
|
||||||
|
// IE doesn't have a trailing slash on the host
|
||||||
|
// Chrome has it on the pathname
|
||||||
|
if ( linkHost.indexOf('/') === -1 && _link.pathname.indexOf('/') !== 0) {
|
||||||
|
linkHost += '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
return _link.protocol+"//"+linkHost+_link.pathname+_link.search;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
DataTable.ext.buttons.print = {
|
||||||
|
className: 'buttons-print',
|
||||||
|
|
||||||
|
text: function ( dt ) {
|
||||||
|
return dt.i18n( 'buttons.print', 'Print' );
|
||||||
|
},
|
||||||
|
|
||||||
|
action: function ( e, dt, button, config ) {
|
||||||
|
var data = dt.buttons.exportData(
|
||||||
|
$.extend( {decodeEntities: false}, config.exportOptions ) // XSS protection
|
||||||
|
);
|
||||||
|
var exportInfo = dt.buttons.exportInfo( config );
|
||||||
|
var columnClasses = dt
|
||||||
|
.columns( config.exportOptions.columns )
|
||||||
|
.flatten()
|
||||||
|
.map( function (idx) {
|
||||||
|
return dt.settings()[0].aoColumns[dt.column(idx).index()].sClass;
|
||||||
|
} )
|
||||||
|
.toArray();
|
||||||
|
|
||||||
|
var addRow = function ( d, tag ) {
|
||||||
|
var str = '<tr>';
|
||||||
|
|
||||||
|
for ( var i=0, ien=d.length ; i<ien ; i++ ) {
|
||||||
|
// null and undefined aren't useful in the print output
|
||||||
|
var dataOut = d[i] === null || d[i] === undefined ?
|
||||||
|
'' :
|
||||||
|
d[i];
|
||||||
|
var classAttr = columnClasses[i] ?
|
||||||
|
'class="'+columnClasses[i]+'"' :
|
||||||
|
'';
|
||||||
|
|
||||||
|
str += '<'+tag+' '+classAttr+'>'+dataOut+'</'+tag+'>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return str + '</tr>';
|
||||||
|
};
|
||||||
|
|
||||||
|
// Construct a table for printing
|
||||||
|
var html = '<table class="'+dt.table().node().className+'">';
|
||||||
|
|
||||||
|
if ( config.header ) {
|
||||||
|
html += '<thead>'+ addRow( data.header, 'th' ) +'</thead>';
|
||||||
|
}
|
||||||
|
|
||||||
|
html += '<tbody>';
|
||||||
|
for ( var i=0, ien=data.body.length ; i<ien ; i++ ) {
|
||||||
|
html += addRow( data.body[i], 'td' );
|
||||||
|
}
|
||||||
|
html += '</tbody>';
|
||||||
|
|
||||||
|
if ( config.footer && data.footer ) {
|
||||||
|
html += '<tfoot>'+ addRow( data.footer, 'th' ) +'</tfoot>';
|
||||||
|
}
|
||||||
|
html += '</table>';
|
||||||
|
|
||||||
|
// Open a new window for the printable table
|
||||||
|
var win = window.open( '', '' );
|
||||||
|
win.document.close();
|
||||||
|
|
||||||
|
// Inject the title and also a copy of the style and link tags from this
|
||||||
|
// document so the table can retain its base styling. Note that we have
|
||||||
|
// to use string manipulation as IE won't allow elements to be created
|
||||||
|
// in the host document and then appended to the new window.
|
||||||
|
var head = '<title>'+exportInfo.title+'</title>';
|
||||||
|
$('style, link').each( function () {
|
||||||
|
head += _styleToAbs( this );
|
||||||
|
} );
|
||||||
|
|
||||||
|
try {
|
||||||
|
win.document.head.innerHTML = head; // Work around for Edge
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
$(win.document.head).html( head ); // Old IE
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inject the table and other surrounding information
|
||||||
|
win.document.body.innerHTML =
|
||||||
|
'<h1>'+exportInfo.title+'</h1>'+
|
||||||
|
'<div>'+(exportInfo.messageTop || '')+'</div>'+
|
||||||
|
html+
|
||||||
|
'<div>'+(exportInfo.messageBottom || '')+'</div>';
|
||||||
|
|
||||||
|
$(win.document.body).addClass('dt-print-view');
|
||||||
|
|
||||||
|
$('img', win.document.body).each( function ( i, img ) {
|
||||||
|
img.setAttribute( 'src', _relToAbs( img.getAttribute('src') ) );
|
||||||
|
} );
|
||||||
|
|
||||||
|
if ( config.customize ) {
|
||||||
|
config.customize( win, config, dt );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow stylesheets time to load
|
||||||
|
var autoPrint = function () {
|
||||||
|
if ( config.autoPrint ) {
|
||||||
|
win.print(); // blocking - so close will not
|
||||||
|
win.close(); // execute until this is done
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if ( navigator.userAgent.match(/Trident\/\d.\d/) ) { // IE needs to call this without a setTimeout
|
||||||
|
autoPrint();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
win.setTimeout( autoPrint, 1000 );
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
title: '*',
|
||||||
|
|
||||||
|
messageTop: '*',
|
||||||
|
|
||||||
|
messageBottom: '*',
|
||||||
|
|
||||||
|
exportOptions: {},
|
||||||
|
|
||||||
|
header: true,
|
||||||
|
|
||||||
|
footer: false,
|
||||||
|
|
||||||
|
autoPrint: true,
|
||||||
|
|
||||||
|
customize: null
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
return DataTable.Buttons;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
/*!
|
||||||
|
Print button for Buttons and DataTables.
|
||||||
|
2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(e){return c(e,window,document)}):"object"===typeof exports?module.exports=function(e,a){e||(e=window);a&&a.fn.dataTable||(a=require("datatables.net")(e,a).$);a.fn.dataTable.Buttons||require("datatables.net-buttons")(e,a);return c(a,e,e.document)}:c(jQuery,window,document)})(function(c,e,a,q){var k=c.fn.dataTable,d=a.createElement("a"),p=function(b){d.href=b;b=d.host;-1===b.indexOf("/")&&
|
||||||
|
0!==d.pathname.indexOf("/")&&(b+="/");return d.protocol+"//"+b+d.pathname+d.search};k.ext.buttons.print={className:"buttons-print",text:function(b){return b.i18n("buttons.print","Print")},action:function(b,a,d,g){b=a.buttons.exportData(c.extend({decodeEntities:!1},g.exportOptions));d=a.buttons.exportInfo(g);var k=a.columns(g.exportOptions.columns).flatten().map(function(b){return a.settings()[0].aoColumns[a.column(b).index()].sClass}).toArray(),m=function(b,a){for(var d="<tr>",c=0,e=b.length;c<e;c++)d+=
|
||||||
|
"<"+a+" "+(k[c]?'class="'+k[c]+'"':"")+">"+(null===b[c]||b[c]===q?"":b[c])+"</"+a+">";return d+"</tr>"},h='<table class="'+a.table().node().className+'">';g.header&&(h+="<thead>"+m(b.header,"th")+"</thead>");h+="<tbody>";for(var n=0,r=b.body.length;n<r;n++)h+=m(b.body[n],"td");h+="</tbody>";g.footer&&b.footer&&(h+="<tfoot>"+m(b.footer,"th")+"</tfoot>");h+="</table>";var f=e.open("","");f.document.close();var l="<title>"+d.title+"</title>";c("style, link").each(function(){var b=l,a=c(this).clone()[0];
|
||||||
|
"link"===a.nodeName.toLowerCase()&&(a.href=p(a.href));l=b+a.outerHTML});try{f.document.head.innerHTML=l}catch(t){c(f.document.head).html(l)}f.document.body.innerHTML="<h1>"+d.title+"</h1><div>"+(d.messageTop||"")+"</div>"+h+"<div>"+(d.messageBottom||"")+"</div>";c(f.document.body).addClass("dt-print-view");c("img",f.document.body).each(function(b,a){a.setAttribute("src",p(a.getAttribute("src")))});g.customize&&g.customize(f,g,a);b=function(){g.autoPrint&&(f.print(),f.close())};navigator.userAgent.match(/Trident\/\d.\d/)?
|
||||||
|
b():f.setTimeout(b,1E3)},title:"*",messageTop:"*",messageBottom:"*",exportOptions:{},header:!0,footer:!1,autoPrint:!0,customize:null};return k.Buttons});
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
/*! Bootstrap integration for DataTables' Buttons
|
||||||
|
* ©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function( factory ){
|
||||||
|
if ( typeof define === 'function' && define.amd ) {
|
||||||
|
// AMD
|
||||||
|
define( ['jquery', 'datatables.net-se', 'datatables.net-buttons'], function ( $ ) {
|
||||||
|
return factory( $, window, document );
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
else if ( typeof exports === 'object' ) {
|
||||||
|
// CommonJS
|
||||||
|
module.exports = function (root, $) {
|
||||||
|
if ( ! root ) {
|
||||||
|
root = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $ || ! $.fn.dataTable ) {
|
||||||
|
$ = require('datatables.net-se')(root, $).$;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $.fn.dataTable.Buttons ) {
|
||||||
|
require('datatables.net-buttons')(root, $);
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory( $, root, root.document );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Browser
|
||||||
|
factory( jQuery, window, document );
|
||||||
|
}
|
||||||
|
}(function( $, window, document, undefined ) {
|
||||||
|
'use strict';
|
||||||
|
var DataTable = $.fn.dataTable;
|
||||||
|
|
||||||
|
|
||||||
|
$.extend( true, DataTable.Buttons.defaults, {
|
||||||
|
dom: {
|
||||||
|
container: {
|
||||||
|
className: 'dt-buttons ui basic buttons'
|
||||||
|
},
|
||||||
|
button: {
|
||||||
|
tag: 'button',
|
||||||
|
className: 'ui button'
|
||||||
|
},
|
||||||
|
collection: {
|
||||||
|
tag: 'div',
|
||||||
|
className: 'dt-button-collection ui basic vertical buttons'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
return DataTable.Buttons;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
Bootstrap integration for DataTables' Buttons
|
||||||
|
©2016 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-se","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-se")(a,b).$);b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{className:"dt-buttons ui basic buttons"},
|
||||||
|
button:{tag:"button",className:"ui button"},collection:{tag:"div",className:"dt-button-collection ui basic vertical buttons"}}});return a.Buttons});
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,45 @@
|
|||||||
|
/*!
|
||||||
|
Buttons for DataTables 1.5.6
|
||||||
|
©2016-2019 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(d,q,n){d instanceof String&&(d=String(d));for(var l=d.length,u=0;u<l;u++){var p=d[u];if(q.call(n,p,u,d))return{i:u,v:p}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;
|
||||||
|
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(d,q,n){d!=Array.prototype&&d!=Object.prototype&&(d[q]=n.value)};$jscomp.getGlobal=function(d){return"undefined"!=typeof window&&window===d?d:"undefined"!=typeof global&&null!=global?global:d};$jscomp.global=$jscomp.getGlobal(this);
|
||||||
|
$jscomp.polyfill=function(d,q,n,l){if(q){n=$jscomp.global;d=d.split(".");for(l=0;l<d.length-1;l++){var u=d[l];u in n||(n[u]={});n=n[u]}d=d[d.length-1];l=n[d];q=q(l);q!=l&&null!=q&&$jscomp.defineProperty(n,d,{configurable:!0,writable:!0,value:q})}};$jscomp.polyfill("Array.prototype.find",function(d){return d?d:function(d,n){return $jscomp.findInternal(this,d,n).v}},"es6","es3");
|
||||||
|
(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(q){return d(q,window,document)}):"object"===typeof exports?module.exports=function(q,n){q||(q=window);n&&n.fn.dataTable||(n=require("datatables.net")(q,n).$);return d(n,q,q.document)}:d(jQuery,window,document)})(function(d,q,n,l){function u(a){a=new p.Api(a);var b=a.init().buttons||p.defaults.buttons;return(new t(a,b)).container()}var p=d.fn.dataTable,B=0,C=0,r=p.ext.buttons,t=function(a,b){if(!(this instanceof
|
||||||
|
t))return function(b){return(new t(b,a)).container()};"undefined"===typeof b&&(b={});!0===b&&(b={});d.isArray(b)&&(b={buttons:b});this.c=d.extend(!0,{},t.defaults,b);b.buttons&&(this.c.buttons=b.buttons);this.s={dt:new p.Api(a),buttons:[],listenKeys:"",namespace:"dtb"+B++};this.dom={container:d("<"+this.c.dom.container.tag+"/>").addClass(this.c.dom.container.className)};this._constructor()};d.extend(t.prototype,{action:function(a,b){a=this._nodeToButton(a);if(b===l)return a.conf.action;a.conf.action=
|
||||||
|
b;return this},active:function(a,b){var c=this._nodeToButton(a);a=this.c.dom.button.active;c=d(c.node);if(b===l)return c.hasClass(a);c.toggleClass(a,b===l?!0:b);return this},add:function(a,b){var c=this.s.buttons;if("string"===typeof b){b=b.split("-");c=this.s;for(var d=0,f=b.length-1;d<f;d++)c=c.buttons[1*b[d]];c=c.buttons;b=1*b[b.length-1]}this._expandButton(c,a,!1,b);this._draw();return this},container:function(){return this.dom.container},disable:function(a){a=this._nodeToButton(a);d(a.node).addClass(this.c.dom.button.disabled);
|
||||||
|
return this},destroy:function(){d("body").off("keyup."+this.s.namespace);var a=this.s.buttons.slice(),b;var c=0;for(b=a.length;c<b;c++)this.remove(a[c].node);this.dom.container.remove();a=this.s.dt.settings()[0];c=0;for(b=a.length;c<b;c++)if(a.inst===this){a.splice(c,1);break}return this},enable:function(a,b){if(!1===b)return this.disable(a);a=this._nodeToButton(a);d(a.node).removeClass(this.c.dom.button.disabled);return this},name:function(){return this.c.name},node:function(a){if(!a)return this.dom.container;
|
||||||
|
a=this._nodeToButton(a);return d(a.node)},processing:function(a,b){a=this._nodeToButton(a);if(b===l)return d(a.node).hasClass("processing");d(a.node).toggleClass("processing",b);return this},remove:function(a){var b=this._nodeToButton(a),c=this._nodeToHost(a),e=this.s.dt;if(b.buttons.length)for(var f=b.buttons.length-1;0<=f;f--)this.remove(b.buttons[f].node);b.conf.destroy&&b.conf.destroy.call(e.button(a),e,d(a),b.conf);this._removeKey(b.conf);d(b.node).remove();a=d.inArray(b,c);c.splice(a,1);return this},
|
||||||
|
text:function(a,b){var c=this._nodeToButton(a);a=this.c.dom.collection.buttonLiner;a=c.inCollection&&a&&a.tag?a.tag:this.c.dom.buttonLiner.tag;var e=this.s.dt,f=d(c.node),g=function(a){return"function"===typeof a?a(e,f,c.conf):a};if(b===l)return g(c.conf.text);c.conf.text=b;a?f.children(a).html(g(b)):f.html(g(b));return this},_constructor:function(){var a=this,b=this.s.dt,c=b.settings()[0],e=this.c.buttons;c._buttons||(c._buttons=[]);c._buttons.push({inst:this,name:this.c.name});for(var f=0,g=e.length;f<
|
||||||
|
g;f++)this.add(e[f]);b.on("destroy",function(b,d){d===c&&a.destroy()});d("body").on("keyup."+this.s.namespace,function(b){if(!n.activeElement||n.activeElement===n.body){var c=String.fromCharCode(b.keyCode).toLowerCase();-1!==a.s.listenKeys.toLowerCase().indexOf(c)&&a._keypress(c,b)}})},_addKey:function(a){a.key&&(this.s.listenKeys+=d.isPlainObject(a.key)?a.key.key:a.key)},_draw:function(a,b){a||(a=this.dom.container,b=this.s.buttons);a.children().detach();for(var c=0,d=b.length;c<d;c++)a.append(b[c].inserter),
|
||||||
|
a.append(" "),b[c].buttons&&b[c].buttons.length&&this._draw(b[c].collection,b[c].buttons)},_expandButton:function(a,b,c,e){var f=this.s.dt,g=0;b=d.isArray(b)?b:[b];for(var h=0,k=b.length;h<k;h++){var v=this._resolveExtends(b[h]);if(v)if(d.isArray(v))this._expandButton(a,v,c,e);else{var m=this._buildButton(v,c);if(m){e!==l?(a.splice(e,0,m),e++):a.push(m);if(m.conf.buttons){var y=this.c.dom.collection;m.collection=d("<"+y.tag+"/>").addClass(y.className).attr("role","menu");m.conf._collection=m.collection;
|
||||||
|
this._expandButton(m.buttons,m.conf.buttons,!0,e)}v.init&&v.init.call(f.button(m.node),f,d(m.node),v);g++}}}},_buildButton:function(a,b){var c=this.c.dom.button,e=this.c.dom.buttonLiner,f=this.c.dom.collection,g=this.s.dt,h=function(b){return"function"===typeof b?b(g,m,a):b};b&&f.button&&(c=f.button);b&&f.buttonLiner&&(e=f.buttonLiner);if(a.available&&!a.available(g,a))return!1;var k=function(a,b,c,e){e.action.call(b.button(c),a,b,c,e);d(b.table().node()).triggerHandler("buttons-action.dt",[b.button(c),
|
||||||
|
b,c,e])};f=a.tag||c.tag;var v=a.clickBlurs===l?!0:a.clickBlurs,m=d("<"+f+"/>").addClass(c.className).attr("tabindex",this.s.dt.settings()[0].iTabIndex).attr("aria-controls",this.s.dt.table().node().id).on("click.dtb",function(b){b.preventDefault();!m.hasClass(c.disabled)&&a.action&&k(b,g,m,a);v&&m.blur()}).on("keyup.dtb",function(b){13===b.keyCode&&!m.hasClass(c.disabled)&&a.action&&k(b,g,m,a)});"a"===f.toLowerCase()&&m.attr("href","#");"button"===f.toLowerCase()&&m.attr("type","button");e.tag?(f=
|
||||||
|
d("<"+e.tag+"/>").html(h(a.text)).addClass(e.className),"a"===e.tag.toLowerCase()&&f.attr("href","#"),m.append(f)):m.html(h(a.text));!1===a.enabled&&m.addClass(c.disabled);a.className&&m.addClass(a.className);a.titleAttr&&m.attr("title",h(a.titleAttr));a.attr&&m.attr(a.attr);a.namespace||(a.namespace=".dt-button-"+C++);e=(e=this.c.dom.buttonContainer)&&e.tag?d("<"+e.tag+"/>").addClass(e.className).append(m):m;this._addKey(a);this.c.buttonCreated&&(e=this.c.buttonCreated(a,e));return{conf:a,node:m.get(0),
|
||||||
|
inserter:e,buttons:[],inCollection:b,collection:null}},_nodeToButton:function(a,b){b||(b=this.s.buttons);for(var c=0,d=b.length;c<d;c++){if(b[c].node===a)return b[c];if(b[c].buttons.length){var f=this._nodeToButton(a,b[c].buttons);if(f)return f}}},_nodeToHost:function(a,b){b||(b=this.s.buttons);for(var c=0,d=b.length;c<d;c++){if(b[c].node===a)return b;if(b[c].buttons.length){var f=this._nodeToHost(a,b[c].buttons);if(f)return f}}},_keypress:function(a,b){if(!b._buttonsHandled){var c=function(e){for(var f=
|
||||||
|
0,g=e.length;f<g;f++){var h=e[f].conf,k=e[f].node;h.key&&(h.key===a?(b._buttonsHandled=!0,d(k).click()):!d.isPlainObject(h.key)||h.key.key!==a||h.key.shiftKey&&!b.shiftKey||h.key.altKey&&!b.altKey||h.key.ctrlKey&&!b.ctrlKey||h.key.metaKey&&!b.metaKey||(b._buttonsHandled=!0,d(k).click()));e[f].buttons.length&&c(e[f].buttons)}};c(this.s.buttons)}},_removeKey:function(a){if(a.key){var b=d.isPlainObject(a.key)?a.key.key:a.key;a=this.s.listenKeys.split("");b=d.inArray(b,a);a.splice(b,1);this.s.listenKeys=
|
||||||
|
a.join("")}},_resolveExtends:function(a){var b=this.s.dt,c,e=function(c){for(var e=0;!d.isPlainObject(c)&&!d.isArray(c);){if(c===l)return;if("function"===typeof c){if(c=c(b,a),!c)return!1}else if("string"===typeof c){if(!r[c])throw"Unknown button type: "+c;c=r[c]}e++;if(30<e)throw"Buttons: Too many iterations";}return d.isArray(c)?c:d.extend({},c)};for(a=e(a);a&&a.extend;){if(!r[a.extend])throw"Cannot extend unknown button type: "+a.extend;var f=e(r[a.extend]);if(d.isArray(f))return f;if(!f)return!1;
|
||||||
|
var g=f.className;a=d.extend({},f,a);g&&a.className!==g&&(a.className=g+" "+a.className);var h=a.postfixButtons;if(h){a.buttons||(a.buttons=[]);g=0;for(c=h.length;g<c;g++)a.buttons.push(h[g]);a.postfixButtons=null}if(h=a.prefixButtons){a.buttons||(a.buttons=[]);g=0;for(c=h.length;g<c;g++)a.buttons.splice(g,0,h[g]);a.prefixButtons=null}a.extend=f.extend}return a}});t.background=function(a,b,c,e){c===l&&(c=400);e||(e=n.body);a?d("<div/>").addClass(b).css("display","none").insertAfter(e).stop().fadeIn(c):
|
||||||
|
d("div."+b).stop().fadeOut(c,function(){d(this).removeClass(b).remove()})};t.instanceSelector=function(a,b){if(!a)return d.map(b,function(a){return a.inst});var c=[],e=d.map(b,function(a){return a.name}),f=function(a){if(d.isArray(a))for(var g=0,k=a.length;g<k;g++)f(a[g]);else"string"===typeof a?-1!==a.indexOf(",")?f(a.split(",")):(a=d.inArray(d.trim(a),e),-1!==a&&c.push(b[a].inst)):"number"===typeof a&&c.push(b[a].inst)};f(a);return c};t.buttonSelector=function(a,b){for(var c=[],e=function(a,b,c){for(var d,
|
||||||
|
f,g=0,k=b.length;g<k;g++)if(d=b[g])f=c!==l?c+g:g+"",a.push({node:d.node,name:d.conf.name,idx:f}),d.buttons&&e(a,d.buttons,f+"-")},f=function(a,b){var g,h=[];e(h,b.s.buttons);var k=d.map(h,function(a){return a.node});if(d.isArray(a)||a instanceof d)for(k=0,g=a.length;k<g;k++)f(a[k],b);else if(null===a||a===l||"*"===a)for(k=0,g=h.length;k<g;k++)c.push({inst:b,node:h[k].node});else if("number"===typeof a)c.push({inst:b,node:b.s.buttons[a].node});else if("string"===typeof a)if(-1!==a.indexOf(","))for(h=
|
||||||
|
a.split(","),k=0,g=h.length;k<g;k++)f(d.trim(h[k]),b);else if(a.match(/^\d+(\-\d+)*$/))k=d.map(h,function(a){return a.idx}),c.push({inst:b,node:h[d.inArray(a,k)].node});else if(-1!==a.indexOf(":name"))for(a=a.replace(":name",""),k=0,g=h.length;k<g;k++)h[k].name===a&&c.push({inst:b,node:h[k].node});else d(k).filter(a).each(function(){c.push({inst:b,node:this})});else"object"===typeof a&&a.nodeName&&(h=d.inArray(a,k),-1!==h&&c.push({inst:b,node:k[h]}))},g=0,h=a.length;g<h;g++)f(b,a[g]);return c};t.defaults=
|
||||||
|
{buttons:["copy","excel","csv","pdf","print"],name:"main",tabIndex:0,dom:{container:{tag:"div",className:"dt-buttons"},collection:{tag:"div",className:"dt-button-collection"},button:{tag:"ActiveXObject"in q?"a":"button",className:"dt-button",active:"active",disabled:"disabled"},buttonLiner:{tag:"span",className:""}}};t.version="1.5.6";d.extend(r,{collection:{text:function(a){return a.i18n("buttons.collection","Collection")},className:"buttons-collection",init:function(a,b,c){b.attr("aria-expanded",
|
||||||
|
!1)},action:function(a,b,c,e){var f=function(){b.buttons('[aria-haspopup="true"][aria-expanded="true"]').nodes().each(function(){var a=d(this).siblings(".dt-button-collection");a.length&&a.stop().fadeOut(e.fade,function(){a.detach()});d(this).attr("aria-expanded","false")});d("div.dt-button-background").off("click.dtb-collection");t.background(!1,e.backgroundClassName,e.fade,l);d("body").off(".dtb-collection");b.off("buttons-action.b-internal")};a="true"===c.attr("aria-expanded");f();if(!a){var g=
|
||||||
|
d(c).parents("div.dt-button-collection");a=c.position();var h=d(b.table().container()),k=!1,l=c;c.attr("aria-expanded","true");g.length&&(k=d(".dt-button-collection").position(),l=g,d("body").trigger("click.dtb-collection"));l.parents("body")[0]!==n.body&&(l=n.body.lastChild);e._collection.find(".dt-button-collection-title").remove();e._collection.prepend('<div class="dt-button-collection-title">'+e.collectionTitle+"</div>");e._collection.addClass(e.collectionLayout).css("display","none").insertAfter(l).stop().fadeIn(e.fade);
|
||||||
|
g=e._collection.css("position");if(k&&"absolute"===g)e._collection.css({top:k.top,left:k.left});else if("absolute"===g){e._collection.css({top:a.top+c.outerHeight(),left:a.left});k=h.offset().top+h.height();k=a.top+c.outerHeight()+e._collection.outerHeight()-k;g=a.top-e._collection.outerHeight();var m=h.offset().top;(k>m-g||e.dropup)&&e._collection.css("top",a.top-e._collection.outerHeight()-5);e._collection.hasClass(e.rightAlignClassName)&&e._collection.css("left",a.left+c.outerWidth()-e._collection.outerWidth());
|
||||||
|
k=a.left+e._collection.outerWidth();h=h.offset().left+h.width();k>h&&e._collection.css("left",a.left-(k-h));c=c.offset().left+e._collection.outerWidth();c>d(q).width()&&e._collection.css("left",a.left-(c-d(q).width()))}else c=e._collection.height()/2,c>d(q).height()/2&&(c=d(q).height()/2),e._collection.css("marginTop",-1*c);e.background&&t.background(!0,e.backgroundClassName,e.fade,l);setTimeout(function(){d("div.dt-button-background").on("click.dtb-collection",function(){});d("body").on("click.dtb-collection",
|
||||||
|
function(a){var b=d.fn.addBack?"addBack":"andSelf";d(a.target).parents()[b]().filter(e._collection).length||f()}).on("keyup.dtb-collection",function(a){27===a.keyCode&&f()});if(e.autoClose)b.on("buttons-action.b-internal",function(){f()})},10)}},background:!0,collectionLayout:"",collectionTitle:"",backgroundClassName:"dt-button-background",rightAlignClassName:"dt-button-right",autoClose:!1,fade:400,attr:{"aria-haspopup":!0}},copy:function(a,b){if(r.copyHtml5)return"copyHtml5";if(r.copyFlash&&r.copyFlash.available(a,
|
||||||
|
b))return"copyFlash"},csv:function(a,b){if(r.csvHtml5&&r.csvHtml5.available(a,b))return"csvHtml5";if(r.csvFlash&&r.csvFlash.available(a,b))return"csvFlash"},excel:function(a,b){if(r.excelHtml5&&r.excelHtml5.available(a,b))return"excelHtml5";if(r.excelFlash&&r.excelFlash.available(a,b))return"excelFlash"},pdf:function(a,b){if(r.pdfHtml5&&r.pdfHtml5.available(a,b))return"pdfHtml5";if(r.pdfFlash&&r.pdfFlash.available(a,b))return"pdfFlash"},pageLength:function(a){a=a.settings()[0].aLengthMenu;var b=d.isArray(a[0])?
|
||||||
|
a[0]:a,c=d.isArray(a[0])?a[1]:a;return{extend:"collection",text:function(a){return a.i18n("buttons.pageLength",{"-1":"Show all rows",_:"Show %d rows"},a.page.len())},className:"buttons-page-length",autoClose:!0,buttons:d.map(b,function(a,b){return{text:c[b],className:"button-page-length",action:function(b,c){c.page.len(a).draw()},init:function(b,c,d){var e=this;c=function(){e.active(b.page.len()===a)};b.on("length.dt"+d.namespace,c);c()},destroy:function(a,b,c){a.off("length.dt"+c.namespace)}}}),
|
||||||
|
init:function(a,b,c){var d=this;a.on("length.dt"+c.namespace,function(){d.text(c.text)})},destroy:function(a,b,c){a.off("length.dt"+c.namespace)}}}});p.Api.register("buttons()",function(a,b){b===l&&(b=a,a=l);this.selector.buttonGroup=a;var c=this.iterator(!0,"table",function(c){if(c._buttons)return t.buttonSelector(t.instanceSelector(a,c._buttons),b)},!0);c._groupSelector=a;return c});p.Api.register("button()",function(a,b){a=this.buttons(a,b);1<a.length&&a.splice(1,a.length);return a});p.Api.registerPlural("buttons().active()",
|
||||||
|
"button().active()",function(a){return a===l?this.map(function(a){return a.inst.active(a.node)}):this.each(function(b){b.inst.active(b.node,a)})});p.Api.registerPlural("buttons().action()","button().action()",function(a){return a===l?this.map(function(a){return a.inst.action(a.node)}):this.each(function(b){b.inst.action(b.node,a)})});p.Api.register(["buttons().enable()","button().enable()"],function(a){return this.each(function(b){b.inst.enable(b.node,a)})});p.Api.register(["buttons().disable()",
|
||||||
|
"button().disable()"],function(){return this.each(function(a){a.inst.disable(a.node)})});p.Api.registerPlural("buttons().nodes()","button().node()",function(){var a=d();d(this.each(function(b){a=a.add(b.inst.node(b.node))}));return a});p.Api.registerPlural("buttons().processing()","button().processing()",function(a){return a===l?this.map(function(a){return a.inst.processing(a.node)}):this.each(function(b){b.inst.processing(b.node,a)})});p.Api.registerPlural("buttons().text()","button().text()",function(a){return a===
|
||||||
|
l?this.map(function(a){return a.inst.text(a.node)}):this.each(function(b){b.inst.text(b.node,a)})});p.Api.registerPlural("buttons().trigger()","button().trigger()",function(){return this.each(function(a){a.inst.node(a.node).trigger("click")})});p.Api.registerPlural("buttons().containers()","buttons().container()",function(){var a=d(),b=this._groupSelector;this.iterator(!0,"table",function(c){if(c._buttons){c=t.instanceSelector(b,c._buttons);for(var d=0,f=c.length;d<f;d++)a=a.add(c[d].container())}});
|
||||||
|
return a});p.Api.register("button().add()",function(a,b){var c=this.context;c.length&&(c=t.instanceSelector(this._groupSelector,c[0]._buttons),c.length&&c[0].add(b,a));return this.button(this._groupSelector,a)});p.Api.register("buttons().destroy()",function(){this.pluck("inst").unique().each(function(a){a.destroy()});return this});p.Api.registerPlural("buttons().remove()","buttons().remove()",function(){this.each(function(a){a.inst.remove(a.node)});return this});var w;p.Api.register("buttons.info()",
|
||||||
|
function(a,b,c){var e=this;if(!1===a)return d("#datatables_buttons_info").fadeOut(function(){d(this).remove()}),clearTimeout(w),w=null,this;w&&clearTimeout(w);d("#datatables_buttons_info").length&&d("#datatables_buttons_info").remove();a=a?"<h2>"+a+"</h2>":"";d('<div id="datatables_buttons_info" class="dt-button-info"/>').html(a).append(d("<div/>")["string"===typeof b?"html":"append"](b)).css("display","none").appendTo("body").fadeIn();c!==l&&0!==c&&(w=setTimeout(function(){e.buttons.info(!1)},c));
|
||||||
|
return this});p.Api.register("buttons.exportData()",function(a){if(this.context.length)return D(new p.Api(this.context[0]),a)});p.Api.register("buttons.exportInfo()",function(a){a||(a={});var b=a;var c="*"===b.filename&&"*"!==b.title&&b.title!==l&&null!==b.title&&""!==b.title?b.title:b.filename;"function"===typeof c&&(c=c());c===l||null===c?c=null:(-1!==c.indexOf("*")&&(c=d.trim(c.replace("*",d("head > title").text()))),c=c.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g,""),(b=x(b.extension))||
|
||||||
|
(b=""),c+=b);b=x(a.title);b=null===b?null:-1!==b.indexOf("*")?b.replace("*",d("head > title").text()||"Exported data"):b;return{filename:c,title:b,messageTop:z(this,a.message||a.messageTop,"top"),messageBottom:z(this,a.messageBottom,"bottom")}});var x=function(a){return null===a||a===l?null:"function"===typeof a?a():a},z=function(a,b,c){b=x(b);if(null===b)return null;a=d("caption",a.table().container()).eq(0);return"*"===b?a.css("caption-side")!==c?null:a.length?a.text():"":b},A=d("<textarea/>")[0],
|
||||||
|
D=function(a,b){var c=d.extend(!0,{},{rows:null,columns:"",modifier:{search:"applied",order:"applied"},orthogonal:"display",stripHtml:!0,stripNewlines:!0,decodeEntities:!0,trim:!0,format:{header:function(a){return e(a)},footer:function(a){return e(a)},body:function(a){return e(a)}},customizeData:null},b),e=function(a){if("string"!==typeof a)return a;a=a.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"");a=a.replace(/<!\-\-.*?\-\->/g,"");c.stripHtml&&(a=a.replace(/<[^>]*>/g,""));c.trim&&
|
||||||
|
(a=a.replace(/^\s+|\s+$/g,""));c.stripNewlines&&(a=a.replace(/\n/g," "));c.decodeEntities&&(A.innerHTML=a,a=A.value);return a};b=a.columns(c.columns).indexes().map(function(b){var d=a.column(b).header();return c.format.header(d.innerHTML,b,d)}).toArray();var f=a.table().footer()?a.columns(c.columns).indexes().map(function(b){var d=a.column(b).footer();return c.format.footer(d?d.innerHTML:"",b,d)}).toArray():null,g=d.extend({},c.modifier);a.select&&"function"===typeof a.select.info&&g.selected===l&&
|
||||||
|
a.rows(c.rows,d.extend({selected:!0},g)).any()&&d.extend(g,{selected:!0});g=a.rows(c.rows,g).indexes().toArray();var h=a.cells(g,c.columns);g=h.render(c.orthogonal).toArray();h=h.nodes().toArray();for(var k=b.length,p=[],m=0,n=0,q=0<k?g.length/k:0;n<q;n++){for(var t=[k],r=0;r<k;r++)t[r]=c.format.body(g[m],n,r,h[m]),m++;p[n]=t}b={header:b,footer:f,body:p};c.customizeData&&c.customizeData(b);return b};d.fn.dataTable.Buttons=t;d.fn.DataTable.Buttons=t;d(n).on("init.dt plugin-init.dt",function(a,b){"dt"===
|
||||||
|
a.namespace&&(a=b.oInit.buttons||p.defaults.buttons)&&!b._buttons&&(new t(b,a)).container()});p.ext.feature.push({fnInit:u,cFeature:"B"});p.ext.features&&p.ext.features.register("buttons",u);return t});
|
||||||
Binary file not shown.
@@ -0,0 +1,187 @@
|
|||||||
|
table.dataTable {
|
||||||
|
clear: both;
|
||||||
|
margin-top: 6px !important;
|
||||||
|
margin-bottom: 6px !important;
|
||||||
|
max-width: none !important;
|
||||||
|
border-collapse: separate !important;
|
||||||
|
}
|
||||||
|
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: 75px;
|
||||||
|
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: 8px;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
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: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 {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 8px;
|
||||||
|
right: 8px;
|
||||||
|
display: block;
|
||||||
|
font-family: 'Glyphicons Halflings';
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting:after {
|
||||||
|
opacity: 0.2;
|
||||||
|
content: "\e150";
|
||||||
|
/* sort */
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_asc:after {
|
||||||
|
content: "\e155";
|
||||||
|
/* sort-by-attributes */
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_desc:after {
|
||||||
|
content: "\e156";
|
||||||
|
/* sort-by-attributes-alt */
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_asc_disabled:after,
|
||||||
|
table.dataTable thead .sorting_desc_disabled:after {
|
||||||
|
color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
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: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-condensed > thead > tr > th {
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
table.dataTable.table-condensed .sorting:after,
|
||||||
|
table.dataTable.table-condensed .sorting_asc:after,
|
||||||
|
table.dataTable.table-condensed .sorting_desc:after {
|
||||||
|
top: 6px;
|
||||||
|
right: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important}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:75px;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:8px;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}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: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{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}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: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-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}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}
|
||||||
@@ -0,0 +1,206 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,118 @@
|
|||||||
|
table.dataTable {
|
||||||
|
clear: both;
|
||||||
|
margin: 0.5em 0 !important;
|
||||||
|
max-width: none !important;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
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 {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_length label {
|
||||||
|
float: left;
|
||||||
|
text-align: left;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_length select {
|
||||||
|
width: 75px;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_filter label {
|
||||||
|
float: right;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_filter input {
|
||||||
|
display: inline-block !important;
|
||||||
|
width: auto !important;
|
||||||
|
margin-bottom: 0;
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_info {
|
||||||
|
padding-top: 2px;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_paginate {
|
||||||
|
float: right;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_processing {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 200px;
|
||||||
|
margin-left: -100px;
|
||||||
|
margin-top: -26px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 1rem 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: 1.5rem;
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
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 {
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center right;
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting {
|
||||||
|
background-image: url("../images/sort_both.png");
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_asc {
|
||||||
|
background-image: url("../images/sort_asc.png");
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_desc {
|
||||||
|
background-image: url("../images/sort_desc.png");
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_asc_disabled {
|
||||||
|
background-image: url("../images/sort_asc_disabled.png");
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_desc_disabled {
|
||||||
|
background-image: url("../images/sort_desc_disabled.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_scrollHead table {
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_scrollBody table {
|
||||||
|
border-top: none;
|
||||||
|
margin-top: 0 !important;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
div.dataTables_scrollBody table tbody tr:first-child th,
|
||||||
|
div.dataTables_scrollBody table tbody tr:first-child td {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_scrollFoot table {
|
||||||
|
margin-top: 0 !important;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
table.dataTable{clear:both;margin:0.5em 0 !important;max-width:none !important;width:100%}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{position:relative}div.dataTables_wrapper div.dataTables_length label{float:left;text-align:left;margin-bottom:0}div.dataTables_wrapper div.dataTables_length select{width:75px;margin-bottom:0}div.dataTables_wrapper div.dataTables_filter label{float:right;margin-bottom:0}div.dataTables_wrapper div.dataTables_filter input{display:inline-block !important;width:auto !important;margin-bottom:0;margin-left:0.5em}div.dataTables_wrapper div.dataTables_info{padding-top:2px}div.dataTables_wrapper div.dataTables_paginate{float:right;margin:0}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1rem 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:1.5rem}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}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{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../images/sort_desc_disabled.png")}div.dataTables_scrollHead table{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}
|
||||||
@@ -0,0 +1,481 @@
|
|||||||
|
/*
|
||||||
|
* Table styles
|
||||||
|
*/
|
||||||
|
table.dataTable {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
clear: both;
|
||||||
|
border-collapse: separate;
|
||||||
|
border-spacing: 0;
|
||||||
|
/*
|
||||||
|
* Header and footer styles
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* Body styles
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
table.dataTable thead th,
|
||||||
|
table.dataTable tfoot th {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
table.dataTable thead th,
|
||||||
|
table.dataTable thead td {
|
||||||
|
padding: 10px 18px;
|
||||||
|
}
|
||||||
|
table.dataTable thead th:active,
|
||||||
|
table.dataTable thead td:active {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
table.dataTable tfoot th,
|
||||||
|
table.dataTable tfoot td {
|
||||||
|
padding: 10px 18px 6px 18px;
|
||||||
|
}
|
||||||
|
table.dataTable tbody tr {
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
table.dataTable tbody tr.selected {
|
||||||
|
background-color: #B0BED9;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th,
|
||||||
|
table.dataTable tbody td {
|
||||||
|
padding: 8px 10px;
|
||||||
|
}
|
||||||
|
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
|
||||||
|
border-top: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
table.dataTable.row-border tbody tr:first-child th,
|
||||||
|
table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
|
||||||
|
table.dataTable.display tbody tr:first-child td {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
|
||||||
|
border-top: 1px solid #ddd;
|
||||||
|
border-right: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
table.dataTable.cell-border tbody tr th:first-child,
|
||||||
|
table.dataTable.cell-border tbody tr td:first-child {
|
||||||
|
border-left: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
table.dataTable.cell-border tbody tr:first-child th,
|
||||||
|
table.dataTable.cell-border tbody tr:first-child td {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
}
|
||||||
|
table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
|
||||||
|
background-color: #acbad4;
|
||||||
|
}
|
||||||
|
table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
}
|
||||||
|
table.dataTable.hover tbody tr:hover.selected, table.dataTable.display tbody tr:hover.selected {
|
||||||
|
background-color: #aab7d1;
|
||||||
|
}
|
||||||
|
table.dataTable.order-column tbody tr > .sorting_1,
|
||||||
|
table.dataTable.order-column tbody tr > .sorting_2,
|
||||||
|
table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
|
||||||
|
table.dataTable.display tbody tr > .sorting_2,
|
||||||
|
table.dataTable.display tbody tr > .sorting_3 {
|
||||||
|
background-color: #fafafa;
|
||||||
|
}
|
||||||
|
table.dataTable.order-column tbody tr.selected > .sorting_1,
|
||||||
|
table.dataTable.order-column tbody tr.selected > .sorting_2,
|
||||||
|
table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
|
||||||
|
table.dataTable.display tbody tr.selected > .sorting_2,
|
||||||
|
table.dataTable.display tbody tr.selected > .sorting_3 {
|
||||||
|
background-color: #acbad5;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
|
||||||
|
background-color: whitesmoke;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
|
||||||
|
background-color: #a6b4cd;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
|
||||||
|
background-color: #a8b5cf;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
|
||||||
|
background-color: #a9b7d1;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
|
||||||
|
background-color: #fafafa;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
|
||||||
|
background-color: #fcfcfc;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
|
||||||
|
background-color: #fefefe;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
|
||||||
|
background-color: #acbad5;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
|
||||||
|
background-color: #aebcd6;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
|
||||||
|
background-color: #afbdd8;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
|
||||||
|
background-color: #eaeaea;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
|
||||||
|
background-color: #ececec;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
|
||||||
|
background-color: #efefef;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
|
||||||
|
background-color: #a2aec7;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
|
||||||
|
background-color: #a3b0c9;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
|
||||||
|
background-color: #a5b2cb;
|
||||||
|
}
|
||||||
|
table.dataTable.no-footer {
|
||||||
|
border-bottom: 1px solid #111;
|
||||||
|
}
|
||||||
|
table.dataTable.nowrap th, table.dataTable.nowrap td {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
table.dataTable.compact thead th,
|
||||||
|
table.dataTable.compact thead td {
|
||||||
|
padding: 4px 17px 4px 4px;
|
||||||
|
}
|
||||||
|
table.dataTable.compact tfoot th,
|
||||||
|
table.dataTable.compact tfoot td {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
table.dataTable.compact tbody th,
|
||||||
|
table.dataTable.compact tbody td {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-left,
|
||||||
|
table.dataTable td.dt-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-center,
|
||||||
|
table.dataTable td.dt-center,
|
||||||
|
table.dataTable td.dataTables_empty {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-right,
|
||||||
|
table.dataTable td.dt-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-justify,
|
||||||
|
table.dataTable td.dt-justify {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-nowrap,
|
||||||
|
table.dataTable td.dt-nowrap {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-left,
|
||||||
|
table.dataTable thead td.dt-head-left,
|
||||||
|
table.dataTable tfoot th.dt-head-left,
|
||||||
|
table.dataTable tfoot td.dt-head-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-center,
|
||||||
|
table.dataTable thead td.dt-head-center,
|
||||||
|
table.dataTable tfoot th.dt-head-center,
|
||||||
|
table.dataTable tfoot td.dt-head-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-right,
|
||||||
|
table.dataTable thead td.dt-head-right,
|
||||||
|
table.dataTable tfoot th.dt-head-right,
|
||||||
|
table.dataTable tfoot td.dt-head-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-justify,
|
||||||
|
table.dataTable thead td.dt-head-justify,
|
||||||
|
table.dataTable tfoot th.dt-head-justify,
|
||||||
|
table.dataTable tfoot td.dt-head-justify {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-nowrap,
|
||||||
|
table.dataTable thead td.dt-head-nowrap,
|
||||||
|
table.dataTable tfoot th.dt-head-nowrap,
|
||||||
|
table.dataTable tfoot td.dt-head-nowrap {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-left,
|
||||||
|
table.dataTable tbody td.dt-body-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-center,
|
||||||
|
table.dataTable tbody td.dt-body-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-right,
|
||||||
|
table.dataTable tbody td.dt-body-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-justify,
|
||||||
|
table.dataTable tbody td.dt-body-justify {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-nowrap,
|
||||||
|
table.dataTable tbody td.dt-body-nowrap {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable,
|
||||||
|
table.dataTable th,
|
||||||
|
table.dataTable td {
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Control feature layout
|
||||||
|
*/
|
||||||
|
.dataTables_wrapper {
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
*zoom: 1;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_length {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_filter {
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_filter input {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_info {
|
||||||
|
clear: both;
|
||||||
|
float: left;
|
||||||
|
padding-top: 0.755em;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate {
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
padding-top: 0.25em;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: inline-block;
|
||||||
|
min-width: 1.5em;
|
||||||
|
padding: 0.5em 1em;
|
||||||
|
margin-left: 2px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none !important;
|
||||||
|
cursor: pointer;
|
||||||
|
*cursor: hand;
|
||||||
|
color: #333 !important;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
|
||||||
|
color: #333 !important;
|
||||||
|
border: 1px solid #979797;
|
||||||
|
background-color: white;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));
|
||||||
|
/* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||||
|
/* Chrome10+,Safari5.1+ */
|
||||||
|
background: -moz-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||||
|
/* FF3.6+ */
|
||||||
|
background: -ms-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||||
|
/* IE10+ */
|
||||||
|
background: -o-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background: linear-gradient(to bottom, white 0%, #dcdcdc 100%);
|
||||||
|
/* W3C */
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
|
||||||
|
cursor: default;
|
||||||
|
color: #666 !important;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
background: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
|
||||||
|
color: white !important;
|
||||||
|
border: 1px solid #111;
|
||||||
|
background-color: #585858;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));
|
||||||
|
/* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, #585858 0%, #111 100%);
|
||||||
|
/* Chrome10+,Safari5.1+ */
|
||||||
|
background: -moz-linear-gradient(top, #585858 0%, #111 100%);
|
||||||
|
/* FF3.6+ */
|
||||||
|
background: -ms-linear-gradient(top, #585858 0%, #111 100%);
|
||||||
|
/* IE10+ */
|
||||||
|
background: -o-linear-gradient(top, #585858 0%, #111 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background: linear-gradient(to bottom, #585858 0%, #111 100%);
|
||||||
|
/* W3C */
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
|
||||||
|
outline: none;
|
||||||
|
background-color: #2b2b2b;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));
|
||||||
|
/* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* Chrome10+,Safari5.1+ */
|
||||||
|
background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* FF3.6+ */
|
||||||
|
background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* IE10+ */
|
||||||
|
background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* W3C */
|
||||||
|
box-shadow: inset 0 0 3px #111;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .ellipsis {
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_processing {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
margin-left: -50%;
|
||||||
|
margin-top: -25px;
|
||||||
|
padding-top: 20px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.2em;
|
||||||
|
background-color: white;
|
||||||
|
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)));
|
||||||
|
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%);
|
||||||
|
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%);
|
||||||
|
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%);
|
||||||
|
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%);
|
||||||
|
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%);
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_length,
|
||||||
|
.dataTables_wrapper .dataTables_filter,
|
||||||
|
.dataTables_wrapper .dataTables_info,
|
||||||
|
.dataTables_wrapper .dataTables_processing,
|
||||||
|
.dataTables_wrapper .dataTables_paginate {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_scroll {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
|
||||||
|
*margin-top: -1px;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing {
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
||||||
|
border-bottom: 1px solid #111;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,
|
||||||
|
.dataTables_wrapper.no-footer div.dataTables_scrollBody > table {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper:after {
|
||||||
|
visibility: hidden;
|
||||||
|
display: block;
|
||||||
|
content: "";
|
||||||
|
clear: both;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
.dataTables_wrapper .dataTables_info,
|
||||||
|
.dataTables_wrapper .dataTables_paginate {
|
||||||
|
float: none;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate {
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 640px) {
|
||||||
|
.dataTables_wrapper .dataTables_length,
|
||||||
|
.dataTables_wrapper .dataTables_filter {
|
||||||
|
float: none;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_filter {
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
table.dataTable thead th div.DataTables_sort_wrapper {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
table.dataTable thead th div.DataTables_sort_wrapper span {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
margin-top: -8px;
|
||||||
|
right: -18px;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.ui-state-default,
|
||||||
|
table.dataTable tfoot th.ui-state-default {
|
||||||
|
border-left-width: 0;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.ui-state-default:first-child,
|
||||||
|
table.dataTable tfoot th.ui-state-default:first-child {
|
||||||
|
border-left-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Control feature layout
|
||||||
|
*/
|
||||||
|
.dataTables_wrapper .dataTables_paginate .fg-button {
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: inline-block;
|
||||||
|
min-width: 1.5em;
|
||||||
|
padding: 0.5em;
|
||||||
|
margin-left: 2px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none !important;
|
||||||
|
cursor: pointer;
|
||||||
|
*cursor: hand;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .fg-button:active {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .fg-button:first-child {
|
||||||
|
border-top-left-radius: 3px;
|
||||||
|
border-bottom-left-radius: 3px;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .fg-button:last-child {
|
||||||
|
border-top-right-radius: 3px;
|
||||||
|
border-bottom-right-radius: 3px;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .ui-widget-header {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .ui-toolbar {
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_length,
|
||||||
|
.dataTables_wrapper .dataTables_filter,
|
||||||
|
.dataTables_wrapper .dataTables_info,
|
||||||
|
.dataTables_wrapper .dataTables_processing,
|
||||||
|
.dataTables_wrapper .dataTables_paginate {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,102 @@
|
|||||||
|
/*
|
||||||
|
* Styling for DataTables with Semantic UI
|
||||||
|
*/
|
||||||
|
table.dataTable.table {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
table.dataTable.table thead th,
|
||||||
|
table.dataTable.table thead td {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
table.dataTable.table thead th.sorting, table.dataTable.table thead th.sorting_asc, table.dataTable.table thead th.sorting_desc,
|
||||||
|
table.dataTable.table thead td.sorting,
|
||||||
|
table.dataTable.table thead td.sorting_asc,
|
||||||
|
table.dataTable.table thead td.sorting_desc {
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
table.dataTable.table thead th.sorting:after, table.dataTable.table thead th.sorting_asc:after, table.dataTable.table thead th.sorting_desc:after,
|
||||||
|
table.dataTable.table thead td.sorting:after,
|
||||||
|
table.dataTable.table thead td.sorting_asc:after,
|
||||||
|
table.dataTable.table thead td.sorting_desc:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 12px;
|
||||||
|
right: 8px;
|
||||||
|
display: block;
|
||||||
|
font-family: Icons;
|
||||||
|
}
|
||||||
|
table.dataTable.table thead th.sorting:after,
|
||||||
|
table.dataTable.table thead td.sorting:after {
|
||||||
|
content: "\f0dc";
|
||||||
|
color: #ddd;
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
|
table.dataTable.table thead th.sorting_asc:after,
|
||||||
|
table.dataTable.table thead td.sorting_asc:after {
|
||||||
|
content: "\f0de";
|
||||||
|
}
|
||||||
|
table.dataTable.table thead th.sorting_desc:after,
|
||||||
|
table.dataTable.table thead td.sorting_desc:after {
|
||||||
|
content: "\f0dd";
|
||||||
|
}
|
||||||
|
table.dataTable.table td,
|
||||||
|
table.dataTable.table th {
|
||||||
|
-webkit-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
table.dataTable.table td.dataTables_empty,
|
||||||
|
table.dataTable.table th.dataTables_empty {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table.dataTable.table.nowrap th,
|
||||||
|
table.dataTable.table.nowrap td {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_wrapper div.dataTables_length select {
|
||||||
|
vertical-align: middle;
|
||||||
|
min-height: 2.7142em;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_length .ui.selection.dropdown {
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_filter span.input {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_info {
|
||||||
|
padding-top: 13px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_processing {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 200px;
|
||||||
|
margin-left: -100px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.row.dt-table {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_scrollHead table.dataTable {
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_scrollBody thead .sorting:after,
|
||||||
|
div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_asc:after,
|
||||||
|
div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_desc:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_scrollBody table.dataTable {
|
||||||
|
border-radius: 0;
|
||||||
|
border-top: none;
|
||||||
|
border-bottom-width: 0;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_scrollBody table.dataTable.no-footer {
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
}
|
||||||
|
div.dataTables_wrapper div.dataTables_scrollFoot table.dataTable {
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
table.dataTable.table{margin:0}table.dataTable.table thead th,table.dataTable.table thead td{position:relative}table.dataTable.table thead th.sorting,table.dataTable.table thead th.sorting_asc,table.dataTable.table thead th.sorting_desc,table.dataTable.table thead td.sorting,table.dataTable.table thead td.sorting_asc,table.dataTable.table thead td.sorting_desc{padding-right:20px}table.dataTable.table thead th.sorting:after,table.dataTable.table thead th.sorting_asc:after,table.dataTable.table thead th.sorting_desc:after,table.dataTable.table thead td.sorting:after,table.dataTable.table thead td.sorting_asc:after,table.dataTable.table thead td.sorting_desc:after{position:absolute;top:12px;right:8px;display:block;font-family:Icons}table.dataTable.table thead th.sorting:after,table.dataTable.table thead td.sorting:after{content:"\f0dc";color:#ddd;font-size:0.8em}table.dataTable.table thead th.sorting_asc:after,table.dataTable.table thead td.sorting_asc:after{content:"\f0de"}table.dataTable.table thead th.sorting_desc:after,table.dataTable.table thead td.sorting_desc:after{content:"\f0dd"}table.dataTable.table td,table.dataTable.table th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable.table td.dataTables_empty,table.dataTable.table th.dataTables_empty{text-align:center}table.dataTable.table.nowrap th,table.dataTable.table.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{vertical-align:middle;min-height:2.7142em}div.dataTables_wrapper div.dataTables_length .ui.selection.dropdown{min-width:0}div.dataTables_wrapper div.dataTables_filter span.input{margin-left:0.5em}div.dataTables_wrapper div.dataTables_info{padding-top:13px;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;text-align:center}div.dataTables_wrapper div.row.dt-table{padding:0}div.dataTables_wrapper div.dataTables_scrollHead table.dataTable{border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom:none}div.dataTables_wrapper div.dataTables_scrollBody thead .sorting:after,div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_asc:after,div.dataTables_wrapper div.dataTables_scrollBody thead .sorting_desc:after{display:none}div.dataTables_wrapper div.dataTables_scrollBody table.dataTable{border-radius:0;border-top:none;border-bottom-width:0}div.dataTables_wrapper div.dataTables_scrollBody table.dataTable.no-footer{border-bottom-width:1px}div.dataTables_wrapper div.dataTables_scrollFoot table.dataTable{border-top-right-radius:0;border-top-left-radius:0;border-top:none}
|
||||||
@@ -0,0 +1,448 @@
|
|||||||
|
/*
|
||||||
|
* Table styles
|
||||||
|
*/
|
||||||
|
table.dataTable {
|
||||||
|
width: 100%;
|
||||||
|
margin: 0 auto;
|
||||||
|
clear: both;
|
||||||
|
border-collapse: separate;
|
||||||
|
border-spacing: 0;
|
||||||
|
/*
|
||||||
|
* Header and footer styles
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* Body styles
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
table.dataTable thead th,
|
||||||
|
table.dataTable tfoot th {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
table.dataTable thead th,
|
||||||
|
table.dataTable thead td {
|
||||||
|
padding: 10px 18px;
|
||||||
|
border-bottom: 1px solid #111;
|
||||||
|
}
|
||||||
|
table.dataTable thead th:active,
|
||||||
|
table.dataTable thead td:active {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
table.dataTable tfoot th,
|
||||||
|
table.dataTable tfoot td {
|
||||||
|
padding: 10px 18px 6px 18px;
|
||||||
|
border-top: 1px solid #111;
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
*cursor: hand;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center right;
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting {
|
||||||
|
background-image: url("../images/sort_both.png");
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_asc {
|
||||||
|
background-image: url("../images/sort_asc.png");
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_desc {
|
||||||
|
background-image: url("../images/sort_desc.png");
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_asc_disabled {
|
||||||
|
background-image: url("../images/sort_asc_disabled.png");
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_desc_disabled {
|
||||||
|
background-image: url("../images/sort_desc_disabled.png");
|
||||||
|
}
|
||||||
|
table.dataTable tbody tr {
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
table.dataTable tbody tr.selected {
|
||||||
|
background-color: #B0BED9;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th,
|
||||||
|
table.dataTable tbody td {
|
||||||
|
padding: 8px 10px;
|
||||||
|
}
|
||||||
|
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
|
||||||
|
border-top: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
table.dataTable.row-border tbody tr:first-child th,
|
||||||
|
table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
|
||||||
|
table.dataTable.display tbody tr:first-child td {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
|
||||||
|
border-top: 1px solid #ddd;
|
||||||
|
border-right: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
table.dataTable.cell-border tbody tr th:first-child,
|
||||||
|
table.dataTable.cell-border tbody tr td:first-child {
|
||||||
|
border-left: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
table.dataTable.cell-border tbody tr:first-child th,
|
||||||
|
table.dataTable.cell-border tbody tr:first-child td {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
}
|
||||||
|
table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
|
||||||
|
background-color: #acbad4;
|
||||||
|
}
|
||||||
|
table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
}
|
||||||
|
table.dataTable.hover tbody tr:hover.selected, table.dataTable.display tbody tr:hover.selected {
|
||||||
|
background-color: #aab7d1;
|
||||||
|
}
|
||||||
|
table.dataTable.order-column tbody tr > .sorting_1,
|
||||||
|
table.dataTable.order-column tbody tr > .sorting_2,
|
||||||
|
table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
|
||||||
|
table.dataTable.display tbody tr > .sorting_2,
|
||||||
|
table.dataTable.display tbody tr > .sorting_3 {
|
||||||
|
background-color: #fafafa;
|
||||||
|
}
|
||||||
|
table.dataTable.order-column tbody tr.selected > .sorting_1,
|
||||||
|
table.dataTable.order-column tbody tr.selected > .sorting_2,
|
||||||
|
table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
|
||||||
|
table.dataTable.display tbody tr.selected > .sorting_2,
|
||||||
|
table.dataTable.display tbody tr.selected > .sorting_3 {
|
||||||
|
background-color: #acbad5;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
|
||||||
|
background-color: whitesmoke;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
|
||||||
|
background-color: #a6b4cd;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
|
||||||
|
background-color: #a8b5cf;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
|
||||||
|
background-color: #a9b7d1;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
|
||||||
|
background-color: #fafafa;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
|
||||||
|
background-color: #fcfcfc;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
|
||||||
|
background-color: #fefefe;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
|
||||||
|
background-color: #acbad5;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
|
||||||
|
background-color: #aebcd6;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
|
||||||
|
background-color: #afbdd8;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
|
||||||
|
background-color: #eaeaea;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
|
||||||
|
background-color: #ececec;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
|
||||||
|
background-color: #efefef;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
|
||||||
|
background-color: #a2aec7;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
|
||||||
|
background-color: #a3b0c9;
|
||||||
|
}
|
||||||
|
table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
|
||||||
|
background-color: #a5b2cb;
|
||||||
|
}
|
||||||
|
table.dataTable.no-footer {
|
||||||
|
border-bottom: 1px solid #111;
|
||||||
|
}
|
||||||
|
table.dataTable.nowrap th, table.dataTable.nowrap td {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
table.dataTable.compact thead th,
|
||||||
|
table.dataTable.compact thead td {
|
||||||
|
padding: 4px 17px 4px 4px;
|
||||||
|
}
|
||||||
|
table.dataTable.compact tfoot th,
|
||||||
|
table.dataTable.compact tfoot td {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
table.dataTable.compact tbody th,
|
||||||
|
table.dataTable.compact tbody td {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-left,
|
||||||
|
table.dataTable td.dt-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-center,
|
||||||
|
table.dataTable td.dt-center,
|
||||||
|
table.dataTable td.dataTables_empty {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-right,
|
||||||
|
table.dataTable td.dt-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-justify,
|
||||||
|
table.dataTable td.dt-justify {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
table.dataTable th.dt-nowrap,
|
||||||
|
table.dataTable td.dt-nowrap {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-left,
|
||||||
|
table.dataTable thead td.dt-head-left,
|
||||||
|
table.dataTable tfoot th.dt-head-left,
|
||||||
|
table.dataTable tfoot td.dt-head-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-center,
|
||||||
|
table.dataTable thead td.dt-head-center,
|
||||||
|
table.dataTable tfoot th.dt-head-center,
|
||||||
|
table.dataTable tfoot td.dt-head-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-right,
|
||||||
|
table.dataTable thead td.dt-head-right,
|
||||||
|
table.dataTable tfoot th.dt-head-right,
|
||||||
|
table.dataTable tfoot td.dt-head-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-justify,
|
||||||
|
table.dataTable thead td.dt-head-justify,
|
||||||
|
table.dataTable tfoot th.dt-head-justify,
|
||||||
|
table.dataTable tfoot td.dt-head-justify {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
table.dataTable thead th.dt-head-nowrap,
|
||||||
|
table.dataTable thead td.dt-head-nowrap,
|
||||||
|
table.dataTable tfoot th.dt-head-nowrap,
|
||||||
|
table.dataTable tfoot td.dt-head-nowrap {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-left,
|
||||||
|
table.dataTable tbody td.dt-body-left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-center,
|
||||||
|
table.dataTable tbody td.dt-body-center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-right,
|
||||||
|
table.dataTable tbody td.dt-body-right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-justify,
|
||||||
|
table.dataTable tbody td.dt-body-justify {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
table.dataTable tbody th.dt-body-nowrap,
|
||||||
|
table.dataTable tbody td.dt-body-nowrap {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable,
|
||||||
|
table.dataTable th,
|
||||||
|
table.dataTable td {
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Control feature layout
|
||||||
|
*/
|
||||||
|
.dataTables_wrapper {
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
*zoom: 1;
|
||||||
|
zoom: 1;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_length {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_filter {
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_filter input {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_info {
|
||||||
|
clear: both;
|
||||||
|
float: left;
|
||||||
|
padding-top: 0.755em;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate {
|
||||||
|
float: right;
|
||||||
|
text-align: right;
|
||||||
|
padding-top: 0.25em;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: inline-block;
|
||||||
|
min-width: 1.5em;
|
||||||
|
padding: 0.5em 1em;
|
||||||
|
margin-left: 2px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none !important;
|
||||||
|
cursor: pointer;
|
||||||
|
*cursor: hand;
|
||||||
|
color: #333 !important;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
|
||||||
|
color: #333 !important;
|
||||||
|
border: 1px solid #979797;
|
||||||
|
background-color: white;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));
|
||||||
|
/* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||||
|
/* Chrome10+,Safari5.1+ */
|
||||||
|
background: -moz-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||||
|
/* FF3.6+ */
|
||||||
|
background: -ms-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||||
|
/* IE10+ */
|
||||||
|
background: -o-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background: linear-gradient(to bottom, white 0%, #dcdcdc 100%);
|
||||||
|
/* W3C */
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
|
||||||
|
cursor: default;
|
||||||
|
color: #666 !important;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
background: transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
|
||||||
|
color: white !important;
|
||||||
|
border: 1px solid #111;
|
||||||
|
background-color: #585858;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));
|
||||||
|
/* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, #585858 0%, #111 100%);
|
||||||
|
/* Chrome10+,Safari5.1+ */
|
||||||
|
background: -moz-linear-gradient(top, #585858 0%, #111 100%);
|
||||||
|
/* FF3.6+ */
|
||||||
|
background: -ms-linear-gradient(top, #585858 0%, #111 100%);
|
||||||
|
/* IE10+ */
|
||||||
|
background: -o-linear-gradient(top, #585858 0%, #111 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background: linear-gradient(to bottom, #585858 0%, #111 100%);
|
||||||
|
/* W3C */
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
|
||||||
|
outline: none;
|
||||||
|
background-color: #2b2b2b;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));
|
||||||
|
/* Chrome,Safari4+ */
|
||||||
|
background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* Chrome10+,Safari5.1+ */
|
||||||
|
background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* FF3.6+ */
|
||||||
|
background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* IE10+ */
|
||||||
|
background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* Opera 11.10+ */
|
||||||
|
background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);
|
||||||
|
/* W3C */
|
||||||
|
box-shadow: inset 0 0 3px #111;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate .ellipsis {
|
||||||
|
padding: 0 1em;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_processing {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
margin-left: -50%;
|
||||||
|
margin-top: -25px;
|
||||||
|
padding-top: 20px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.2em;
|
||||||
|
background-color: white;
|
||||||
|
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)));
|
||||||
|
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%);
|
||||||
|
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%);
|
||||||
|
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%);
|
||||||
|
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%);
|
||||||
|
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%);
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_length,
|
||||||
|
.dataTables_wrapper .dataTables_filter,
|
||||||
|
.dataTables_wrapper .dataTables_info,
|
||||||
|
.dataTables_wrapper .dataTables_processing,
|
||||||
|
.dataTables_wrapper .dataTables_paginate {
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_scroll {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
|
||||||
|
*margin-top: -1px;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,
|
||||||
|
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing {
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
margin: 0 !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
||||||
|
border-bottom: 1px solid #111;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,
|
||||||
|
.dataTables_wrapper.no-footer div.dataTables_scrollBody > table {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper:after {
|
||||||
|
visibility: hidden;
|
||||||
|
display: block;
|
||||||
|
content: "";
|
||||||
|
clear: both;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
.dataTables_wrapper .dataTables_info,
|
||||||
|
.dataTables_wrapper .dataTables_paginate {
|
||||||
|
float: none;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_paginate {
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (max-width: 640px) {
|
||||||
|
.dataTables_wrapper .dataTables_length,
|
||||||
|
.dataTables_wrapper .dataTables_filter {
|
||||||
|
float: none;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.dataTables_wrapper .dataTables_filter {
|
||||||
|
margin-top: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 160 B |
Binary file not shown.
|
After Width: | Height: | Size: 148 B |
Binary file not shown.
|
After Width: | Height: | Size: 201 B |
Binary file not shown.
|
After Width: | Height: | Size: 158 B |
Binary file not shown.
|
After Width: | Height: | Size: 146 B |
@@ -0,0 +1,182 @@
|
|||||||
|
/*! DataTables Bootstrap 3 integration
|
||||||
|
* ©2011-2015 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataTables integration for Bootstrap 3. This requires Bootstrap 3 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( ['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-6'l><'col-sm-6'f>>" +
|
||||||
|
"<'row'<'col-sm-12'tr>>" +
|
||||||
|
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
|
||||||
|
renderer: 'bootstrap'
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
/* Default class modification */
|
||||||
|
$.extend( DataTable.ext.classes, {
|
||||||
|
sWrapper: "dataTables_wrapper form-inline dt-bootstrap",
|
||||||
|
sFilterInput: "form-control input-sm",
|
||||||
|
sLengthSelect: "form-control input-sm",
|
||||||
|
sProcessing: "dataTables_processing panel panel-default"
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
/* 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 = '…';
|
||||||
|
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
|
||||||
|
} )
|
||||||
|
.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;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
/*!
|
||||||
|
DataTables Bootstrap 3 integration
|
||||||
|
©2011-2015 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(b){"function"===typeof define&&define.amd?define(["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-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes,
|
||||||
|
{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});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="…";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}).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});
|
||||||
@@ -0,0 +1,184 @@
|
|||||||
|
/*! 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( ['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 = '…';
|
||||||
|
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;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
/*!
|
||||||
|
DataTables Bootstrap 4 integration
|
||||||
|
©2011-2017 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(b){"function"===typeof define&&define.amd?define(["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="…";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});
|
||||||
@@ -0,0 +1,174 @@
|
|||||||
|
/*! DataTables Foundation integration
|
||||||
|
* ©2011-2015 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataTables integration for Foundation. This requires Foundation 5 and
|
||||||
|
* DataTables 1.10 or newer.
|
||||||
|
*
|
||||||
|
* This file sets the defaults and adds options to DataTables to style its
|
||||||
|
* controls using Foundation. See http://datatables.net/manual/styling/foundation
|
||||||
|
* for further information.
|
||||||
|
*/
|
||||||
|
(function( factory ){
|
||||||
|
if ( typeof define === 'function' && define.amd ) {
|
||||||
|
// AMD
|
||||||
|
define( ['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.net')(root, $).$;
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory( $, root, root.document );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Browser
|
||||||
|
factory( jQuery, window, document );
|
||||||
|
}
|
||||||
|
}(function( $, window, document, undefined ) {
|
||||||
|
'use strict';
|
||||||
|
var DataTable = $.fn.dataTable;
|
||||||
|
|
||||||
|
// Detect Foundation 5 / 6 as they have different element and class requirements
|
||||||
|
var meta = $('<meta class="foundation-mq"/>').appendTo('head');
|
||||||
|
DataTable.ext.foundationVersion = meta.css('font-family').match(/small|medium|large/) ? 6 : 5;
|
||||||
|
meta.remove();
|
||||||
|
|
||||||
|
|
||||||
|
$.extend( DataTable.ext.classes, {
|
||||||
|
sWrapper: "dataTables_wrapper dt-foundation",
|
||||||
|
sProcessing: "dataTables_processing panel callout"
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
/* Set the defaults for DataTables initialisation */
|
||||||
|
$.extend( true, DataTable.defaults, {
|
||||||
|
dom:
|
||||||
|
"<'row grid-x'<'small-6 columns cell'l><'small-6 columns cell'f>r>"+
|
||||||
|
"t"+
|
||||||
|
"<'row grid-x'<'small-6 columns cell'i><'small-6 columns cell'p>>",
|
||||||
|
renderer: 'foundation'
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
/* Page button renderer */
|
||||||
|
DataTable.ext.renderer.pageButton.foundation = 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;
|
||||||
|
var tag;
|
||||||
|
var v5 = DataTable.ext.foundationVersion === 5;
|
||||||
|
|
||||||
|
var attach = function( container, buttons ) {
|
||||||
|
var i, ien, node, button;
|
||||||
|
var clickHandler = function ( e ) {
|
||||||
|
e.preventDefault();
|
||||||
|
if ( !$(e.currentTarget).hasClass('unavailable') && 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 = '';
|
||||||
|
tag = null;
|
||||||
|
|
||||||
|
switch ( button ) {
|
||||||
|
case 'ellipsis':
|
||||||
|
btnDisplay = '…';
|
||||||
|
btnClass = 'unavailable disabled';
|
||||||
|
tag = null;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'first':
|
||||||
|
btnDisplay = lang.sFirst;
|
||||||
|
btnClass = button + (page > 0 ?
|
||||||
|
'' : ' unavailable disabled');
|
||||||
|
tag = page > 0 ? 'a' : null;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'previous':
|
||||||
|
btnDisplay = lang.sPrevious;
|
||||||
|
btnClass = button + (page > 0 ?
|
||||||
|
'' : ' unavailable disabled');
|
||||||
|
tag = page > 0 ? 'a' : null;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'next':
|
||||||
|
btnDisplay = lang.sNext;
|
||||||
|
btnClass = button + (page < pages-1 ?
|
||||||
|
'' : ' unavailable disabled');
|
||||||
|
tag = page < pages-1 ? 'a' : null;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'last':
|
||||||
|
btnDisplay = lang.sLast;
|
||||||
|
btnClass = button + (page < pages-1 ?
|
||||||
|
'' : ' unavailable disabled');
|
||||||
|
tag = page < pages-1 ? 'a' : null;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
btnDisplay = button + 1;
|
||||||
|
btnClass = page === button ?
|
||||||
|
'current' : '';
|
||||||
|
tag = page === button ?
|
||||||
|
null : 'a';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( v5 ) {
|
||||||
|
tag = 'a';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( btnDisplay ) {
|
||||||
|
node = $('<li>', {
|
||||||
|
'class': classes.sPageButton+' '+btnClass,
|
||||||
|
'aria-controls': settings.sTableId,
|
||||||
|
'aria-label': aria[ button ],
|
||||||
|
'tabindex': settings.iTabIndex,
|
||||||
|
'id': idx === 0 && typeof button === 'string' ?
|
||||||
|
settings.sTableId +'_'+ button :
|
||||||
|
null
|
||||||
|
} )
|
||||||
|
.append( tag ?
|
||||||
|
$('<'+tag+'/>', {'href': '#'} ).html( btnDisplay ) :
|
||||||
|
btnDisplay
|
||||||
|
)
|
||||||
|
.appendTo( container );
|
||||||
|
|
||||||
|
settings.oApi._fnBindAction(
|
||||||
|
node, {action: button}, clickHandler
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
attach(
|
||||||
|
$(host).empty().html('<ul class="pagination"/>').children('ul'),
|
||||||
|
buttons
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
return DataTable;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
/*!
|
||||||
|
DataTables Foundation integration
|
||||||
|
©2011-2015 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return d(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);if(!b||!b.fn.dataTable)b=require("datatables.net")(a,b).$;return d(b,a,a.document)}:d(jQuery,window,document)})(function(d){var a=d.fn.dataTable,b=d('<meta class="foundation-mq"/>').appendTo("head");a.ext.foundationVersion=b.css("font-family").match(/small|medium|large/)?6:5;b.remove();d.extend(a.ext.classes,
|
||||||
|
{sWrapper:"dataTables_wrapper dt-foundation",sProcessing:"dataTables_processing panel callout"});d.extend(!0,a.defaults,{dom:"<'row grid-x'<'small-6 columns cell'l><'small-6 columns cell'f>r>t<'row grid-x'<'small-6 columns cell'i><'small-6 columns cell'p>>",renderer:"foundation"});a.ext.renderer.pageButton.foundation=function(b,l,r,s,e,i){var m=new a.Api(b),t=b.oClasses,j=b.oLanguage.oPaginate,u=b.oLanguage.oAria.paginate||{},f,h,g,v=5===a.ext.foundationVersion,q=function(a,n){var k,o,p,c,l=function(a){a.preventDefault();
|
||||||
|
!d(a.currentTarget).hasClass("unavailable")&&m.page()!=a.data.action&&m.page(a.data.action).draw("page")};k=0;for(o=n.length;k<o;k++)if(c=n[k],d.isArray(c))q(a,c);else{h=f="";g=null;switch(c){case "ellipsis":f="…";h="unavailable disabled";g=null;break;case "first":f=j.sFirst;h=c+(0<e?"":" unavailable disabled");g=0<e?"a":null;break;case "previous":f=j.sPrevious;h=c+(0<e?"":" unavailable disabled");g=0<e?"a":null;break;case "next":f=j.sNext;h=c+(e<i-1?"":" unavailable disabled");g=e<i-1?"a":
|
||||||
|
null;break;case "last":f=j.sLast;h=c+(e<i-1?"":" unavailable disabled");g=e<i-1?"a":null;break;default:f=c+1,h=e===c?"current":"",g=e===c?null:"a"}v&&(g="a");f&&(p=d("<li>",{"class":t.sPageButton+" "+h,"aria-controls":b.sTableId,"aria-label":u[c],tabindex:b.iTabIndex,id:0===r&&"string"===typeof c?b.sTableId+"_"+c:null}).append(g?d("<"+g+"/>",{href:"#"}).html(f):f).appendTo(a),b.oApi._fnBindAction(p,{action:c},l))}};q(d(l).empty().html('<ul class="pagination"/>').children("ul"),s)};return a});
|
||||||
@@ -0,0 +1,164 @@
|
|||||||
|
/*! DataTables jQuery UI integration
|
||||||
|
* ©2011-2014 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataTables integration for jQuery UI. This requires jQuery UI and
|
||||||
|
* DataTables 1.10 or newer.
|
||||||
|
*
|
||||||
|
* This file sets the defaults and adds options to DataTables to style its
|
||||||
|
* controls using jQuery UI. See http://datatables.net/manual/styling/jqueryui
|
||||||
|
* for further information.
|
||||||
|
*/
|
||||||
|
(function( factory ){
|
||||||
|
if ( typeof define === 'function' && define.amd ) {
|
||||||
|
// AMD
|
||||||
|
define( ['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.net')(root, $).$;
|
||||||
|
}
|
||||||
|
|
||||||
|
return factory( $, root, root.document );
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Browser
|
||||||
|
factory( jQuery, window, document );
|
||||||
|
}
|
||||||
|
}(function( $, window, document, undefined ) {
|
||||||
|
'use strict';
|
||||||
|
var DataTable = $.fn.dataTable;
|
||||||
|
|
||||||
|
|
||||||
|
var sort_prefix = 'css_right ui-icon ui-icon-';
|
||||||
|
var toolbar_prefix = 'fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-';
|
||||||
|
|
||||||
|
/* Set the defaults for DataTables initialisation */
|
||||||
|
$.extend( true, DataTable.defaults, {
|
||||||
|
dom:
|
||||||
|
'<"'+toolbar_prefix+'tl ui-corner-tr"lfr>'+
|
||||||
|
't'+
|
||||||
|
'<"'+toolbar_prefix+'bl ui-corner-br"ip>',
|
||||||
|
renderer: 'jqueryui'
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
$.extend( DataTable.ext.classes, {
|
||||||
|
"sWrapper": "dataTables_wrapper dt-jqueryui",
|
||||||
|
|
||||||
|
/* Full numbers paging buttons */
|
||||||
|
"sPageButton": "fg-button ui-button ui-state-default",
|
||||||
|
"sPageButtonActive": "ui-state-disabled",
|
||||||
|
"sPageButtonDisabled": "ui-state-disabled",
|
||||||
|
|
||||||
|
/* Features */
|
||||||
|
"sPaging": "dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi "+
|
||||||
|
"ui-buttonset-multi paging_", /* Note that the type is postfixed */
|
||||||
|
|
||||||
|
/* Sorting */
|
||||||
|
"sSortAsc": "ui-state-default sorting_asc",
|
||||||
|
"sSortDesc": "ui-state-default sorting_desc",
|
||||||
|
"sSortable": "ui-state-default sorting",
|
||||||
|
"sSortableAsc": "ui-state-default sorting_asc_disabled",
|
||||||
|
"sSortableDesc": "ui-state-default sorting_desc_disabled",
|
||||||
|
"sSortableNone": "ui-state-default sorting_disabled",
|
||||||
|
"sSortIcon": "DataTables_sort_icon",
|
||||||
|
|
||||||
|
/* Scrolling */
|
||||||
|
"sScrollHead": "dataTables_scrollHead "+"ui-state-default",
|
||||||
|
"sScrollFoot": "dataTables_scrollFoot "+"ui-state-default",
|
||||||
|
|
||||||
|
/* Misc */
|
||||||
|
"sHeaderTH": "ui-state-default",
|
||||||
|
"sFooterTH": "ui-state-default"
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
DataTable.ext.renderer.header.jqueryui = function ( settings, cell, column, classes ) {
|
||||||
|
// Calculate what the unsorted class should be
|
||||||
|
var noSortAppliedClass = sort_prefix+'caret-2-n-s';
|
||||||
|
var asc = $.inArray('asc', column.asSorting) !== -1;
|
||||||
|
var desc = $.inArray('desc', column.asSorting) !== -1;
|
||||||
|
|
||||||
|
if ( !column.bSortable || (!asc && !desc) ) {
|
||||||
|
noSortAppliedClass = '';
|
||||||
|
}
|
||||||
|
else if ( asc && !desc ) {
|
||||||
|
noSortAppliedClass = sort_prefix+'caret-1-n';
|
||||||
|
}
|
||||||
|
else if ( !asc && desc ) {
|
||||||
|
noSortAppliedClass = sort_prefix+'caret-1-s';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup the DOM structure
|
||||||
|
$('<div/>')
|
||||||
|
.addClass( 'DataTables_sort_wrapper' )
|
||||||
|
.append( cell.contents() )
|
||||||
|
.append( $('<span/>')
|
||||||
|
.addClass( classes.sSortIcon+' '+noSortAppliedClass )
|
||||||
|
)
|
||||||
|
.appendTo( cell );
|
||||||
|
|
||||||
|
// Attach a sort listener to update on sort
|
||||||
|
$(settings.nTable).on( 'order.dt', function ( e, ctx, sorting, columns ) {
|
||||||
|
if ( settings !== ctx ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var colIdx = column.idx;
|
||||||
|
|
||||||
|
cell
|
||||||
|
.removeClass( classes.sSortAsc +" "+classes.sSortDesc )
|
||||||
|
.addClass( columns[ colIdx ] == 'asc' ?
|
||||||
|
classes.sSortAsc : columns[ colIdx ] == 'desc' ?
|
||||||
|
classes.sSortDesc :
|
||||||
|
column.sSortingClass
|
||||||
|
);
|
||||||
|
|
||||||
|
cell
|
||||||
|
.find( 'span.'+classes.sSortIcon )
|
||||||
|
.removeClass(
|
||||||
|
sort_prefix+'triangle-1-n' +" "+
|
||||||
|
sort_prefix+'triangle-1-s' +" "+
|
||||||
|
sort_prefix+'caret-2-n-s' +" "+
|
||||||
|
sort_prefix+'caret-1-n' +" "+
|
||||||
|
sort_prefix+'caret-1-s'
|
||||||
|
)
|
||||||
|
.addClass( columns[ colIdx ] == 'asc' ?
|
||||||
|
sort_prefix+'triangle-1-n' : columns[ colIdx ] == 'desc' ?
|
||||||
|
sort_prefix+'triangle-1-s' :
|
||||||
|
noSortAppliedClass
|
||||||
|
);
|
||||||
|
} );
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TableTools jQuery UI compatibility
|
||||||
|
* Required TableTools 2.1+
|
||||||
|
*/
|
||||||
|
if ( DataTable.TableTools ) {
|
||||||
|
$.extend( true, DataTable.TableTools.classes, {
|
||||||
|
"container": "DTTT_container ui-buttonset ui-buttonset-multi",
|
||||||
|
"buttons": {
|
||||||
|
"normal": "DTTT_button ui-button ui-state-default"
|
||||||
|
},
|
||||||
|
"collection": {
|
||||||
|
"container": "DTTT_collection ui-buttonset ui-buttonset-multi"
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return DataTable;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
/*!
|
||||||
|
DataTables jQuery UI integration
|
||||||
|
©2011-2014 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(a){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(b){return a(b,window,document)}):"object"===typeof exports?module.exports=function(b,d){b||(b=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(b,d).$;return a(d,b,b.document)}:a(jQuery,window,document)})(function(a){var b=a.fn.dataTable;a.extend(!0,b.defaults,{dom:'<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-tl ui-corner-tr"lfr>t<"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix ui-corner-bl ui-corner-br"ip>',
|
||||||
|
renderer:"jqueryui"});a.extend(b.ext.classes,{sWrapper:"dataTables_wrapper dt-jqueryui",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:"ui-state-default sorting_asc",sSortDesc:"ui-state-default sorting_desc",sSortable:"ui-state-default sorting",sSortableAsc:"ui-state-default sorting_asc_disabled",sSortableDesc:"ui-state-default sorting_desc_disabled",
|
||||||
|
sSortableNone:"ui-state-default sorting_disabled",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead ui-state-default",sScrollFoot:"dataTables_scrollFoot ui-state-default",sHeaderTH:"ui-state-default",sFooterTH:"ui-state-default"});b.ext.renderer.header.jqueryui=function(b,h,e,c){var f="css_right ui-icon ui-icon-caret-2-n-s",g=-1!==a.inArray("asc",e.asSorting),i=-1!==a.inArray("desc",e.asSorting);!e.bSortable||!g&&!i?f="":g&&!i?f="css_right ui-icon ui-icon-caret-1-n":!g&&i&&(f="css_right ui-icon ui-icon-caret-1-s");
|
||||||
|
a("<div/>").addClass("DataTables_sort_wrapper").append(h.contents()).append(a("<span/>").addClass(c.sSortIcon+" "+f)).appendTo(h);a(b.nTable).on("order.dt",function(a,g,i,j){b===g&&(a=e.idx,h.removeClass(c.sSortAsc+" "+c.sSortDesc).addClass("asc"==j[a]?c.sSortAsc:"desc"==j[a]?c.sSortDesc:e.sSortingClass),h.find("span."+c.sSortIcon).removeClass("css_right ui-icon ui-icon-triangle-1-n css_right ui-icon ui-icon-triangle-1-s css_right ui-icon ui-icon-caret-2-n-s css_right ui-icon ui-icon-caret-1-n css_right ui-icon ui-icon-caret-1-s").addClass("asc"==
|
||||||
|
j[a]?"css_right ui-icon ui-icon-triangle-1-n":"desc"==j[a]?"css_right ui-icon ui-icon-triangle-1-s":f))})};b.TableTools&&a.extend(!0,b.TableTools.classes,{container:"DTTT_container ui-buttonset ui-buttonset-multi",buttons:{normal:"DTTT_button ui-button ui-state-default"},collection:{container:"DTTT_collection ui-buttonset ui-buttonset-multi"}});return b});
|
||||||
@@ -0,0 +1,212 @@
|
|||||||
|
/*! DataTables Bootstrap 3 integration
|
||||||
|
* ©2011-2015 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DataTables integration for Bootstrap 3. This requires Bootstrap 3 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( ['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:
|
||||||
|
"<'ui stackable grid'"+
|
||||||
|
"<'row'"+
|
||||||
|
"<'eight wide column'l>"+
|
||||||
|
"<'right aligned eight wide column'f>"+
|
||||||
|
">"+
|
||||||
|
"<'row dt-table'"+
|
||||||
|
"<'sixteen wide column'tr>"+
|
||||||
|
">"+
|
||||||
|
"<'row'"+
|
||||||
|
"<'seven wide column'i>"+
|
||||||
|
"<'right aligned nine wide column'p>"+
|
||||||
|
">"+
|
||||||
|
">",
|
||||||
|
renderer: 'semanticUI'
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
/* Default class modification */
|
||||||
|
$.extend( DataTable.ext.classes, {
|
||||||
|
sWrapper: "dataTables_wrapper dt-semanticUI",
|
||||||
|
sFilter: "dataTables_filter ui input",
|
||||||
|
sProcessing: "dataTables_processing ui segment",
|
||||||
|
sPageButton: "paginate_button item"
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
/* Bootstrap paging button renderer */
|
||||||
|
DataTable.ext.renderer.pageButton.semanticUI = 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 = '…';
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
var tag = btnClass.indexOf( 'disabled' ) === -1 ?
|
||||||
|
'a' :
|
||||||
|
'div';
|
||||||
|
|
||||||
|
if ( btnDisplay ) {
|
||||||
|
node = $('<'+tag+'>', {
|
||||||
|
'class': classes.sPageButton+' '+btnClass,
|
||||||
|
'id': idx === 0 && typeof button === 'string' ?
|
||||||
|
settings.sTableId +'_'+ button :
|
||||||
|
null,
|
||||||
|
'href': '#',
|
||||||
|
'aria-controls': settings.sTableId,
|
||||||
|
'aria-label': aria[ button ],
|
||||||
|
'data-dt-idx': counter,
|
||||||
|
'tabindex': settings.iTabIndex
|
||||||
|
} )
|
||||||
|
.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('<div class="ui stackable pagination menu"/>').children(),
|
||||||
|
buttons
|
||||||
|
);
|
||||||
|
|
||||||
|
if ( activeEl !== undefined ) {
|
||||||
|
$(host).find( '[data-dt-idx='+activeEl+']' ).focus();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Javascript enhancements on table initialisation
|
||||||
|
$(document).on( 'init.dt', function (e, ctx) {
|
||||||
|
if ( e.namespace !== 'dt' ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var api = new $.fn.dataTable.Api( ctx );
|
||||||
|
|
||||||
|
// Length menu drop down
|
||||||
|
if ( $.fn.dropdown ) {
|
||||||
|
$( 'div.dataTables_length select', api.table().container() ).dropdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filtering input
|
||||||
|
$( 'div.dataTables_filter.ui.input', api.table().container() ).removeClass('input').addClass('form');
|
||||||
|
$( 'div.dataTables_filter input', api.table().container() ).wrap( '<span class="ui input" />' );
|
||||||
|
} );
|
||||||
|
|
||||||
|
|
||||||
|
return DataTable;
|
||||||
|
}));
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
/*!
|
||||||
|
DataTables Bootstrap 3 integration
|
||||||
|
©2011-2015 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,e){a||(a=window);if(!e||!e.fn.dataTable)e=require("datatables.net")(a,e).$;return b(e,a,a.document)}:b(jQuery,window,document)})(function(b,a,e,m){var c=b.fn.dataTable;b.extend(!0,c.defaults,{dom:"<'ui stackable grid'<'row'<'eight wide column'l><'right aligned eight wide column'f>><'row dt-table'<'sixteen wide column'tr>><'row'<'seven wide column'i><'right aligned nine wide column'p>>>",
|
||||||
|
renderer:"semanticUI"});b.extend(c.ext.classes,{sWrapper:"dataTables_wrapper dt-semanticUI",sFilter:"dataTables_filter ui input",sProcessing:"dataTables_processing ui segment",sPageButton:"paginate_button item"});c.ext.renderer.pageButton.semanticUI=function(h,a,r,s,j,n){var o=new c.Api(h),t=h.oClasses,k=h.oLanguage.oPaginate,u=h.oLanguage.oAria.paginate||{},f,g,p=0,q=function(a,e){var c,i,l,d,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};
|
||||||
|
c=0;for(i=e.length;c<i;c++)if(d=e[c],b.isArray(d))q(a,d);else{g=f="";switch(d){case "ellipsis":f="…";g="disabled";break;case "first":f=k.sFirst;g=d+(0<j?"":" disabled");break;case "previous":f=k.sPrevious;g=d+(0<j?"":" disabled");break;case "next":f=k.sNext;g=d+(j<n-1?"":" disabled");break;case "last":f=k.sLast;g=d+(j<n-1?"":" disabled");break;default:f=d+1,g=j===d?"active":""}l=-1===g.indexOf("disabled")?"a":"div";f&&(l=b("<"+l+">",{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof d?
|
||||||
|
h.sTableId+"_"+d:null,href:"#","aria-controls":h.sTableId,"aria-label":u[d],"data-dt-idx":p,tabindex:h.iTabIndex}).html(f).appendTo(a),h.oApi._fnBindAction(l,{action:d},m),p++)}},i;try{i=b(a).find(e.activeElement).data("dt-idx")}catch(v){}q(b(a).empty().html('<div class="ui stackable pagination menu"/>').children(),s);i!==m&&b(a).find("[data-dt-idx="+i+"]").focus()};b(e).on("init.dt",function(a,e){if("dt"===a.namespace){var c=new b.fn.dataTable.Api(e);b.fn.dropdown&&b("div.dataTables_length select",
|
||||||
|
c.table().container()).dropdown();b("div.dataTables_filter.ui.input",c.table().container()).removeClass("input").addClass("form");b("div.dataTables_filter input",c.table().container()).wrap('<span class="ui input" />')}});return c});
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,166 @@
|
|||||||
|
/*!
|
||||||
|
DataTables 1.10.18
|
||||||
|
©2008-2018 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Z(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
|
||||||
|
d[c]=e,"o"===b[1]&&Z(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Z(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Ca(a){var b=n.defaults.oLanguage,c=b.sDecimal;c&&Da(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&(d&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(d&&"Loading..."===b.sLoadingRecords)&&F(a,
|
||||||
|
a,"sZeroRecords","sLoadingRecords");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Da(a)}}function eb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":
|
||||||
|
"");"boolean"===typeof a.scrollX&&(a.scrollX=a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&J(n.models.oSearch,a[b])}function fb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function gb(a){if(!n.__browser){var b={};n.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,
|
||||||
|
overflow:"hidden"}).append(h("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,n.__browser);a.oScroll.iBarWidth=n.__browser.barWidth}
|
||||||
|
function hb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ea(a,b){var c=n.defaults.column,d=a.aoColumns.length,c=h.extend({},n.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},n.models.oSearch,c[d]);ka(a,d,h(b).data())}function ka(a,b,c){var b=a.aoColumns[b],
|
||||||
|
d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(fb(c),J(n.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=S(g),i=b.mRender?
|
||||||
|
S(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return N(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,
|
||||||
|
b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function $(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Fa(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&la(a);r(a,null,"column-sizing",[a])}function aa(a,b){var c=ma(a,"bVisible");return"number"===
|
||||||
|
typeof c[b]?c[b]:null}function ba(a,b){var c=ma(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function V(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function ma(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Ga(a){var b=a.aoColumns,c=a.aoData,d=n.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<
|
||||||
|
j;g++){i=0;for(h=c.length;i<h;i++){t[i]===k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function ib(a,b,c,d){var e,f,g,j,i,m,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){m=b[e];var q=m.targets!==k?m.targets:m.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Ea(a);d(q[f],m)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],m);else if("string"===
|
||||||
|
typeof q[f]){j=0;for(i=l.length;j<i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,m)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function O(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},n.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ha(a,e,c,d);return e}function na(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,
|
||||||
|
e){c=Ia(a,e);return O(a,c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(K(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function jb(a,
|
||||||
|
b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function Ja(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function S(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=S(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||
|
||||||
|
-1!==a.indexOf("("))){var c=function(a,b,f){var g,j;if(""!==f){j=Ja(f);for(var i=0,m=j.length;i<m;i++){f=j[i].match(ca);g=j[i].match(W);if(f){j[i]=j[i].replace(ca,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(m=a.length;i<m;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(W,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}
|
||||||
|
function N(a){if(h.isPlainObject(a))return N(a._);if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=Ja(e),f;f=e[e.length-1];for(var g,j,i=0,m=e.length-1;i<m;i++){g=e[i].match(ca);j=e[i].match(W);if(g){e[i]=e[i].replace(ca,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(m=d.length;j<m;j++)f={},b(f,d[j],g),
|
||||||
|
a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(W,""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(W))a[f.replace(W,"")](d);else a[f.replace(ca,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ka(a){return D(a.aoData,"_aData")}function oa(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function pa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,
|
||||||
|
1)}function da(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ia(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;La(a,e)}}function Ia(a,b,c,d){var e=[],f=b.firstChild,g,
|
||||||
|
j,i=0,m,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");-1!==c&&(c=a.substring(c+1),N(a)(d,b.getAttribute(c)))}},G=function(a){if(c===k||c===i)j=l[i],m=h.trim(a.innerHTML),j&&j._bAttrSrc?(N(j.mData._)(d,m),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=N(j.mData)),j._setter(d,m)):d[i]=m;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)G(f),e.push(f);f=f.nextSibling}else{e=b.anCells;
|
||||||
|
f=0;for(g=e.length;f<g;f++)G(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&N(a.rowId)(d,b);return{data:d,cells:e}}function Ha(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,m,l,q;if(null===e.nTr){j=c||H.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;La(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){m=a.aoColumns[l];i=c?d[l]:H.createElement(m.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||m.mRender||m.mData!==l)&&(!h.isPlainObject(m.mData)||m.mData._!==l+".display"))i.innerHTML=
|
||||||
|
B(a,b,l,"display");m.sClass&&(i.className+=" "+m.sClass);m.bVisible&&!c?j.appendChild(i):!m.bVisible&&c&&i.parentNode.removeChild(i);m.fnCreatedCell&&m.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}r(a,"aoRowCreatedCallback",null,[j,f,b,g])}e.nTr.setAttribute("role","row")}function La(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?qa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));
|
||||||
|
d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function kb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===h("th, td",g).length,m=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),Ma(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Na(a,"header")(a,d,
|
||||||
|
f,m);i&&ea(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(m.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(m.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function fa(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,m;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=
|
||||||
|
0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(m=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+m]!==k&&g[d][f].cell==g[d][f+m].cell;){for(c=0;c<i;c++)j[d+c][f+m]=1;m++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",m)}}}}function P(a){var b=r(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=
|
||||||
|
d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,m=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!lb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:m;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ha(a,l);var t=q.nTr;if(0!==e){var G=d[c%e];q._sRowStripe!=G&&(h(t).removeClass(q._sRowStripe).addClass(G),
|
||||||
|
q._sRowStripe=G)}r(a,"aoRowCallback",null,[t,q._aData,c,j,l]);b.push(t);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:V(a),"class":a.oClasses.sRowEmpty}).html(c))[0];r(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ka(a),g,m,i]);r(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ka(a),g,m,i]);d=h(a.nTBody);d.children().detach();
|
||||||
|
d.append(h(b));r(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&mb(a);d?ga(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;P(a);a._drawHold=!1}function nb(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=
|
||||||
|
a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,m,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];m=f[k+1];if("'"==m||'"'==m){l="";for(q=2;f[k+q]!=m;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(m=l.split("."),i.id=m[0].substr(1,m[0].length-1),i.className=m[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=ob(a);else if("f"==j&&
|
||||||
|
d.bFilter)g=pb(a);else if("r"==j&&d.bProcessing)g=qb(a);else if("t"==j)g=rb(a);else if("i"==j&&d.bInfo)g=sb(a);else if("p"==j&&d.bPaginate)g=tb(a);else if(0!==n.ext.feature.length){i=n.ext.feature;q=0;for(m=i.length;q<m;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function ea(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,m,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<
|
||||||
|
i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;m=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][m+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ra(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],ea(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||
|
||||||
|
!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function sa(a,b,c){r(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){r(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var m="function"===typeof f?f(b,a):f,b="function"===typeof f&&m?m:h.extend(!0,b,m);delete g.data}m={data:b,success:function(b){var c=
|
||||||
|
b.error||b.sError;c&&K(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=r(a,null,"xhr",[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?K(a,0,"Invalid JSON response",1):4===b.readyState&&K(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;r(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(m,{url:g||a.sAjaxSource})):
|
||||||
|
"function"===typeof g?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(m,g)),g.data=f)}function lb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,!0),sa(a,ub(a),function(b){vb(a,b)}),!1):!0}function ub(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,m,l,k=X(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var t=function(a,b){j.push({name:a,value:b})};t("sEcho",a.iDraw);t("iColumns",c);t("sColumns",D(b,"sName").join(","));t("iDisplayStart",g);t("iDisplayLength",
|
||||||
|
i);var G={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)m=b[g],l=f[g],i="function"==typeof m.mData?"function":m.mData,G.columns.push({data:i,name:m.sName,searchable:m.bSearchable,orderable:m.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),t("mDataProp_"+g,i),d.bFilter&&(t("sSearch_"+g,l.sSearch),t("bRegex_"+g,l.bRegex),t("bSearchable_"+g,m.bSearchable)),d.bSort&&t("bSortable_"+g,m.bSortable);d.bFilter&&(t("sSearch",e.sSearch),t("bRegex",
|
||||||
|
e.bRegex));d.bSort&&(h.each(k,function(a,b){G.order.push({column:b.col,dir:b.dir});t("iSortCol_"+a,b.col);t("sSortDir_"+a,b.dir)}),t("iSortingCols",k.length));b=n.ext.legacy.ajax;return null===b?a.sAjaxSource?j:G:b?j:G}function vb(a,b){var c=ta(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}oa(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,
|
||||||
|
10);d=0;for(e=c.length;d<e;d++)O(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;P(a);a._bInitComplete||ua(a,b);a.bAjaxDataGet=!0;C(a,!1)}function ta(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?S(c)(b):b}function pb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",
|
||||||
|
g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,P(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Oa(f,g):f).on("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",
|
||||||
|
c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ga(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ga(a);if("ssp"!=y(a)){wb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)xb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,
|
||||||
|
e[b].bSmart,e[b].bCaseInsensitive);yb(a)}else f(b);a.bFiltered=!0;r(a,null,"search",[a])}function yb(a){for(var b=n.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,m=c.length;i<m;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function xb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Pa(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function wb(a,b,c,d,e,f){var d=Pa(b,
|
||||||
|
d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==n.ext.search.length&&(c=!0);j=zb(a);if(0>=b.length)a.aiDisplay=g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Pa(a,b,c,d){a=b?a:Qa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',
|
||||||
|
"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function zb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=n.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(va.innerHTML=i,i=Wb?va.textContent:va.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);
|
||||||
|
h._aFilterData=j;h._sFilterRow=j.join(" ");c=!0}return c}function Ab(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Bb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function sb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Cb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",
|
||||||
|
b+"_info"));return d[0]}function Cb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Db(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Db(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,
|
||||||
|
c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ha(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){nb(a);kb(a);fa(a,a.aoHeader);fa(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Fa(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));r(a,null,"preInit",[a]);T(a);e=
|
||||||
|
y(a);if("ssp"!=e||g)"ajax"==e?sa(a,[],function(c){var f=ta(a,c);for(b=0;b<f.length;b++)O(a,f[b]);a.iInitDisplayStart=d;T(a);C(a,!1);ua(a,c)},a):(C(a,!1),ua(a))}else setTimeout(function(){ha(a)},200)}function ua(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&$(a);r(a,null,"plugin-init",[a,b]);r(a,"aoInitComplete","init",[a,b])}function Ra(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Sa(a);r(a,null,"length",[a,c])}function ob(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=
|
||||||
|
e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Ra(a,h(this).val());P(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===
|
||||||
|
c&&h("select",i).val(d)});return i[0]}function tb(a){var b=a.sPaginationType,c=n.ext.pager[b],d="function"===typeof c,e=function(a){P(a)},b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Na(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,
|
||||||
|
e)},sName:"pagination"}));return b}function Ta(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:K(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(r(a,null,"page",[a]),c&&P(a));return b}function qb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}
|
||||||
|
function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");r(a,null,"processing",[a,b])}function rb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),m=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",
|
||||||
|
position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
|
||||||
|
{"class":f.sScrollFootInner}).append(m.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:la,sName:"scrolling"});return i[0]}function la(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,
|
||||||
|
f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,m=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),n=t.children("table"),o=h(a.nTHead),p=h(a.nTable),s=p[0],r=s.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,U=x.bScrollOversize,Xb=D(a.aoColumns,"nTh"),Q,L,R,w,Ua=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==
|
||||||
|
L&&a.scrollBarVis!==k)a.scrollBarVis=L,$(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();u&&(R=u.clone().prependTo(p),Q=u.find("tr"),R=R.find("tr"));w=o.clone().prependTo(p);o=o.find("tr");L=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ra(a,w),function(b,c){B=aa(a,b);c.style.width=a.aoColumns[B].sWidth});u&&I(function(a){a.style.width=""},R);f=p.outerWidth();if(""===c){r.width="100%";if(U&&(p.find("tbody").height()>j.offsetHeight||
|
||||||
|
"scroll"==l.css("overflow-y")))r.width=v(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(r.width=v(d),f=p.outerWidth());I(C,L);I(function(a){z.push(a.innerHTML);Ua.push(v(h(a).css("width")))},L);I(function(a,b){if(h.inArray(a,Xb)!==-1)a.style.width=Ua[b]},o);h(L).height(0);u&&(I(C,R),I(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},R),I(function(a,b){a.style.width=y[b]},Q),h(R).height(0));I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+z[b]+"</div>";a.childNodes[0].style.height=
|
||||||
|
"0";a.childNodes[0].style.overflow="hidden";a.style.width=Ua[b]},L);u&&I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+A[b]+"</div>";a.childNodes[0].style.height="0";a.childNodes[0].style.overflow="hidden";a.style.width=y[b]},R);if(p.outerWidth()<f){Q=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(U&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(Q-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else Q="100%";q.width=v(Q);
|
||||||
|
g.width=v(Q);u&&(a.nScrollFoot.style.width=v(Q));!e&&U&&(q.height=v(s.offsetHeight+b));c=p.outerWidth();m[0].style.width=v(c);i.width=v(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(n[0].style.width=v(c),t[0].style.width=v(c),t[0].style[e]=d?b+"px":"0px");p.children("colgroup").insertBefore(p.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function I(a,b,c){for(var d=0,e=0,
|
||||||
|
f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Fa(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=ma(a,"bVisible"),m=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,n,o,p=a.oBrowser,d=p.bScrollOversize;(n=b.style.width)&&-1!==n.indexOf("%")&&(l=n);for(n=0;n<i.length;n++)o=c[i[n]],null!==o.sWidth&&(o.sWidth=Eb(o.sWidthOrig,k),t=!0);if(d||
|
||||||
|
!t&&!f&&!e&&j==V(a)&&j==m.length)for(n=0;n<j;n++)i=aa(a,n),null!==i&&(c[i].sWidth=v(m.eq(n).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var s=h("<tr/>").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");m=ra(a,j.find("thead")[0]);for(n=0;n<i.length;n++)o=c[i[n]],m[n].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?v(o.sWidthOrig):
|
||||||
|
"",o.sWidthOrig&&f&&h(m[n]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(n=0;n<i.length;n++)t=i[n],o=c[t],h(Fb(a,t)).clone(!1).append(o.sContentPadding).appendTo(s);h("[name]",j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):
|
||||||
|
l&&j.width(l);for(n=e=0;n<i.length;n++)k=h(m[n]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(m[n].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[n]].sWidth=v(k-g);b.style.width=v(e);o.remove()}l&&(b.style.width=v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Oa(function(){$(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Eb(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Fb(a,
|
||||||
|
b){var c=Gb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Gb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(Yb,""),c=c.replace(/ /g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function X(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var m=[];f=function(a){a.length&&
|
||||||
|
!h.isArray(a[0])?m.push(a):h.merge(m,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<m.length;a++){i=m[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||"string",m[a]._idx===k&&(m[a]._idx=h.inArray(m[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:m[a][1],index:m[a]._idx,type:j,formatter:n.ext.type.order[j+"-pre"]})}return d}function mb(a){var b,c,d=[],e=n.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Ga(a);h=X(a);b=0;for(c=h.length;b<
|
||||||
|
c;b++)j=h[b],j.formatter&&g++,Hb(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,n=f[b]._aSortData;for(g=0;g<i;g++)if(j=h[g],c=k[j.col],e=n[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,n=f[a]._aSortData,o=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=n[i.col],g=o[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],
|
||||||
|
c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Ib(a){for(var b,c,d=a.aoColumns,e=X(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Va(a,
|
||||||
|
b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);T(a);"function"==
|
||||||
|
typeof d&&d(a)}function Ma(a,b,c,d){var e=a.aoColumns[c];Wa(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Va(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Va(a,c,b.shiftKey,d))})}function wa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=X(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+
|
||||||
|
(2>e?e+1:3))}a.aLastSort=d}function Hb(a,b){var c=a.aoColumns[b],d=n.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=n.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function xa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:Ab(a.oPreviousSearch),
|
||||||
|
columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:Ab(a.aoPreSearchCols[d])}})};r(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function Jb(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=r(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&
|
||||||
|
(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!==k&&h.extend(a.oPreviousSearch,Bb(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Bb(g.search))}r(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=
|
||||||
|
a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function ya(a){var b=n.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function K(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=n.ext,b=b.sErrMode||b.errMode,a&&r(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==
|
||||||
|
typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Xa(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Wa(a,b,c){h(a).on("click.DT",b,function(b){h(a).blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",
|
||||||
|
function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function r(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Sa(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Na(a,b){var c=a.renderer,d=n.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===
|
||||||
|
typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ia(a,b){var c=[],c=Kb.numbers_length,d=Math.floor(c/2);b<=c?c=Y(0,b):a<=d?(c=Y(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=Y(b-(c-2),b):(c=Y(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function Da(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Ya)},"html-num":function(b){return za(b,
|
||||||
|
a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Ya)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Lb(a){return function(){var b=[ya(this[n.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return n.ext.internal[a].apply(this,b)}}var n=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new s(ya(this[x.iApiIndex])):new s(this)};
|
||||||
|
this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&la(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,
|
||||||
|
b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():
|
||||||
|
c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};
|
||||||
|
this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return ya(this[x.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();
|
||||||
|
(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in n.ext.internal)e&&(this[e]=Lb(e));this.each(function(){var e={},g=1<d?Xa(e,a,!0):a,j=0,i,e=this.getAttribute("id"),m=!1,l=n.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())K(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{eb(l);fb(l.column);J(l,l,!0);J(l.column,l.column,!0);J(l,h.extend(g,q.data()));var t=n.settings,
|
||||||
|
j=0;for(i=t.length;j<i;j++){var o=t[j];if(o.nTable==this||o.nTHead&&o.nTHead.parentNode==this||o.nTFoot&&o.nTFoot.parentNode==this){var s=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||s)return o.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){o.oInstance.fnDestroy();break}else{K(o,0,"Cannot reinitialise DataTable",3);return}}if(o.sTableId==this.id){t.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+n.ext._unique++;var p=h.extend(!0,{},n.models.oSettings,{sDestroyWidth:q[0].style.width,
|
||||||
|
sInstance:e,sTableId:e});p.nTable=this;p.oApi=b.internal;p.oInit=g;t.push(p);p.oInstance=1===b.length?b:q.dataTable();eb(g);Ca(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=Xa(h.extend(!0,{},l),g);F(p.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(p,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod",
|
||||||
|
"aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);F(p.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(p.oLanguage,g,"fnInfoCallback");
|
||||||
|
z(p,"aoDrawCallback",g.fnDrawCallback,"user");z(p,"aoServerParams",g.fnServerParams,"user");z(p,"aoStateSaveParams",g.fnStateSaveParams,"user");z(p,"aoStateLoadParams",g.fnStateLoadParams,"user");z(p,"aoStateLoaded",g.fnStateLoaded,"user");z(p,"aoRowCallback",g.fnRowCallback,"user");z(p,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(p,"aoHeaderCallback",g.fnHeaderCallback,"user");z(p,"aoFooterCallback",g.fnFooterCallback,"user");z(p,"aoInitComplete",g.fnInitComplete,"user");z(p,"aoPreDrawCallback",
|
||||||
|
g.fnPreDrawCallback,"user");p.rowIdFn=S(g.rowId);gb(p);var u=p.oClasses;h.extend(u,n.ext.classes,g.oClasses);q.addClass(u.sTable);p.iInitDisplayStart===k&&(p.iInitDisplayStart=g.iDisplayStart,p._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(p.bDeferLoading=!0,e=h.isArray(g.iDeferLoading),p._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,p._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=p.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Ca(a);
|
||||||
|
J(l.oLanguage,a);h.extend(true,v,a);ha(p)},error:function(){ha(p)}}),m=!0);null===g.asStripeClasses&&(p.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=p.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&(h("tbody tr",this).removeClass(e.join(" ")),p.asDestroyStripes=e.slice());e=[];t=this.getElementsByTagName("thead");0!==t.length&&(ea(p.aoHeader,t[0]),e=ra(p));if(null===g.aoColumns){t=[];j=0;for(i=e.length;j<i;j++)t.push(null)}else t=
|
||||||
|
g.aoColumns;j=0;for(i=t.length;j<i;j++)Ea(p,e?e[j]:null);ib(p,g.aoColumnDefs,t,function(a,b){ka(p,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=p.aoColumns[a];if(c.mData===a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ka(p,a)}}})}var U=p.oFeatures,
|
||||||
|
e=function(){if(g.aaSorting===k){var a=p.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=p.aoColumns[j].asSorting[0]}wa(p);U.bSort&&z(p,"aoDrawCallback",function(){if(p.bSorted){var a=X(p),b={};h.each(a,function(a,c){b[c.src]=c.dir});r(p,null,"order",[p,a,b]);Ib(p)}});z(p,"aoDrawCallback",function(){(p.bSorted||y(p)==="ssp"||U.bDeferRender)&&wa(p)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));
|
||||||
|
p.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));p.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(p.oScroll.sX!==""||p.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);else if(b.length>0){p.nTFoot=b[0];ea(p.aoFooter,p.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)O(p,g.aaData[j]);else(p.bDeferLoading||y(p)=="dom")&&na(p,h(p.nTBody).children("tr"));p.aiDisplay=p.aiDisplayMaster.slice();
|
||||||
|
p.bInitialised=true;m===false&&ha(p)};g.bStateSave?(U.bStateSave=!0,z(p,"aoDrawCallback",xa,"state_save"),Jb(p,g,e)):e()}});b=null;return this},x,s,o,u,Za={},Mb=/[\r\n]/g,Aa=/<.*?>/g,Zb=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,$b=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Ya=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Nb=function(a){var b=parseInt(a,10);return!isNaN(b)&&
|
||||||
|
isFinite(a)?b:null},Ob=function(a,b){Za[b]||(Za[b]=RegExp(Qa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Za[b],"."):a},$a=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Ob(a,b));c&&d&&(a=a.replace(Ya,""));return!isNaN(parseFloat(a))&&isFinite(a)},Pb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:$a(a.replace(Aa,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<
|
||||||
|
f;e++)a[e]&&d.push(a[e][b]);return d},ja=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},Y=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Qb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},qa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();
|
||||||
|
b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};n.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}},escapeRegex:function(a){return a.replace($b,"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ca=/\[.*?\]$/,W=/\(\)$/,Qa=n.util.escapeRegex,va=h("<div>")[0],Wb=va.textContent!==k,Yb=
|
||||||
|
/<.*?>/g,Oa=n.util.throttle,Rb=[],w=Array.prototype,ac=function(a){var b,c,d=n.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};s=function(a,b){if(!(this instanceof
|
||||||
|
s))return new s(a,b);var c=[],d=function(a){(a=ac(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=qa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};s.extend(this,this,Rb)};n.Api=s;h.extend(s.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=
|
||||||
|
this.context;return b.length>a?new s(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new s(this.context,b)},flatten:function(){var a=[];return new s(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,j,h,m,l=this.context,
|
||||||
|
n,o,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(j=l.length;g<j;g++){var r=new s(l[g]);if("table"===b)f=c.call(r,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(r,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){o=this[g];"column-rows"===b&&(n=Ba(l[g],u.opts));h=0;for(m=o.length;h<m;h++)f=o[h],f="cell"===b?c.call(r,l[g],f.row,f.column,g,h):c.call(r,l[g],f,g,h,n),f!==k&&e.push(f)}}return e.length||d?(a=new s(l,a?
|
||||||
|
e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new s(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return hb(this,a,b,0,this.length,
|
||||||
|
1)},reduceRight:w.reduceRight||function(a,b){return hb(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new s(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new s(this.context,qa(this))},unshift:w.unshift});s.extend=function(a,b,c){if(c.length&&b&&(b instanceof s||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=
|
||||||
|
b.apply(a,arguments);s.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,s.extend(a,b[f.name],f.propExt)}};s.register=o=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)s.register(a[c],b);else for(var e=a.split("."),f=Rb,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var m=f.length;i<m;i++)if(f[i].name===g){i=
|
||||||
|
f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};s.registerPlural=u=function(a,b,c){s.register(a,c);s.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof s?a.length?h.isArray(a[0])?new s(a.context,a[0]):a[0]:k:a})};o("tables()",function(a){var b;if(a){b=s;var c=this.context;if("number"===typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,
|
||||||
|
d);return c[a]}).toArray();b=new b(a)}else b=this;return b});o("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new s(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()",
|
||||||
|
"table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});o("draw()",function(a){return this.iterator("table",function(b){"page"===a?P(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),T(b,!1===a))})});o("page()",function(a){return a===k?this.page.info().page:this.iterator("table",function(b){Ta(b,a)})});o("page.info()",function(){if(0===
|
||||||
|
this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});o("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:k:this.iterator("table",function(b){Ra(b,a)})});var Sb=function(a,b,c){if(c){var d=new s(a);
|
||||||
|
d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))T(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();sa(a,[],function(c){oa(a);for(var c=ta(a,c),d=0,e=c.length;d<e;d++)O(a,c[d]);T(a,b);C(a,!1)})}};o("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});o("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});o("ajax.reload()",function(a,b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});o("ajax.url()",function(a){var b=
|
||||||
|
this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});o("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Sb(c,!1===b,a)})});var ab=function(a,b,c,d,e){var f=[],g,j,i,m,l,n;i=typeof b;if(!b||"string"===i||"function"===i||b.length===k)b=[b];i=0;for(m=b.length;i<m;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):
|
||||||
|
[b[i]];l=0;for(n=j.length;l<n;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(m=a.length;i<m;i++)f=a[i](d,e,f)}return qa(f)},bb=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},cb=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ba=function(a,b){var c,
|
||||||
|
d,e,f=[],g=a.aiDisplay;e=a.aiDisplayMaster;var j=b.search;c=b.order;d=b.page;if("ssp"==y(a))return"removed"===j?[]:Y(0,e.length);if("current"==d){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==c||"applied"==c)if("none"==j)f=e.slice();else if("applied"==j)f=g.slice();else{if("removed"==j){var i={};c=0;for(d=g.length;c<d;c++)i[g[c]]=null;f=h.map(e,function(a){return!i.hasOwnProperty(a)?a:null})}}else if("index"==c||"original"==c){c=0;for(d=a.aoData.length;c<d;c++)"none"==
|
||||||
|
j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};o("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=b,f;return ab("row",a,function(a){var b=Nb(a),i=c.aoData;if(b!==null&&!e)return[b];f||(f=Ba(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var c=i[b];return a(b,c._aData,c.nTr)?b:null});if(a.nodeName){var b=
|
||||||
|
a._DT_RowIndex,m=a._DT_CellIndex;if(b!==k)return i[b]&&i[b].nTr===a?[b]:[];if(m)return i[m.row]&&i[m.row].nTr===a?[m.row]:[];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){b=c.aIds[a.replace(/^#/,"")];if(b!==k)return[b.idx]}b=Qb(ja(c.aoData,f,"nTr"));return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});o("rows().nodes()",function(){return this.iterator("row",
|
||||||
|
function(a,b){return a.aoData[b].nTr||k},1)});o("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ja(a.aoData,b,"_aData")},1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){da(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",
|
||||||
|
function(a,b){return b},1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new s(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,m,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(m=
|
||||||
|
l.length;i<m;i++)l[i]._DT_CellIndex.row=g}pa(b.aiDisplayMaster,c);pa(b.aiDisplay,c);pa(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;Sa(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});o("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(na(b,c)[0]):h.push(O(b,c));return h},
|
||||||
|
1),c=this.rows(-1);c.pop();h.merge(c,b);return c});o("row()",function(a,b){return cb(this.rows(a,b))});o("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;var c=b[0].aoData[this[0]];c._aData=a;h.isArray(a)&&c.nTr.id&&N(b[0].rowId)(a,c.nTr.id);da(b[0],this[0],"data");return this});o("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});o("row.add()",function(a){a instanceof h&&
|
||||||
|
a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?na(b,a)[0]:O(b,a)});return this.row(b[0])});var db=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Tb=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new s(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");
|
||||||
|
0<D(g,"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=V(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&db(f,c)}))}}};o("row().child()",function(a,b){var c=
|
||||||
|
this.context;if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)db(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=V(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);
|
||||||
|
c._detailsShow&&c._details.insertAfter(c.nTr)}return this});o(["row().child.show()","row().child().show()"],function(){Tb(this,!0);return this});o(["row().child.hide()","row().child().hide()"],function(){Tb(this,!1);return this});o(["row().child.remove()","row().child().remove()"],function(){db(this);return this});o("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var bc=/^([^:]+):(name|visIdx|visible)$/,Ub=function(a,b,
|
||||||
|
c,d,e){for(var c=[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};o("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return ab("column",e,function(a){var b=Nb(a);if(a==="")return Y(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Ub(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(bc):
|
||||||
|
"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var n=h.map(g,function(a,b){return a.bVisible?b:null});return[n[n.length+b]]}return[aa(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},
|
||||||
|
1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Ub,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},
|
||||||
|
1)});u("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,
|
||||||
|
i,m,l;if(a!==k&&g.bVisible!==a){if(a){var n=h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(m=j.length;i<m;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[n]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;fa(b,b.aoHeader);fa(b,b.aoFooter);b.aiDisplay.length||h(b.nTBody).find("td[colspan]").attr("colspan",V(b));xa(b)}});a!==k&&(this.iterator("column",function(c,e){r(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",
|
||||||
|
function(a){return this.iterator("column",function(b,c){return"visible"===a?ba(b,c):c},1)});o("columns.adjust()",function(){return this.iterator("table",function(a){$(a)},1)});o("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return aa(c,b);if("fromData"===a||"toVisible"===a)return ba(c,b)}});o("column()",function(a,b){return cb(this.columns(a,b))});o("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));
|
||||||
|
h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=bb(c),f=b.aoData,g=Ba(b,e),j=Qb(ja(f,g,"anCells")),i=h([].concat.apply([],j)),l,m=b.aoColumns.length,n,o,u,s,r,v;return ab("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){n=[];o=0;for(u=g.length;o<u;o++){l=g[o];for(s=0;s<m;s++){r={row:l,column:s};if(c){v=f[l];a(r,B(b,l,s),v.anCells?v.anCells[s]:null)&&n.push(r)}else n.push(r)}}return n}if(h.isPlainObject(a))return a.column!==
|
||||||
|
k&&a.row!==k&&h.inArray(a.row,g)!==-1?[a]:[];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b),e=this.rows(a),f,g,j,i,m;this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(m=d[b].length;i<m;i++)f.push({row:e[b][g],column:d[b][i]})}},1);var l=this.cells(f,
|
||||||
|
c);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:k},1)});o("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",
|
||||||
|
function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:ba(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){da(b,c,a,d)})});o("cell()",function(a,b,c){return cb(this.cells(a,b,c))});o("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],
|
||||||
|
c[0].row,c[0].column):k;jb(b[0],c[0].row,c[0].column,a);da(b[0],c[0].row,"data",c[0].column);return this});o("order()",function(a,b){var c=this.context;if(a===k)return 0!==c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});o("order.listener()",function(a,b,c){return this.iterator("table",function(d){Ma(d,a,b,c)})});o("order.fixed()",function(a){if(!a){var b=
|
||||||
|
this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});o(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});o("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&ga(e,
|
||||||
|
h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ga(e,e.oPreviousSearch,1))})});o("state()",function(){return this.context.length?this.context[0].oSavedState:
|
||||||
|
null});o("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});o("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});o("state.save()",function(){return this.iterator("table",function(a){xa(a)})});n.versionCheck=n.fnVersionCheck=function(a){for(var b=n.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};n.isDataTable=
|
||||||
|
n.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof n.Api)return!0;h.each(n.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};n.tables=n.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(n.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new s(c):c};n.camelToHungarian=J;o("$()",function(a,b){var c=
|
||||||
|
this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){o(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});o("clear()",function(){return this.iterator("table",function(a){oa(a)})});o("settings()",function(){return new s(this.context,this.context)});o("init()",function(){var a=
|
||||||
|
this.context;return a.length?a[0].oInit:null});o("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});o("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),o;b.bDestroying=!0;r(b,"aoDestroyCallback","destroy",[b]);a||(new s(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");
|
||||||
|
h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];wa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),
|
||||||
|
(o=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%o])}));c=h.inArray(b,n.settings);-1!==c&&n.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){o(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});o("i18n()",function(a,b,c){var d=this.context[0],a=S(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:
|
||||||
|
a._);return a.replace("%d",c)});n.version="1.10.18";n.settings=[];n.models={};n.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};n.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};n.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,
|
||||||
|
sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};n.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
|
||||||
|
bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
|
||||||
|
a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
|
||||||
|
oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
|
||||||
|
n.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Z(n.defaults);n.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
|
||||||
|
Z(n.defaults.column);n.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
|
||||||
|
aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
|
||||||
|
iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:
|
||||||
|
this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};n.ext=x={buttons:{},
|
||||||
|
classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:n.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:n.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});
|
||||||
|
h.extend(n.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
|
||||||
|
sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
|
||||||
|
sJUIHeader:"",sJUIFooter:""});var Kb=n.ext.pager;h.extend(Kb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ia(a,b)]},simple_numbers:function(a,b){return["previous",ia(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ia(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ia(a,b),"last"]},_numbers:ia,numbers_length:7});h.extend(!0,n.ext.renderer,{pageButton:{_:function(a,b,c,d,e,
|
||||||
|
f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},m,l,n=0,o=function(b,d){var k,s,u,r,v=function(b){Ta(a,b.data.action,true)};k=0;for(s=d.length;k<s;k++){r=d[k];if(h.isArray(r)){u=h("<"+(r.DT_el||"div")+"/>").appendTo(b);o(u,r)}else{m=null;l="";switch(r){case "ellipsis":b.append('<span class="ellipsis">…</span>');break;case "first":m=j.sFirst;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":m=j.sPrevious;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":m=
|
||||||
|
j.sNext;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":m=j.sLast;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:m=r+1;l=e===r?g.sPageButtonActive:""}if(m!==null){u=h("<a>",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[r],"data-dt-idx":n,tabindex:a.iTabIndex,id:c===0&&typeof r==="string"?a.sTableId+"_"+r:null}).html(m).appendTo(b);Wa(u,{action:r},v);n++}}}},s;try{s=h(b).find(H.activeElement).data("dt-idx")}catch(u){}o(h(b).empty(),d);s!==k&&h(b).find("[data-dt-idx="+
|
||||||
|
s+"]").focus()}}});h.extend(n.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!Zb.test(a))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Pb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||
|
||||||
|
"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(n.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Mb," ").replace(Aa,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Mb," "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Ob(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return M(a)?
|
||||||
|
"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});Da("");h.extend(!0,n.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:
|
||||||
|
c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]==
|
||||||
|
"asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Vb=function(a){return"string"===typeof a?a.replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""):a};n.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Vb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
|
||||||
|
a)+f+(e||"")}}},text:function(){return{display:Vb}}};h.extend(n.ext.internal,{_fnExternApiFunc:Lb,_fnBuildAjax:sa,_fnAjaxUpdate:lb,_fnAjaxParameters:ub,_fnAjaxUpdateDraw:vb,_fnAjaxDataSrc:ta,_fnAddColumn:Ea,_fnColumnOptions:ka,_fnAdjustColumnSizing:$,_fnVisibleToColumnIndex:aa,_fnColumnIndexToVisible:ba,_fnVisbleColumns:V,_fnGetColumns:ma,_fnColumnTypes:Ga,_fnApplyColumnDefs:ib,_fnHungarianMap:Z,_fnCamelToHungarian:J,_fnLanguageCompat:Ca,_fnBrowserDetect:gb,_fnAddData:O,_fnAddTr:na,_fnNodeToDataIndex:function(a,
|
||||||
|
b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:jb,_fnSplitObjNotation:Ja,_fnGetObjectDataFn:S,_fnSetObjectDataFn:N,_fnGetDataMaster:Ka,_fnClearTable:oa,_fnDeleteIndex:pa,_fnInvalidate:da,_fnGetRowElements:Ia,_fnCreateTr:Ha,_fnBuildHead:kb,_fnDrawHead:fa,_fnDraw:P,_fnReDraw:T,_fnAddOptionsHtml:nb,_fnDetectHeader:ea,_fnGetUniqueThs:ra,_fnFeatureHtmlFilter:pb,_fnFilterComplete:ga,_fnFilterCustom:yb,
|
||||||
|
_fnFilterColumn:xb,_fnFilter:wb,_fnFilterCreateSearch:Pa,_fnEscapeRegex:Qa,_fnFilterData:zb,_fnFeatureHtmlInfo:sb,_fnUpdateInfo:Cb,_fnInfoMacros:Db,_fnInitialise:ha,_fnInitComplete:ua,_fnLengthChange:Ra,_fnFeatureHtmlLength:ob,_fnFeatureHtmlPaginate:tb,_fnPageChange:Ta,_fnFeatureHtmlProcessing:qb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:rb,_fnScrollDraw:la,_fnApplyToChildren:I,_fnCalculateColumnWidths:Fa,_fnThrottle:Oa,_fnConvertToWidth:Eb,_fnGetWidestNode:Fb,_fnGetMaxLenString:Gb,_fnStringToCss:v,
|
||||||
|
_fnSortFlatten:X,_fnSort:mb,_fnSortAria:Ib,_fnSortListener:Va,_fnSortAttachListener:Ma,_fnSortingClasses:wa,_fnSortData:Hb,_fnSaveState:xa,_fnLoadState:Jb,_fnSettingsFromNode:ya,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:r,_fnLengthOverflow:Sa,_fnRenderer:Na,_fnDataSource:y,_fnRowAttributes:La,_fnExtend:Xa,_fnCalculateEnd:function(){}});h.fn.dataTable=n;n.$=h;h.fn.dataTableSettings=n.settings;h.fn.dataTableExt=n.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};
|
||||||
|
h.each(n,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
|
||||||
File diff suppressed because it is too large
Load Diff
+14
File diff suppressed because one or more lines are too long
@@ -0,0 +1,457 @@
|
|||||||
|
/*
|
||||||
|
* This combined file was created by the DataTables downloader builder:
|
||||||
|
* https://datatables.net/download
|
||||||
|
*
|
||||||
|
* To rebuild or modify this file with the latest versions of the included
|
||||||
|
* software please visit:
|
||||||
|
* https://datatables.net/download/#bs4/jszip-2.5.0/pdfmake-0.1.36/dt-1.10.18/b-1.5.6/b-html5-1.5.6/b-print-1.5.6
|
||||||
|
*
|
||||||
|
* Included libraries:
|
||||||
|
* JSZip 2.5.0, pdfmake 0.1.36, DataTables 1.10.18, Buttons 1.5.6, HTML5 export 1.5.6, Print view 1.5.6
|
||||||
|
*/
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-o-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-o-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-ms-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-ms-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-webkit-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@-moz-keyframes dtb-spinner {
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-button-info {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 400px;
|
||||||
|
margin-top: -100px;
|
||||||
|
margin-left: -200px;
|
||||||
|
background-color: white;
|
||||||
|
border: 2px solid #111;
|
||||||
|
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
border-radius: 3px;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 21;
|
||||||
|
}
|
||||||
|
div.dt-button-info h2 {
|
||||||
|
padding: 0.5em;
|
||||||
|
margin: 0;
|
||||||
|
font-weight: normal;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
}
|
||||||
|
div.dt-button-info > div {
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title {
|
||||||
|
text-align: center;
|
||||||
|
padding: 0.3em 0 0.5em;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection-title:empty {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection.dropdown-menu {
|
||||||
|
display: block;
|
||||||
|
z-index: 2002;
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.fixed.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.fixed.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.fixed.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu > * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.dropdown-menu .dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-collection {
|
||||||
|
-webkit-column-gap: 8px;
|
||||||
|
-moz-column-gap: 8px;
|
||||||
|
-ms-column-gap: 8px;
|
||||||
|
-o-column-gap: 8px;
|
||||||
|
column-gap: 8px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -75px;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.two-column {
|
||||||
|
margin-left: -150px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.three-column {
|
||||||
|
margin-left: -225px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed.four-column {
|
||||||
|
margin-left: -300px;
|
||||||
|
}
|
||||||
|
div.dt-button-collection > * {
|
||||||
|
-webkit-column-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.two-column {
|
||||||
|
width: 300px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 2;
|
||||||
|
-moz-column-count: 2;
|
||||||
|
-ms-column-count: 2;
|
||||||
|
-o-column-count: 2;
|
||||||
|
column-count: 2;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.three-column {
|
||||||
|
width: 450px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 3;
|
||||||
|
-moz-column-count: 3;
|
||||||
|
-ms-column-count: 3;
|
||||||
|
-o-column-count: 3;
|
||||||
|
column-count: 3;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.four-column {
|
||||||
|
width: 600px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
-webkit-column-count: 4;
|
||||||
|
-moz-column-count: 4;
|
||||||
|
-ms-column-count: 4;
|
||||||
|
-o-column-count: 4;
|
||||||
|
column-count: 4;
|
||||||
|
}
|
||||||
|
div.dt-button-collection .dt-button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed {
|
||||||
|
max-width: none;
|
||||||
|
}
|
||||||
|
div.dt-button-collection.fixed:before, div.dt-button-collection.fixed:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dt-button-background {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
div.dt-buttons {
|
||||||
|
float: none;
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
div.dt-buttons a.btn {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
div.dt-buttons button.btn.processing,
|
||||||
|
div.dt-buttons div.btn.processing,
|
||||||
|
div.dt-buttons a.btn.processing {
|
||||||
|
color: rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
div.dt-buttons button.btn.processing:after,
|
||||||
|
div.dt-buttons div.btn.processing:after,
|
||||||
|
div.dt-buttons a.btn.processing:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
margin: -8px 0 0 -8px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
display: block;
|
||||||
|
content: ' ';
|
||||||
|
border: 2px solid #282828;
|
||||||
|
border-radius: 50%;
|
||||||
|
border-left-color: transparent;
|
||||||
|
border-right-color: transparent;
|
||||||
|
animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
File diff suppressed because one or more lines are too long
Vendored
+18
File diff suppressed because one or more lines are too long
Vendored
+320
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 469 KiB |
@@ -0,0 +1,152 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>CKFinder Changelog</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 id="ckfinder-changelog">CKFinder Changelog</h1>
|
||||||
|
<p><a href="https://ckeditor.com/ckfinder/">CKFinder</a></p>
|
||||||
|
<p>Copyright (c) 2007-2021, CKSource - Frederico Knabben. All rights reserved.</p>
|
||||||
|
<h2 id="version-3-5-3">Version 3.5.3</h2>
|
||||||
|
<h3 id="new-features">New Features</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="php">Added support for PHP 8.1.</li></ul>
|
||||||
|
<h3 id="fixed-issues">Fixed issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="php">Updated third-party libraries.</li><li class="php">Replaced deprecated method calls.</li></ul>
|
||||||
|
<h2 id="version-3-5-2">Version 3.5.2</h2>
|
||||||
|
<h3 id="fixed-issues">Fixed issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Upgraded jQuery to v3.6.0.</li><li>Replaced Lodash with Underscore v1.13.1.</li></ul>
|
||||||
|
<h2 id="version-3-5-1-2">Version 3.5.1.2</h2>
|
||||||
|
<h3 id="new-features">New Features</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="php">Added support for PHP 8.</li></ul>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="net">Fixed type registration issues in a newer version of Autofac.</li></ul>
|
||||||
|
<h2 id="version-3-5-1-1">Version 3.5.1.1</h2>
|
||||||
|
<h3 id="fixed-issues">Fixed issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="php">Updated third-party libraries.</li><li class="php">Fixed race condition in the local filesystem adapter.</li><li class="net">Upgraded the ImageProcessor library to version 2.8.0.</li><li class="net">Upgraded the Autofac library to version 5.2.0.</li><li>[Java] Fixed issues related to DirectoryStream not being properly closed at some places.</li></ul>
|
||||||
|
<h3 id="localization-updates">Localization Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Updated: Bosnian, Chinese, Japanese, Korean.</li></ul>
|
||||||
|
<h2 id="version-3-5-1">Version 3.5.1</h2>
|
||||||
|
<h3 id="new-features">New Features</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Added support for uploading files without a file extension. Files without an extention have to be explicitly enabled in the resource types configuration.</li></ul>
|
||||||
|
<h3 id="documentation-updates">Documentation Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="php">Added documentation that clarifies how to fully <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-php/howto.html#securing_public_folder">protect against content sniffing in web browsers</a>.</li><li class="net">Added documentation that clarifies how to fully <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-net/howto.html#securing_public_folder">protect against content sniffing in web browsers</a>.</li></ul>
|
||||||
|
<h2 id="version-3-5-0">Version 3.5.0</h2>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed issues related to loading language files in a CORS-enabled environment.</li><li>Fixed image editing in a CORS-enabled environment.</li><li>Fixed contrast issues in the "Choose resized" dialog.</li><li class="net">Fixed an issue with downloading large files that occurred on some IIS configurations.</li><li class="net">Fixed an issue with the <code>Proxy</code> command on an S3 backend.</li></ul>
|
||||||
|
<h3 id="localization-updates">Localization Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Updated: Japanese.</li></ul>
|
||||||
|
<h2 id="version-3-4-5">Version 3.4.5</h2>
|
||||||
|
<h3 id="new-features">New Features</h3>
|
||||||
|
<ul>
|
||||||
|
<li>New skin: Neko.</li><li>The language files can now be loaded in a CORS-enabled environment.</li><li>Improved the look & feel of the image preview view.</li></ul>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed performance issues in the folder tree view for folders that contain hundreds of subfolders.</li><li>Fixed focus issues in Compact and List view.</li><li>Fixed file panel auto scroll issue in Modal mode.</li><li>Fixed navigation issues in Compact and List views.</li><li class="net">Refactored Amazon S3 adapter, so it is now possible to pass a custom instance of <code>AmazonS3Client</code>.</li><li class="net">Fixed an issue with incorrect last file modification dates.</li></ul>
|
||||||
|
<h3 id="backward-incompatible-changes">Backward Incompatible Changes</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Due to performance issues, the <code>view:FolderTreeNode</code> event is no longer emitted in the CKFinder JavaScript client.</li></ul>
|
||||||
|
<h2 id="version-3-4-4">Version 3.4.4</h2>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed file selection issue that occurred when search filter was used.</li><li class="php">Fixed problem with dates on FTP adapter.</li><li class="net">Updated AWS SDK to version 3.</li></ul>
|
||||||
|
<h3 id="localization-updates">Localization Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Updated: Chinese, Dutch, Finnish, Persian.</li></ul>
|
||||||
|
<h2 id="version-3-4-3">Version 3.4.3</h2>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed file upload issue in the latest version of Microsoft Edge (v42).</li><li>Fixed text selection issue in CKFinder UI.</li><li class="php">Added support for Unix symbolic links in the local filesystem backend adapter.</li><li class="net">Fixed URL generation in backends that use the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-net/commands.html#command_proxy">Proxy</a> command.</li><li class="net">Upgraded the ImageProcessor library to the latest version (v2.6.2).</li><li class="net">Added possibility to set license details per request.</li></ul>
|
||||||
|
<h2 id="version-3-4-2">Version 3.4.2</h2>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed issues with resolving base path when <code>ckfinder.js</code> is loaded with query string parameters.</li><li>Fixed PDF preview for files with the "pdf" extension written in uppercase.</li><li class="php">Updated AWS SDK to version 3.</li><li class="php">Updated Dropbox API to version 2.</li><li class="net">Fixed <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-net/configuration.html#configuration_options_backends"><code>baseUrl</code></a> option which was ignored by some backend adapters.</li><li class="net">Fixed URL generation for resized images in backends that use the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-net/commands.html#command_proxy">Proxy</a> command.</li></ul>
|
||||||
|
<h3 id="localization-updates">Localization Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Added: Azerbaijani, Uzbek (Cyrillic and Latin versions).</li><li>Updated: Vietnamese.</li></ul>
|
||||||
|
<h2 id="version-3-4-1">Version 3.4.1</h2>
|
||||||
|
<h3 id="new-features">New Features</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="net">Added support for FTP storage.</li></ul>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="net">Improved Thumbnail command performance.</li></ul>
|
||||||
|
<h3 id="localization-updates">Localization Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Updated: Greek and Turkish.</li></ul>
|
||||||
|
<h2 id="version-3-4">Version 3.4</h2>
|
||||||
|
<h3 id="new-features">New Features</h3>
|
||||||
|
<ul>
|
||||||
|
<li>The <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-settings_change_GROUP_NAME"><code>settings:change:GROUP:NAME</code></a> event has a new parameter: <code>previousValue</code>.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/demo/ckfinder3/samples/user-interface-compact.html">Compact View</a> for displaying files in columns (not supported in IE9).</li><li>The <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Config-cfg-defaultViewType"><code>defaultViewType</code></a> configuration option accepts a new value: <code>compact</code>.</li><li>Added the <code>width</code> parameter for columns defined for List View in the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-listView_columns"><code>listView:columns</code></a> event.</li><li>Added the "OK" button to information dialogs (those created using the <code>dialog:info</code> request).</li><li class="net">Improved configuration validation.</li><li class="net">Added progress tracking for time-consuming operations.</li><li class="net">Added support for IIS virtual directories in the local storage adapter.</li></ul>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Added the missing <code>command:before:FileUpload</code>, <code>command:ok:FileUpload</code> and <code>command:error:FileUpload</code> events for uploading files.</li><li>Fixed focus in the settings panel when changing the view type.</li><li>Fixed double <code>toolbar:reset:Main:folder</code> event in compact mode when the user selects a folder in the files pane.</li><li>Fixed keyboard navigation for disabled context menu items.</li><li>Removed the possibility to invoke the Delete File command by keyboard inside a folder with <code>ACL FILE_DELETE</code> set to <code>false</code>.</li><li>Removed the possibility to invoke the Rename File command by keyboard inside a folder with <code>ACL FILE_RENAME</code> set to <code>false</code>.</li><li>Fixed drag&drop uploads in List View.</li><li>Updated Javascript code prettifier for samples.</li><li class="php">Fixed file permission issue occurring during file upload on some IIS server configurations.</li><li class="net">Fixed HTML file extension matching.</li><li class="net">Fixed URL generation for resized images in backends that use the Proxy command.</li><li class="net">Added missing file size field to the SaveImage command response.</li><li class="net">Improved thumbnail caching.</li></ul>
|
||||||
|
<h3 id="localization-updates">Localization Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Added: Swiss German (thanks to <a href="https://twitter.com/mirogrenda">Miro Grenda</a>!) and Ukrainian (thanks to Holovin Yevhen Nikolayevich!).</li><li>Updated: Chinese, Czech, Esperanto, French, German, Kurdish, Latvian, Polish, Russian, Slovakian, Spanish and Turkish.</li></ul>
|
||||||
|
<h2 id="version-3-3-1">Version 3.3.1</h2>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="net">Fixed performance issue in folders with more than 1000 files.</li></ul>
|
||||||
|
<h2 id="version-3-3">Version 3.3</h2>
|
||||||
|
<h3 id="new-features">New Features</h3>
|
||||||
|
<ul>
|
||||||
|
<li class="php">Added support for Microsoft Azure Storage.</li><li class="net">Added a stable version of the ASP.NET connector.</li><li class="net">Added support for Microsoft Azure Storage.</li><li class="net">Added support for Amazon S3 Storage.</li></ul>
|
||||||
|
<h3 id="backward-incompatible-changes">Backward Incompatible Changes</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Language files have undergone a major reorganization. Obsolete keys were removed.</li><li>Events related to rendering columns in the files pane were changed: <code>listView:file:column:NAME</code>, <code>listView:folder:column:NAME</code>.</li></ul>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Performance improvements for rendering the files pane with thousands of items.</li><li>Thumbnail slider enabled in list view when loading CKFinder.</li><li>Choosing files with double click does not fetch the file URL for some remote backends.</li><li>Invalid time when parsing time in the 12-hour clock system.</li><li class="php">Image Edit: Saving an image that exceeds <code>maxWidth</code>/<code>maxHeight</code> throws an error.</li></ul>
|
||||||
|
<h3 id="localization-updates">Localization Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Added: Bosnian.</li><li>Updated: Brazilian Portuguese, Czech, Esperanto, French, German, Italian, Kurdish, Latvian, Persian, Polish, Russian, Spanish and Swedish.</li></ul>
|
||||||
|
<h2 id="version-3-2-1">Version 3.2.1</h2>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>In widget mode (in Internet Explorer/Edge only) the CSRF protection was too strict and did not allow for actions that should be allowed.</li></ul>
|
||||||
|
<h2 id="version-3-2">Version 3.2</h2>
|
||||||
|
<h3 id="new-features">New Features</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Added new view for files pane: a list view with file details.</li><li>Added sorting of files in files pane by name, date and size.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Config-cfg-listViewIconSize"><code>listViewIconSize</code></a> configuration option.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Config-cfg-defaultSortBy"><code>defaultSortBy</code></a> configuration option.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Config-cfg-defaultSortByOrder"><code>defaultSortByOrder</code></a> configuration option.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Config-cfg-defaultViewType"><code>defaultViewType</code></a> configuration option.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-listView_columns"><code>listView:columns</code></a> event.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-listView_file_column_NAME"><code>listView:file:column:NAME</code></a> event.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-listView_folder_column_NAME"><code>listView:folder:column:NAME</code></a> event.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-resources_show_before"><code>resources:show:before</code></a> event.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-dialog_close_NAME"><code>dialog:close:NAME</code></a> event.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-request-file_getActive"><code>file:getActive</code></a> request.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-request-csrf_getToken"><code>csrf:getToken</code></a> request.</li><li>Added the <code>sendPostAsJson</code> parameter to the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-request-command_send"><code>command:send</code></a> request</li><li>The <code>view</code> parameter for the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-request-page_create"><code>page:create</code></a> request is now optional.</li></ul>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Individual settings views have a proper name in the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-view_NAME"><code>view:NAME</code></a> event instead of a single <code>Setting</code>.</li><li>Compact mode: Keyboard navigation in breadcrumbs is inverted for RTL languages.</li><li>Fixed an issue that prevented to move or copy over 250 files on a default PHP installation.</li><li>Fixed wrong error message for an empty file name.</li><li>Fixed detection of swipe direction when opening panels on touch screen devices.</li><li>Compact mode: Focus on filter box is lost when typing.</li><li>Thumbnails are not refreshed after editing an image.</li><li>Files filter is not refreshed after clicking a folder.</li><li>Focus is lost after moving files.</li><li>The toolbar is unnecessarily rendered when lazy loading of a folder finishes and a file was selected.</li></ul>
|
||||||
|
<h3 id="localization-updates">Localization Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Added: Esperanto.</li></ul>
|
||||||
|
<h2 id="version-3-1">Version 3.1</h2>
|
||||||
|
<h3 id="security-updates">Security Updates</h3>
|
||||||
|
<p>As a result of security testing and hacking that we did on CKFinder 3 we discovered some potential security concerns in the server-side part of the application.
|
||||||
|
These issues affected actions that only authenticated users could perform solely in locations specified in your CKFinder backends configuration, but since
|
||||||
|
in some cases it was possible to skip ACL checks or file extension checks, <strong>an upgrade is highly recommended</strong>.</p>
|
||||||
|
<h3 id="new-features">New Features</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Improved accessibility. Added compatibility with screen readers.</li><li>Reworked keyboard navigation in the entire application. Implemented custom <kbd>Tab</kbd> key support to resolve inconsistency between browsers.</li><li>Added the Keyboard Shortcuts dialog window — press <kbd>?</kbd> to open it.</li><li>Greatly improved application performance when loading files from remote locations (e.g. Amazon S3).</li><li>Improved performance by reducing the number of situations when the entire files pane is reloaded.</li><li>Improved performance by caching files on subsequent clicks of the folder.</li><li>Added Microsoft Edge compatibility.</li><li>Added preview of PDF files in the gallery.</li><li>Added drag and drop support for files onto folders and breadcrumbs in compact mode.</li><li>Added busy dialog and progress tracking for time-consuming operations.</li><li>Added Proxy command support. It is now possible to view files stored outside the document root or in remote backends in the gallery.</li><li class="php">Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-php/commands.html#command_proxy"><code>Proxy</code></a> command and the corresponding <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#backend_option_useProxyCommand"><code>useProxyCommand</code></a> backend configuration option.</li><li>Reworked the Choose Scaled dialog window.</li><li>Edit Image feature now warns against closing without saving changes.</li><li>Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-request-folder_getIcon"><code>folder:getIcon</code></a> request.</li><li>Removed Maximize/Minimize buttons in popup mode as the browser provides native controls for it.</li><li class="php">Improved performance by caching file previews.</li><li class="php">Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_cache"><code>cache</code></a> option that configures cache lifetime for various CKFinder components.</li><li class="php">Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_tempDirectory"><code>tempDirectory</code></a> option that configures the path to the temporary files folder used by CKFinder.</li><li class="php">Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_sessionWriteClose"><code>sessionWriteClose</code></a> option that configures whether the connector should close write access to the session to avoid performance issues.</li><li class="php">Added the <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-php/commands.html#command_operation"><code>Operation</code></a> command that tracks the progress of operation in time-consuming connector commands.</li></ul>
|
||||||
|
<h3 id="backward-incompatible-changes">Backward Incompatible Changes</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Context menu API has undergone major changes. See the updated <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/guide/dev_contextmenu-section-ckfinder-3.1%2B">context menu documentation</a>.</li><li>Toolbar API events <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-toolbar_reset_NAME"><code>toolbar:reset:NAME</code></a> and <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-event-toolbar_reset_NAME_EVENT"><code>toolbar:reset:NAME:EVENT</code></a> - <code>data.toolbar</code> is now a <code>Backbone.Collection</code>, not an array.</li><li>The <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Application-request-file_getIcon"><code>file:getIcon</code></a> request no longer has the <code>extension</code> parameter. Pass the <code>file</code> parameter instead.</li></ul>
|
||||||
|
<h3 id="fixed-issues">Fixed Issues</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Compact mode: Breadcrumb was hidden when entering a folder with many files.</li><li>Compact mode: There was no way to enter a folder on Android.</li><li>Compact mode: Broken border around CKFinder when viewing the top level folder with resource types.</li><li>Edit Image: Loading an image was not working when the domain name contained a dash character.</li><li>Edit Image: Context menu item was enabled when the user had no permissions to edit the file.</li><li>Edit Image: Resize option was not available in compact mode.</li><li>Edit Image: Reset button should have been disabled if there was nothing to reset.</li><li>Edit Image: Fixed validation of provided values in the edit image controls.</li><li>Edit Image: There was no information about failing to save a file.</li><li>Edit Image: It was possible to crop an area bigger than the edited image.</li><li>Edit Image: Fixed progress bar behavior.</li><li>Filter input: Clearing filter input did not result in showing all files in IE9.</li><li>Filter input: Filter should remember its state if it is still active.</li><li>Focusing elements: Focus in context menu and toolbar did not cycle.</li><li>Focusing elements: Focus was lost after resizing an image.</li><li>Focusing elements: Focus was not remembered when returning to the files pane.</li><li>Focusing elements: Pressing <kbd>Tab</kbd> should focus the first item in a component (file, folder, toolbar button), not the container.</li><li>Focusing elements: Lock focus chain within the settings panel.</li><li>Scrolling files: Scrolling on mobile devices was troublesome and sometimes did not work at all.</li><li>Scrolling files: Files were unnecessarily selected on scroll on mobile devices.</li><li>Thumbnails: Problem with thumbnails in widgets/popups when <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/api/CKFinder.Config-cfg-connectorPath"><code>connectorPath</code></a> did not include the domain.</li><li>Thumbnails: Thumbnails loaded with a significant delay for a larger number of files.</li><li>Thumbnails: Thumbnails were not refreshed in certain scenarios.</li><li>iOS/Safari: Thumbnails were not shown.</li><li>iOS/Safari: Popup sample did not work.</li><li>iOS/Safari: The configured height of the widget was ignored, instead CKFinder height depended on the number of files inside.</li><li>iOS/Safari: Downloading files did not work.</li><li>Setting global configuration did not work for widgets and popups.</li><li>There was no Close button available after file upload.</li><li>It should not be possible to move dialog windows.</li><li>Fixed various UI glitches in the RTL interface.</li><li>Video or image sometimes overlapped file preview controls in file preview.</li><li>Delete files confirmation dialog did not appear when the files pane was scrolled.</li><li>Changed the confusing empty folder message in the read-only mode.</li><li>Removed the notification about correctly uploaded file in IE9.</li><li>Resolved an issue with validating license names that started with <code>www[0-9]</code> or that contained upper case letters.</li><li>In certain scenarios not all available toolbar buttons were shown in CKFinder.</li><li>Fixed the look of the "More" drop-down in the toolbar.</li><li class="php">Empty <code>directory</code> key in the backend definition resulted in a double slash in the file URL.</li></ul>
|
||||||
|
<h3 id="localization-updates">Localization Updates</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Added: Basque, Kurdish.</li><li>Updated: Brazilian Portuguese, Chinese, Croatian, Czech, Danish, Esperanto, Estonian, French, German, Greek, Hungarian, Italian, Korean, Norwegian, Persian, Polish and Russian.</li></ul>
|
||||||
|
<h2 id="version-3-0">Version 3.0</h2>
|
||||||
|
<p>A brand new version of CKFinder, currently available only for PHP. For an overview of new features, see the <a href="http://cksource.com/blog/CKFinder-3.0-for-PHP-Released">announcement about CKFinder 3.0 for PHP</a>.</p>
|
||||||
|
<ul>
|
||||||
|
<li>New architecture based on jQuery, jQuery Mobile, Backbone, Marionette, and RequireJS.</li><li>Built-in image editor.</li><li>Customizable skins compatible with jQuery UI Themeroller.</li><li>Full responsiveness, great mobile support.</li><li>Cloud storage support (Amazon S3, Dropbox) and FTP connector.</li></ul>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>CKFinder License</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>CKFinder License Agreement, Version 4.0</h2>
|
||||||
|
|
||||||
|
<p>NOTICE:</p>
|
||||||
|
|
||||||
|
<p>PLEASE READ THIS AGREEMENT CAREFULLY BEFORE ACCEPTING IT. WHEN YOU CONFIRM THIS AGREEMENT YOU ACCEPT AND AGREE TO THE TERMS AND CONDITIONS SPECIFIED HEREIN. IF ANY PERSON OR LEGAL ENTITY USES OR INSTALLS THE SOFTWARE ON YOUR BEHALF PRIOR TO YOUR USE OF THE SOFTWARE, SUCH PERSON OR LEGAL ENTITY WILL BE DEEMED TO BE YOUR PROXY ACTING ON YOUR BEHALF AND YOU WILL BE DEEMED TO HAVE ACCEPTED ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT AS IF YOU HAD USED OR INSTALLED THE SOFTWARE. IF ANY PERSON OR LEGAL ENTITY ORDERS OR ACQUIRES THE SOFTWARE ON YOUR BEHALF, SUCH PERSON OR LEGAL ENTITY SHALL BE DEEMED AS DULY EMPOWERED TO ACCEPT THE TERMS AND CONDITIONS OF THIS AGREEMENT ON YOUR BEHALF AND YOU WILL BE DEEMED TO HAVE ACCEPTED ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT AS IF YOU HAD ORDERED OR ACQUIRED THE SOFTWARE DIRECTLY.</p>
|
||||||
|
|
||||||
|
<p>ANY PERSON OR LEGAL ENTITY WHO USES OR INSTALLS THE SOFTWARE ACTING ON YOUR BEHALF IS OBLIGED TO PROVIDE YOU ACCESS TO THE SOFTWARE NOT EARLIER THAN THE PROVIDING OF THIS AGREEMENT AND LEGAL EVIDENCE AND SHALL BE DEEMED TO BE A USER OF THE SOFTWARE BOUND BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AS LONG AS THIS PERSON OR LEGAL ENTITY RETAINS A COPY OF THE SOFTWARE.</p>
|
||||||
|
|
||||||
|
<p>This document (“Agreement”) is a legal agreement between You, either an individual or a Legal Entity, and CKSource sp. z o.o. sp.k., with its registered office in Warsaw, at ul. Zygmunta Słomińskiego 15 lok. 508, 00-195 Warsaw, Poland, NIP number 5252621537, REGON: 361766395 (“CKSource”), covering Your permissions to reproduce and distribute the Software under the License terms defined hereby.</p>
|
||||||
|
<ol>
|
||||||
|
<li><h3>Definitions</h3>
|
||||||
|
|
||||||
|
<p>“Agreement Name” shall mean the name used to reference this Agreement in any context, which is “CKSource Software License Agreement 4.0” or “CKSource License 4.0”.</p>
|
||||||
|
|
||||||
|
<p>“Software” shall mean the copyrighted material owned by CKSource, subject to the terms of this License. The Software is publicly, uniquely, and in its entirety, recognizable by a trademark name owned by CKSource (“Software Name”).</p>
|
||||||
|
|
||||||
|
<p>“Software Release” or “Release” shall mean a set of files distributed by CKSource, or anyone authorized to distribute it, that represents the Software. A Release is uniquely identified by the Software Name and a code. Such code is generally referenced as the Software version or revision number, or a combination of both.</p>
|
||||||
|
|
||||||
|
<p>“Release Date” shall mean the day that CKSource started distributing a Release.</p>
|
||||||
|
|
||||||
|
<p>“Website” shall mean a website (i) owned by You, or (ii) produced by You and to which the owner grants You the permission to act on behalf of the owner and on which You, under terms of this Agreement intend to manage its content. For the purpose of this Agreement Website shall mean (i) collection of internet or intranet pages placed in a computer server-based file archive so that is available for the public or internal viewing by the Website's visitors. A website used for SaaS distribution is not a valid Website for the purposes of this Agreement.</p>
|
||||||
|
|
||||||
|
<p>“Application” shall mean a single software component (i) owned by You, or (ii) to which the owner grants You the permission to act on behalf of the owner. For the purpose of this Agreement Application shall be (i) a set of mathematical codes, programmes, routines, and other functions that control the functioning and operation of a computer's hardware and (ii) is utilized by You, your customers or contractors based on a predefined interaction plan between end users and Software Release and for the specific business process or processes which are not directly related to managing content on the Websites.</p>
|
||||||
|
|
||||||
|
<p>“SaaS” shall mean software that is based on one set of common code and data definitions that is consumed in a one-to-many model by all contracted customers at anytime on a pay-for-use basis or as a subscription based on use metrics.</p>
|
||||||
|
|
||||||
|
<p>“Server” shall mean a network computer with one or more computer central processing units (CPU's) that operates for the exclusive purpose of hosting Production Websites or Websites.</p>
|
||||||
|
|
||||||
|
<p>“Development Activity” shall mean the act of interacting with the Software or one of its Releases, in any number of Websites owned or produced by You, with the intent of installation, customization, configuration, testing, documentation, or any other software development activity related to the Software.</p>
|
||||||
|
|
||||||
|
<p>“Developer” shall mean an Employee designated by You to perform Development Activities.</p>
|
||||||
|
|
||||||
|
<p>“Production Website” shall mean a Website with the Software installed, which already had Development Activities performed, and that has been delivered to end-users for production usage. Maintenance activities performed on Production Websites, excluding software development activities related to the Software, are not considered Development Activities.</p>
|
||||||
|
|
||||||
|
<p>“Hostname” shall mean a unique name by which a website is reachable in a network. This includes, but is not limited to, a website IP address. (For example, if a website is reachable by the Internet address “http://www.example.com/”, the Hostname is “www.example.com”.) Subdomains of a Hostname are considered different Hostnames.</p>
|
||||||
|
|
||||||
|
<p>“Employee” shall mean a person who is hired for a wage, salary, fee or payment to perform work for You. This includes the common understanding for employees and contractors.</p>
|
||||||
|
|
||||||
|
<p>“Legal Entity” shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control of that entity. For the purposes of this definition, “control” means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.</p>
|
||||||
|
|
||||||
|
<p>“Effective Date” means the date on which the Legal Evidence is made effective.</p>
|
||||||
|
|
||||||
|
<p>“You” (or “Your”) shall mean an individual or a Legal Entity exercising permissions granted by the License and accepting this Agreement.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Grant of License</h3>
|
||||||
|
<p>Subject to the terms and conditions of this Agreement, CKSource hereby grants You, in accordance to any restriction, as defined in Section 4, a non-exclusive, perpetual, irrevocable, royalty free, worldwide license (“License”) to use, reproduce, modify, and distribute a Software Release in Websites. This license does not allow You to use, reproduce, modify, sublicense and distribute a Software as embedded into single or many Applications or/and SaaS. This license does not allow You to use, reproduce, modify and distribute a Software as a software component of any of your commercial software products including those that are used by your customers to manage content on their Websites.</p>
|
||||||
|
|
||||||
|
<p>You should carefully read the following terms and conditions before using, installing, copying, or distributing the Software. Unless otherwise agreed in writing by CKSource, your use, installation, copying, or distribution of the Software indicates your acceptance of this License.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Scope of License</h3>
|
||||||
|
<p>You can use, install, copy, and distribute the Software as provided in this Agreement solely for the purpose of managing content on the Websites. You may not rent, lease, loan, sublicense, reverse engineer, decompile, disassemble, or create derivative works based on the Software, in whole or in part, nor permit anyone else to do so.</p>
|
||||||
|
|
||||||
|
<p>It is agreed that in exchange for the license set forth herein, you will pay a license fee (“License Fee”). The fee value will be specified by CKSource at the moment of the purchase.</p>
|
||||||
|
|
||||||
|
<p>All rights of any kind to the Software, which are not expressly granted by this Agreement, are entirely and exclusively reserved to and by CKSource. The Software is protected by applicable national and international laws and treaties.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>License Models and Restrictions</h3>
|
||||||
|
<p>This Agreement may be offered to You under different license options that imply specific restrictions to Your ability to enter this Agreement. Among others, the following are some of the restrictions that may apply:</p>
|
||||||
|
<ul class="sub">
|
||||||
|
<li class="sub"><span class="sub">a. </span>“Websites Limit”: assembling the Software into a maximum limited number of Websites (“Sites”). The Hostname of any or all the Sites may be specified at the moment of purchase or at any moment during the Upgrade Period. As an exception, Hostnames prefixed with “www.” are considered a single Hostname with a similar Hostname that misses that prefix only and both together count as one Website.</li>
|
||||||
|
<li class="sub"><span class="sub">b. </span>“Employees Limit”: the maximum limited number of Employees at the Effective Date. Automatic Renewals, as described in Section 12, are valid only if this limit is still valid at renewal date.</li>
|
||||||
|
<li class="sub"><span class="sub">c. </span>“Support Requests Limit”: the maximum limited number of Support Requests per each calendar month.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>Restrictions, or the absence of them, must be clearly specified in the Legal Evidence. Nonconformance with the restrictions constitutes a breach to this Agreement.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Unlicensed Copies</h3>
|
||||||
|
<p>If You did not pay the License Fee, You may use unlicensed copies of the Software for the exclusive purpose of demonstration. In this case You will be using the Software in “demo mode”. Without derogating from the forgoing, You may not use the Software in “demo mode” for any of your business purposes. The Software in “demo mode” shall only be used for evaluation purposes and may not be used or disclosed for any other purposes, including, without limitation, for external distribution. You may not remove the demo notices, if any, from the user interface of the Software nor disable the ability to display such notices nor otherwise modify the Software. Product support, if any, is not offered for the Software in “demo mode”.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Agreement Acceptance</h3>
|
||||||
|
<p>This Agreement is automatically accepted by both parties as long as You are in possession of a legal evidence (“Legal Evidence”) that the acceptance has taken place. The Legal Evidence can be represented by (i) a copy of this Agreement signed by You and CKSource or (ii) a valid Certificate of License Ownership, provided by CKSource and addressed to You. The Legal Evidence must precisely indicate this Agreement Name, the Software Name and a summary of restrictions as described in Section 4. </p>
|
||||||
|
|
||||||
|
<p>Legal Evidences for different combinations of restrictions, Sites, Applications and SaaS will not restrict each other and will not interfere in the rights granted to You by each of them.</p>
|
||||||
|
|
||||||
|
<p>Legal Evidences are not transferable to different Sites, Applications and SaaS.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Limitation on Releases</h3>
|
||||||
|
<p>This agreement is valid for all Releases of the Software with Release Dates within or before the 365 days that follow the Effective Date (“Upgrade Period”). CKSource has no obligation to provide you any Release that is not released for general distribution to other CKSource licensees. Nothing in this Agreement shall be construed to obligate CKSource to provide additional Releases to You under any circumstances.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Support</h3>
|
||||||
|
<div class="support">
|
||||||
|
<p>In accordance with Section 4, CKSource shall provide support for Developers for the period of 365 days following the Effective Date (“Support Period”). Support shall be limited to electronic messaging access. CKSource shall keep You informed, either per CKSource readiness or by following your request, including changes to it, about the rules and procedures that You must perform to enjoy support under the terms of this Agreement. Support topics shall be limited to the following (each a “Support Request”):</p>
|
||||||
|
|
||||||
|
<ul class="sub">
|
||||||
|
<li class="sub"><span class="sub">a. </span>providing information in relation to the standard Software installation & configuration procedures,</li>
|
||||||
|
<li class="sub"><span class="sub">b. </span>providing information about using Software's default features and functions,</li>
|
||||||
|
<li class="sub"><span class="sub">c. </span>providing information about contents of Software's standard documentation,</li>
|
||||||
|
<li class="sub"><span class="sub">d. </span>bug reporting.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>The number of Support Requests that CKSource is entitled to accept from You may be limited, as specified in Section 4. CKSource may refuse Support Requests that exceed these limits, if any. The decision, if one of the questions raised by You during providing support services by CKSource is a new Support Request, shall be solely made by CKSource support engineer.</p>
|
||||||
|
|
||||||
|
<p>CKSource is not in any way obliged to perform bug fixing or custom development activities as a result of a Support Request.</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>License Key</h3>
|
||||||
|
|
||||||
|
<p>Whenever applicable, following a valid License purchase, a unique license key (the “License Key”) may be provided to You, which allows Software activation. The License Key is subject to the restrictions set forth in this License and may not be disclosed or distributed in any way. The disclosure or distribution of the License Key shall constitute a breach of this License, the effect of which shall be the automatic termination and revocation of any and all rights granted herein.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Source Code</h3>
|
||||||
|
<p>The original source code (“Source Code”) of the Software may be distributed by CKSource alongside its executable version, or as an integral part of it. You may modify and compile the Source Code. The Source Code or its modified version can be copied and distributed exclusively within the scope of this license, as defined in the “License Model” terms of this license, as long as a valid license has been purchased for the distribution target. CKSource retains all rights over the Source Code and all its modified versions. Redistributions of the Source Code and modified versions of it must contain the original headers and copyright notices. Modifications to the Source Code must be explicitly and entirely identified in the Source Code files. This section of the license supersedes all modification restrictions imposed by other sections. You are not allowed to remove copyright notices nor make changes to the license validation code present in the Source Code.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>License Fee</h3>
|
||||||
|
<p>In consideration for the License granted in this Agreement during the term of this Agreement, You agreed to pay to CKSource a one-time fee (“License Fee”).</p>
|
||||||
|
|
||||||
|
<p>In consideration for the Software upgrades access and support services provided during the Upgrade Period and Support Period, You shall pay a yearly fee (“Annual Support and Upgrade Fee”).</p>
|
||||||
|
|
||||||
|
<p>The License Fee and the Annual Support and Upgrade Fee amount shall be specified by CKSource at the moment of the purchase as a single unified price.</p>
|
||||||
|
|
||||||
|
<p>The fees listed in this Agreement do not include taxes. If CKSource is required to pay any sales, use, property, excise, value added, gross receipts, withholding or other taxes levied on the Software or support under this Agreement or on Your use thereof, then such taxes shall be billed to and paid by You. This Section does not apply to taxes based on CKSource net income, franchise taxes or CKSource's employer contributions and taxes.</p>
|
||||||
|
|
||||||
|
<p>You understand that CKSource uses third-party paying agents to process selected payments. You understand that until payments are not received and verified by the paying agent, this Agreement is not valid.</p>
|
||||||
|
|
||||||
|
<p>All payments made hereunder are nonrefundable. You may not withhold or set off any amounts due under this Agreement. Failure to pay any fee when due shall constitute a material breach of this Agreement. In addition, if You fail to make any payments when due for support, upon written notice to You, CKSource shall cease providing support.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Automatic Renewal</h3>
|
||||||
|
<p>You may opt to automatically extend the expiration date for both the Upgrade Period and Support Period by successive cycles of 365 days (each one a “Renewal”). In such case, you agree to pay a fee for each Renewal at the beginning of each cycle. The annual Renewal fee shall be informed by CKSource at the moment of the purchase and optionally agreed by you.</p>
|
||||||
|
|
||||||
|
<p>If you opted to have automatic Renewals, CKSource shall send you a payment request for the Renewal fee at any moment following the first day of each Renewal period. You shall perform the full payment in 30 calendar days following the payment request.</p>
|
||||||
|
|
||||||
|
<p>Both parties can discontinue the automatic Renewals by written notification to the other party before the beginning of extension cycles.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Reservation of Rights and Ownership</h3>
|
||||||
|
<p>CKSource reserves all rights not expressly granted to You in this Agreement. The Software is protected by copyright and other intellectual property laws and treaties. CKSource owns the title, copyright, and other intellectual property rights in the Software. The Software is licensed, not sold. This Agreement does not grant you any rights to the Software's trademarks or services.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Termination</h3>
|
||||||
|
<p>Without prejudice to any other rights, this Agreement automatically terminates if You fail to comply with the terms and conditions of this Agreement. You may terminate this Agreement at any time without cause. In case of termination, in any circumstance, payments issued by You will not be reimbursed.</p>
|
||||||
|
|
||||||
|
<p>You shall immediately discontinue distribution of Website, assembled with the Software, upon expiration or termination of this Agreement.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Warranty</h3>
|
||||||
|
<p>CKSource warrants that it has full title and ownership to the Software and has the authority to grant the license hereunder. To the best of CKSource's knowledge the Software does not infringe upon the intellectual property rights of any third party and that CKSource did not receive any notice regarding any alleged infringement thereof.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Disclaimer of Warranties</h3>
|
||||||
|
<p>With the exclusion of warranties explicitly mentioned in Section 15, the Software and its related material are provided “AS IS” and without warranty of any kind. CKSource expressly disclaims all other warranties, expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Exclusion of Incidental, Consequential and Certain Other Damages</h3>
|
||||||
|
<p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL CKSOURCE BE LIABLE FOR ANY SPECIAL, INCIDENTAL, PUNITIVE, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL INJURY, FOR LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD FAITH OR OF REASONABLE CARE, FOR NEGLIGENCE, AND FOR ANY OTHER PECUNIARY OR OTHER LOSS WHATSOEVER) ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OF OR INABILITY TO USE THE SOFTWARE, THE PROVISION OF OR FAILURE TO PROVIDE SUPPORT OR OTHER SERVICES, INFORMATON, SOFTWARE, AND RELATED CONTENT THROUGH THE SOFTWARE OR OTHERWISE ARISING OUT OF THE USE OF THE SOFTWARE, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY PROVISION OF THIS AGREEMENT, EVEN IN THE EVENT OF THE FAULT, TORT (INCLUDING NEGLIGENCE), MISREPRESENTATION, STRICT LIABILITY, BREACH OF CONTRACT, AND EVEN IF THE OWNER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Limitation of Liability</h3>
|
||||||
|
<p>In no event shall CKSource's liability exceed the license fee paid, if any.</p>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li><h3>Governing Law and Venue</h3>
|
||||||
|
<p>This Agreement shall be construed and controlled by the laws of Poland, and You and CKSource further consent to exclusive jurisdiction by the courts of Poland.</p>
|
||||||
|
<p>END OF AGREEMENT TERMS</p>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>CKFinder Readme</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 id="ckfinder-3-for-php">CKFinder 3 for PHP</h1>
|
||||||
|
<p>Thank you for choosing CKFinder.</p>
|
||||||
|
<h2 id="feedback">Feedback</h2>
|
||||||
|
<p>Use <a href="https://github.com/ckfinder/ckfinder/issues">https://github.com/ckfinder/ckfinder/issues</a> to report issues in CKFinder 3 (and its documentation) or submit
|
||||||
|
feature requests.</p>
|
||||||
|
<p>If you are unsure what information to provide when reporting a bug, check <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/#!/guide/dev_feedback">https://ckeditor.com/docs/ckfinder/ckfinder3/#!/guide/dev_feedback</a></p>
|
||||||
|
<h2 id="translations">Translations</h2>
|
||||||
|
<p>In order to submit translations for CKFinder please visit <a href="https://github.com/ckfinder/ckfinder-translations">https://github.com/ckfinder/ckfinder-translations</a></p>
|
||||||
|
<h2 id="documentation">Documentation</h2>
|
||||||
|
<p>CKFinder is made from two parts: the client side part and the server side connector(s).</p>
|
||||||
|
<p>The client side part is common across all distributions (PHP, ASP.NET and Java), while
|
||||||
|
the server side parts are different for each language, that's why there are multiple documentation websites available.</p>
|
||||||
|
<h3 id="ckfinder-3-documentation-https-ckeditor-com-docs-ckfinder-ckfinder3-">CKFinder 3 Documentation - <a href="https://ckeditor.com/docs/ckfinder/ckfinder3/">https://ckeditor.com/docs/ckfinder/ckfinder3/</a></h3>
|
||||||
|
<p>This website contains documentation about the client side part of CKFinder, common for all versions of CKFinder 3
|
||||||
|
and includes information about:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Integrating CKFinder with your website or with CKEditor.</li>
|
||||||
|
<li>Client side configuration options.</li>
|
||||||
|
<li>API documentation.</li>
|
||||||
|
<li>Tutorials about creating JavaScript plugins.</li>
|
||||||
|
<li>Tutorials about creating skins.</li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="ckfinder-3-for-php-documentation-https-ckeditor-com-docs-ckfinder-ckfinder3-php-">CKFinder 3 for PHP Documentation - <a href="https://ckeditor.com/docs/ckfinder/ckfinder3-php/">https://ckeditor.com/docs/ckfinder/ckfinder3-php/</a></h3>
|
||||||
|
<p>This website contains documentation about the PHP connector for CKFinder 3 and includes information about:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Enabling the PHP connector.</li>
|
||||||
|
<li>Configuring the PHP connector.</li>
|
||||||
|
<li>Tutorials about creating PHP plugins.</li>
|
||||||
|
</ul>
|
||||||
|
<h2 id="license">License</h2>
|
||||||
|
<p>Copyright (c) 2007-2021, CKSource - Frederico Knabben. All rights reserved.</p>
|
||||||
|
<p>To purchase a license for CKFinder visit <a href="https://ckeditor.com/ckfinder/">https://ckeditor.com/ckfinder/</a></p>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2007-2019, CKSource - Frederico Knabben. All rights reserved.
|
||||||
|
For licensing, see LICENSE.html or https://ckeditor.com/sales/license/ckfinder
|
||||||
|
-->
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
|
||||||
|
<title>CKFinder 3 - File Browser</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<script src="ckfinder.js"></script>
|
||||||
|
<script>
|
||||||
|
CKFinder.start();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
Copyright (c) 2007-2019, CKSource - Frederico Knabben. All rights reserved.
|
||||||
|
For licensing, see LICENSE.html or https://ckeditor.com/sales/license/ckfinder
|
||||||
|
*/
|
||||||
|
|
||||||
|
var config = {};
|
||||||
|
|
||||||
|
// Set your configuration options below.
|
||||||
|
|
||||||
|
// Examples:
|
||||||
|
// config.language = 'pl';
|
||||||
|
// config.skin = 'jquery-mobile';
|
||||||
|
|
||||||
|
CKFinder.define( config );
|
||||||
@@ -0,0 +1,180 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* CKFinder Configuration File
|
||||||
|
*
|
||||||
|
* For the official documentation visit https://ckeditor.com/docs/ckfinder/ckfinder3-php/
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*============================ PHP Error Reporting ====================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/debugging.html
|
||||||
|
|
||||||
|
// Production
|
||||||
|
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
|
||||||
|
ini_set('display_errors', 0);
|
||||||
|
|
||||||
|
// Development
|
||||||
|
// error_reporting(E_ALL);
|
||||||
|
// ini_set('display_errors', 1);
|
||||||
|
|
||||||
|
/*============================ General Settings =======================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html
|
||||||
|
|
||||||
|
$config = array();
|
||||||
|
|
||||||
|
/*============================ Enable PHP Connector HERE ==============================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_authentication
|
||||||
|
|
||||||
|
$config['authentication'] = function () {
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*============================ License Key ============================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_licenseKey
|
||||||
|
|
||||||
|
$config['licenseName'] = '';
|
||||||
|
$config['licenseKey'] = '';
|
||||||
|
|
||||||
|
/*============================ CKFinder Internal Directory ============================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_privateDir
|
||||||
|
|
||||||
|
$config['privateDir'] = array(
|
||||||
|
'backend' => 'default',
|
||||||
|
'tags' => '.ckfinder/tags',
|
||||||
|
'logs' => '.ckfinder/logs',
|
||||||
|
'cache' => '.ckfinder/cache',
|
||||||
|
'thumbs' => '.ckfinder/cache/thumbs',
|
||||||
|
);
|
||||||
|
|
||||||
|
/*============================ Images and Thumbnails ==================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_images
|
||||||
|
|
||||||
|
$config['images'] = array(
|
||||||
|
'maxWidth' => 1600,
|
||||||
|
'maxHeight' => 1200,
|
||||||
|
'quality' => 80,
|
||||||
|
'sizes' => array(
|
||||||
|
'small' => array('width' => 480, 'height' => 320, 'quality' => 80),
|
||||||
|
'medium' => array('width' => 600, 'height' => 480, 'quality' => 80),
|
||||||
|
'large' => array('width' => 800, 'height' => 600, 'quality' => 80)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
/*=================================== Backends ========================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_backends
|
||||||
|
|
||||||
|
$config['backends'][] = array(
|
||||||
|
'name' => 'default',
|
||||||
|
'adapter' => 'local',
|
||||||
|
'baseUrl' => '/ckfinder/userfiles/',
|
||||||
|
// 'root' => '', // Can be used to explicitly set the CKFinder user files directory.
|
||||||
|
'chmodFiles' => 0777,
|
||||||
|
'chmodFolders' => 0755,
|
||||||
|
'filesystemEncoding' => 'UTF-8',
|
||||||
|
);
|
||||||
|
|
||||||
|
/*================================ Resource Types =====================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_resourceTypes
|
||||||
|
|
||||||
|
$config['defaultResourceTypes'] = '';
|
||||||
|
|
||||||
|
$config['resourceTypes'][] = array(
|
||||||
|
'name' => 'Files', // Single quotes not allowed.
|
||||||
|
'directory' => 'files',
|
||||||
|
'maxSize' => 0,
|
||||||
|
'allowedExtensions' => '7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip',
|
||||||
|
'deniedExtensions' => '',
|
||||||
|
'backend' => 'default'
|
||||||
|
);
|
||||||
|
|
||||||
|
$config['resourceTypes'][] = array(
|
||||||
|
'name' => 'Images',
|
||||||
|
'directory' => 'images',
|
||||||
|
'maxSize' => 0,
|
||||||
|
'allowedExtensions' => 'bmp,gif,jpeg,jpg,png',
|
||||||
|
'deniedExtensions' => '',
|
||||||
|
'backend' => 'default'
|
||||||
|
);
|
||||||
|
|
||||||
|
/*================================ Access Control =====================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_roleSessionVar
|
||||||
|
|
||||||
|
$config['roleSessionVar'] = 'CKFinder_UserRole';
|
||||||
|
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_accessControl
|
||||||
|
$config['accessControl'][] = array(
|
||||||
|
'role' => '*',
|
||||||
|
'resourceType' => '*',
|
||||||
|
'folder' => '/',
|
||||||
|
|
||||||
|
'FOLDER_VIEW' => true,
|
||||||
|
'FOLDER_CREATE' => true,
|
||||||
|
'FOLDER_RENAME' => true,
|
||||||
|
'FOLDER_DELETE' => true,
|
||||||
|
|
||||||
|
'FILE_VIEW' => true,
|
||||||
|
'FILE_CREATE' => true,
|
||||||
|
'FILE_RENAME' => true,
|
||||||
|
'FILE_DELETE' => true,
|
||||||
|
|
||||||
|
'IMAGE_RESIZE' => true,
|
||||||
|
'IMAGE_RESIZE_CUSTOM' => true
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/*================================ Other Settings =====================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html
|
||||||
|
|
||||||
|
$config['overwriteOnUpload'] = false;
|
||||||
|
$config['checkDoubleExtension'] = true;
|
||||||
|
$config['disallowUnsafeCharacters'] = false;
|
||||||
|
$config['secureImageUploads'] = true;
|
||||||
|
$config['checkSizeAfterScaling'] = true;
|
||||||
|
$config['htmlExtensions'] = array('html', 'htm', 'xml', 'js');
|
||||||
|
$config['hideFolders'] = array('.*', 'CVS', '__thumbs');
|
||||||
|
$config['hideFiles'] = array('.*');
|
||||||
|
$config['forceAscii'] = false;
|
||||||
|
$config['xSendfile'] = false;
|
||||||
|
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_debug
|
||||||
|
$config['debug'] = false;
|
||||||
|
|
||||||
|
/*==================================== Plugins ========================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_plugins
|
||||||
|
|
||||||
|
$config['pluginsDirectory'] = __DIR__ . '/plugins';
|
||||||
|
$config['plugins'] = array();
|
||||||
|
|
||||||
|
/*================================ Cache settings =====================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_cache
|
||||||
|
|
||||||
|
$config['cache'] = array(
|
||||||
|
'imagePreview' => 24 * 3600,
|
||||||
|
'thumbnails' => 24 * 3600 * 365,
|
||||||
|
'proxyCommand' => 0
|
||||||
|
);
|
||||||
|
|
||||||
|
/*============================ Temp Directory settings ================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_tempDirectory
|
||||||
|
|
||||||
|
$config['tempDirectory'] = sys_get_temp_dir();
|
||||||
|
|
||||||
|
/*============================ Session Cause Performance Issues =======================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_sessionWriteClose
|
||||||
|
|
||||||
|
$config['sessionWriteClose'] = true;
|
||||||
|
|
||||||
|
/*================================= CSRF protection ===================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_csrfProtection
|
||||||
|
|
||||||
|
$config['csrfProtection'] = true;
|
||||||
|
|
||||||
|
/*===================================== Headers =======================================*/
|
||||||
|
// https://ckeditor.com/docs/ckfinder/ckfinder3-php/configuration.html#configuration_options_headers
|
||||||
|
|
||||||
|
$config['headers'] = array();
|
||||||
|
|
||||||
|
/*============================== End of Configuration =================================*/
|
||||||
|
|
||||||
|
// Config must be returned - do not change it.
|
||||||
|
return $config;
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* CKFinder
|
||||||
|
* ========
|
||||||
|
* https://ckeditor.com/ckeditor-4/ckfinder/
|
||||||
|
* Copyright (c) 2007-2019, CKSource - Frederico Knabben. All rights reserved.
|
||||||
|
*
|
||||||
|
* The software, this file and its contents are subject to the CKFinder
|
||||||
|
* License. Please read the license.txt file before using, installing, copying,
|
||||||
|
* modifying or distribute this file or part of its contents. The contents of
|
||||||
|
* this file is part of the Source Code of CKFinder.
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once __DIR__ . '/vendor/autoload.php';
|
||||||
|
|
||||||
|
use CKSource\CKFinder\CKFinder;
|
||||||
|
|
||||||
|
$ckfinder = new CKFinder(__DIR__ . '/../../../config.php');
|
||||||
|
|
||||||
|
$ckfinder->run();
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// autoload.php @generated by Composer
|
||||||
|
|
||||||
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
||||||
|
return ComposerAutoloaderInitf62c5d72efa7ef951c181e85a3dd4828::getLoader();
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
## Code of Conduct
|
||||||
|
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
|
||||||
|
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
|
||||||
|
opensource-codeofconduct@amazon.com with any additional questions or comments.
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# Contributing Guidelines
|
||||||
|
|
||||||
|
Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional
|
||||||
|
documentation, we greatly value feedback and contributions from our community.
|
||||||
|
|
||||||
|
Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
|
||||||
|
information to effectively respond to your bug report or contribution.
|
||||||
|
|
||||||
|
|
||||||
|
## Reporting Bugs/Feature Requests
|
||||||
|
|
||||||
|
We welcome you to use the GitHub issue tracker to report bugs or suggest features.
|
||||||
|
|
||||||
|
When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already
|
||||||
|
reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:
|
||||||
|
|
||||||
|
* A reproducible test case or series of steps
|
||||||
|
* The version of our code being used
|
||||||
|
* Any modifications you've made relevant to the bug
|
||||||
|
* Anything unusual about your environment or deployment
|
||||||
|
|
||||||
|
|
||||||
|
## Contributing via Pull Requests
|
||||||
|
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:
|
||||||
|
|
||||||
|
1. You are working against the latest source on the *master* branch.
|
||||||
|
2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
|
||||||
|
3. You open an issue to discuss any significant work - we would hate for your time to be wasted.
|
||||||
|
|
||||||
|
To send us a pull request, please:
|
||||||
|
|
||||||
|
1. Fork the repository.
|
||||||
|
2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
|
||||||
|
3. Ensure local tests pass.
|
||||||
|
4. Commit to your fork using clear commit messages.
|
||||||
|
5. Send us a pull request, answering any default questions in the pull request interface.
|
||||||
|
6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
|
||||||
|
|
||||||
|
GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
|
||||||
|
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
|
||||||
|
|
||||||
|
|
||||||
|
## Finding contributions to work on
|
||||||
|
Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.
|
||||||
|
|
||||||
|
|
||||||
|
## Code of Conduct
|
||||||
|
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
|
||||||
|
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
|
||||||
|
opensource-codeofconduct@amazon.com with any additional questions or comments.
|
||||||
|
|
||||||
|
|
||||||
|
## Security issue notifications
|
||||||
|
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.
|
||||||
|
|
||||||
|
|
||||||
|
## Licensing
|
||||||
|
|
||||||
|
See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
|
||||||
|
|
||||||
|
We may ask you to sign a [Contributor License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) for larger changes.
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
|
||||||
|
INT_DIR=build/install
|
||||||
|
GENERATE_STUBS=$(shell expr `php --version | head -1 | cut -f 2 -d' '` \>= 7.1)
|
||||||
|
|
||||||
|
CMAKE = cmake3
|
||||||
|
ifeq (, $(shell which cmake3))
|
||||||
|
CMAKE = cmake
|
||||||
|
endif
|
||||||
|
|
||||||
|
# default to using system OpenSSL, if disabled aws-lc will be used
|
||||||
|
USE_OPENSSL ?= ON
|
||||||
|
ifneq (OFF,$(USE_OPENSSL))
|
||||||
|
CMAKE_USE_OPENSSL=-DUSE_OPENSSL=ON
|
||||||
|
# if a path was provided, add it to CMAKE_PREFIX_PATH
|
||||||
|
ifneq (ON,$(USE_OPENSSL))
|
||||||
|
CMAKE_PREFIX_PATH=-DCMAKE_PREFIX_PATH=$(USE_OPENSSL)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
CMAKE_CONFIGURE = $(CMAKE) \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=$(INT_DIR) \
|
||||||
|
-DBUILD_TESTING=OFF \
|
||||||
|
-DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) \
|
||||||
|
$(CMAKE_USE_OPENSSL) \
|
||||||
|
$(CMAKE_PREFIX_PATH)
|
||||||
|
CMAKE_BUILD = CMAKE_BUILD_PARALLEL_LEVEL='' $(CMAKE) --build
|
||||||
|
CMAKE_BUILD_TYPE ?= RelWithDebInfo
|
||||||
|
CMAKE_TARGET = --config $(CMAKE_BUILD_TYPE) --target install
|
||||||
|
|
||||||
|
all: extension
|
||||||
|
.PHONY: all extension
|
||||||
|
|
||||||
|
# configure for static aws-crt-ffi.a
|
||||||
|
build/aws-crt-ffi-static/CMakeCache.txt:
|
||||||
|
$(CMAKE_CONFIGURE) -Hcrt/aws-crt-ffi -Bbuild/aws-crt-ffi-static -DBUILD_SHARED_LIBS=OFF
|
||||||
|
|
||||||
|
# build static libaws-crt-ffi.a
|
||||||
|
build/aws-crt-ffi-static/libaws-crt-ffi.a: build/aws-crt-ffi-static/CMakeCache.txt
|
||||||
|
$(CMAKE_BUILD) build/aws-crt-ffi-static $(CMAKE_TARGET)
|
||||||
|
|
||||||
|
# PHP extension target
|
||||||
|
extension: ext/awscrt.lo
|
||||||
|
|
||||||
|
# Force the crt object target to depend on the CRT static library
|
||||||
|
ext/awscrt.lo: ext/awscrt.c
|
||||||
|
|
||||||
|
ext/awscrt.c: build/aws-crt-ffi-static/libaws-crt-ffi.a ext/api.h ext/awscrt_arginfo.h
|
||||||
|
|
||||||
|
ext/awscrt_arginfo.h: ext/awscrt.stub.php gen_stub.php
|
||||||
|
ifeq ($(GENERATE_STUBS),1)
|
||||||
|
# generate awscrt_arginfo.h
|
||||||
|
php gen_stub.php --minimal-arginfo ext/awscrt.stub.php
|
||||||
|
endif
|
||||||
|
|
||||||
|
# transform/install api.h from FFI lib
|
||||||
|
src/api.h: crt/aws-crt-ffi/src/api.h
|
||||||
|
php gen_api.php crt/aws-crt-ffi/src/api.h > src/api.h
|
||||||
|
|
||||||
|
# install api.h to ext/ as well
|
||||||
|
ext/api.h : src/api.h
|
||||||
|
cp -v src/api.h ext/api.h
|
||||||
|
|
||||||
|
ext/php_aws_crt.h: ext/awscrt_arginfo.h ext/api.h
|
||||||
|
|
||||||
|
vendor/bin/phpunit:
|
||||||
|
composer update
|
||||||
|
|
||||||
|
test-extension: vendor/bin/phpunit extension
|
||||||
|
composer run test-extension
|
||||||
|
|
||||||
|
# Use PHPUnit to run tests
|
||||||
|
test: test-extension
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
|
||||||
|
CMAKE=cmake.exe
|
||||||
|
COMPOSER_PHAR=C:\ProgramData\ComposerSetup\bin\composer.phar
|
||||||
|
PHP_BINARY=$(PHP_PREFIX)\php.exe
|
||||||
|
|
||||||
|
CMAKE_CONFIGURE = $(CMAKE) -DCMAKE_INSTALL_PREFIX=$(AWSCRT_DIR)\build\install -DCMAKE_PREFIX_PATH=$(AWSCRT_DIR)\build\install -DBUILD_TESTING=OFF -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE)
|
||||||
|
CMAKE_BUILD = $(CMAKE) --build
|
||||||
|
CMAKE_BUILD_TYPE = Release
|
||||||
|
CMAKE_TARGET = --config $(CMAKE_BUILD_TYPE) --target install
|
||||||
|
|
||||||
|
# configure for static aws-crt-ffi.lib
|
||||||
|
$(AWSCRT_DIR)\build\CMakeCache.txt:
|
||||||
|
$(CMAKE_CONFIGURE) -H$(AWSCRT_DIR)\crt\aws-crt-ffi -B$(AWSCRT_DIR)\build -DBUILD_SHARED_LIBS=OFF
|
||||||
|
|
||||||
|
# build static libaws-crt-ffi.lib
|
||||||
|
$(AWSCRT_DIR)\build\libaws-crt-ffi.lib: $(AWSCRT_DIR)\build\CMakeCache.txt
|
||||||
|
$(CMAKE_BUILD) $(AWSCRT_DIR)\build $(CMAKE_TARGET)
|
||||||
|
|
||||||
|
# Force the awscrt extension DLL target to depend on the extension src
|
||||||
|
$(BUILD_DIR)\php_awscrt.dll: $(AWSCRT_DIR)\ext\awscrt.c
|
||||||
|
|
||||||
|
$(AWSCRT_DIR)\ext\awscrt.c: $(AWSCRT_DIR)\build\libaws-crt-ffi.lib $(AWSCRT_DIR)\ext\api.h $(AWSCRT_DIR)\ext\awscrt_arginfo.h
|
||||||
|
|
||||||
|
# transform\install api.h from FFI lib
|
||||||
|
$(AWSCRT_DIR)\src\api.h: $(AWSCRT_DIR)\crt\aws-crt-ffi\src\api.h
|
||||||
|
php $(AWSCRT_DIR)\gen_api.php $(AWSCRT_DIR)\crt\aws-crt-ffi\src\api.h > $(AWSCRT_DIR)\src\api.h
|
||||||
|
|
||||||
|
# install api.h to ext/ as well
|
||||||
|
$(AWSCRT_DIR)\ext\api.h : $(AWSCRT_DIR)\src\api.h
|
||||||
|
copy $(AWSCRT_DIR)\src\api.h $(AWSCRT_DIR)\ext\api.h
|
||||||
|
|
||||||
|
# Use PHPUnit to run tests
|
||||||
|
test-awscrt: install $(AWSCRT_DIR)\src\api.h $(BUILD_DIR)\php_awscrt.dll
|
||||||
|
$(PHP_BINARY) -c $(AWSCRT_DIR)\php-win.ini $(COMPOSER_PHAR) --working-dir=$(AWSCRT_DIR) update
|
||||||
|
$(PHP_BINARY) -c $(AWSCRT_DIR)\php-win.ini $(COMPOSER_PHAR) --working-dir=$(AWSCRT_DIR) run test-win
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
# AWS Common Runtime PHP bindings
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
* PHP 5.5+ on UNIX platforms, 7.2+ on Windows
|
||||||
|
* CMake 3.x
|
||||||
|
* GCC 4.4+, clang 3.8+ on UNIX, Visual Studio 2017 build tools on Windows
|
||||||
|
* Tests require [Composer](https://getcomposer.org)
|
||||||
|
|
||||||
|
## Building on UNIX
|
||||||
|
```sh
|
||||||
|
$ git clone --recursive https://github.com/awslabs/aws-crt-php.git
|
||||||
|
$ cd aws-crt-php
|
||||||
|
$ phpize
|
||||||
|
$ ./configure
|
||||||
|
$ make && make test
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building on Windows
|
||||||
|
* First, ensure that you are able to build PHP on windows via the PHP SDK (this example assumes installation of the SDK to C:\php-sdk and that you've checked out the PHP source to php-src within the build directory). The following resources are helpful to get PHP building on windows:
|
||||||
|
* https://github.com/microsoft/php-sdk-binary-tools
|
||||||
|
* https://medium.com/@erinus/how-to-build-php-on-windows-a7ad0a87862a
|
||||||
|
* https://medium.com/@erinus/how-to-build-php-extension-on-windows-d1667290f809
|
||||||
|
|
||||||
|
```bat
|
||||||
|
""" From VS2017 Command Prompt
|
||||||
|
> C:\php-sdk\phpsdk-vc15-x64.bat
|
||||||
|
|
||||||
|
C:\php-sdk\
|
||||||
|
$ phpsdk_buildtree php-<version>
|
||||||
|
|
||||||
|
C:\php-sdk\php-<version>\vc15\x64\
|
||||||
|
$ git clone https://github.com/php/php-src.git && cd php-src
|
||||||
|
|
||||||
|
""" This only has to be done once, the first time you set this all up
|
||||||
|
C:\php-sdk\php-<version>\vc15\x64\php-src
|
||||||
|
$ phpsdk_deps --update --branch <php-major.minor-version>
|
||||||
|
|
||||||
|
C:\php-sdk\php-<version>\vc15\x64\php-src
|
||||||
|
$ git clone --recursive https://github.com/awslabs/aws-crt-php.git ..\pecl\awscrt
|
||||||
|
|
||||||
|
C:\php-sdk\php-<version>\vc15\x64\php-src
|
||||||
|
$ buildconf
|
||||||
|
|
||||||
|
C:\php-sdk\php-<version>\vc15\x64\php-src
|
||||||
|
$ configure --enable-cli --with-openssl --enable-awscrt=shared
|
||||||
|
|
||||||
|
C:\php-sdk\php-<version>\vc15\x64\php-src
|
||||||
|
$ nmake
|
||||||
|
|
||||||
|
C:\php-sdk\php-<version>\vc15\x64\php-src
|
||||||
|
$ nmake test-awscrt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Debugging
|
||||||
|
Using [PHPBrew](https://github.com/phpbrew/phpbrew) to build/manage multiple versions of PHP is helpful.
|
||||||
|
|
||||||
|
Note: You must use a debug build of PHP to debug native extensions.
|
||||||
|
See the [PHP Internals Book](https://www.phpinternalsbook.com/php7/build_system/building_php.html) for more info
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# PHP 8 example
|
||||||
|
$ phpbrew install --stdout -j 8 8.0 +default -- CFLAGS=-Wno-error --disable-cgi --enable-debug
|
||||||
|
# PHP 5.5 example
|
||||||
|
$ phpbrew install --stdout -j 8 5.5 +default -openssl -mbstring -- CFLAGS="-w -Wno-error" --enable-debug --with-zlib=/usr/local/opt/zlib
|
||||||
|
$ phpbrew switch php-8.0.6 # or whatever version is current, it'll be at the end of the build output
|
||||||
|
$ phpize
|
||||||
|
$ ./configure
|
||||||
|
$ make CMAKE_BUILD_TYPE=Debug
|
||||||
|
```
|
||||||
|
|
||||||
|
Ensure that the php you launch from your debugger is the result of `which php`, not just
|
||||||
|
the system default php.
|
||||||
|
|
||||||
|
## Security
|
||||||
|
|
||||||
|
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the Apache-2.0 License.
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"name": "aws-crt-php",
|
||||||
|
"hosts": {
|
||||||
|
"ubuntu": {
|
||||||
|
"pkg_setup": [
|
||||||
|
"add-apt-repository -y ppa:ondrej/php"
|
||||||
|
],
|
||||||
|
"packages": [
|
||||||
|
"autotools-dev",
|
||||||
|
"autoconf",
|
||||||
|
"libtool",
|
||||||
|
"clang",
|
||||||
|
"php5.6-dev"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"al2": {
|
||||||
|
"packages": [
|
||||||
|
"autoconf",
|
||||||
|
"automake",
|
||||||
|
"libtool",
|
||||||
|
"clang",
|
||||||
|
"php-devel"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"build_steps": [
|
||||||
|
["phpize"],
|
||||||
|
["./configure"],
|
||||||
|
["make"]
|
||||||
|
],
|
||||||
|
"test_env": {
|
||||||
|
"NO_INTERACTION": "1"
|
||||||
|
},
|
||||||
|
"test_steps": [
|
||||||
|
["./run_tests"]
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "aws/aws-crt-php",
|
||||||
|
"homepage": "http://aws.amazon.com/sdkforphp",
|
||||||
|
"description": "AWS Common Runtime for PHP",
|
||||||
|
"keywords": ["aws","amazon","sdk","crt"],
|
||||||
|
"type": "library",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "AWS SDK Common Runtime Team",
|
||||||
|
"email": "aws-sdk-common-runtime@amazon.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"config": {
|
||||||
|
"platform": {"php": "5.6"}
|
||||||
|
},
|
||||||
|
"minimum-stability": "alpha",
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.5"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit":"^4.8.35|^5.4.3"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "./run_tests",
|
||||||
|
"test-extension": "@test",
|
||||||
|
"test-win": "run_tests"
|
||||||
|
},
|
||||||
|
"license": "Apache-2.0"
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
dnl
|
||||||
|
dnl * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
|
dnl * SPDX-License-Identifier: Apache-2.0.
|
||||||
|
dnl
|
||||||
|
|
||||||
|
PHP_ARG_WITH(awscrt, for AWS Common Runtime support,
|
||||||
|
[ --with-awscrt Include awscrt support])
|
||||||
|
|
||||||
|
if test "$PHP_AWSCRT" != "no"; then
|
||||||
|
# force lib paths to be absolute, or PHP will mangle them
|
||||||
|
cwd=`pwd`
|
||||||
|
# Enable s2n and libcrypto for non-darwin UNIX
|
||||||
|
if uname -a | grep -i darwin > /dev/null 2>&1; then
|
||||||
|
platform_tls_libs=""
|
||||||
|
else
|
||||||
|
platform_tls_libs="-ls2n -lcrypto"
|
||||||
|
fi
|
||||||
|
CRT_LIBPATHS="-L${cwd}/build/install/lib -L${cwd}/build/install/lib64"
|
||||||
|
CRT_LIBS="-laws-crt-ffi -laws-c-auth -laws-c-http -laws-c-io -laws-c-cal -laws-c-compression -laws-checksums -laws-c-common ${platform_tls_libs}"
|
||||||
|
PHP_ADD_INCLUDE(${cwd}/build/install/include)
|
||||||
|
PHP_EVAL_LIBLINE([$CRT_LIBPATHS $CRT_LIBS], AWSCRT_SHARED_LIBADD)
|
||||||
|
|
||||||
|
# Shoves the linker line into the Makefile
|
||||||
|
PHP_SUBST(AWSCRT_SHARED_LIBADD)
|
||||||
|
|
||||||
|
# Sources for the PHP extension itself
|
||||||
|
AWSCRT_SOURCES=ext/awscrt.c
|
||||||
|
PHP_NEW_EXTENSION(awscrt, $AWSCRT_SOURCES, $ext_shared)
|
||||||
|
PHP_ADD_MAKEFILE_FRAGMENT
|
||||||
|
fi
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
// vim:ft=javascript
|
||||||
|
|
||||||
|
ARG_ENABLE("awscrt", "Include AWS Common Runtime support", "yes");
|
||||||
|
|
||||||
|
if (PHP_AWSCRT != "no") {
|
||||||
|
ADD_MAKEFILE_FRAGMENT();
|
||||||
|
DEFINE('CFLAGS_AWSCRT', '/I ' + configure_module_dirname + '\\build\\install\\include');
|
||||||
|
DEFINE('LIBS_AWSCRT', '/LIBPATH:' + configure_module_dirname + '\\build\\install\\lib ' +
|
||||||
|
'aws-crt-ffi.lib aws-c-auth.lib aws-c-http.lib aws-c-io.lib aws-c-cal.lib aws-c-compression.lib aws-c-common.lib ' +
|
||||||
|
'ncrypt.lib Secur32.lib Crypt32.lib Shlwapi.lib');
|
||||||
|
DEFINE('AWSCRT_DIR', configure_module_dirname);
|
||||||
|
EXTENSION("awscrt", "ext\\awscrt.c", PHP_AWSCRT_SHARED);
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: Apache-2.0.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* This is a unity-build style source file, as PHP's build system is simplest with 1 source file per extension */
|
||||||
|
|
||||||
|
#include "credentials.c"
|
||||||
|
#include "crt.c"
|
||||||
|
#include "event_loop.c"
|
||||||
|
#include "http.c"
|
||||||
|
#include "signing.c"
|
||||||
|
#include "stream.c"
|
||||||
|
// #include "hash.c"
|
||||||
|
#include "crc.c"
|
||||||
|
#include "logging.c"
|
||||||
|
#include "php_util.c"
|
||||||
+88
@@ -0,0 +1,88 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @generate-class-entries
|
||||||
|
* @generate-function-entries
|
||||||
|
*/
|
||||||
|
|
||||||
|
function aws_crt_last_error(): int {}
|
||||||
|
function aws_crt_error_name(int $error_code): string {}
|
||||||
|
function aws_crt_error_str(int $error_code): string {}
|
||||||
|
function aws_crt_error_debug_str(int $error_code): string {}
|
||||||
|
|
||||||
|
function aws_crt_log_to_stdout(): void {}
|
||||||
|
function aws_crt_log_to_stderr(): void {}
|
||||||
|
function aws_crt_log_to_file(string $filename): void {}
|
||||||
|
function aws_crt_log_to_stream(object $stream): void {}
|
||||||
|
function aws_crt_log_stop(): void {}
|
||||||
|
function aws_crt_log_set_level(int $level): void {}
|
||||||
|
function aws_crt_log_message(string $message): void {}
|
||||||
|
|
||||||
|
function aws_crt_event_loop_group_options_new(): int {}
|
||||||
|
function aws_crt_event_loop_group_options_release(int $elg_options): void {}
|
||||||
|
function aws_crt_event_loop_group_options_set_max_threads(int $elg_options, int $max_threads): void {}
|
||||||
|
function aws_crt_event_loop_group_new(object $options): object {}
|
||||||
|
function aws_crt_event_loop_group_release(object $event_loop_group): void {}
|
||||||
|
|
||||||
|
function aws_crt_input_stream_options_new(): object {}
|
||||||
|
function aws_crt_input_stream_options_release(object $options): void {}
|
||||||
|
function aws_crt_input_stream_options_set_user_data(object $options, object $user_data): void {}
|
||||||
|
function aws_crt_input_stream_new(object $options): object {}
|
||||||
|
function aws_crt_input_stream_release(int $stream): void {}
|
||||||
|
function aws_crt_input_stream_seek(int $stream, int $offset, int $basis): int {}
|
||||||
|
function aws_crt_input_stream_read(int $stream, int $length): string {}
|
||||||
|
function aws_crt_input_stream_eof(int $stream): bool {}
|
||||||
|
function aws_crt_input_stream_get_length(int $stream): int {}
|
||||||
|
|
||||||
|
function aws_crt_http_message_new_from_blob(string $blob): int {}
|
||||||
|
function aws_crt_http_message_to_blob(int $message): string {}
|
||||||
|
function aws_crt_http_message_release(int $message): void {}
|
||||||
|
|
||||||
|
function aws_crt_credentials_options_new(): object {}
|
||||||
|
function aws_crt_credentials_options_release(object $options): void {}
|
||||||
|
function aws_crt_credentials_options_set_access_key_id(object $options, string $access_key_id): void {}
|
||||||
|
function aws_crt_credentials_options_set_secret_access_key(object $options, string $secret_access_key): void {}
|
||||||
|
function aws_crt_credentials_options_set_session_token(object $options, string $session_token): void {}
|
||||||
|
function aws_crt_credentials_options_set_expiration_timepoint_seconds(object $options, int $expiration_timepoint_seconds): void {}
|
||||||
|
|
||||||
|
function aws_crt_credentials_new(object $options): object {}
|
||||||
|
function aws_crt_credentials_release(object $credentials): void {}
|
||||||
|
|
||||||
|
function aws_crt_credentials_provider_release(int $credentials): void {}
|
||||||
|
|
||||||
|
function aws_crt_credentials_provider_static_options_new(): object {}
|
||||||
|
function aws_crt_credentials_provider_static_options_release(object $options): void {}
|
||||||
|
function aws_crt_credentials_provider_static_options_set_access_key_id(object $options, string $access_key_id): void {}
|
||||||
|
function aws_crt_credentials_provider_static_options_set_secret_access_key(object $options, string $secret_access_key): void {}
|
||||||
|
function aws_crt_credentials_provider_static_options_set_session_token(object $options, string $session_token): void {}
|
||||||
|
function aws_crt_credentials_provider_static_new(object $options): object {}
|
||||||
|
|
||||||
|
function aws_crt_signing_config_aws_new(): int {}
|
||||||
|
function aws_crt_signing_config_aws_release(int $config): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_algorithm(int $config, int $algorithm): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_signature_type(int $config, int $signature_type): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_credentials_provider(int $config, int $credentials_provider): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_region(int $config, string $region): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_service(int $config, string $service): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_use_double_uri_encode(int $config, bool $use_double_uri_encode): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_should_normalize_uri_path(int $config, bool $should_normalize_uri_path): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_omit_session_token(int $config, bool $omit_session_token): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_signed_body_value(int $config, string $signed_body_value): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_signed_body_header_type(int $config, int $signed_body_header_type): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_expiration_in_seconds(int $config, int $expiration_in_seconds): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_date(int $config, int $timestamp): void {}
|
||||||
|
function aws_crt_signing_config_aws_set_should_sign_header_fn(int $config, object $should_sign_header): void {}
|
||||||
|
|
||||||
|
function aws_crt_signable_new_from_http_request(int $http_message): int {}
|
||||||
|
function aws_crt_signable_new_from_chunk(int $input_stream, string $previous_signature): int {}
|
||||||
|
function aws_crt_signable_new_from_canonical_request(string $request): int {}
|
||||||
|
function aws_crt_signable_release(int $signable): void {}
|
||||||
|
|
||||||
|
function aws_crt_signing_result_release(int $signing_result): void {}
|
||||||
|
function aws_crt_signing_result_apply_to_http_request(object $signing_result, object $http_request): void {}
|
||||||
|
|
||||||
|
function aws_crt_sign_request_aws(int $signable, int $signing_config, object $on_complete, object $user_data): int {}
|
||||||
|
function aws_crt_test_verify_sigv4a_signing(int $signable, int $signing_config, string $expected_canonical_request, string $signature, string $ecc_key_pub_x, string $ecc_key_pub_y): bool {}
|
||||||
|
|
||||||
|
function aws_crt_crc32(string $input, int $prev): int {}
|
||||||
|
function aws_crt_crc32c(string $input, int $prev): int {}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user