diff --git a/resources/templates/footer.php b/resources/templates/footer.php index a363d91a2..2eed25a8d 100644 --- a/resources/templates/footer.php +++ b/resources/templates/footer.php @@ -30,7 +30,7 @@ "; } diff --git a/resources/templates/header.php b/resources/templates/header.php index 655c8df03..5744ffad5 100644 --- a/resources/templates/header.php +++ b/resources/templates/header.php @@ -137,25 +137,21 @@
"; + $messages = UnityHTTPD::getMessages(); + if (count($messages) >= 3) { + echo ""; + } + foreach ($messages as [$title, $body, $level]) { echo sprintf( "

%s

%s

@@ -169,6 +165,7 @@ base64_encode($body), ); } + echo "
"; if ( isset($_SESSION["is_admin"]) && $_SESSION["is_admin"] diff --git a/webroot/css/messages.css b/webroot/css/messages.css index 250653a38..2ffd663c2 100644 --- a/webroot/css/messages.css +++ b/webroot/css/messages.css @@ -1,14 +1,19 @@ +#messages { + display: flex; + flex-direction: column; +} + +#clear_all_messages_button { + align-self: end; + margin-bottom: 20px; +} + .message { border-radius: 10px; padding: 10px 40px 10px 40px; /* needed for button position: absolute */ position: relative; text-align: center; - /* width: fit-content; */ - /* subtract padding from indented width */ - width: 90% - 80px; - margin-left: auto; - margin-right: auto; margin-bottom: 20px; word-wrap: break-word; } diff --git a/webroot/js/messages.js b/webroot/js/messages.js new file mode 100644 index 000000000..b802e2e24 --- /dev/null +++ b/webroot/js/messages.js @@ -0,0 +1,31 @@ +function hideClearAllMessagesButtonIfAllMessagesAlreadyCleared() { + var visibleMessages = $('#messages .message:visible').length; + if (visibleMessages === 0) { + $('#clear_all_messages_button').hide(); + } +} + +$(document).ready(function () { + $('#messages').on('click', '.message button', function () { + var button = $(this); + var message = button.parent(); + message.hide(); + $.ajax({ + url: '/panel/ajax/delete_message.php', + method: 'POST', + data: { + 'level': button.data('level'), + 'title': button.data('title'), + 'body': button.data('body') + }, + error: function (result) { + $("#messages").append(result.responseText); + } + }); + hideClearAllMessagesButtonIfAllMessagesAlreadyCleared(); + }); + + $('#clear_all_messages_button').on('click', function () { + $('#messages .message button').click(); + }); +});