# HG changeset patch # User Florian Zeitz # Date 1278718001 -7200 # Node ID 1ae653712e37c49934303eb2e17ac45c26f36f84 # Parent d3498f115fcd56b74f6456d7910db44cad5d9321 mod_adhoc: Add capability to pass data to forms mod_adhoc_cmd_modules: Update to use afforementioned functionality diff -r d3498f115fcd -r 1ae653712e37 mod_adhoc/adhoc/adhoc.lib.lua --- a/mod_adhoc/adhoc/adhoc.lib.lua Fri Jul 09 22:38:05 2010 +0200 +++ b/mod_adhoc/adhoc/adhoc.lib.lua Sat Jul 10 01:26:41 2010 +0200 @@ -69,9 +69,9 @@ end cmdtag:add_child(actions); elseif name == "form" then - cmdtag:add_child(content:form()); + cmdtag:add_child((content.layout or content):form(content.data)); elseif name == "result" then - cmdtag:add_child(content.layout:form(content.data, "result")); + cmdtag:add_child((content.layout or content):form(content.data, "result")); elseif name == "other" then cmdtag:add_child(content); end diff -r d3498f115fcd -r 1ae653712e37 mod_adhoc/adhoc/mod_adhoc.lua --- a/mod_adhoc/adhoc/mod_adhoc.lua Fri Jul 09 22:38:05 2010 +0200 +++ b/mod_adhoc/adhoc/mod_adhoc.lua Sat Jul 10 01:26:41 2010 +0200 @@ -16,7 +16,7 @@ module:hook("iq/host/"..xmlns_disco.."#items:query", function (event) local origin, stanza = event.origin, event.stanza; - -- TODO: Is this correct, or should is_admin be changed? + -- Required for Prosody <= 0.7 local privileged = is_admin(stanza.attr.from) or is_admin(stanza.attr.from, stanza.attr.to); if stanza.attr.type == "get" and stanza.tags[1].attr.node @@ -42,7 +42,7 @@ if stanza.attr.type == "set" and stanza.tags[1] and stanza.tags[1].name == "command" then local node = stanza.tags[1].attr.node - -- TODO: Is this correct, or should is_admin be changed? + -- Required for Prosody <= 0.7 local privileged = is_admin(event.stanza.attr.from) or is_admin(stanza.attr.from, stanza.attr.to); if commands[node] then diff -r d3498f115fcd -r 1ae653712e37 mod_adhoc_cmd_modules/mod_adhoc_cmd_modules.lua --- a/mod_adhoc_cmd_modules/mod_adhoc_cmd_modules.lua Fri Jul 09 22:38:05 2010 +0200 +++ b/mod_adhoc_cmd_modules/mod_adhoc_cmd_modules.lua Sat Jul 10 01:26:41 2010 +0200 @@ -30,13 +30,12 @@ -- TODO: Allow reloading multiple modules (depends on list-multi) function reload_modules_handler(self, data, state) - local modules = {}; local layout = dataforms_new { title = "Reload module"; instructions = "Select the module to be reloaded"; { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/modules#reload" }; - { name = "module", type = "list-single", value = modules, label = "Module to be reloaded:"}; + { name = "module", type = "list-single", label = "Module to be reloaded:"}; }; if state then if data.action == "cancel" then @@ -51,23 +50,19 @@ '". Error was: "'..tostring(err)..'"' }; end else - local modules2 = array.collect(keys(hosts[data.to].modules)):sort(); - for i, val in ipairs(modules2) do - modules[i] = val; - end - return { status = "executing", form = layout }, "executing"; + local modules = array.collect(keys(hosts[data.to].modules)):sort(); + return { status = "executing", form = { layout = layout; data = { module = modules } } }, "executing"; end end -- TODO: Allow unloading multiple modules (depends on list-multi) function unload_modules_handler(self, data, state) - local modules = {}; local layout = dataforms_new { title = "Unload module"; instructions = "Select the module to be unloaded"; { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/modules#unload" }; - { name = "module", type = "list-single", value = modules, label = "Module to be unloaded:"}; + { name = "module", type = "list-single", label = "Module to be unloaded:"}; }; if state then if data.action == "cancel" then @@ -82,11 +77,8 @@ '". Error was: "'..tostring(err)..'"' }; end else - local modules2 = array.collect(keys(hosts[data.to].modules)):sort(); - for i, val in ipairs(modules2) do - modules[i] = val; - end - return { status = "executing", form = layout }, "executing"; + local modules = array.collect(keys(hosts[data.to].modules)):sort(); + return { status = "executing", form = { layout = layout; data = { module = modules } } }, "executing"; end end