Module:CollectionLog
Documentation for this module may be created at Module:CollectionLog/doc
local p = {}
function p.render(frame)
local args = frame:getParent().args
local html = mw.html.create('div'):addClass('collection-log-wrapper')
-- Add Killcount if present
if args.Killcount then
local killcountDiv = mw.html.create('div')
:addClass('collection-log-killcount')
:wikitext('Killcount: ' .. args.Killcount)
html:node(killcountDiv)
end
local grid = mw.html.create('div'):addClass('collection-log-grid')
for name, qty in pairs(args) do
if name ~= "Killcount" then
qty = tonumber(qty) or 0
local item = mw.html.create('div')
:addClass('collection-log-item')
:addClass(qty > 0 and 'obtained' or 'missing')
-- Create link to the item page
local link = mw.html.create('a')
:attr('href', mw.uri.fullUrl(name))
:attr('title', name)
-- Create image inside the link
local img = mw.html.create('img')
:attr('src', mw.uri.fullUrl('File:' .. name .. '.png'))
:attr('alt', name)
:attr('title', name)
:css('width', '32px')
:css('height', '32px')
link:node(img)
item:node(link)
-- Add quantity badge if qty > 1
if qty > 1 then
local badge = mw.html.create('div')
:addClass('collection-log-qty-badge')
:wikitext(tostring(qty))
item:node(badge)
end
grid:node(item)
end
end
html:node(grid)
return tostring(html)
end
return p