ticket 54: LDC MEssage

- ajout d'onglets pour trier les messages par status
This commit is contained in:
Jérémy Munsch 2021-04-20 16:50:42 +02:00
parent acd8fe0488
commit ef56ddff49
2 changed files with 69 additions and 6 deletions

View file

@ -392,10 +392,11 @@ function outputMessageToPDF($ref, $date, $htmlMessageString)
* @param int $page Le numéro de la page
* @param int $limit LE nombre maximal d'éléments dans une page
* @param string $search Le texte a rechercher sur un des champs
* @param int $status Recherche avec un statut, $search ne doit pas être à false
*
* @return object
*/
function getMessages($page, $limit = 8, $search = false)
function getMessages($page, $limit = 8, $search = false, $status = null)
{
global $wpdb;
@ -429,7 +430,6 @@ function getMessages($page, $limit = 8, $search = false)
}
}
// status
if (strpos(
strtolower(remove_accents('traité')),
@ -444,6 +444,11 @@ function getMessages($page, $limit = 8, $search = false)
}
$query .= ')';
} else {
// status
if ($status) {
$query .= " AND status = $status";
}
}
$total = $wpdb->get_results(
@ -488,13 +493,19 @@ function init()
$search = ($_SERVER['REQUEST_METHOD'] === 'POST' and isset($_POST['search'])) ?
sanitize_text_field($_POST['search']) : false;
$currentPage = isset($_GET['p']) ? intval($_GET['p']) : 1;
$messages = getMessages($currentPage, $messagesByPage, $search);
$currentPage = isset($_GET['p']) ? intval(sanitize_text_field($_GET['p'])) : 1;
$status = isset($_GET['s']) ? intval((bool)sanitize_text_field($_GET['s'])) : null;
$messages = getMessages($currentPage, $messagesByPage, $search, $status);
$page = '<div class="wrap">';
$page .= '<h1 class="wp-heading-inline">Gestion des messages - LDC</h1>';
$page .= "<form class='ldc_messages_search' method='POST' action='/wp-admin/admin.php?page=ldc-messages'>";
$page .= "<div>";
$page .= "<a href='/wp-admin/admin.php?page=ldc-messages&p=$currentPage' class='ldc_messages_btn'>Tout</a>";
$page .= "<a href='/wp-admin/admin.php?page=ldc-messages&p=$currentPage&s=0' class='ldc_messages_btn ldc_messages_bg_red'>À traiter</a>";
$page .= "<a href='/wp-admin/admin.php?page=ldc-messages&p=$currentPage&s=1' class='ldc_messages_btn ldc_messages_bg_green'>Traité</a>";
$page .= "</div>";
$page .= '<input type="text" name="search" style="min-width: 28rem;" placeholder="Recherche selon de multiples critères" required/>';
$page .= "<button type='submit'>Rechercher</button>";
$page .= "</form>";
@ -560,9 +571,12 @@ function init()
$page .= "</table>";
$genLink = function ($page, $text = null) use ($currentPage) {
$genLink = function ($page, $text = null) use ($currentPage, $status) {
$class = $currentPage === $page ? "class='active'" : "";
$link = "/wp-admin/admin.php?page=ldc-messages&p=$page";
if ($status !== null) {
$link .= "&s=$status";
}
return "<a href='$link' $class>" . ($text ?? $page) . "</a>";
};
@ -595,6 +609,7 @@ function init()
$page .= $messages->lastPage != $messages->currentPage ?
$genLink($messages->lastPage, 'Fin') : '<span>Fin</span>';
}
$page .= "&nbsp;<div>Total messages&nbsp;: $messages->total</div>";
$page .= "</div>";
}

View file

@ -19,13 +19,61 @@
}
.ldc_messages_red {
color: red;
color: red;
}
.ldc_messages_green {
color: green;
}
.ldc_messages_bg_red {
background-color: red !important;
}
.ldc_messages_bg_green {
background-color: green !important;
}
.ldc_messages_btn {
border-radius: 4px;
display: inline;
border: none;
padding: 0.6rem 3rem;
margin: 0;
text-decoration: none;
background: #333;
color: #ffffff;
font-family: sans-serif;
font-size: 1rem;
cursor: pointer;
text-align: center;
transition: background 250ms ease-in-out,
transform 150ms ease;
-webkit-appearance: none;
-moz-appearance: none;
margin: 0.2rem;
}
.ldc_messages_btn:disabled,
.ldc_messages_btn[disabled] {
color: #AAA;
}
.ldc_messages_btn:hover,
.ldc_messages_btn:focus {
color: #ddd;
background: #222;
}
.ldc_messages_btn:focus {
outline: 1px solid #fff;
outline-offset: -4px;
}
.ldc_messages_btn:active {
transform: scale(0.99);
}
#reponse-msg {
width:700px;
}