annotate framework/env/ui_deprecated/input.lua @ 53:a1c77838c2e5
Documentation for "attr", "a_attr" and "form_attr" arguments to function ui.link{...}
author |
jbe |
date |
Fri Jun 10 15:32:29 2011 +0200 (2011-06-10) |
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
|