Skip to content

Commit 36a072b

Browse files
authored
add button to clear all messages (#418)
1 parent 55a7eb5 commit 36a072b

File tree

4 files changed

+52
-19
lines changed

4 files changed

+52
-19
lines changed

resources/templates/footer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
</body>
3232
<?php
33-
foreach (["filter", "sort", "global", "tables"] as $x) {
33+
foreach (["filter", "sort", "global", "tables", "messages"] as $x) {
3434
$url = getURL("js/$x.js");
3535
echo "<script src='$url'></script>";
3636
}

resources/templates/header.php

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -137,25 +137,21 @@
137137
<main>
138138

139139
<?php
140-
foreach (UnityHTTPD::getMessages() as [$title, $body, $level]) {
140+
echo "<div id='messages'>";
141+
$messages = UnityHTTPD::getMessages();
142+
if (count($messages) >= 3) {
143+
echo "<button id='clear_all_messages_button'>Clear All Messages</button>";
144+
}
145+
foreach ($messages as [$title, $body, $level]) {
141146
echo sprintf(
142147
"
143148
<div class='message %s'>
144149
<h3>%s</h3>
145150
<p>%s</p>
146151
<button
147-
onclick=\"
148-
this.parentElement.style.display='none';
149-
$.ajax({
150-
url: '/panel/ajax/delete_message.php',
151-
method: 'POST',
152-
data: {
153-
'level': '%s',
154-
'title': '%s',
155-
'body': '%s',
156-
}
157-
});
158-
\"
152+
data-level='%s'
153+
data-title='%s'
154+
data-body='%s'
159155
>
160156
×
161157
</button>
@@ -169,6 +165,7 @@
169165
base64_encode($body),
170166
);
171167
}
168+
echo "</div>";
172169
if (
173170
isset($_SESSION["is_admin"])
174171
&& $_SESSION["is_admin"]

webroot/css/messages.css

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
1+
#messages {
2+
display: flex;
3+
flex-direction: column;
4+
}
5+
6+
#clear_all_messages_button {
7+
align-self: end;
8+
margin-bottom: 20px;
9+
}
10+
111
.message {
212
border-radius: 10px;
313
padding: 10px 40px 10px 40px;
414
/* needed for button position: absolute */
515
position: relative;
616
text-align: center;
7-
/* width: fit-content; */
8-
/* subtract padding from indented width */
9-
width: 90% - 80px;
10-
margin-left: auto;
11-
margin-right: auto;
1217
margin-bottom: 20px;
1318
word-wrap: break-word;
1419
}

webroot/js/messages.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
function hideClearAllMessagesButtonIfAllMessagesAlreadyCleared() {
2+
var visibleMessages = $('#messages .message:visible').length;
3+
if (visibleMessages === 0) {
4+
$('#clear_all_messages_button').hide();
5+
}
6+
}
7+
8+
$(document).ready(function () {
9+
$('#messages').on('click', '.message button', function () {
10+
var button = $(this);
11+
var message = button.parent();
12+
message.hide();
13+
$.ajax({
14+
url: '/panel/ajax/delete_message.php',
15+
method: 'POST',
16+
data: {
17+
'level': button.data('level'),
18+
'title': button.data('title'),
19+
'body': button.data('body')
20+
},
21+
error: function (result) {
22+
$("#messages").append(result.responseText);
23+
}
24+
});
25+
hideClearAllMessagesButtonIfAllMessagesAlreadyCleared();
26+
});
27+
28+
$('#clear_all_messages_button').on('click', function () {
29+
$('#messages .message button').click();
30+
});
31+
});

0 commit comments

Comments
 (0)