Järjestelmäviesti:Gadget-personalSandbox.js
Siirry navigaatioon
Siirry hakuun
Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.
- Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
- Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
- Internet Explorer ja Edge: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
- Opera: Paina Ctrl-F5.
/**
* Add a "My sandbox" link to the personal portlet menu.
*
* Required modules: mediawiki.util, mediawiki.Title, mediawiki.Uri
*
* @source https://www.mediawiki.org/wiki/Snippets/MySandbox
* @version 2014-07-16
*/
( function ( mw, $ ) {
$( function () {
function copy_page_to_sandbox()
{
OO.ui.confirm( conf.confirmMessage ).done( function ( confirmed ) {
if (confirmed === true) {
var rev_id = mw.config.get("wgRevisionId");
var wgPageName = mw.config.get("wgPageName");
var wgArticleId = mw.config.get("wgArticleId");
if (rev_id===0)
{
// Miksi jossain sivuilla tuoreimmassa versiossa wgRevisionId = 0 ?
rev_id = mw.config.get("wgCurRevisionId")
}
if (rev_id===0)
{
alert(conf.copyErrorMessage);
}
var url="//fi.wikipedia.org/w/api.php?format=json&action=query&prop=revisions&rvprop=timestamp|user|comment|content&revids=" + rev_id;
$.getJSON(url, function(data) {
if (data && data.query && data.query.pages) {
var sandbox_title_tmp="User:" + mw.user.getName() + "/" + conf.subpageName;
content=data.query.pages[wgArticleId].revisions[0]['*'];
content=content.replace(/\[\[([Ll]uokka|[Cc]ategory) ?:/g, '[[:$1:');
content="{{Hiekkalaatikkoni}}\n<!-- Tee muokkaukset tämän rivin alapuolelle -->\n" + content;
summary=conf.copySummary;
summary=summary.replace("%PAGE_TITLE%", wgPageName.replace(/_/g, " "));
summary=summary.replace("%REV_ID%", rev_id);
summary=summary.replace("%SANDBOX_TITLE%", sandbox_title_tmp);
api = new mw.Api();
api.post({
'action': 'edit',
'title': sandbox_title_tmp,
'token': mw.user.tokens.get('csrfToken'),
'text': content,
'summary': summary
}).done(function(status) {
if (typeof(status) !== "undefined"
&& typeof(status.edit) !== "undefined"
&& typeof(status.edit.result) !== "undefined"
)
{
if (status.edit.result === "Success")
{
OO.ui.alert( conf.copyOkMessage);
}
else
{
alert(JSON.stringify(status));
}
}
else
{
alert(JSON.stringify(status));
}
//
});
}
});
}
});
}
var conf, title, url;
// Customize/Translate this to your needs
conf = {
subpageName: 'hiekkalaatikko',
portletLabel: 'Hiekkalaatikko',
portletTooltip: 'Oma hiekkalaatikko',
portletLabelAdd: '[+]',
portletTooltipAdd: 'Tallenna kopio tästä sivusta hiekkalaatikkoon',
confirmMessage: 'Kopioidaanko sivu hiekkalaatikkoosi?',
editintroPagename: 'Template:hiekkalaatikkoni',
preloadPagename: 'Malline:Hiekkalaatikkoni/preload',
copyErrorMessage: 'Sivua ei voitu kopioida',
copyOkMessage: 'Sivu kopioitiin hiekkalaatikkoosi.',
copySummary: 'Kopioidaan sivu [[%PAGE_TITLE%]] (rev id: %REV_ID%) käyttäjän [[%SANDBOX_TITLE%|hiekkalaatikkoon]]. '
};
// Don't alter the code below
// Use Special:MyPage (as opposed to mw.user.getName()) so that it
// works for logged-out users as well.
sandbox_title = new mw.Title( 'Special:MyPage/' + conf.subpageName );
url = new mw.Uri( sandbox_title.getUrl() );
url.extend( {
// action: 'edit',
// editintro: new mw.Title( conf.editintroPagename ),
preload: new mw.Title( conf.preloadPagename )
} );
mw.util.addPortletLink(
'p-personal',
url,
conf.portletLabel,
'pt-sandbox',
conf.portletTooltip,
null,
'#pt-preferences'
);
if (mw.config.get("wgNamespaceNumber") > -1)
{
if (mw.config.get("wgTitle") !== mw.config.get("wgUserName") + "/" +conf.subpageName)
{
var link=$("<a/>");
link.text(conf.portletLabelAdd);
link.attr('title', conf.portletTooltipAdd);
link.css('padding-left', '0.1em');
link.click(copy_page_to_sandbox);
$("#pt-sandbox").append(link);
}
}
} );
}( mediaWiki, jQuery ) );