Module:Utils: Difference between revisions

From Halopedia, the Halo wiki

No edit summary
No edit summary
Line 12: Line 12:
-- Collect necessary information to display error
-- Collect necessary information to display error
local args = select( 1, ... )[ 'args' ]
local args = select( 1, ... )[ 'args' ]
local message = utils.defaultIfEmpty( args[1], 'There was an error with a template. Are the parameters all correct?' )
local message = utils.defaultIfEmpty( tostring( args[1] ), 'There was an error with a template. Are the parameters all correct?' )
local etype = utils.defaultIfEmpty( args[2], 'Template' )
local etype = utils.defaultIfEmpty( tostring( args[2] ), 'Template' )
local category = utils.defaultIfEmpty( args[3], 'Pages containing template errors' )
local category = utils.defaultIfEmpty( tostring( args[3] ), 'Pages containing template errors' )
local template = utils.defaultIfEmpty( args[4], nil )
local template = utils.defaultIfEmpty( tostring( args[4] ), nil )
-- Style data  
-- Style data  

Revision as of 15:36, September 28, 2020

Documentation for this module may be created at ModuleDoc:Utils

local utils = {}

function utils.defaultIfEmpty( val, default )
	if val == nil or val == '' or val == {} then
		return default
	else
		return val
	end
end

function utils.error( ... )
	-- Collect necessary information to display error
	local args = select( 1, ... )[ 'args' ]
	local message = utils.defaultIfEmpty( tostring( args[1] ), 'There was an error with a template. Are the parameters all correct?' )
	local etype = utils.defaultIfEmpty( tostring( args[2] ), 'Template' )
	local category = utils.defaultIfEmpty( tostring( args[3] ), 'Pages containing template errors' )
	local template = utils.defaultIfEmpty( tostring( args[4] ), nil )
	
	-- Style data 
	etype = string.upper( etype )
	
	-- Add a warning to the edit preview
	if template == nil then
		mw.addWarning( "'''" .. etype .. " ERROR:''' " .. message )
	else
		mw.addWarning( "'''" .. etype .. " ERROR:''' " .. message .. ' (Template name: "' .. template .. ')' )
	end
	
	-- Create and return the text to display on the page itself
	return [[<span class="template-error" style="color: red;">''']]
		.. etype
		.. [[ ERROR:''' ]]
		.. message
		.. '</span> [[Category:'
		.. category
		.. ']]'
end

return utils