User:The Gaffer/sandbox/modules/switch: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
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

Latest revision as of 16:06, 14 November 2024