aboutsummaryrefslogtreecommitdiffstats
path: root/teal-src
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2021-11-15 17:07:23 +0100
committerKim Alvefur <zash@zash.se>2021-11-15 17:07:23 +0100
commitdff6720958a1cb46f4ce5c2721c67bc94cb80450 (patch)
tree6967c5bff472f428397dcf3284bbfaa72451d2ad /teal-src
parent238c64e233938970224ad691831336cbfa08cdfd (diff)
downloadprosody-dff6720958a1cb46f4ce5c2721c67bc94cb80450.tar.gz
prosody-dff6720958a1cb46f4ce5c2721c67bc94cb80450.zip
util.dataforms: Restructure Teal definition file
The PR has been merged and there's no reason not to have nested records and other definitions.
Diffstat (limited to 'teal-src')
-rw-r--r--teal-src/util/dataforms.d.tl91
1 files changed, 46 insertions, 45 deletions
diff --git a/teal-src/util/dataforms.d.tl b/teal-src/util/dataforms.d.tl
index 9e4170fa..eac55717 100644
--- a/teal-src/util/dataforms.d.tl
+++ b/teal-src/util/dataforms.d.tl
@@ -1,51 +1,52 @@
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
+ 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
+ end
+
new : function ( dataform ) : dataform
end