Jump to content

Module:Progress box

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mr. Stradivarius (talk | contribs) at 07:06, 14 May 2015 (make a start on converting Template:Progress box). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

-- 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