diff options
author | Kim Alvefur <zash@zash.se> | 2021-11-15 17:07:23 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2021-11-15 17:07:23 +0100 |
commit | dff6720958a1cb46f4ce5c2721c67bc94cb80450 (patch) | |
tree | 6967c5bff472f428397dcf3284bbfaa72451d2ad /teal-src/util/dataforms.d.tl | |
parent | 238c64e233938970224ad691831336cbfa08cdfd (diff) | |
download | prosody-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/util/dataforms.d.tl')
-rw-r--r-- | teal-src/util/dataforms.d.tl | 91 |
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 |