Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4205417
edit.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
edit.js
View Options
(
function
()
{
Object
.
assign
(
mw
.
Api
.
prototype
,
/** @lends mw.Api.prototype */
{
/**
* @callback mw.Api.EditTransform
* @param {Object} revision Current revision
* @param {string} revision.content Current revision content
* @return {string|Object|jQuery.Promise} New content, object with edit
* API parameters, or promise providing one of those.
*/
/**
* Post to API with `csrf` token. See [#postWithToken]{@link mw.Api#postWithToken}
*
* @param {Object} params API parameters
* @param {Object} [ajaxOptions]
* @return {jQuery.Promise} See [#post]{@link mw.Api#post}
*/
postWithEditToken
:
function
(
params
,
ajaxOptions
)
{
return
this
.
postWithToken
(
'csrf'
,
params
,
ajaxOptions
);
},
/**
* API helper to grab a csrf token.
*
* @return {jQuery.Promise} Received token.
*/
getEditToken
:
function
()
{
return
this
.
getToken
(
'csrf'
);
},
/**
* Create a new page.
*
* @example
* new mw.Api().create( 'Sandbox',
* { summary: 'Load sand particles.' },
* 'Sand.'
* );
*
* @since 1.28
* @param {mw.Title|string} title Page title
* @param {Object} params Edit API parameters
* @param {string} params.summary Edit summary
* @param {string} content
* @return {jQuery.Promise} API response
*/
create
:
function
(
title
,
params
,
content
)
{
return
this
.
postWithEditToken
(
Object
.
assign
(
this
.
assertCurrentUser
(
{
action
:
'edit'
,
title
:
String
(
title
),
text
:
content
,
formatversion
:
'2'
,
// Protect against conflicts
createonly
:
true
}
),
params
)
).
then
(
(
data
)
=>
data
.
edit
);
},
/**
* Edit an existing page.
*
* To create a new page, use #create() instead.
*
* Simple transformation:
* ```
* new mw.Api()
* .edit( 'Sandbox', function ( revision ) {
* return revision.content.replace( 'foo', 'bar' );
* } )
* .then( function () {
* console.log( 'Saved!' );
* } );
* ```
*
* Set save parameters by returning an object instead of a string:
* ```
* new mw.Api().edit(
* 'Sandbox',
* function ( revision ) {
* return {
* text: revision.content.replace( 'foo', 'bar' ),
* summary: 'Replace "foo" with "bar".',
* assert: 'bot',
* minor: true
* };
* }
* )
* .then( function () {
* console.log( 'Saved!' );
* } );
* ```
*
* Transform asynchronously by returning a promise.
* ```
* new mw.Api()
* .edit( 'Sandbox', function ( revision ) {
* return Spelling
* .corrections( revision.content )
* .then( function ( report ) {
* return {
* text: report.output,
* summary: report.changelog
* };
* } );
* } )
* .then( function () {
* console.log( 'Saved!' );
* } );
* ```
*
* @since 1.28
* @param {mw.Title|string} title Page title
* @param {mw.Api.EditTransform} transform Callback that prepares the edit
* @return {jQuery.Promise} Edit API response
*/
edit
:
function
(
title
,
transform
)
{
title
=
String
(
title
);
let
basetimestamp
,
curtimestamp
;
return
this
.
get
(
{
action
:
'query'
,
prop
:
'revisions'
,
rvprop
:
[
'content'
,
'timestamp'
],
titles
:
[
title
],
formatversion
:
'2'
,
curtimestamp
:
true
}
)
.
then
(
(
data
)
=>
{
if
(
!
data
.
query
||
!
data
.
query
.
pages
)
{
return
$
.
Deferred
().
reject
(
'unknown'
);
}
const
page
=
data
.
query
.
pages
[
0
];
if
(
!
page
||
page
.
invalid
)
{
return
$
.
Deferred
().
reject
(
'invalidtitle'
);
}
if
(
page
.
missing
)
{
return
$
.
Deferred
().
reject
(
'nocreate-missing'
);
}
const
revision
=
page
.
revisions
[
0
];
basetimestamp
=
revision
.
timestamp
;
curtimestamp
=
data
.
curtimestamp
;
return
transform
(
{
timestamp
:
revision
.
timestamp
,
content
:
revision
.
content
}
);
}
)
.
then
(
(
params
)
=>
{
const
editParams
=
typeof
params
===
'object'
?
params
:
{
text
:
String
(
params
)
};
return
this
.
postWithEditToken
(
Object
.
assign
(
{
action
:
'edit'
,
title
:
title
,
formatversion
:
'2'
,
// Protect against errors and conflicts
assert
:
mw
.
config
.
get
(
'wgUserName'
)
?
'user'
:
undefined
,
basetimestamp
:
basetimestamp
,
starttimestamp
:
curtimestamp
,
nocreate
:
true
},
editParams
)
);
}
)
.
then
(
(
data
)
=>
data
.
edit
);
},
/**
* Post a new section to the page.
*
* @see mw.Api#postWithEditToken
* @param {mw.Title|string} title Target page
* @param {string} header
* @param {string} message wikitext message
* @param {Object} [additionalParams] Additional API parameters, e.g. `{ redirect: true }`
* @return {jQuery.Promise}
*/
newSection
:
function
(
title
,
header
,
message
,
additionalParams
)
{
return
this
.
postWithEditToken
(
Object
.
assign
(
{
action
:
'edit'
,
section
:
'new'
,
title
:
String
(
title
),
summary
:
header
,
text
:
message
},
additionalParams
)
);
}
}
);
}()
);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Aug 21 2026, 02:52 (12 w, 4 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
12/41/908e15315f30a998f28b21f7121d
Default Alt Text
edit.js (5 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment