Changeset

8853:f84f566dea58

MUC: Reuse the same dataform for voice requests
author Kim Alvefur <zash@zash.se>
date Fri, 20 Oct 2017 05:45:40 +0200
parents 8852:5e98d62f3f9b
children 8854:5cd7813d4e94
files plugins/muc/moderated.lib.lua plugins/muc/muc.lib.lua
diffstat 2 files changed, 13 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/muc/moderated.lib.lua	Fri Oct 20 05:45:03 2017 +0200
+++ b/plugins/muc/moderated.lib.lua	Fri Oct 20 05:45:40 2017 +0200
@@ -8,8 +8,6 @@
 --
 
 local st = require "util.stanza";
-local dataform = require "util.dataforms";
-
 
 local function get_moderated(room)
 	return room._data.moderated;
@@ -51,40 +49,13 @@
 
 module:hook("muc-voice-request", function(event)
 	if event.occupant.role == "visitor" then
-		local form = dataform.new({
-			title = "Voice Request";
-			{
-				name = "FORM_TYPE";
-				type = "hidden";
-				value = "http://jabber.org/protocol/muc#request";
-			},
-			{
-				name = "muc#role";
-				type = "text-single";
-				label = "Requested Role";
-				value = "participant";
-			},
-			{
-				name = "muc#jid";
-				type = "jid-single";
-				label = "User ID";
-				value = event.stanza.attr.from;
-			},
-			{
-				name = "muc#roomnick";
-				type = "text-single";
-				label = "Room Nickname";
-				value = event.occupant.nick;
-			},
-			{
-				name = "muc#request_allow";
-				type = "boolean";
-				label = "Grant voice to this person?";
-				value = false;
-			}
-		});
+		local form = event.room:get_voice_form_layout()
+		local formdata = {
+			["muc#jid"] = event.stanza.attr.from;
+			["muc#roomnick"] = event.occupant.nick;
+		};
 
-		local message = st.message({ type = "normal"; from = event.room.jid }):add_child(form:form()):up();
+		local message = st.message({ type = "normal"; from = event.room.jid }):add_child(form:form(formdata)):up();
 
 		event.room:broadcast(message, function (_, occupant)
 			return occupant.role == "moderator";
--- a/plugins/muc/muc.lib.lua	Fri Oct 20 05:45:03 2017 +0200
+++ b/plugins/muc/muc.lib.lua	Fri Oct 20 05:45:40 2017 +0200
@@ -780,6 +780,7 @@
 
 function room_mt:get_voice_form_layout() -- luacheck: ignore 212/self
 	local form = dataform.new({
+		title = "Voice Request";
 		{
 			name = "FORM_TYPE";
 			type = "hidden";
@@ -788,18 +789,24 @@
 		{
 			name = "muc#jid";
 			type = "jid-single";
+			label = "User ID";
 		},
 		{
 			name = "muc#roomnick";
 			type = "text-single";
+			label = "Room Nickname";
 		},
 		{
 			name = "muc#role";
 			type = "text-single";
+			label = "Requested Role";
+			value = "participant";
 		},
 		{
 			name = "muc#request_allow";
 			type = "boolean";
+			label = "Grant voice to this person?";
+			value = false;
 		}
 	});