Module:Protection banner: Difference between revisions
Jump to navigation
Jump to search
produce wikitext errors rather than script errors for errors caused by invalid user input
>Mr. Stradivarius (use mw.ustring.lower to convert the reason to lower case, for the benefit of other-language wikis) |
>Mr. Stradivarius (produce wikitext errors rather than script errors for errors caused by invalid user input) |
||
Line 15: | Line 15: | ||
-- Helper functions | -- Helper functions | ||
-------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||
local function makeWikitextError(msg) | |||
-- @TODO: localise this. | |||
local boilerplate = 'Error: $1 ([[Module:Protection banner#Errors|help]])' | |||
local errorText = mw.message.newRawMessage(boilerplate):params(msg):plain() | |||
return string.format( | |||
'<strong class="error">%s</strong>', | |||
errorText | |||
) | |||
end | |||
local function makeCategoryLink(cat) | local function makeCategoryLink(cat) | ||
Line 42: | Line 52: | ||
dateType, | dateType, | ||
tostring(dateString) | tostring(dateString) | ||
)) | ), 0) | ||
end | end | ||
Line 84: | Line 94: | ||
self.action = args.action | self.action = args.action | ||
else | else | ||
error(' | error(string.format( | ||
'invalid action ("%s")', | |||
tostring(args.action) | |||
), 0) | |||
end | end | ||
Line 800: | Line 813: | ||
end | end | ||
-- Initialise protection and | -- Initialise the protection object and check for errors | ||
local protectionObj = Protection:new(args, cfg, title) | local protectionObjCreated, protectionObj = pcall( | ||
Protection.new, Protection, -- equivalent to Protection:new() | |||
args, | |||
cfg, | |||
title | |||
) | |||
if not protectionObjCreated then | |||
-- protectionObj is the error message. | |||
return makeWikitextError(protectionObj) | |||
end | |||
-- Initialise the blurb object | |||
local blurbObj = Blurb:new(protectionObj, args, cfg) | local blurbObj = Blurb:new(protectionObj, args, cfg) | ||