User:The Gaffer/sandbox/modules/switch: Difference between revisions
The Gaffer (talk | contribs) (Created page with "List of Modules currently being worked on.") |
The Gaffer (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
local p = {} |
|||
List of Modules currently being worked on. |
|||
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 |
Revision as of 09:54, 12 November 2024
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