-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadmin.html
More file actions
86 lines (76 loc) · 3.12 KB
/
admin.html
File metadata and controls
86 lines (76 loc) · 3.12 KB
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
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Admin — Nenzee.com</title>
<link rel="stylesheet" href="assets/css/main.css">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9429571484429929"
crossorigin="anonymous"></script>
</head>
<body>
<header class="container site-nav" role="banner">
<a class="skip-link" href="index.html">
<img src="images/NNZLogo.png" alt="Nenzee.com Home" height="40" width="40">
</a>
<nav class="nav-links" role="navigation" aria-label="Main navigation">
<a href="index.html">Home</a>
<a href="about.html">About</a>
<a href="contact.html">Contact</a>
</nav>
</header>
<main class="container">
<h1>Admin <br> (moderate pending comments, set preferences, etc...)</h1>
<p>Log In</p>
<label for="admin-pass">User Id</label><br>
<input id="admin-pass" type="password">
<button id="admin-enter" class="btn">Enter</button>
<div id="admin-area">
<h2>Pending comments</h2>
<div id="pending-list"></div>
</div>
<footer class="site-footer" aria-label="Footer navigation">
<div1><a class="skip-link" href="index.html">© Nenzee — 2025</a>
</div1>
<div2><a class="skip-link" href="admin.html">Admin</a>
</div2>
</footer>
</main>
<script>
const passEl=document.getElementById('admin-pass');
const btn=document.getElementById('admin-enter');
const area=document.getElementById('admin-area');
const list=document.getElementById('pending-list');
btn.addEventListener('click',()=>{if(passEl.value==='nenzee-admin'){area.style.display='block';loadPending();}else{alert('Incorrect passphrase');}});
function loadPending(){
const raw=localStorage.getItem('nenzee_comments');
const arr=raw?JSON.parse(raw):[];
const pending=arr.filter((c)=>c.status==='pending');
list.innerHTML=pending.length?pending.map((c,idx)=>`
<div class="card">
<div style="display:flex;justify-content:space-between">
<div><strong>${c.name}</strong><div class="meta">${c.when}</div></div>
<div>
<button class="btn" onclick="handleAction(${idx},'approve')">Approve</button>
<button class="btn secondary" onclick="handleAction(${idx},'reject')" style="margin-left:8px">Reject</button>
</div>
</div>
<p>${c.body}</p>
</div>`).join(''):`<div>No pending comments</div>`;
}
function handleAction(index,action){
const raw=localStorage.getItem('nenzee_comments');
const arr=raw?JSON.parse(raw):[];
const pending=arr.filter((c)=>c.status==='pending');
const item=pending[index];
if(!item)return;
const globalIndex=arr.findIndex((c)=>c.id===item.id);
if(action==='approve')arr[globalIndex].status='approved';
if(action==='reject')arr.splice(globalIndex,1);
localStorage.setItem('nenzee_comments',JSON.stringify(arr));
loadPending();
alert('Action completed.');
}
</script>
</body>
</html>