webmcp
view framework/env/ui_deprecated/link.lua @ 3:795b764629ca
Version 1.0.3
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
author | jbe |
---|---|
date | Thu Dec 10 12:00:00 2009 +0100 (2009-12-10) |
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