Module:Protection banner: Difference between revisions

try tweaking the order
Enwikipedia>Mr. Stradivarius
(add some lengthy comments explaining what's going on)
Enwikipedia>Mr. Stradivarius
(try tweaking the order)
Line 83:
-- Define often-used functions as local variables.
local tconcat = table.concat
local tinsert = table.insert
local tremove = table.remove
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 = {}
Line 116 ⟶ 124:
{pos = 5, val = expiry},
{pos = 3, val = p.matchNamespace(namespace)},
{pos = 4, val = reason},
{pos = 2, val = protLevel},
{pos = 1, val = protType},
{pos = 4, val = reason}
}
 
Line 128 ⟶ 136:
-- vandalism categories if they were available.
--]]
local behavior = 'reasonFirst'
if not reason then
elseif behavior ~= 'reasonFirst' then
else
behavior = behaviors[reason]
end
if behavior == 'namespaceFirst' then
table.insert(properties, table.remove(properties, 2))
toTableEnd(properties, 2) -- move namespace to end
elseif behavior ~= 'reasonFirst' then
elseif behavior == 'reasonFirst' then
error(reason .. ' is not a valid reason')
toTableEnd(properties, 3) -- move reason to end
end
else
error(reason .. ' is not a valid reason')
end