User:The Gaffer/sandbox/modules/switch: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
The Gaffer (talk | contribs) No edit summary |
The Gaffer (talk | contribs) No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
{{D}} |
|||
local p = {} |
|||
local yesno = require('Module:Yesno') |
|||
function p.main(frame) |
|||
return frame:preprocess(tostring(p._main(frame:getParent().args))) |
|||
end |
|||
function p._main(args) |
|||
local contents = {} |
|||
local i = 1 |
|||
while args['item'..i] do |
|||
table.insert(contents, { text = args['text'..i] or ('Item '..i), |
|||
content = '\n' .. args['item'..i], |
|||
id = args['switch_id'..i] or i}) |
|||
i = i + 1 |
|||
end |
|||
local ret = mw.html.create('div') |
|||
:addClass('switch-infobox') |
|||
:addClass('loading') |
|||
:tag('span') |
|||
:addClass('loading-button') |
|||
:addClass('button') |
|||
:wikitext('Loading...') |
|||
:done() |
|||
if args.float then |
|||
if args.float == 'left' then |
|||
ret:addClass('tleft') |
|||
:addClass('thumb') |
|||
elseif args.float == 'right' then |
|||
ret:addClass('tright') |
|||
:addClass('thumb') |
|||
end |
|||
end |
|||
local mah_triggers = ret:tag('div') |
|||
:addClass('switch-infobox-triggers') |
|||
local isSelect = yesno(args.select) |
|||
if isSelect then |
|||
mah_triggers:addClass('infobox-triggers-select') |
|||
elseif i > 6 and isSelect ~= false then |
|||
mah_triggers:addClass('infobox-triggers-select') |
|||
end |
|||
for i, v in ipairs(contents) do |
|||
mah_triggers :tag('span') |
|||
:addClass('trigger') |
|||
:addClass('button') |
|||
:addClass(i==1 and 'button-selected' or '') |
|||
:attr('data-id',v.id) |
|||
:wikitext(v.text) |
|||
:done() |
|||
ret :tag('div') |
|||
:addClass('item') |
|||
:addClass(i==1 and 'showing' or '') |
|||
:attr('data-id',v.id) |
|||
:wikitext(v.content) |
|||
:done() |
|||
end |
|||
return ret |
|||
end |
|||
return p |