Module:Protection banner: Difference between revisions
use actual Lua errors, and a small fix to parameter handling
(only show banners for actions other than edit if they're more restricted than edit) |
(use actual Lua errors, and a small fix to parameter handling) |
||
Line 52: | Line 52: | ||
dateType, | dateType, | ||
tostring(dateString) | tostring(dateString) | ||
), | ), 4) | ||
end | end | ||
Line 122: | Line 122: | ||
'invalid action ("%s")', | 'invalid action ("%s")', | ||
tostring(args.action) | tostring(args.action) | ||
), | ), 3) | ||
end | end | ||
Line 152: | Line 152: | ||
obj.reason = mw.ustring.lower(args[1]) | obj.reason = mw.ustring.lower(args[1]) | ||
if obj.reason:find('|') then | if obj.reason:find('|') then | ||
error('reasons cannot contain the pipe character ("|")', | error('reasons cannot contain the pipe character ("|")', 3) | ||
end | end | ||
end | end | ||
Line 543: | Line 543: | ||
level, | level, | ||
talkKey | talkKey | ||
)) | ), 8) | ||
end | end | ||
return self:_substituteParameters(msg) | return self:_substituteParameters(msg) | ||
Line 583: | Line 583: | ||
return pagetypes[self._protectionObj.title.namespace] | return pagetypes[self._protectionObj.title.namespace] | ||
or pagetypes.default | or pagetypes.default | ||
or error('no default pagetype defined') | or error('no default pagetype defined', 8) | ||
end | end | ||
Line 598: | Line 598: | ||
msg = protectionBlurbs.edit.default | msg = protectionBlurbs.edit.default | ||
else | else | ||
error('no protection blurb defined for protectionBlurbs.edit.default') | error('no protection blurb defined for protectionBlurbs.edit.default', 8) | ||
end | end | ||
return self:_substituteParameters(msg) | return self:_substituteParameters(msg) | ||
Line 624: | Line 624: | ||
msg = protectionLevels.edit.default | msg = protectionLevels.edit.default | ||
else | else | ||
error('no protection level defined for protectionLevels.edit.default') | error('no protection level defined for protectionLevels.edit.default', 8) | ||
end | end | ||
return self:_substituteParameters(msg) | return self:_substituteParameters(msg) | ||
Line 703: | Line 703: | ||
tostring(key), | tostring(key), | ||
type(msg) | type(msg) | ||
)) | ), 4) | ||
end | end | ||
return self:_substituteParameters(msg) | return self:_substituteParameters(msg) | ||
Line 800: | Line 800: | ||
-- Renders the banner. | -- Renders the banner. | ||
makeMessageBox = makeMessageBox or require('Module:Message box').main | makeMessageBox = makeMessageBox or require('Module:Message box').main | ||
local reasonText = self._reasonText or error('no reason text set') | local reasonText = self._reasonText or error('no reason text set', 2) | ||
local explanationText = self._explanationText | local explanationText = self._explanationText | ||
local mbargs = { | local mbargs = { | ||
Line 865: | Line 865: | ||
cfg = cfg or require(CONFIG_MODULE) | cfg = cfg or require(CONFIG_MODULE) | ||
local protectionObj = Protection.new(args, cfg, title) | |||
local | |||
local ret = {} | local ret = {} | ||
Line 917: | Line 897: | ||
-- Find default args, if any. | -- Find default args, if any. | ||
local parent = frame.getParent and frame:getParent() | local parent = frame.getParent and frame:getParent() | ||
local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')] | local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub('/sandbox$', '')] | ||
-- Find user args, and use the parent frame if we are being called from a | -- Find user args, and use the parent frame if we are being called from a | ||
Line 929: | Line 909: | ||
-- Build the args table. User-specified args overwrite default args. | -- Build the args table. User-specified args overwrite default args. | ||
local args = {} | local args = {} | ||
for k, v in pairs(defaultArgs) do | for k, v in pairs(defaultArgs or {}) do | ||
args[k] = v | args[k] = v | ||
end | end |