webmcp

annotate framework/env/ui/field/select.lua @ 23:3a6fe8663b26

Code cleanup and documentation added; Year in copyright notice changed to 2009-2010

Details:
- Changed quoting style in auth.openid.xrds_document{...}
- Fixed documentation for auth.openid.initiate{...}
- Added documentation for mondelefant
- Code-cleanup in mondelefant:
-- removed unneccessary lines "rows = PQntuples(res); cols = PQnfields(res);"
-- avoided extra copy of first argument (self) in mondelefant_conn_query
-- no rawget in meta-method "__index" of database result lists and objects
-- removed unreachable "return 0;" in meta-method "__newindex" of database result lists and objects
- Year in copyright notice changed to 2009-2010
- Version string changed to "1.1.1"
author jbe
date Fri Jun 04 19:00:34 2010 +0200 (2010-06-04)
parents 9fdfb27f8e67
children 6e08067e66c1
rev   line source
jbe/bsw@0 1 --[[--
jbe/bsw@0 2 ui.field.select{
jbe/bsw@0 3 ... -- generic ui.field.* arguments, as described for ui.autofield{...}
jbe/bsw@0 4 foreign_records = foreign_records, -- list of records to be chosen from, or function returning such a list
jbe/bsw@0 5 foreign_id = foreign_id, -- name of id field in foreign records
jbe/bsw@0 6 foreign_name = foreign_name, -- name of field to be used as name in foreign records
jbe/bsw@0 7 format_options = format_options -- format options for format.string
jbe/bsw@0 8 }
jbe/bsw@0 9
jbe/bsw@0 10 This function inserts a select field in the active slot. For description of the generic field helper arguments, see help for ui.autofield{...}.
jbe/bsw@0 11
jbe/bsw@0 12 --]]--
jbe/bsw@0 13
jbe/bsw@0 14 function ui.field.select(args)
jbe/bsw@0 15 ui.form_element(args, {fetch_value = true}, function(args)
jbe/bsw@0 16 local foreign_records = args.foreign_records
jbe/bsw@0 17 if type(foreign_records) == "function" then
jbe/bsw@0 18 foreign_records = foreign_records(args.record)
jbe/bsw@0 19 end
jbe/bsw@0 20 if args.readonly then
jbe/bsw@0 21 local name
jbe/bsw@0 22 for idx, record in ipairs(foreign_records) do
jbe/bsw@0 23 if record[args.foreign_id] == args.value then
jbe/bsw@0 24 name = record[args.foreign_name]
jbe/bsw@0 25 break
jbe/bsw@0 26 end
jbe/bsw@0 27 end
jbe/bsw@0 28 ui.tag{
jbe/bsw@0 29 tag = args.tag,
jbe/bsw@0 30 attr = args.attr,
jbe/bsw@0 31 content = format.string(name, args.format_options)
jbe/bsw@0 32 }
jbe/bsw@0 33 else
jbe/bsw@0 34 local attr = table.new(args.attr)
jbe/bsw@0 35 attr.name = args.html_name
jbe/bsw@0 36 ui.tag{
jbe/bsw@0 37 tag = "select",
jbe/bsw@0 38 attr = attr,
jbe/bsw@0 39 content = function()
jbe/bsw@0 40 if args.nil_as then
jbe/bsw@0 41 ui.tag{
jbe/bsw@0 42 tag = "option",
jbe/bsw@0 43 attr = { value = "" },
jbe/bsw@0 44 content = format.string(
jbe/bsw@0 45 args.nil_as,
jbe/bsw@0 46 args.format_options
jbe/bsw@0 47 )
jbe/bsw@0 48 }
jbe/bsw@0 49 end
jbe/bsw@0 50 for idx, record in ipairs(foreign_records) do
jbe/bsw@0 51 local key = record[args.foreign_id]
jbe/bsw@0 52 ui.tag{
jbe/bsw@0 53 tag = "option",
jbe/bsw@0 54 attr = {
jbe/bsw@0 55 value = key,
jbe/bsw@0 56 selected = ((key == args.value) and "selected" or nil)
jbe/bsw@0 57 },
jbe/bsw@0 58 content = format.string(
jbe/bsw@0 59 record[args.foreign_name],
jbe/bsw@0 60 args.format_options
jbe/bsw@0 61 )
jbe/bsw@0 62 }
jbe/bsw@0 63 end
jbe/bsw@0 64 end
jbe/bsw@0 65 }
jbe/bsw@0 66 end
jbe/bsw@0 67 end)
jbe/bsw@0 68 end

Impressum / About Us