mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-31 04:51:40 +09:00
Readded Polls
This commit is contained in:
@@ -132,19 +132,33 @@ local next = Gui.inputs.add{
|
|||||||
draw_poll(parent.parent.poll_area)
|
draw_poll(parent.parent.poll_area)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- this function from redmew, would take too much to make a better one
|
local poll_question_input = Gui.inputs.add_text('poll-question-input',true,'Question',function(player,text,element)
|
||||||
|
local options = element.parent.options
|
||||||
|
if not options.question then options.add{type='label',name='question',caption=''}
|
||||||
|
else options.question.caption = text end
|
||||||
|
end)
|
||||||
|
|
||||||
|
local _self_referace_poll_option_input = nil
|
||||||
|
local poll_option_input = Gui.inputs.add_text('poll-option-input',true,'Enter Option',function(player,text,element)
|
||||||
|
local options = element.parent.parent.parent.options
|
||||||
|
if not options[element.parent.name] then options.add{type='label',name=element.parent.name,caption=text}
|
||||||
|
else options[element.parent.name].caption = text end
|
||||||
|
if options.last.caption == element.parent.name then
|
||||||
|
options.last.caption = tonumber(options.last.caption)+1
|
||||||
|
_self_referace_poll_option_input:draw(element.parent.parent.add{type='flow',name=options.last.caption}).style.minimal_width = 200
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
_self_referace_poll_option_input = poll_option_input
|
||||||
|
|
||||||
local function poll_assembler(frame)
|
local function poll_assembler(frame)
|
||||||
frame.clear()
|
frame.clear()
|
||||||
local frame_table = frame.add { type = 'table', name = 'table_poll_assembler', column_count = 2 }
|
local options = frame.add{type='flow',name='options'}
|
||||||
frame_table.add { type = 'label', caption = 'Question:' }
|
options.style.visible = false
|
||||||
frame_table.add { type = 'textfield', name = 'textfield_question', text = '' }
|
options.add{type='label',name='last',caption='2'}
|
||||||
frame_table.add { type = 'label', caption = 'Option #1:' }
|
poll_question_input:draw(frame).style.minimal_width = 200
|
||||||
frame_table.add { type = 'textfield', name = 'textfield_answer_1', text = '' }
|
local flow = frame.add{type='flow',direction='vertical'}
|
||||||
frame_table.add { type = 'label', caption = 'Option #2:' }
|
poll_option_input:draw(flow.add{type='flow',name='1'}).style.minimal_width = 200
|
||||||
frame_table.add { type = 'textfield', name = 'textfield_answer_2', text = '' }
|
poll_option_input:draw(flow.add{type='flow',name='2'}).style.minimal_width = 200
|
||||||
frame_table.add { type = 'label', caption = 'Option #3:' }
|
|
||||||
frame_table.add { type = 'textfield', name = 'textfield_answer_3', text = '' }
|
|
||||||
frame_table.add { type = 'label', caption = '' }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local create_poll = Gui.inputs.add{
|
local create_poll = Gui.inputs.add{
|
||||||
@@ -154,17 +168,24 @@ local create_poll = Gui.inputs.add{
|
|||||||
}:on_event('click',function(event)
|
}:on_event('click',function(event)
|
||||||
local parent = event.element.parent
|
local parent = event.element.parent
|
||||||
if event.element.sprite == 'utility/enter' then
|
if event.element.sprite == 'utility/enter' then
|
||||||
local inputs = parent.parent.poll_area.table_poll_assembler
|
local inputs = parent.parent.poll_area.options
|
||||||
if not inputs then
|
if not inputs then
|
||||||
event.element.sprite = 'utility/add'
|
event.element.sprite = 'utility/add'
|
||||||
draw_poll(parent.parent.poll_area)
|
draw_poll(parent.parent.poll_area)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local uuid = _poll_data(inputs.textfield_question.text,{
|
local options = {}
|
||||||
inputs.textfield_answer_1.text,
|
for _,option in pairs(inputs.children) do
|
||||||
inputs.textfield_answer_2.text,
|
if option.name ~= 'question' and option.name ~= 'last' then
|
||||||
inputs.textfield_answer_3.text
|
if option.caption ~= 'Enter Option' and option.caption ~= '' then table.insert(options,option.caption) end
|
||||||
})
|
end
|
||||||
|
end
|
||||||
|
if not inputs.question or #options == 0 then
|
||||||
|
event.element.sprite = 'utility/add'
|
||||||
|
draw_poll(parent.parent.poll_area)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local uuid = _poll_data(inputs.question.caption,options)
|
||||||
Gui.popup.open('polls',{uuid=uuid})
|
Gui.popup.open('polls',{uuid=uuid})
|
||||||
event.element.sprite = 'utility/add'
|
event.element.sprite = 'utility/add'
|
||||||
draw_poll(parent.parent.poll_area)
|
draw_poll(parent.parent.poll_area)
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ require('Guis/rockets')
|
|||||||
require('Guis/player-list')
|
require('Guis/player-list')
|
||||||
require('Guis/tasklist')
|
require('Guis/tasklist')
|
||||||
require('Guis/warp-system')
|
require('Guis/warp-system')
|
||||||
--require('Guis/polls') -- too many desyncs
|
require('Guis/polls') -- too many desyncs
|
||||||
require('Guis/announcements')
|
require('Guis/announcements')
|
||||||
require('Guis/rank-changer')
|
require('Guis/rank-changer')
|
||||||
require('Guis/admin-gui') -- used with Admin/admin, requires Admin/admin
|
require('Guis/admin-gui') -- used with Admin/admin, requires Admin/admin
|
||||||
|
|||||||
Reference in New Issue
Block a user