MediaWiki:Gadget-HurtigSlett.js

Merk: Etter publisering vil det kanskje være nødvendig å slette mellomlageret i nettleseren din for å se endringene.

  • Firefox / Safari: Hold Shift mens du klikker på Oppdater, eller trykk enten Ctrl+F5 eller Ctrl+R (⌘+R på Mac)
  • Google Chrome: Trykk Ctrl+Shift+R (⌘+Shift+R på Mac)
  • Edge: Hold Ctrl mens du trykker på Oppdater eller trykk Ctrl+F5
/**
 * Description: Checks if there are pages in the categories 
 *  - 'Sider som er foreslått raskt slettet' (Hurtigslett)
 *  - 'Wikipedia anmodning om redigering av beskyttet side' (Redigeringsforslag)
 * and displays the number of pages in the toolbar if there are.
 * If both categories are empty, this gadget is completely invisible.
 * 
 * Definition: HurtigSlett[ResourceLoader|dependencies=mediawiki.api,mediawiki.title,mediawiki.uri,mediawiki.util]|HurtigSlett.js
 * Maintainer: Danmichaelo
 */ 

( function() {

    "use strict";

    $(function(){

        var api, items;

        api = new mw.Api();
        items = [{
            id: 'pt-hurtigslett',
            category: 'Sider som er foreslått raskt slettet',
            label: 'Hurtigslett',
            tooltip: 'Gå til kategorien',
            type: 'page|subcat|file'
        }, {
            id: 'pt-redigeringsforslag',
            category: 'Wikipedia anmodning om redigering av beskyttet side',
            label: 'Redigeringsforslag',
            tooltip: 'Gå til kategorien',
            type: 'page'
        }];

        $.each( items, function( key, config ) {

            var title, url, request;

            title = new mw.Title( config.category, 14 );
            try {
            	url = new mw.Uri( title.getUrl() );
            } catch (e) {
            	return; // malformed URI
            }
            request = {
                format: 'json',
                action: 'query',
                list: 'categorymembers',
                cmtitle: title.toString(),
                cmlimit: 11,
                cmtype: config.type
            };

            api.get( request ).done( function( data ){

                var count, label, li, currentUrl;

                count = data.query.categorymembers.length;
                if (count === 0) return;
                if (count === request.cmlimit) count = '> ' + (count - 1);

                label = config.label + ': ' + count;

                li = mw.util.addPortletLink(
                    'p-views',
                    url,
                    label,
                    config.id,
                    config.tooltip
                    // null,
                    // '#pt-preferences'
                );
                
                currentUrl = new mw.Uri();
                
                if ( currentUrl.toString() === url.toString() ) {
                	$(li).addClass('selected');
                }

            } );

        } );

    } );

} )();
  NODES