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