Module:Submit an edit request/sandbox: Difference between revisions

Content deleted Content added
No edit summary
bypass redirect
 
(9 intermediate revisions by 4 users not shown)
Line 1:
-- This module implements {{Submit an edit request}}.
 
local CONFIG_MODULE = 'Module:Submit an edit request/config/sandbox'
 
-- Load necessary modules
Line 29:
return mw.message.newRawMessage(msg):params(params):plain()
end
end
 
local function isTranscludedOnMainPage(titleObj)
local mainPage = message('main-page')
for i, source in ipairs(titleObj.cascadingProtection.sources) do
if source == mainPage then
return true
end
end
return false
end
 
Line 60 ⟶ 50:
function p.makeRequestUrl(level, titleObj)
titleObj = titleObj or mw.title.getCurrentTitle()
local basePage = titleObj.basePageTitle.fullText
if isTranscludedOnMainPage(titleObj) then
if cfg['main-page-content'][basePage] then
local basePage = titleObj.basePageTitle.fullText
return tostring(mw.uri.fullUrl(message('main-page-request-page')))
if cfg['main-page-content'][basePage] then
return tostring(mw.uri.fullUrl(message('main-page-request-page')))
end
end
 
local talkPageName = titleObj.talkPageTitle
local useTalkPage = true
if talkPageName == nil then
return tostring(mw.uri.fullUrl(message('protected-talk-page-request-page')))
useTalkPage = false
end
else
talkPageName = resolveRedirect(talkPageName.prefixedText)
if isProtected(talkPageName) then
pageToEdit =return tostring(mw.uri.fullUrl(message('protected-talk-page-request-page')))
useTalkPage = false
end
end
level = validateLevel(level)
if sourcelevel == mainPage'manual' then
local pageToEdit
if not useTalkPage then
if level == 'manual' then
return mw.uri.fullUrl(message('protected-talk-page-request-page'))
else
pageToEdit = message('protected-talk-page-request-page')
sectionname = titleObj.prefixedText
end
elseif level == 'manual' then
return tostring(mw.uri.fullUrl(talkPageName, {
action = 'edit',
section = 'new'
}))
end
else
local mainPagesectionname = message('main-page')
pageToEdit = talkPageName
sectionname = message(
'preload-title-text',
getLevelInfo(level, 'levelText'),
lang:formatDate(message('preload-title-date-format'))
)
local content = mw.title.new(talkPageName):getContent()
end
localif content and content:find("== mw*" .title.new escape(pageToEditsectionname):getContent( .. " *==") then
if content and content:find("===? *" .. escape(sectionname) .. " *=?==") then
local dedup = 2
while true do
local newname = message("preload-title-dedup-suffix", sectionname, dedup)
if not content:find("===? *" .. escape(newname) .. " *=?==") then
sectionname = newname
break
Line 110 ⟶ 87:
end
end
local argsurl = mw.uri.fullUrl(talkPageName, {
action = 'edit',
editintro = getLevelInfo(level, 'editintro'),
preload = message('preload-template'),
args.preloadtitle = sectionname,
section = 'new'
})
url = tostring(url)
if not useTalkPage then
args.summary = message('request-page-auto-summary', titleObj.prefixedText)
args.nosummary = 'true'
-- Section header is handled by the preload
else
args.preloadtitle = sectionname
end
url = tostring(mw.uri.fullUrl(pageToEdit, args))
 
-- Add the preload parameters. @TODO: merge this into the mw.uri.fullUrl
Line 132 ⟶ 103:
url = url .. encodeParam('preloadparams[]', getLevelInfo(level, 'requestTemplate'))
url = url .. encodeParam('preloadparams[]', titleObj.prefixedText)
 
if not useTalkPage then
url = url .. encodeParam('preloadparams[]', '=== ' .. titleObj.prefixedText .. ' ===\n')
else
-- Empty 3rd parameter
url = url .. encodeParam('preloadparams[]', '')
end
return url
end
Line 150 ⟶ 116:
 
function p._button(args)
return require('Module:Clickable button 2').luaMainmain{
[1] = args.display or message('default-display-value'),
url = p.makeRequestUrl(args.type),