Changes

Jump to navigation Jump to search
m
β†’β€Žtop: per Wikipedia:Categories for discussion/Log/2018 November 5, replaced: Non-talk pages requesting an edit to a protected page β†’ Non-talk pages with an edit request template
require('Module:No globals')

local yesno = require('Module:Yesno')
local makeMessageBox = require('Module:Message box').main
local getArgs

local activeBox -- lazily initialized if we get an active request

----------------------------------------------------------------------
-- Box class definition
----------------------------------------------------------------------

local box = {}
box.__index = box

function box.new(protectionType, args)
local obj = {}
setmetatable(obj, box)
obj.tmboxArgs = {} -- Used to store arguments to be passed to tmbox by the box:export method.
-- Set data fields.
obj.tmboxArgs.attrs = { ['data-origlevel'] = protectionType }
return obj
end

function box:setArg(key, value)
-- This sets a value to be passed to tmbox.
if key then
self.tmboxArgs[key] = value
end
end

function box:export()
if not mw.title.getCurrentTitle().isTalkPage and not self.demo then
return '<span class="error">Error: Protected edit requests can only be made on the talk page.</span>[[Category:Non-talk pages with an edit request template]]'
end
self:setArg('smalltext', "This [[Wikipedia:Edit requests|edit request]] has been answered. Set the <code style=\"white-space: nowrap;\">&#124;answered&#61;</code> or <code style=\"white-space: nowrap;\">&#124;ans&#61;</code> parameter to '''no''' to reactivate your request.")
self:setArg('small', true)
self:setArg('class', 'editrequest')
return makeMessageBox('tmbox', self.tmboxArgs)
end

----------------------------------------------------------------------
-- Process arguments and initialise objects
----------------------------------------------------------------------

local p = {}

function p._main(protectionType, args)
local boxType = box
if not yesno(args.answered or args.ans, true) then
if not activeBox then
activeBox = require('Module:Protected edit request/active')(box, yesno, makeMessageBox)
end
boxType = activeBox
end
local requestBox = boxType.new(protectionType, args)
return requestBox:export()
end

local mt = {}

function mt.__index(t, k)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return function (frame)
return t._main(k, getArgs(frame, {wrappers = {'Template:Edit fully-protected', 'Template:Edit semi-protected', 'Template:Edit template-protected', 'Template:Edit extended-protected', 'Template:Edit interface-protected'}}))
end
end

return setmetatable(p, mt)
Anonymous user

Navigation menu