annotate framework/env/ui/field/text.lua @ 384:3fffd1ae5a68
New implementation of (proxy) write access to fields of JSON object in a special column
 | author | 
 jbe | 
 | date | 
 Mon Nov 16 22:19:55 2015 +0100 (2015-11-16) | 
 | parents | 
 9fdfb27f8e67  | 
 | children | 
  | 
 
 | rev | 
   line source | 
| 
jbe/bsw@0
 | 
     1 --[[--
 | 
| 
jbe/bsw@0
 | 
     2 ui.field.text{
 | 
| 
jbe/bsw@0
 | 
     3   ...                              -- generic ui.field.* arguments, as described for ui.autofield{...}
 | 
| 
jbe/bsw@0
 | 
     4   format_options = format_options  -- format options for format.string
 | 
| 
jbe/bsw@0
 | 
     5 }
 | 
| 
jbe/bsw@0
 | 
     6 
 | 
| 
jbe/bsw@0
 | 
     7 This function inserts a field for a text in the active slot. For description of the generic field helper arguments, see help for ui.autofield{...}.
 | 
| 
jbe/bsw@0
 | 
     8 
 | 
| 
jbe/bsw@0
 | 
     9 --]]--
 | 
| 
jbe/bsw@0
 | 
    10 
 | 
| 
jbe/bsw@0
 | 
    11 function ui.field.text(args)
 | 
| 
jbe/bsw@0
 | 
    12   ui.form_element(args, {fetch_value = true}, function(args)
 | 
| 
jbe/bsw@0
 | 
    13     local value_string = format.string(args.value, args.format_options)
 | 
| 
jbe/bsw@0
 | 
    14     if args.readonly then
 | 
| 
jbe/bsw@0
 | 
    15       ui.tag{ tag = args.tag, attr = args.attr, content = value_string }
 | 
| 
jbe/bsw@0
 | 
    16     else
 | 
| 
jbe/bsw@0
 | 
    17       local attr = table.new(args.attr)
 | 
| 
jbe/bsw@0
 | 
    18       attr.name  = args.html_name
 | 
| 
jbe/bsw@0
 | 
    19       if args.multiline then
 | 
| 
jbe/bsw@0
 | 
    20         ui.tag { tag = "textarea", attr = attr, content = value_string }
 | 
| 
jbe/bsw@0
 | 
    21       else
 | 
| 
jbe/bsw@0
 | 
    22         attr.type  = "text"
 | 
| 
jbe/bsw@0
 | 
    23         attr.value = value_string
 | 
| 
jbe/bsw@0
 | 
    24         ui.tag{ tag  = "input", attr = attr }
 | 
| 
jbe/bsw@0
 | 
    25       end
 | 
| 
jbe/bsw@0
 | 
    26     end
 | 
| 
jbe/bsw@0
 | 
    27   end)
 | 
| 
jbe/bsw@0
 | 
    28 end
 |