Mercurial > prosody-modules
comparison mod_adhoc_cmd_modules/mod_adhoc_cmd_modules.lua @ 235:10a3cca32797
mod_adhoc_cmd_modules: Make required fields required, be more tollerant towards buggy clients
| author | Florian Zeitz <florob@babelmonkeys.de> |
|---|---|
| date | Thu, 05 Aug 2010 23:09:56 +0200 |
| parents | 214cb85cdfbf |
| children | 665552d75ee2 |
comparison
equal
deleted
inserted
replaced
| 234:abcb59ab355c | 235:10a3cca32797 |
|---|---|
| 32 local layout = dataforms_new { | 32 local layout = dataforms_new { |
| 33 title = "Load module"; | 33 title = "Load module"; |
| 34 instructions = "Specify the module to be loaded"; | 34 instructions = "Specify the module to be loaded"; |
| 35 | 35 |
| 36 { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/modules#load" }; | 36 { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/modules#load" }; |
| 37 { name = "module", type = "text-single", label = "Module to be loaded:"}; | 37 { name = "module", type = "text-single", required = true, label = "Module to be loaded:"}; |
| 38 }; | 38 }; |
| 39 if state then | 39 if state then |
| 40 if data.action == "cancel" then | 40 if data.action == "cancel" then |
| 41 return { status = "canceled" }; | 41 return { status = "canceled" }; |
| 42 end | 42 end |
| 43 local fields = layout:data(data.form); | 43 local fields = layout:data(data.form); |
| 44 if (not fields.module) or (fields.module == "") then | |
| 45 return { status = "completed", error = { | |
| 46 message = "Please specify a module. (This means your client misbehaved, as this field is required)" | |
| 47 } }; | |
| 48 end | |
| 44 if modulemanager.is_loaded(data.to, fields.module) then | 49 if modulemanager.is_loaded(data.to, fields.module) then |
| 45 return { status = "completed", info = "Module already loaded" }; | 50 return { status = "completed", info = "Module already loaded" }; |
| 46 end | 51 end |
| 47 local ok, err = modulemanager.load(data.to, fields.module); | 52 local ok, err = modulemanager.load(data.to, fields.module); |
| 48 if ok then | 53 if ok then |
| 62 local layout = dataforms_new { | 67 local layout = dataforms_new { |
| 63 title = "Reload module"; | 68 title = "Reload module"; |
| 64 instructions = "Select the module to be reloaded"; | 69 instructions = "Select the module to be reloaded"; |
| 65 | 70 |
| 66 { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/modules#reload" }; | 71 { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/modules#reload" }; |
| 67 { name = "module", type = "list-single", label = "Module to be reloaded:"}; | 72 { name = "module", type = "list-single", required = true, label = "Module to be reloaded:"}; |
| 68 }; | 73 }; |
| 69 if state then | 74 if state then |
| 70 if data.action == "cancel" then | 75 if data.action == "cancel" then |
| 71 return { status = "canceled" }; | 76 return { status = "canceled" }; |
| 72 end | 77 end |
| 73 local fields = layout:data(data.form); | 78 local fields = layout:data(data.form); |
| 79 if (not fields.module) or (fields.module == "") then | |
| 80 return { status = "completed", error = { | |
| 81 message = "Please specify a module. (This means your client misbehaved, as this field is required)" | |
| 82 } }; | |
| 83 end | |
| 74 local ok, err = modulemanager.reload(data.to, fields.module); | 84 local ok, err = modulemanager.reload(data.to, fields.module); |
| 75 if ok then | 85 if ok then |
| 76 return { status = "completed", info = 'Module "'..fields.module..'" successfully reloaded on host "'..data.to..'".' }; | 86 return { status = "completed", info = 'Module "'..fields.module..'" successfully reloaded on host "'..data.to..'".' }; |
| 77 else | 87 else |
| 78 return { status = "completed", error = { message = 'Failed to reload module "'..fields.module..'" on host "'..data.to.. | 88 return { status = "completed", error = { message = 'Failed to reload module "'..fields.module..'" on host "'..data.to.. |
| 89 local layout = dataforms_new { | 99 local layout = dataforms_new { |
| 90 title = "Unload module"; | 100 title = "Unload module"; |
| 91 instructions = "Select the module to be unloaded"; | 101 instructions = "Select the module to be unloaded"; |
| 92 | 102 |
| 93 { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/modules#unload" }; | 103 { name = "FORM_TYPE", type = "hidden", value = "http://prosody.im/protocol/modules#unload" }; |
| 94 { name = "module", type = "list-single", label = "Module to be unloaded:"}; | 104 { name = "module", type = "list-single", required = true, label = "Module to be unloaded:"}; |
| 95 }; | 105 }; |
| 96 if state then | 106 if state then |
| 97 if data.action == "cancel" then | 107 if data.action == "cancel" then |
| 98 return { status = "canceled" }; | 108 return { status = "canceled" }; |
| 99 end | 109 end |
| 100 local fields = layout:data(data.form); | 110 local fields = layout:data(data.form); |
| 111 if (not fields.module) or (fields.module == "") then | |
| 112 return { status = "completed", error = { | |
| 113 message = "Please specify a module. (This means your client misbehaved, as this field is required)" | |
| 114 } }; | |
| 115 end | |
| 101 local ok, err = modulemanager.unload(data.to, fields.module); | 116 local ok, err = modulemanager.unload(data.to, fields.module); |
| 102 if ok then | 117 if ok then |
| 103 return { status = "completed", info = 'Module "'..fields.module..'" successfully unloaded on host "'..data.to..'".' }; | 118 return { status = "completed", info = 'Module "'..fields.module..'" successfully unloaded on host "'..data.to..'".' }; |
| 104 else | 119 else |
| 105 return { status = "completed", error = { message = 'Failed to unload module "'..fields.module..'" on host "'..data.to.. | 120 return { status = "completed", error = { message = 'Failed to unload module "'..fields.module..'" on host "'..data.to.. |
