Module:Sanctions/AlertHelper: Difference between revisions
Appearance
Content deleted Content added
use live |
passthru more args |
||
Line 22: | Line 22: | ||
function p.build(frame, args) |
function p.build(frame, args) |
||
local topic = args[1] or args['topic'] |
local topic = args[1] or args['topic'] |
||
local args = { topic, args[2], sig = args['sig'] } |
|||
if not topic then |
if not topic then |
||
return frame:preprocess(syntaxHelp()) |
return frame:preprocess(syntaxHelp()) |
||
Line 29: | Line 31: | ||
return frame:expandTemplate { |
return frame:expandTemplate { |
||
title = 'Gs/alert', |
title = 'Gs/alert', |
||
args = |
args = args |
||
} |
} |
||
else |
else |
||
Line 35: | Line 37: | ||
return frame:expandTemplate { |
return frame:expandTemplate { |
||
title = 'Ds/alert', |
title = 'Ds/alert', |
||
args = |
args = args |
||
} |
} |
||
end |
end |
Revision as of 13:11, 12 February 2022
local p = {}
local getArgs = require('Module:Arguments').getArgs
local checkIfValidTopic = require('Module:Sanctions').checkIfValidTopic
local function tableContains(needle, haystack)
for _, v in pairs(haystack) do
if v == needle then
return true
end
end
return false
end
local function syntaxHelp()
return [[<span class="error">{{para|topic}} not specified. Available options:</span><div style="border-left: 5px dashed black; border-right: 5px dashed black; border-bottom: 5px dashed black; padding-left: 0.5em; padding-right: 0.5em; padding-bottom: 0.5em;">
{{Ds/topics/table}}
{{Gs/topics/table|subst=y}}
</div>]]
end
function p.build(frame, args)
local topic = args[1] or args['topic']
local args = { topic, args[2], sig = args['sig'] }
if not topic then
return frame:preprocess(syntaxHelp())
end
if checkIfValidTopic(topic) then
return frame:expandTemplate {
title = 'Gs/alert',
args = args
}
else
-- return to ds template, let it error if not recognised
return frame:expandTemplate {
title = 'Ds/alert',
args = args
}
end
end
function p.main(frame)
local args = getArgs(frame, {
wrappers = {
'Template:Alert',
'Template:Alert/sandbox'
}
})
return p.build(frame, args)
end
return p