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

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
(Created page with "List of Modules currently being worked on.")
 
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