Module:Protection banner: Difference between revisions
try tweaking the order
(add some lengthy comments explaining what's going on) |
(try tweaking the order) |
||
Line 83: | Line 83: | ||
-- Define often-used functions as local variables. | -- Define often-used functions as local variables. | ||
local tconcat = table.concat | local tconcat = table.concat | ||
local tinsert = table.insert | |||
local tremove = table.remove | |||
local ceil = math.ceil | local ceil = math.ceil | ||
local function toTableEnd(t, pos) | |||
-- Sends the value at position pos to the end of array t, and shifts the | |||
-- other items down accordingly. | |||
return tinsert(t, tremove(t, pos)) | |||
end | |||
local p = {} | local p = {} | ||
Line 116: | Line 124: | ||
{pos = 5, val = expiry}, | {pos = 5, val = expiry}, | ||
{pos = 3, val = p.matchNamespace(namespace)}, | {pos = 3, val = p.matchNamespace(namespace)}, | ||
{pos = 4, val = reason}, | |||
{pos = 2, val = protLevel}, | {pos = 2, val = protLevel}, | ||
{pos = 1, val = protType | {pos = 1, val = protType} | ||
} | } | ||
Line 128: | Line 136: | ||
-- vandalism categories if they were available. | -- vandalism categories if they were available. | ||
--]] | --]] | ||
local behavior = 'reasonFirst' | local behavior | ||
if not reason then | |||
behavior = 'reasonFirst' | |||
else | |||
behavior = behaviors[reason] | behavior = behaviors[reason] | ||
end | |||
if behavior == 'namespaceFirst' then | |||
toTableEnd(properties, 2) -- move namespace to end | |||
elseif behavior == 'reasonFirst' then | |||
toTableEnd(properties, 3) -- move reason to end | |||
else | |||
error(reason .. ' is not a valid reason') | |||
end | end | ||