jbe/bsw@0: -- jbe/bsw@0: -- Creates an input field in a form jbe/bsw@0: -- jbe/bsw@0: -- label (string) The label of the input field jbe/bsw@0: -- field (string) The name of the record field jbe/bsw@0: -- field_type (string) The type of the record field jbe/bsw@0: -- jbe/bsw@0: -- Example: jbe/bsw@0: -- jbe/bsw@0: -- ui_deprecated.input({ jbe/bsw@0: -- label = _'Comment', jbe/bsw@0: -- field = 'comment', jbe/bsw@0: -- field_type = 'textarea' jbe/bsw@0: -- }) jbe/bsw@0: -- jbe/bsw@0: local field_type_to_atom_class_map = { jbe/bsw@0: text = atom.string, jbe/bsw@0: textarea = atom.string, jbe/bsw@0: number = atom.number, jbe/bsw@0: percentage = atom.number, jbe/bsw@0: } jbe/bsw@0: jbe/bsw@0: function ui_deprecated.input(args) jbe/bsw@0: local record = assert(slot.get_state_table(), "ui_deprecated.input was not called within a form.").form_record jbe/bsw@0: jbe/bsw@0: local field_type = args.field_type or "text" jbe/bsw@0: jbe/bsw@0: local field_func = assert(ui_deprecated.input_field[field_type], "no field helper for given type '" .. field_type .. "'") jbe/bsw@0: jbe/bsw@0: local html_name = args.name or args.field jbe/bsw@0: local field_html jbe/bsw@0: jbe/bsw@0: if args.field then jbe/bsw@0: local param_type = field_type_to_atom_class_map[field_type] or error('Unkown field type') jbe/bsw@0: field_html = field_func{ jbe/bsw@0: name = html_name, jbe/bsw@0: value = param.get(html_name, param_type) jbe/bsw@0: or record[args.field], jbe/bsw@0: height = args.height, jbe/bsw@0: } jbe/bsw@0: jbe/bsw@0: elseif args.value then jbe/bsw@0: field_html = field_func{ jbe/bsw@0: name = html_name, jbe/bsw@0: value = args.value, jbe/bsw@0: height = args.height, jbe/bsw@0: } jbe/bsw@0: jbe/bsw@0: else jbe/bsw@0: field_html = field_func{ jbe/bsw@0: name = html_name, jbe/bsw@0: value = '', jbe/bsw@0: height = args.height, jbe/bsw@0: } jbe/bsw@0: jbe/bsw@0: end jbe/bsw@0: jbe/bsw@0: slot.put('
\n') jbe/bsw@0: if args.label then jbe/bsw@0: slot.put('
', encode.html(args.label), '
\n') jbe/bsw@0: end jbe/bsw@0: slot.put('
', jbe/bsw@0: field_html, jbe/bsw@0: '
\n', jbe/bsw@0: '
\n' jbe/bsw@0: ) jbe/bsw@0: end