mirror of
https://github.com/JamesClarke7283/proposals.git
synced 2025-03-15 05:31:20 +00:00
Fixed issues with commentbox
This commit is contained in:
parent
26687a32f8
commit
4693df0f6f
1 changed files with 22 additions and 15 deletions
37
init.lua
37
init.lua
|
@ -77,6 +77,7 @@ end
|
|||
|
||||
|
||||
|
||||
-- Function to show proposal details and voting options, with delete and edit buttons for the author or admin
|
||||
-- Function to show proposal details and voting options, with delete and edit buttons for the author or admin
|
||||
-- Function to show proposal details and voting options, with delete and edit buttons for the author or admin
|
||||
local function show_proposal_details(player_name, proposal_index)
|
||||
|
@ -84,10 +85,11 @@ local function show_proposal_details(player_name, proposal_index)
|
|||
if not proposal then return end
|
||||
|
||||
proposal.comments = proposal.comments or {}
|
||||
|
||||
|
||||
local player_has_privilege = minetest.check_player_privs(player_name, {proposals_admin=true})
|
||||
local is_author = proposal.author == player_name
|
||||
|
||||
-- Starting formspec layout
|
||||
local formspec = "size[12,12]" ..
|
||||
"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) .. ";]" ..
|
||||
|
@ -96,39 +98,44 @@ local function show_proposal_details(player_name, proposal_index)
|
|||
"button[3,5;2,1;vote_no;Vote No]" ..
|
||||
"button[5.5,5;2,1;vote_abstain;Abstain]"
|
||||
|
||||
-- Concatenate all comments into a single string for the textarea
|
||||
-- Comments title
|
||||
formspec = formspec .. "label[0.5,6;Comments:]"
|
||||
|
||||
-- Comment box and scrollbar
|
||||
local comments_str = ""
|
||||
for commenter, comment in pairs(proposal.comments) do
|
||||
comments_str = comments_str .. commenter .. ":\n" .. comment .. "\n\n"
|
||||
comments_str = comments_str .. commenter .. ": " .. minetest.formspec_escape(comment) .. "\n\n"
|
||||
end
|
||||
|
||||
-- Remove the last two newlines
|
||||
comments_str = comments_str:gsub("\n\n$", "")
|
||||
formspec = formspec .. "box[0.5,6.5;11,3;#FFF]" ..
|
||||
"scroll_container[0.5,6.5;10.8,3;scrollbar;vertical]" ..
|
||||
"textarea[0.25,0.25;10.5,4;;;" .. comments_str .. "]" ..
|
||||
"scroll_container_end[]"
|
||||
|
||||
formspec = formspec .. "label[0.5,6.5;Comments:]" ..
|
||||
"box[0.5,7;11,3;#EEEEEE]" .. -- Box to contain the comments textarea
|
||||
"textarea[0.75,7.25;10.5,2.5;comments;;" .. minetest.formspec_escape(comments_str) .. ";true]" -- True for scrollbar
|
||||
-- Edit and Delete buttons for comments at the bottom (outside of the scroll container)
|
||||
if player_has_privilege then
|
||||
formspec = formspec .. "button[0.5,9.75;3,1;edit_comment;Edit Comment]" ..
|
||||
"button[4,9.75;3,1;delete_comment;Delete Comment]"
|
||||
end
|
||||
|
||||
-- Additional buttons if the player has privileges or is the author
|
||||
if is_author or player_has_privilege then
|
||||
formspec = formspec .. "button[0.5,10;3,1;edit_proposal;Edit Proposal]" ..
|
||||
"button[4,10;3,1;delete_proposal;Delete Proposal]"
|
||||
formspec = formspec .. "button[0.5,11;3,1;edit_proposal;Edit Proposal]" ..
|
||||
"button[4,11;3,1;delete_proposal;Delete Proposal]"
|
||||
end
|
||||
|
||||
-- Add comment button only for non-authors
|
||||
if player_name ~= proposal.author then
|
||||
formspec = formspec .. "button[0.5,11;3,1;add_comment;Add Comment]"
|
||||
formspec = formspec .. "button[0.5,10.5;3,1;add_comment;Add Comment]"
|
||||
end
|
||||
|
||||
-- Edit and Delete buttons for comments at the bottom
|
||||
formspec = formspec .. "button[9,10;1.5,1;edit_comment;Edit Comment]" ..
|
||||
"button[10.5,10;1.5,1;delete_comment;Delete Comment]" ..
|
||||
"button[9,11;3,1;back;Back]"
|
||||
formspec = formspec .. "button[9,11;3,1;back;Back]"
|
||||
|
||||
minetest.show_formspec(player_name, "vote_changes:proposal_" .. proposal_index, formspec)
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- Function to show the edit proposal formspec
|
||||
local function show_edit_proposal_formspec(player_name, proposal_index)
|
||||
local proposal = proposals[proposal_index]
|
||||
|
|
Loading…
Add table
Reference in a new issue