Module:GraphicalUpdateTable

Documentation for this module may be created at Module:GraphicalUpdateTable/doc

local hc = require('Module:Paramtest').has_content
local ds = require('Module:$').deserialize

local p = {}

function p._main(args)
	local cols = hc(args.columns) and args.columns or 3 --sets how many columns wide the table is, defaults to 3
	local tbl = mw.html.create('table'):addClass('wikitable'):css('text-align', 'center')

	local i = 0	--sets up the row iterator, starting at 0
	while (args[cols*i + 1]) do --checks if there's any remaining args, if so starts creating a row
		header = mw.html.create('tr')
		row = mw.html.create('tr')
		
		for j=cols*i+1,cols*(i+1) do --iterates through the set amount of columns, uses math to know which arg to start with
			if args[j] then
				header:tag('th'):wikitext(args[j]['name']):done()
				row:tag('td'):wikitext(args[j]['files']):done()
			end
		end
		tbl:node(header)
		tbl:node(row)
		i = i + 1 --incrememnts the row count before starting the row creation over
	end
	return tbl
end

function p.main(frame)
	local args = ds(frame:getParent().args)
	return p._main(args)
end

return p