File

teal-src/util/dataforms.d.tl @ 12189:82c8e855c850

mod_storage_xep0227: treat roster metadata pseudo-entry correctly The roster version is stored in a pseudo-item which has the key `false`. The if condition in the touched code attempts to guard against this, but it does not take into account that the jid prepping returns nil instead of false. By moving the jid prepping into the if, we can check for the metadata entry safely.
author Jonas Schäfer <jonas@wielicki.name>
date Sat, 15 Jan 2022 15:40:29 +0100
parent 11432:113f3912c7cb
child 12614:d498e7e7853a
line wrap: on
line source

local stanza_t = require "util.stanza".stanza_t

local enum form_type
	"form"
	"submit"
	"cancel"
	"result"
end

local enum field_type
	"boolean"
	"fixed"
	"hidden"
	"jid-multi"
	"jid-single"
	"list-multi"
	"list-single"
	"text-multi"
	"text-private"
	"text-single"
end

local record form_field

	type : field_type
	var : string -- protocol name
	name :  string -- internal name

	label : string
	desc : string

	datatype : string
	range_min : number
	range_max : number

	value : any -- depends on field_type
	options : table
end

local record dataform
	title : string
	instructions : string
	{ form_field } -- XXX https://github.com/teal-language/tl/pull/415

	form : function ( dataform, table, form_type ) : stanza_t
end

local record lib
	new : function ( dataform ) : dataform
end

return lib