webmcp

annotate framework/env/ui/script.lua @ 4:5e32ef998acf

Version 1.0.4

ui.link{...} with POST target can now be parameterized with BOTH content and text to allow HTML content for JavaScript browsers and a text-only version for accessiblity

Changes related to database selectors:
- Support for row-based locking
- New method :count(), caching and returning the number of rows, which WOULD have been returned by :exec()
- Bugfix: WHERE and HAVING expressions are now enclosed in parenthesis to avoid problems with operator precedence

ui.script{...} now supports external .js files

Changes in langtool.lua to cope with escaped new-line chars (\n)
author jbe/bsw
date Fri Dec 25 12:00:00 2009 +0100 (2009-12-25)
parents 9fdfb27f8e67
children 64f4540ce88c
rev   line source
jbe/bsw@0 1 --[[--
jbe/bsw@0 2 ui.script{
jbe/bsw@0 3 noscript_attr = noscript_attr, -- HTML attributes for noscript tag
jbe/bsw@0 4 noscript = noscript, -- string or function for noscript content
jbe/bsw@0 5 attr = attr, -- extra HTML attributes for script tag
jbe/bsw@0 6 type = type, -- type of script, defaults to "text/javascript"
jbe/bsw@0 7 script = script, -- string or function for script content
jbe/bsw@0 8 }
jbe/bsw@0 9
jbe/bsw@0 10 This function is used to insert a script into the active slot. It is currently not XML compliant and the script must not contain a closing script tag.
jbe/bsw@0 11
jbe/bsw@0 12 --]]--
jbe/bsw@0 13
jbe/bsw@0 14 -- TODO: CDATA or SGML comment?
jbe/bsw@0 15
jbe/bsw@0 16 function ui.script(args)
jbe/bsw@0 17 local args = args or {}
jbe/bsw@0 18 local noscript_attr = args.noscript_attr
jbe/bsw@0 19 local noscript = args.noscript
jbe/bsw@0 20 local attr = table.new(args.attr)
jbe/bsw@0 21 attr.type = attr.type or args.type or "text/javascript"
jbe/bsw@0 22 local script = args.script
jbe/bsw@0 23 if script and type(script) ~= "function" then
jbe/bsw@0 24 -- disable HTML entity escaping
jbe/bsw@0 25 script = function()
jbe/bsw@0 26 slot.put(args.script)
jbe/bsw@0 27 end
jbe/bsw@0 28 end
jbe/bsw@4 29 if args.external then
jbe/bsw@4 30 attr.src = encode.url{ external = args.external }
jbe/bsw@4 31 elseif args.static then
jbe/bsw@4 32 attr.src = encode.url{ static = args.static }
jbe/bsw@4 33 end
jbe/bsw@0 34 if noscript then
jbe/bsw@0 35 ui.tag{ tag = "noscript", attr = attr, content = noscript }
jbe/bsw@0 36 end
jbe/bsw@4 37 if attr.src then
jbe/bsw@4 38 ui.tag{ tag = "script", attr = attr, content = "" }
jbe/bsw@4 39 elseif script then
jbe/bsw@0 40 ui.tag{ tag = "script", attr = attr, content = script }
jbe/bsw@0 41 end
jbe/bsw@0 42 end

Impressum / About Us