diff --git a/modpol_core/modules/remove_org.lua b/modpol_core/modules/remove_org.lua index 9c3bbc6..23fc07e 100644 --- a/modpol_core/modules/remove_org.lua +++ b/modpol_core/modules/remove_org.lua @@ -6,7 +6,7 @@ remove_org = { name = "Remove this org", slug = "remove_org", - desc = "Removes an org if all members consent." + desc = "Eliminates the org and all child orgs." } remove_org.config = {} diff --git a/modpol_minetest/overrides/interactions.lua b/modpol_minetest/overrides/interactions.lua index 7346bc5..a4a5d2a 100644 --- a/modpol_minetest/overrides/interactions.lua +++ b/modpol_minetest/overrides/interactions.lua @@ -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").."]" - else - toggle_code = toggle_code - ..minetest.formspec_escape("join")..";" - ..minetest.formspec_escape("Join").."]" - end - return toggle_code - end + 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 + return "" + end + 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)