blob: 3d990dab28289ab5e27c63ad94d1336932d15bf0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="theme-color" content="#ffffff">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Commenta dashboard</title>
<style>
th {
text-align: left;
}
.comment-item {
padding: 10px 0 30px 0;
border-bottom: 2px inset gray;
}
</style>
</head>
<body>
<h1>Comments</h1>
<div id="results"></div>
<script src="https://www.gstatic.com/firebasejs/7.2.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.2.1/firebase-database.js"></script>
<script src="static/comments.js"></script>
<script>
// var tableResults = document.querySelector('#results tbody');
var resultsPlaceholder = document.querySelector('#results');
function snapshotToArray(snapshot) {
var returnArr = [];
snapshot.forEach(function (childSnapshot) {
var arrItem = childSnapshot.val();
arrItem.key = childSnapshot.key;
returnArr.push(arrItem);
});
var comments = [];
returnArr.forEach(function (item) {
var keys = Object.keys(item);
for (var key of keys) {
let group = item.key;
if (key !== 'key') {
for (var itemKey of Object.keys(item[key])) {
item[key][itemKey].slug = key;
item[key][itemKey].group = group;
item[key][itemKey].itemKey = itemKey
comments.push(item[key][itemKey]);
}
}
}
});
return comments;
};
var path = window.location.hostname.replace('.', '-') + '/comments';
var ref = firebase.database().ref(path);
ref.on("value", function (snap) {
resultsPlaceholder.innerHTML = '';
var comments = snapshotToArray(snap);
comments.forEach(function (item) {
var commentContent = document.createElement('div');
commentContent.classList.add('comment-item');
commentContent.innerHTML = `
<p><b>${item.name} (${item.published})</b><br>
<i>${item.group}/${item.slug}</i></p>
<p>${item.comment}</p>
`;
var buttonDelete = document.createElement('button');
buttonDelete.innerText = 'Delete comment';
buttonDelete.dataset.id = `${window.location.hostname.replace('.', '-')}/comments/${item.group}/${item.slug}/${item.itemKey}`;
buttonDelete.addEventListener('click', function (evt) {
if (confirm('Are you sure you want to delete this comment?')) {
firebase.database().ref(evt.target.dataset.id).remove();
}
});
commentContent.appendChild(buttonDelete);
resultsPlaceholder.appendChild(commentContent);
});
}, function (errorObject) {
console.log(`The read failed: ${errorObject.code}`);
});
</script>
</body>
</html>
|