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
-------------------------------------------------------------------------------
-- Subtotal class
-------------------------------------------------------------------------------
local Subtotal = {}
Subtotal.__index = Subtotal
function Subtotal.new()
local self = setmetatable({}, Subtotal)
return self
end
function Subtotal:getDate()
end
function Subtotal:getSubtotal()
end
function Subtotal:makeCategoryLink(display)
end
function Subtotal:categoryExists()
end
-------------------------------------------------------------------------------
-- ProgressBox class
-------------------------------------------------------------------------------
local ProgressBox = {}
ProgressBox.__index = ProgressBox
function ProgressBox.new(args)
local self = setmetatable({}, ProgressBox)
self.args = args or {}
return self
end
function ProgressBox:findEarliestCategoryDate()
end
function ProgressBox: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
-------------------------------------------------------------------------------
-- Exports
-------------------------------------------------------------------------------
local p = {}
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