Difference between revisions of "Module:Jcttop/core"

From blackwiki
Jump to navigation Jump to search
blackwiki>Happy5214
(Creating stub)
 
blackwiki>Happy5214
(Adding table header)
Line 4: Line 4:
 
local HtmlBuilder = require "Module:HtmlBuilder" -- Import module to build HTML code
 
local HtmlBuilder = require "Module:HtmlBuilder" -- Import module to build HTML code
 
local getArgs = require('Module:Arguments').getArgs -- Import module function to work with passed arguments
 
local getArgs = require('Module:Arguments').getArgs -- Import module function to work with passed arguments
 +
 +
local function hatnote(args)
 +
return ''
 +
end
 +
 +
local function header(args)
 +
local row = HtmlBuilder.create().tag('table', {unclosed = true}).attr('class', 'plainrowheaders wikitable hlist').tag('tr')
 +
local region_col = args.region_col
 +
if region_col then
 +
row.tag('th').attr('scope', 'col').wikitext(region_col)
 +
end
 +
 +
local nosub1 = args.nosub1 == 'yes'
 +
local indep_city = args.indep_city
 +
if not(nosub1 or args.sub1 or indep_city) then
 +
local tag = row.tag('th').attr('scope', 'col')
 +
local sub1disp = args.sub1disp
 +
if sub1disp then
 +
tag.wikitext(sub1disp)
 +
else
 +
tag.wikitext(args.sub1name).wikitext(args.sub1_ref)
 +
end
 +
end
 +
 +
if not(args.sub2 or indep_city) then
 +
local tag = row.tag('th').attr('scope', 'col')
 +
local location_def = args.location_def or 'Location'
 +
tag.wikitext(location_def).wikitext(args.sub2_ref)
 +
end
 +
 +
local altunit = args.altunit
 +
if altunit then
 +
row.tag('th').attr('scope', 'col').wikitext(altunit).wikitext(args.altunit_ref)
 +
else
 +
local unit = args.unit or args.length
 +
if unit ~= 'off' then
 +
row.tag('th').attr('scope', 'col').wikitext(unit).wikitext(args.length_ref).done().tag('th').attr('scope', 'col').wikitext(args.unit2)
 +
end
 +
end
 +
 +
local exit = args[1]
 +
if exit == 'old' then
 +
local old_def = args.old_def or 'Old exit'
 +
row.tag('th').attr('scope', 'col').wikitext(old_def).wikitext(args.old_ref)
 +
local exit_def = args.exit_def or 'New exit'
 +
row.tag('th').attr('scope', 'col').wikitext(exit_def).wikitext(args.exit_ref)
 +
elseif exit == 'exit' then
 +
local exit_def = args.exit_def or 'Exit'
 +
row.tag('th').attr('scope', 'col').wikitext(exit_def).wikitext(args.exit_ref)
 +
end
 +
 +
if args[2] == 'name' then
 +
local name_def = args.name_def or 'Name'
 +
row.tag('th').attr('scope', 'col').wikitext(name_def).wikitext(args.name_ref)
 +
end
 +
 +
local dest_def = args.dest_def or 'Destinations'
 +
row.tag('th').attr('scope', 'col').wikitext(dest_def).wikitext(args.dest_ref)
 +
 +
local notes_def = args.notes_def or 'Notes'
 +
row.tag('th').attr('scope', 'col').wikitext(notes_def).wikitext(args.notes_ref)
 +
 +
return tostring(row.allDone())
 +
end
  
 
function p._jcttop(args)
 
function p._jcttop(args)
 
-- This function calls two other functions to generate a hatnote and header row.
 
-- This function calls two other functions to generate a hatnote and header row.
 
-- This function is accessible from other Lua modules.
 
-- This function is accessible from other Lua modules.
return '' -- Temporary stub
+
return hatnote(args) .. header(args)
 
end
 
end
  

Revision as of 23:16, 30 December 2013

This module implements {{jcttop/core}}.


local p = {}

local format = mw.ustring.format -- Local version of string formatting function
local HtmlBuilder = require "Module:HtmlBuilder" -- Import module to build HTML code
local getArgs = require('Module:Arguments').getArgs -- Import module function to work with passed arguments

local function hatnote(args)
	return ''
end

local function header(args)
	local row = HtmlBuilder.create().tag('table', {unclosed = true}).attr('class', 'plainrowheaders wikitable hlist').tag('tr')
	local region_col = args.region_col
	if region_col then
		row.tag('th').attr('scope', 'col').wikitext(region_col)
	end
	
	local nosub1 = args.nosub1 == 'yes'
	local indep_city = args.indep_city
	if not(nosub1 or args.sub1 or indep_city) then
		local tag = row.tag('th').attr('scope', 'col')
		local sub1disp = args.sub1disp
		if sub1disp then
			tag.wikitext(sub1disp)
		else
			tag.wikitext(args.sub1name).wikitext(args.sub1_ref)
		end
	end
	
	if not(args.sub2 or indep_city) then
		local tag = row.tag('th').attr('scope', 'col')
		local location_def = args.location_def or 'Location'
		tag.wikitext(location_def).wikitext(args.sub2_ref)
	end
	
	local altunit = args.altunit
	if altunit then
		row.tag('th').attr('scope', 'col').wikitext(altunit).wikitext(args.altunit_ref)
	else
		local unit = args.unit or args.length
		if unit ~= 'off' then
			row.tag('th').attr('scope', 'col').wikitext(unit).wikitext(args.length_ref).done().tag('th').attr('scope', 'col').wikitext(args.unit2)
		end
	end
	
	local exit = args[1]
	if exit == 'old' then
		local old_def = args.old_def or 'Old exit'
		row.tag('th').attr('scope', 'col').wikitext(old_def).wikitext(args.old_ref)
		local exit_def = args.exit_def or 'New exit'
		row.tag('th').attr('scope', 'col').wikitext(exit_def).wikitext(args.exit_ref)
	elseif exit == 'exit' then
		local exit_def = args.exit_def or 'Exit'
		row.tag('th').attr('scope', 'col').wikitext(exit_def).wikitext(args.exit_ref)
	end
	
	if args[2] == 'name' then
		local name_def = args.name_def or 'Name'
		row.tag('th').attr('scope', 'col').wikitext(name_def).wikitext(args.name_ref)
	end
	
	local dest_def = args.dest_def or 'Destinations'
	row.tag('th').attr('scope', 'col').wikitext(dest_def).wikitext(args.dest_ref)
	
	local notes_def = args.notes_def or 'Notes'
	row.tag('th').attr('scope', 'col').wikitext(notes_def).wikitext(args.notes_ref)
	
	return tostring(row.allDone())
end

function p._jcttop(args)
	-- This function calls two other functions to generate a hatnote and header row.
	-- This function is accessible from other Lua modules.
	return hatnote(args) .. header(args)
end

function p.jcttop(frame)
	-- Entry function for {{jcttop/core}}
	local args = getArgs(frame) -- Gather passed arguments into easy-to-use table.
	return p._jcttop(args) -- Simply call another function with those arguments to actually create the header.
end

return p