diff src/thread.html.luan @ 16:bff178656073

delete function
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 06 Jul 2022 22:42:42 -0600
parents 0edde02b908c
children 94e26bffd4fb
line wrap: on
line diff
--- a/src/thread.html.luan	Tue Jul 05 23:27:54 2022 -0600
+++ b/src/thread.html.luan	Wed Jul 06 22:42:42 2022 -0600
@@ -13,13 +13,20 @@
 local Post = require "site:/lib/Post.luan"
 local Bbcode = require "site:/lib/Bbcode.luan"
 local bbcode_to_html = Bbcode.to_html or error()
+local User = require "site:/lib/User.luan"
 
 
+local function deletePost()
+	%><a href="javascript:" onclick="deletePost(parentNode)">delete</a><%
+end
+
 return function()
 	local root_id = Http.request.parameters.root or error()
 	local docs, total_hits = Db.search("post_root_id:"..root_id,1,1000,{sort="id"})
 	local posts = Post.from_docs(docs)
 	local subject_html = posts[1].subject_html
+	local user = User.current()
+	local user_name = user and user.name
 	Io.stdout = Http.response.text_writer()
 %>
 <!doctype html>
@@ -38,27 +45,44 @@
 				postDiv.querySelector('[output]').style.display = 'block';
 				postDiv.querySelector('[edit]').innerHTML = '';
 			}
-
 			function saveEdit(post) {
 				let postDiv = document.querySelector('[post="'+post+'"]');
 				let text = postDiv.querySelector('textarea').value;
 				let postData = 'post=' + post + '&text=' + encodeURIComponent(text);
 				ajax("save_edit.js",postData);
 			}
+
+			function deletePost(span) {
+				span.innerHTML = document.querySelector('[hidden][delete]').innerHTML;
+			}
+			function deleteNo(span) {
+				span.innerHTML = document.querySelector('[hidden][undelete]').innerHTML;
+			}
+			function deleteYes(span) {
+				let post = span.getAttribute('delete');
+				ajax( '/delete.js?post=' + post );
+			}
 		</script>
 	</head>
 	<body>
 <%		header() %>
 		<div content>
 			<h1><%=subject_html%></h1>
-<%	for _, post in ipairs(posts) do %>
+<%	for _, post in ipairs(posts) do
+		if post.is_deleted then
+			continue
+		end
+%>
 			<hr>
 			<div post="<%=post.id%>">
 				<div output>
 					<% bbcode_to_html(post.content) %>
 					<p>
 						<a href="/reply.html?parent=<%=post.id%>">reply</a>
+<%	if post.author_name == user_name then %>
 						- <a href="javascript:ajax('/edit.js?post=<%=post.id%>')">edit</a>
+						- <span delete="<%=post.id%>"><%deletePost()%></span>
+<%	end %>
 					</p>
 				</div>
 				<div edit></div>
@@ -66,6 +90,8 @@
 <%	end %>
 		</div>
 <%		footer() %>
+		<span hidden delete>Delete? <a href="javascript:" onclick="deleteYes(parentNode)">yes</a> / <a href="javascript:" onclick="deleteNo(parentNode)">no</a></span>
+		<span hidden undelete><%deletePost()%></span>
 	</body>
 </html>
 <%