|
@@ -59,7 +59,6 @@ function modpol.interactions.dashboard(user)
|
|
|
"dropdown[2,2.5;5,0.8;user_orgs;"..formspec_list(user_orgs)..";;]",
|
|
|
"label[0.5,4;All users:]",
|
|
|
"dropdown[2,3.5;5,0.8;all_users;"..formspec_list(all_users)..";;]",
|
|
|
- "button[0.5,7;1.5,0.8;reset_orgs;Reset orgs]",
|
|
|
"button_exit[8.5,7;1,0.8;close;Close]",
|
|
|
}
|
|
|
local formspec_string = table.concat(formspec, "")
|
|
@@ -72,10 +71,7 @@ minetest.register_on_player_receive_fields(function (player, formname, fields)
|
|
|
local pname = player:get_player_name()
|
|
|
if nil then
|
|
|
-- buttons first
|
|
|
- elseif fields.reset_orgs then
|
|
|
- modpol.orgs.reset()
|
|
|
- modpol.instance:add_member(pname)
|
|
|
- modpol.interactions.dashboard(pname)
|
|
|
+ -- none here right now!
|
|
|
|
|
|
-- Put all dropdowns at the end
|
|
|
elseif fields.close then
|
|
@@ -95,21 +91,18 @@ function modpol.interactions.org_dashboard(user, org_name)
|
|
|
-- prepare data
|
|
|
local org = modpol.orgs.get_org(org_name)
|
|
|
if not org then return nil end
|
|
|
- local is_member = org:has_member(user)
|
|
|
- local membership_toggle = function()
|
|
|
- local toggle_code = ""
|
|
|
- if is_member then
|
|
|
- toggle_code = toggle_code
|
|
|
- ..minetest.formspec_escape("leave")..";"
|
|
|
- ..minetest.formspec_escape("Leave").."]"
|
|
|
+
|
|
|
+ local function membership_toggle(org_display)
|
|
|
+ local current_org = modpol.orgs.get_org(org_display)
|
|
|
+ if current_org then
|
|
|
+ if current_org:has_member(user) then
|
|
|
+ return " (member)"
|
|
|
+ end
|
|
|
else
|
|
|
- toggle_code = toggle_code
|
|
|
- ..minetest.formspec_escape("join")..";"
|
|
|
- ..minetest.formspec_escape("Join").."]"
|
|
|
+ return ""
|
|
|
end
|
|
|
- return toggle_code
|
|
|
end
|
|
|
-
|
|
|
+
|
|
|
-- identify parent
|
|
|
local parent = modpol.orgs.get_org(org.parent)
|
|
|
if parent then parent = parent.name
|
|
@@ -151,9 +144,8 @@ function modpol.interactions.org_dashboard(user, org_name)
|
|
|
"formspec_version[4]",
|
|
|
"size[10,8]",
|
|
|
"label[0.5,0.5;Org: "..
|
|
|
- minetest.formspec_escape(org_name).."]",
|
|
|
- "label[0.5,1;Parent: "..parent.."]",
|
|
|
- "button[8.5,0.5;1,0.8;"..membership_toggle(),
|
|
|
+ minetest.formspec_escape(org_name)..membership_toggle(org_name).."]",
|
|
|
+ "label[0.5,1;Parent: "..parent..membership_toggle(parent).."]",
|
|
|
"label[0.5,2;Members:]",
|
|
|
"dropdown[2,1.5;5,0.8;user_orgs;"..formspec_list(org.members)..";;]",
|
|
|
"label[0.5,3;Children:]",
|
|
@@ -162,9 +154,6 @@ function modpol.interactions.org_dashboard(user, org_name)
|
|
|
"dropdown[2,3.5;5,0.8;modules;"..formspec_list(modules)..";;]",
|
|
|
"label[0.5,5;Actions ("..num_actions.."):]",
|
|
|
"dropdown[2,4.5;5,0.8;actions;"..formspec_list(actions)..";;]",
|
|
|
- "button[0.5,7;1,0.8;test_poll;Test poll]",
|
|
|
- "button[2,7;1,0.8;add_child;Add child]",
|
|
|
- "button[3.5,7;1.5,0.8;remove_org;Remove org]",
|
|
|
"button[8.5,7;1,0.8;back;Back]",
|
|
|
}
|
|
|
local formspec_string = table.concat(formspec, "")
|
|
@@ -183,38 +172,6 @@ minetest.register_on_player_receive_fields(function (player, formname, fields)
|
|
|
return end
|
|
|
-- okay, onward
|
|
|
if nil then
|
|
|
- elseif fields.join then
|
|
|
- org:add_member(pname)
|
|
|
- modpol.interactions.org_dashboard(pname,org.name)
|
|
|
- elseif fields.leave then
|
|
|
- org:remove_member(pname)
|
|
|
- modpol.interactions.dashboard(pname)
|
|
|
- elseif fields.test_poll then
|
|
|
- modpol.interactions.binary_poll_org(
|
|
|
- pname, org.id,
|
|
|
- function(input)
|
|
|
- modpol.interactions.message_org(
|
|
|
- pname,
|
|
|
- org.id,
|
|
|
- "New response: " .. input)
|
|
|
- end)
|
|
|
- elseif fields.add_child then
|
|
|
- modpol.interactions.text_query(
|
|
|
- pname, "Child org name:",
|
|
|
- function(input)
|
|
|
- org:add_org(input,pname)
|
|
|
- modpol.interactions.message_org(
|
|
|
- pname,
|
|
|
- org.id,
|
|
|
- "Child org created: " .. input)
|
|
|
- end)
|
|
|
- elseif fields.remove_org then
|
|
|
- modpol.interactions.message_org(
|
|
|
- pname,
|
|
|
- org.id,
|
|
|
- "Removing org: " .. org.name)
|
|
|
- org:delete()
|
|
|
- modpol.interactions.org_dashboard(pname,org.name)
|
|
|
elseif fields.back then
|
|
|
modpol.interactions.dashboard(pname)
|
|
|
|