mirror of
https://github.com/JamesClarke7283/proposals.git
synced 2025-03-21 16:01:23 +00:00
More comment box fixes
This commit is contained in:
parent
c5d70ee154
commit
4f1614f559
1 changed files with 24 additions and 19 deletions
43
init.lua
43
init.lua
|
@ -77,6 +77,7 @@ end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Function to show proposal details and voting options
|
||||||
-- Function to show proposal details and voting options
|
-- Function to show proposal details and voting options
|
||||||
local function show_proposal_details(player_name, proposal_index)
|
local function show_proposal_details(player_name, proposal_index)
|
||||||
local proposal = proposals[proposal_index]
|
local proposal = proposals[proposal_index]
|
||||||
|
@ -89,36 +90,39 @@ local function show_proposal_details(player_name, proposal_index)
|
||||||
|
|
||||||
local formspec = "size[12,12]" ..
|
local formspec = "size[12,12]" ..
|
||||||
"label[0.5,0.5;" .. minetest.formspec_escape(proposal.title) .. " by " .. proposal.author .. "]" ..
|
"label[0.5,0.5;" .. minetest.formspec_escape(proposal.title) .. " by " .. proposal.author .. "]" ..
|
||||||
"textarea[0.5,1.5;11,2;;" .. minetest.formspec_escape(proposal.description) .. ";]" ..
|
"textarea[0.5,1.5;11,2.5;;" .. minetest.formspec_escape(proposal.description) .. ";]" ..
|
||||||
"label[0.5,4;Votes: Yes(" .. proposal.votes.yes .. ") No(" .. proposal.votes.no .. ") Abstain(" .. proposal.votes.abstain .. ")]" ..
|
"label[0.5,4.25;Votes: Yes(" .. proposal.votes.yes .. ") No(" .. proposal.votes.no .. ") Abstain(" .. proposal.votes.abstain .. ")]" ..
|
||||||
"button[0.5,5;2,1;vote_yes;Vote Yes]" ..
|
"button[0.5,5.25;2,1;vote_yes;Vote Yes]" ..
|
||||||
"button[3,5;2,1;vote_no;Vote No]" ..
|
"button[3,5.25;2,1;vote_no;Vote No]" ..
|
||||||
"button[5.5,5;2,1;vote_abstain;Abstain]" ..
|
"button[5.5,5.25;2,1;vote_abstain;Abstain]" ..
|
||||||
"label[0.5,6;Comments:]"
|
"label[0.5,6.5;Comments:]"
|
||||||
|
|
||||||
-- Construct comments string with proper escaping and formatting
|
-- Construct comments string with proper escaping and formatting
|
||||||
local comments_str = ""
|
local comments_str = ""
|
||||||
for commenter, comment in pairs(proposal.comments) do
|
for commenter, comment in pairs(proposal.comments) do
|
||||||
-- Ensure each comment is properly escaped
|
-- Escape each comment and add it to the string
|
||||||
comments_str = comments_str .. minetest.formspec_escape(commenter .. ":") .. "\n" .. minetest.formspec_escape(comment) .. "\n\n"
|
comments_str = comments_str .. minetest.formspec_escape(commenter .. ":") .. "\n" .. minetest.formspec_escape(comment) .. "\n\n"
|
||||||
end
|
end
|
||||||
|
-- Remove the last newline characters
|
||||||
|
comments_str = comments_str:gsub("\n\n$", "")
|
||||||
|
|
||||||
-- Comments textarea with a scrollbar
|
-- Scrollable area for comments
|
||||||
formspec = formspec .. "scroll_container[0.5,6.5;11,3;scrollbar;vertical]" ..
|
formspec = formspec .. "scroll_container[0.5,7;11,3;scrollbar;vertical]" ..
|
||||||
"textarea[0.25,0.25;10.5,4;comments_box;;" .. minetest.formspec_escape(comments_str) .. ";false]" ..
|
"textarea[0.25,0.25;10.5,10;;;" .. comments_str .. "]" ..
|
||||||
"scroll_container_end[]"
|
"scroll_container_end[]"
|
||||||
|
|
||||||
-- Buttons for adding, editing, or deleting a comment
|
-- Edit and Delete Comment buttons only if the player has commented
|
||||||
if not is_author then
|
if has_commented then
|
||||||
if not has_commented then
|
formspec = formspec .. "button[9,10;3,1;edit_comment;Edit Comment]" ..
|
||||||
formspec = formspec .. "button[0.5,10;3,1;add_comment;Add Comment]"
|
"button[9,11;3,1;delete_comment;Delete Comment]"
|
||||||
else
|
|
||||||
formspec = formspec .. "button[0.5,10;3,1;edit_comment;Edit Comment]" ..
|
|
||||||
"button[4,10;3,1;delete_comment;Delete Comment]"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Edit and Delete Proposal buttons if the player has admin privileges or is the author
|
-- Add Comment button only if the player has not commented and is not the author
|
||||||
|
if not has_commented and not is_author then
|
||||||
|
formspec = formspec .. "button[0.5,10;3,1;add_comment;Add Comment]"
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Edit and Delete Proposal buttons if the player has privileges or is the author
|
||||||
if player_has_privilege or is_author then
|
if player_has_privilege or is_author then
|
||||||
formspec = formspec .. "button[0.5,11;3,1;edit_proposal;Edit Proposal]" ..
|
formspec = formspec .. "button[0.5,11;3,1;edit_proposal;Edit Proposal]" ..
|
||||||
"button[4,11;3,1;delete_proposal;Delete Proposal]"
|
"button[4,11;3,1;delete_proposal;Delete Proposal]"
|
||||||
|
@ -131,6 +135,7 @@ end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Function to show the edit proposal formspec
|
-- Function to show the edit proposal formspec
|
||||||
local function show_edit_proposal_formspec(player_name, proposal_index)
|
local function show_edit_proposal_formspec(player_name, proposal_index)
|
||||||
local proposal = proposals[proposal_index]
|
local proposal = proposals[proposal_index]
|
||||||
|
|
Loading…
Add table
Reference in a new issue