webmcp

annotate framework/env/ui_deprecated/input.lua @ 79:3a6962b9121c

Anchor support for encode.url{...}, ui.link{...} and ui.paginate{...}
author jbe
date Wed Jun 27 18:57:53 2012 +0200 (2012-06-27)
parents 9fdfb27f8e67
children
rev   line source
jbe/bsw@0 1 --
jbe/bsw@0 2 -- Creates an input field in a form
jbe/bsw@0 3 --
jbe/bsw@0 4 -- label (string) The label of the input field
jbe/bsw@0 5 -- field (string) The name of the record field
jbe/bsw@0 6 -- field_type (string) The type of the record field
jbe/bsw@0 7 --
jbe/bsw@0 8 -- Example:
jbe/bsw@0 9 --
jbe/bsw@0 10 -- ui_deprecated.input({
jbe/bsw@0 11 -- label = _'Comment',
jbe/bsw@0 12 -- field = 'comment',
jbe/bsw@0 13 -- field_type = 'textarea'
jbe/bsw@0 14 -- })
jbe/bsw@0 15 --
jbe/bsw@0 16 local field_type_to_atom_class_map = {
jbe/bsw@0 17 text = atom.string,
jbe/bsw@0 18 textarea = atom.string,
jbe/bsw@0 19 number = atom.number,
jbe/bsw@0 20 percentage = atom.number,
jbe/bsw@0 21 }
jbe/bsw@0 22
jbe/bsw@0 23 function ui_deprecated.input(args)
jbe/bsw@0 24 local record = assert(slot.get_state_table(), "ui_deprecated.input was not called within a form.").form_record
jbe/bsw@0 25
jbe/bsw@0 26 local field_type = args.field_type or "text"
jbe/bsw@0 27
jbe/bsw@0 28 local field_func = assert(ui_deprecated.input_field[field_type], "no field helper for given type '" .. field_type .. "'")
jbe/bsw@0 29
jbe/bsw@0 30 local html_name = args.name or args.field
jbe/bsw@0 31 local field_html
jbe/bsw@0 32
jbe/bsw@0 33 if args.field then
jbe/bsw@0 34 local param_type = field_type_to_atom_class_map[field_type] or error('Unkown field type')
jbe/bsw@0 35 field_html = field_func{
jbe/bsw@0 36 name = html_name,
jbe/bsw@0 37 value = param.get(html_name, param_type)
jbe/bsw@0 38 or record[args.field],
jbe/bsw@0 39 height = args.height,
jbe/bsw@0 40 }
jbe/bsw@0 41
jbe/bsw@0 42 elseif args.value then
jbe/bsw@0 43 field_html = field_func{
jbe/bsw@0 44 name = html_name,
jbe/bsw@0 45 value = args.value,
jbe/bsw@0 46 height = args.height,
jbe/bsw@0 47 }
jbe/bsw@0 48
jbe/bsw@0 49 else
jbe/bsw@0 50 field_html = field_func{
jbe/bsw@0 51 name = html_name,
jbe/bsw@0 52 value = '',
jbe/bsw@0 53 height = args.height,
jbe/bsw@0 54 }
jbe/bsw@0 55
jbe/bsw@0 56 end
jbe/bsw@0 57
jbe/bsw@0 58 slot.put('<div class="ui_field ui_input_', field_type, '">\n')
jbe/bsw@0 59 if args.label then
jbe/bsw@0 60 slot.put('<div class="label">', encode.html(args.label), '</div>\n')
jbe/bsw@0 61 end
jbe/bsw@0 62 slot.put('<div class="value">',
jbe/bsw@0 63 field_html,
jbe/bsw@0 64 '</div>\n',
jbe/bsw@0 65 '</div>\n'
jbe/bsw@0 66 )
jbe/bsw@0 67 end

Impressum / About Us