Mercurial Hosting > freedit
view src/thread.html.luan @ 15:0edde02b908c
edit in place
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Tue, 05 Jul 2022 23:27:54 -0600 |
parents | ad1604c72156 |
children | bff178656073 |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local ipairs = Luan.ipairs or error() local Io = require "luan:Io.luan" local Http = require "luan:http/Http.luan" local Shared = require "site:/lib/Shared.luan" local head = Shared.head or error() local header = Shared.header or error() local footer = Shared.footer or error() local Forum = require "site:/lib/Forum.luan" local forum_title = Forum.title or error() local Db = require "site:/lib/Db.luan" local Post = require "site:/lib/Post.luan" local Bbcode = require "site:/lib/Bbcode.luan" local bbcode_to_html = Bbcode.to_html or error() 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 Io.stdout = Http.response.text_writer() %> <!doctype html> <html> <head> <% head() %> <title><%=forum_title%>: <%=subject_html%></title> <style> [message] { white-space: pre-wrap; } </style> <script> function cancelEdit(post) { let postDiv = document.querySelector('[post="'+post+'"]'); 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); } </script> </head> <body> <% header() %> <div content> <h1><%=subject_html%></h1> <% for _, post in ipairs(posts) do %> <hr> <div post="<%=post.id%>"> <div output> <% bbcode_to_html(post.content) %> <p> <a href="/reply.html?parent=<%=post.id%>">reply</a> - <a href="javascript:ajax('/edit.js?post=<%=post.id%>')">edit</a> </p> </div> <div edit></div> </div> <% end %> </div> <% footer() %> </body> </html> <% end