Module:Progress box
Appearance
![]() | This module depends on the following other modules: |
![]() | This module uses TemplateStyles: |
This module implements Template:Progress box. Please see the template page for usage instructions.
-- This module implements [[Template:Progress box]]
local makePurgeLink = require('Module:Purge')._main
local p = {}
local function render(data)
data = data or {}
local root = mw.html.create('table')
-- Base classes and styles
root
:addClass('infobox')
:css('float', data.float)
:css('clear', data.float)
:css('margin', data.margin)
:css('width', '22em')
-- Header row
root:tag('tr'):tag('th')
:attr('colspan', 2)
:addClass('navbox-title')
:css('padding', '0.2em')
:css('font-size', '125%')
:wikitext(data.header)
-- Refresh row
root:tag('tr'):tag('th')
:attr('colspan', 2)
:css('text-align', 'center')
:wikitext(makePurgeLink{'(refresh)'})
-- Subtotals
root
:tag('tr')
:tag('th')
:attr('colspan', 2)
:css('padding', 0)
:tag('table')
:addClass('collapsible')
:addClass(data.subtotalsCollapsed)
:css('width', '100%')
:css('margin', 0)
:wikitext(data.subtotals)
-- Total
root
:tag('tr')
:css('font-size', '110%')
:tag('th')
:wikitext(data.totalLabel)
:done()
:tag('td')
:css('text-align', 'right')
:wikitext(string.format("'''%d'''", data.total))
return tostring(root)
end
function p._main(args)
local data = {
float = args.float or 'left',
margin = args.float == 'none' and 'auto' or nil,
header = args[1],
}
return render(data)
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Progress box'
})
return p._main(args)
end
return p