webmcp
annotate framework/env/ui_deprecated/input.lua @ 6:5cba83b3f411
Version 1.0.6
Bugfix: class_prototype:add_reference{...} uses now qualified names in SQL queries to allow JOINs
Fixes in the documentation of slot.put_into and trace.debug
Bugfix: class_prototype:add_reference{...} uses now qualified names in SQL queries to allow JOINs
Fixes in the documentation of slot.put_into and trace.debug
| author | jbe/bsw | 
|---|---|
| date | Fri Jan 22 12:00:00 2010 +0100 (2010-01-22) | 
| 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 |