Comparison

plugins/adhoc/adhoc.lib.lua @ 5024:d25e1b9332cc

Merge with Florob
author Matthew Wild <mwild1@gmail.com>
date Sat, 28 Jul 2012 01:14:31 +0100
parent 4993:5243b74a4cbb
child 5075:4d939d2b1574
comparison
equal deleted inserted replaced
5023:dcc8e789df36 5024:d25e1b9332cc
10 10
11 local states = {} 11 local states = {}
12 12
13 local _M = {}; 13 local _M = {};
14 14
15 function _cmdtag(desc, status, sessionid, action) 15 local function _cmdtag(desc, status, sessionid, action)
16 local cmd = st.stanza("command", { xmlns = xmlns_cmd, node = desc.node, status = status }); 16 local cmd = st.stanza("command", { xmlns = xmlns_cmd, node = desc.node, status = status });
17 if sessionid then cmd.attr.sessionid = sessionid; end 17 if sessionid then cmd.attr.sessionid = sessionid; end
18 if action then cmd.attr.action = action; end 18 if action then cmd.attr.action = action; end
19 19
20 return cmd; 20 return cmd;
33 dataIn.form = stanza.tags[1]:child_with_ns("jabber:x:data"); 33 dataIn.form = stanza.tags[1]:child_with_ns("jabber:x:data");
34 34
35 local data, state = command:handler(dataIn, states[sessionid]); 35 local data, state = command:handler(dataIn, states[sessionid]);
36 states[sessionid] = state; 36 states[sessionid] = state;
37 local stanza = st.reply(stanza); 37 local stanza = st.reply(stanza);
38 local cmdtag;
38 if data.status == "completed" then 39 if data.status == "completed" then
39 states[sessionid] = nil; 40 states[sessionid] = nil;
40 cmdtag = command:cmdtag("completed", sessionid); 41 cmdtag = command:cmdtag("completed", sessionid);
41 elseif data.status == "canceled" then 42 elseif data.status == "canceled" then
42 states[sessionid] = nil; 43 states[sessionid] = nil;
62 local actions = st.stanza("actions"); 63 local actions = st.stanza("actions");
63 for _, action in ipairs(content) do 64 for _, action in ipairs(content) do
64 if (action == "prev") or (action == "next") or (action == "complete") then 65 if (action == "prev") or (action == "next") or (action == "complete") then
65 actions:tag(action):up(); 66 actions:tag(action):up();
66 else 67 else
67 module:log("error", 'Command "'..command.name.. 68 module:log("error", "Command %q at node %q provided an invalid action %q",
68 '" at node "'..command.node..'" provided an invalid action "'..action..'"'); 69 command.name, command.node, action);
69 end 70 end
70 end 71 end
71 cmdtag:add_child(actions); 72 cmdtag:add_child(actions);
72 elseif name == "form" then 73 elseif name == "form" then
73 cmdtag:add_child((content.layout or content):form(content.values)); 74 cmdtag:add_child((content.layout or content):form(content.values));