Skip to content

Commit

Permalink
Ajout pagination logs
Browse files Browse the repository at this point in the history
  • Loading branch information
Chocobozzz committed Mar 15, 2014
1 parent 766e9b2 commit 9b346ca
Show file tree
Hide file tree
Showing 9 changed files with 1,123 additions and 95 deletions.
72 changes: 45 additions & 27 deletions ajax.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ function datefromsql($date) {

// Selection des données
if(isset($_POST['select'])){

// User pouvant se connecter au VPN
if($_POST['select'] == "user"){
$req = $bdd->prepare('SELECT * FROM user');
Expand All @@ -42,37 +43,54 @@ function datefromsql($date) {
}
// Log du VPN
else if($_POST['select'] == "log"){
$req = $bdd->prepare('SELECT * FROM log');
// Création du LIMIT de la requête SQL en fonction de la page
if(isset($_POST['pageIndex'], $_POST['pageSize'])) {
$page_actuelle = ($_POST['pageIndex']-1) * $_POST['pageSize'];
$page_max = $_POST['pageSize'];
$page = " LIMIT " . $page_actuelle . ", " . $page_max;
}
else {
$page = "";
}

// Sélection des logs
$string_requete = 'SELECT * FROM log ORDER BY log_id DESC' . $page;
$req = $bdd->prepare($string_requete);
$req->execute();

if($data = $req->fetch()) {
do{
// C'est mieux exprimé en Mo ou Ko
$received = ($data['log_received'] > 100000) ? $data['log_received']/100000 . " Mo" : $data['log_received']/100 . " Ko";
$sent = ($data['log_send'] > 100000) ? $data['log_send']/100000 . " Mo" : $data['log_send']/100 . " Ko";
$start_time_array = explode(' ', $data['log_start_time']);
$start_time = datefromsql($start_time_array[0]) . ' ' . $start_time_array[1];
$end_time_array = explode(' ', $data['log_end_time']);
$end_time = datefromsql($end_time_array[0]) . ' ' . $end_time_array[1];

$list[] = array("log_id" => $data['log_id'],
"user_id" => $data['user_id'],
"log_trusted_ip" => $data['log_trusted_ip'],
"log_trusted_port" => $data['log_trusted_port'],
"log_remote_ip" => $data['log_remote_ip'],
"log_remote_port" => $data['log_remote_port'],
"log_start_time" => $start_time,
"log_end_time" => $end_time,
"log_received" => $received,
"log_send" => $sent);
} while($data = $req->fetch());
$list = array();

while($data = $req->fetch()) {
// C'est mieux exprimé en Mo ou Ko
$received = ($data['log_received'] > 100000) ? $data['log_received']/100000 . " Mo" : $data['log_received']/100 . " Ko";
$sent = ($data['log_send'] > 100000) ? $data['log_send']/100000 . " Mo" : $data['log_send']/100 . " Ko";
$start_time_array = explode(' ', $data['log_start_time']);
$start_time = datefromsql($start_time_array[0]) . ' ' . $start_time_array[1];
$end_time_array = explode(' ', $data['log_end_time']);
$end_time = datefromsql($end_time_array[0]) . ' ' . $end_time_array[1];

echo json_encode($list);
}
else{
$list = array();
echo json_encode($list);
// On ajoute à notre tableau la nouvelle ligne de log
array_push($list, array("log_id" => $data['log_id'],
"user_id" => $data['user_id'],
"log_trusted_ip" => $data['log_trusted_ip'],
"log_trusted_port" => $data['log_trusted_port'],
"log_remote_ip" => $data['log_remote_ip'],
"log_remote_port" => $data['log_remote_port'],
"log_start_time" => $start_time,
"log_end_time" => $end_time,
"log_received" => $received,
"log_send" => $sent));
}

// Récupération du nombre lignes de log
$req_nb = $bdd->prepare('SELECT COUNT(*) AS nb FROM log');
$req_nb->execute();
$data_nb = $req_nb->fetch()['nb'];

// On affiche la réponse JSON
$result = array('Total' => $data_nb, 'Rows' => json_encode($list));

echo json_encode($result);
}
// Affichage des personnes pouvant se connecter à l'interface d'administration
else if($_POST['select'] == "admin"){
Expand Down
201 changes: 201 additions & 0 deletions css/dropkick.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
/**
* Default DropKick theme
*
* Feel free to edit the default theme
* or even add your own.
*
* See the readme for themeing help
*
*/

/***** Begin Theme, feel free to edit in here! ******/

/* One container to bind them... */
.dk_container {
background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f5f5f5));
background: -moz-linear-gradient(top, #fff, #f5f5f5);
background: -o-linear-gradient(top, #fff, #f5f5f5);
background-color: #f5f5f5;
font-family: 'Helvetica', Arial, sans-serif;
font-size: 12px;
font-weight: bold;
line-height: 14px;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.dk_container:focus {
outline: 0;
}
.dk_container a {
cursor: pointer;
text-decoration: none;
}

/* Opens the dropdown and holds the menu label */
.dk_toggle {
/**
* Help: Arrow image not appearing
* Try updating this property to your correct dk_arrows.png path
*/
background-image: url('../images/dk_arrows.png');
background-repeat: no-repeat;
background-position: 90% center;
border: 1px solid #ccc;
color: #333;
margin-top: 2px;
margin-left: 2px;
padding: 4px 2px 2px 4px;
text-shadow: #fff 1px 1px 0;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-webkit-transition: border-color .5s;
-moz-transition: border-color .5s;
-o-transition: border-color .5s;
transition: border-color .5s;
}
.dk_toggle:hover {
border-color: #8c8c8c;
}
/* Applied when the dropdown is focused */
.dk_focus .dk_toggle {
border-color: #40b5e2;
}
.dk_focus .dk_toggle {
box-shadow: 0 0 5px #40b5e2;
-moz-box-shadow: 0 0 5px #40b5e2;
-webkit-box-shadow: 0 0 5px #40b5e2;
}

/* Applied whenever the dropdown is open */
.dk_open {
box-shadow: 0 0 5px #40b5e2;
-moz-box-shadow: 0 0 5px #40b5e2;
-webkit-box-shadow: 0 0 5px #40b5e2;
/**
* Help: Dropdown menu is covered by something
* Try setting this value higher
*/
z-index: 10;
}
.dk_open .dk_toggle {
background-color: #ececec;
border-color: #8c8c8c;
color: #ccc;
box-shadow: inset 0 -2px 5px #ccc;
border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
-webkit-border-radius: 5px 5px 0 0;
}

/* The outer container of the options */
.dk_options {
box-shadow: rgba(0, 0, 0, .2) 0 2px 8px;
-moz-box-shadow: rgba(0, 0, 0, .2) 0 2px 8px;
-webkit-box-shadow: rgba(0, 0, 0, .2) 0 2px 8px;
border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px;
}
.dk_options a {
background-color: #fff;
border-bottom: 1px solid #999;
font-weight: bold;
padding: 8px 10px;
}
.dk_options li:last-child a {
border-bottom: none;
}
.dk_options a:hover,
.dk_option_current a {
background-color: #0084c7;
border-bottom-color: #004c72;
color: #fff;
text-decoration: none;
text-shadow: rgba(0, 0, 0, .5) 0 1px 0;
}

/* Inner container for options, this is what makes the scrollbar possible. */
.dk_options_inner {
border: 1px solid #8c8c8e;
border-bottom-width: 2px;
border-bottom-color: #999;
color: #333;
max-height: 250px;
text-shadow: #fff 0 1px 0;
border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px;
}

/* Set a max-height on the options inner */
.dk_options_inner,
.dk_touch .dk_options {
max-height: 250px;
}

/****** End Theme ******/

/***** Critical to the continued enjoyment of working dropdowns ******/

.dk_container {
display: none;
float: left;
position: relative;
}
.dk_container a {
outline: 0;
}

.dk_toggle {
display: -moz-inline-stack;
display: inline-block;
*display: inline;
position: relative;
zoom: 1;
}

.dk_open {
position: relative;
}
.dk_open .dk_options {
display: block;
}
.dk_open .dk_label {
color: inherit;
}

.dk_options {
display: none;
margin-top: -1px;
position: absolute;
right: 0;
width: 100%;
}
.dk_options a,
.dk_options a:link,
.dk_options a:visited {
display: block;
}
.dk_options_inner {
overflow: auto;
position: relative;
}

.dk_touch .dk_options {
overflow: hidden;
}

.dk_touch .dk_options_inner {
max-height: none;
overflow: visible;
}

.dk_fouc select {
position: relative;
top: -99999em;
visibility: hidden;
}

/***** End Critical to the continued enjoyment of working dropdowns ******/
Loading

0 comments on commit 9b346ca

Please sign in to comment.