aboutsummaryrefslogtreecommitdiffstats
path: root/teal-src/prosody/util/dataforms.d.tl
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2023-03-23 13:36:52 +0100
committerKim Alvefur <zash@zash.se>2023-03-23 13:36:52 +0100
commitf68336b96e0d843511bb1bd3fdac8bba2fe4573a (patch)
treea54111914e081293e50b846e7f0d9654e885c2ed /teal-src/prosody/util/dataforms.d.tl
parent738df041ac3965496e9247acc95d80f84d30b2b5 (diff)
downloadprosody-f68336b96e0d843511bb1bd3fdac8bba2fe4573a.tar.gz
prosody-f68336b96e0d843511bb1bd3fdac8bba2fe4573a.zip
teal: Move into prosody namespace
Diffstat (limited to 'teal-src/prosody/util/dataforms.d.tl')
-rw-r--r--teal-src/prosody/util/dataforms.d.tl54
1 files changed, 54 insertions, 0 deletions
diff --git a/teal-src/prosody/util/dataforms.d.tl b/teal-src/prosody/util/dataforms.d.tl
new file mode 100644
index 00000000..3dad2776
--- /dev/null
+++ b/teal-src/prosody/util/dataforms.d.tl
@@ -0,0 +1,54 @@
+local stanza_t = require "prosody.util.stanza".stanza_t
+
+local record lib
+ record dataform
+ title : string
+ instructions : string
+
+ record form_field
+
+ enum field_type
+ "boolean"
+ "fixed"
+ "hidden"
+ "jid-multi"
+ "jid-single"
+ "list-multi"
+ "list-single"
+ "text-multi"
+ "text-private"
+ "text-single"
+ end
+
+ 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
+
+ { form_field }
+
+ enum form_type
+ "form"
+ "submit"
+ "cancel"
+ "result"
+ end
+
+ form : function ( dataform, { string : any }, form_type ) : stanza_t
+ data : function ( dataform, stanza_t ) : { string : any }
+ end
+
+ new : function ( dataform ) : dataform
+end
+
+return lib