Lahjoita Saunapedialle - sinä voit auttaa Saunapediaa luomaan maailman yksityiskohtaisimman sauna-aiheisen tietosanakirjan  

Järjestelmäviesti:Gadget-personalSandbox.js

Saunapediasta
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: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
  • Opera: Valikko → Asetukset (Opera → Asetukset Macilla) ja sitten Tietosuoja ja turvallisuus → Tyhjennä selaustiedot → Välimuistissa olevat kuvat ja tiedostot.
/**
 * 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('editToken'),
                                    '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 ) );