Mercurial Hosting > freedit
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> <%