Halo Esports Wiki

We are currently performing extensive maintenance to this wiki and as a result there will likely be errors. Please be patient while we work to fix all problems.

READ MORE

Halo Esports Wiki
Advertisement

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

local util_args = require('Module:ArgsUtil')
local util_html = require("Module:HtmlUtil")
local util_toggle = require("Module:ToggleUtil")
local util_vars = require("Module:VarsUtil")
local i18n = require('Module:i18nUtil')
local PlayerTeamHistoryCompact = require('Module:PlayerTeamHistoryCompact')._main
local PlayerTeamHistory = require('Module:PlayerTeamHistory')._main
local NewsQueryPlayer = require('Module:NewsQueryPlayer')._main

local TOGGLES_TABLE = {
	order = { 'full', 'compact' },
}

local TOGGLES_DATE = {
	order = { 'approx', 'exact' },
	key = 'date'
}

local h = {}

local p = {}
function p.main(frame)
	local args = util_args.merge()
	i18n.init('PlayerTimelineSection')
	local output = mw.html.create()
	local div = output:tag('div')
		:addClass('player-history')
	h.printContent(div, args)
	if util_args.castAsBool(args.suppressoutput) then return '' end
	return output, '[[Category:PlayersWithAutomatedNews]]'
end

function h.printContent(output, args)
	output:tag('h2')
		:wikitext(i18n.print('TeamHistory'))
	h.printLowContentIntroIfNeeded(output)
	h.printPTH(output, args)
	output:tag('h2')
		:wikitext(i18n.print('News'))
	output:tag('div')
		:addClass('player-history-timeline')
		:wikitext(tostring(NewsQueryPlayer(args)))
end

function h.printPTH(output, args)
	h.printToggler(output)
	local div = output:tag('div')
		:addClass('player-history-teamlist')
	local div2 = div:tag('div'):wikitext(tostring(PlayerTeamHistoryCompact(args)))
	local div1 = div:tag('div'):wikitext(tostring(PlayerTeamHistory(args)))
	h.printToggleClasses(div1, 'full')
	h.printToggleClasses(div2, 'compact')
end

function h.printToggler(tbl)
	local div = tbl:tag('div')
		:addClass('toggle-button')
	div:wikitext(i18n.print('toggleIntro'))
	util_toggle.printOptionFromListTogglers(div, TOGGLES_TABLE)
	local div2 = tbl:tag('div')
		:addClass('toggle-button')
	div2:wikitext(i18n.print('toggleDatesIntro'))
	util_toggle.printOptionFromListTogglers(div2, TOGGLES_DATE)
	util_html.clear(tbl)
	return
end

function h.printToggleClasses(div, label)
	util_toggle.oflCellClasses(div, TOGGLES_TABLE, label)
end

function h.printLowContentIntroIfNeeded(output)
	if not util_vars.getBool('isLowContent') then return end
	output:tag('div')
		:addClass('low-content-notice-wrapper')
		:tag('div')
			:addClass('low-content-notice')
			:wikitext(i18n.print('lowContentIntro'))
		
end

return p
Advertisement