diff options
Diffstat (limited to 'shorewall-restart-html.lsp')
-rw-r--r-- | shorewall-restart-html.lsp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/shorewall-restart-html.lsp b/shorewall-restart-html.lsp new file mode 100644 index 0000000..53d81b7 --- /dev/null +++ b/shorewall-restart-html.lsp @@ -0,0 +1,71 @@ +<? +local view = ... + +local function packURL(script, prefix, controller, action, extra) + ret = script .. "/" .. prefix .. controller .. "/" .. action + sep = '?' + for k,v in pairs(extra) do + ret = ret .. sep .. k .. '=' .. v + sep = '&' + end + return ret +end + +--[[ +view + script, prefix, controller + action[] + name, script, prefix, controller + section + id + label + disabled + active + id + action + title + text[] + label + content +--]] +?><h1><?= view.title +?></h1><? + +--Status Block + for i,item in ipairs(view.note or {}) do + ?><p class='error'><?= item.content ?></p><? + end + +local section = "" +for i,item in ipairs(view.action) do + if section ~= item.section then + section = item.section + ?><h2><?= section ?></h2><? + end + if item.disabled then + ?><i><?= item.label or item.name ?></i><? + else + ?><?= html.form.start { + method="POST", + action = packURL(item.script or view.script, + item.prefix or view.prefix, + item.controller or view.controller, + item.name, {}) + } ?><?= html.form.hidden { name="id", value=item.id } ?><? + local label = (item.label or item.name) + if item.id == view.active.id and item.name == view.active.action then + label = '['..label..']' + end + ?><?= html.form.submit { + name = item.name, value = label + } ?><?= html.form.stop() ?><? + end +end +for i,item in ipairs(view.text) do + if item.label then + ?><h2><?= item.label ?></h2><? + end + ?><pre><?= item.content ?></pre><? +end +-- vim: set filetype=lua : +?> |