webmcp
view framework/env/ui_deprecated/link.lua @ 54:89030e955845
Changed partialload_encodeFormData(...) to allow non-string objects implementing .toString()
| author | jbe | 
|---|---|
| date | Tue Sep 06 21:05:11 2011 +0200 (2011-09-06) | 
| parents | 9fdfb27f8e67 | 
| children | 
 line source
     1 function ui_deprecated.link(args)
     2   if args.action then
     3     local params = {}
     4     if args.params then
     5       for key, value in pairs(args.params) do
     6         params[key] = value
     7       end
     8     end
     9     ui_deprecated._prepare_redirect_params(params, args.redirect_to)
    11     local attr_action = args.url or encode.url{
    12       module = args.module or request.get_module(),
    13       action = args.action,
    14       id     = args.id,
    15       params = params
    16     }
    17     local attr_class = table.concat({ 'ui_link', args.class }, ' ')
    18     local attr_target = args.target or ''
    19     local redirect_to = args.redirect_to
    20     local unique_id = "unique_" .. multirand.string(32, "abcdefghijklmnopqrstuvwxyz0123456789")
    21     slot.put(
    22       '<form',
    23       ' id="', unique_id , '"',
    24       ' action="', attr_action,  '"',
    25       ' class="', attr_class, '"',
    26       ' target="', attr_target, '"',
    27       ' method="post"',
    28       '>\n',
    29       '<input type="submit" value="', args.label or '', '" />',
    30       '</form>',
    31       '<script>document.getElementById(\'', unique_id, '\').style.display=\'none\';document.write(\'<a href="#" class="', attr_class , '" onclick="document.getElementById(\\\'', unique_id, '\\\').submit();">'
    32     )
    33     if args.icon then
    34       ui_deprecated.image{ image = 'ui/icon/' .. args.icon }
    35     end
    36     if args.image then
    37       ui_deprecated.image{ image = args.image }
    38     end
    39     if args.label then
    40       slot.put(args.label)
    41     end
    42     slot.put("</a>');</script>")
    43   else
    44     local attr_class = table.concat({ 'ui_link', args.class }, ' ')
    45     slot.put(
    46       '<a href="',
    47       args.url or encode.url{
    48         module    = args.module or request.get_module(),
    49         view      = args.view,
    50         id        = args.id,
    51         params    = args.params,
    52       },
    53       '" ',
    54       ui_deprecated._stringify_table({ class = attr_class }),
    55       ui_deprecated._stringify_table( args.html_options or {} ),
    56       '>'
    57     )
    58     if args.icon then
    59       ui_deprecated.image{ image = 'ui/icon/' .. args.icon }
    60     end
    61     if args.image then
    62       ui_deprecated.image{ image = args.image }
    63     end
    64     if args.label then
    65       slot.put(args.label)
    66     end
    67     slot.put('</a>')
    68   end
    69 end
