2712
ediciones
Cambios
sin resumen de edición
*/
}
/* Wait /fix edit summary prompt for DOMContentLoaded *undo//this code fixes the fact that the undo function combined with the "no edit summary prompter" causes problems if leaving the//edit summary unchanged//this was added by [[User:Deskana]], code by [[User:Tra]]$//see bug 8912addOnloadHook( function() { if (document.location.search.indexOf("undo=") != -1 && document.getElementsByName('wpAutoSummary')[0]) { document.getElementsByName('wpAutoSummary')[0].value='1'; }})
/**
* Collapsible tablesElement animator (used in [[Template:Grid]])
*
* Based Will cycle the active class on http://wwwany child elements within an element with the animated class.mediawiki.org/wiki/Manual:Collapsible_tables#Common.js_script_.28before_1.18.29
*/
}
/**
*
* This is so people have a chance to look at each image on the cell
* and click on pages they want to view.
*/
function pauseGrid( grid ) { $( '#mw-content-text' grid ).onhover( { 'mouseenter': function() { $( this ).find( '.grid .animated' ).removeClass( 'animated' ).addClass( 'paused' ); }, 'mouseleave': function() { $( this ).find( '.grid .paused' ).removeClass( 'paused' ).addClass( 'animated' ); });}, pauseGrid( '.grid-generic, .grid-Crafting_Table, ' );pauseGrid( '.grid-Furnace, ' );pauseGrid( '.grid-Brewing_Stand' );
/**
*/
if ( $.client.profile().name === 'msie' && $.client.profile().versionBase === '8' ) {
}
/**
* Use with [[Template:LoadPage]]
*/
var $loadPage baseURL = $( '.load-page' );if ( $loadPage.length ) { // We need the spinner to show loading is happening, but we don't want // to have a delay while the module downloads, so we'll load this now, // regardless of if something is clicked mw.loader.load( 'jquery.spinner' ); var $buttonText loadText = $( '<span/>' ) .addClass( 'load-page-button' ) .css( { display: 'inline-blockLoad content', marginLeft: showText = '0.8emExpand content', fontWeight: 'normal' } ) .html( '[<span class="jslink">' + mcw.i18n.hideText + '</span>]' ); $loadPage.find( '.mw-headline:first' ).each( function() { var $button, firstWidth, secondWidth; // Add the button $( this ).append( $buttonText.clone() ); // Find max button size, and set its min-width to it $button = $( this ).find( '> .load-page-buttonCollapse content' ); firstWidth = $button.width(); $button.find( '> .jslink' ).text( mcw.i18n.showText ); secondWidth = $button.width(); if ( firstWidth != secondWidth ) { if ( firstWidth < secondWidth ) { $button.css( 'min-width', secondWidth ); } else { $button.css( 'min-width', firstWidth ); } } } );}
$( '#mw-content-text' ).on( 'click', '.load-page-button > .jslink', function() { var $this = $( this ), $button = $this.parent(), $body = $this.closestfind( '.loadmw-pageheadline:first' ), $content = $body.findappend( '.<span class="load-page-content' ); if ( !$body.data( 'loaded' ) ) { var oldButton button" style= $button.html()"margin-left:10px; // Just infont-case the spinner module is still not ready yet mw.loader.using( 'jquery.spinner', function() { $button.html( $.createSpinner() ); } ); new mw.Api().get( { action: 'parse', propweight: 'text', title: mw.config.get( 'wgPageName' ), text: '{normal">[<span class="jslink">' + '{:' loadText + $body.data( 'page' ) + '}}' } ).done( function( data ) { $content.html( data.parse.text['*'</span>] ).show(); $button.html( oldButton ).find( '</span> .jslink' ).text( mcw.i18n.hideText ); $body.data( 'loaded', true ); // Add Ajax compatible functions here // TODO: Use mw.hook once we get MW1.22 mcw.animation(); mcw.makeCollapsible( $content ); if ( $content.find( 'table.sortable' ).length ) { mw.loader.using( 'jquery.tablesorter', function() { $content.find( 'table.sortable' ).tablesorter(); } ); } } ).fail( function( _, error ) { $button.html( oldButton ); var errorText = ''; if ( error.textStatus ) { errorText = error.textStatus; } else if ( error.error ) { errorText = error.error.info; } mw.notify( errorText, { title: mcw.i18n.loadErrorTitle, autoHide: false } ); } ); } else if ( $this.text() === mcw.i18n.showText ) { $content.show(); $this.text( mcw.i18n.hideText ); } else { $content.hide(); $this.text( mcw.i18n.showText ); }} );
$( '.load-page-button > .jslink' ).live( 'click', function() { var $this = $( this ), $body = $this.closest( '.load-page' ), $content = $body.find( '.load-page-content' ); if ( $body.hasClass( 'loading' ) ) { return; } if ( $this.text() === loadText ) { $body.addClass( 'loading' ); $( 'body' ).css( 'cursor', 'wait' ); $.ajax( { url: baseURL + 'api.php?format=json&action=parse&prop=text&redirects=1&page=' + mw.util.wikiUrlencode( $body.data( 'page' ) ), dataType: 'json', timeout: 20000 } ).done( function( data ) { if ( data.error ) { if ( $( '#error-dialog' ).length ) { return; } mw.loader.using( 'jquery.ui.dialog', function() { $body.removeClass( 'loading' ); $( 'body' ).css( 'cursor', 'auto' ); $( '#netbar' ).after( '<div id="error-dialog" />' ); $( '#error-dialog' ).html( '<p><strong>Error:</strong> ' + data.error.info + '</p>' ).dialog( { title: 'Hey! Listen!', resizable: false, width: 400, modal: true, buttons: { 'Retry': function() { $this.click(); $( this ).dialog( 'destroy' ); $( '#error-dialog' ).remove(); }, Cancel: function() { $( this ).dialog( 'destroy' ); $( '#error-dialog' ).remove(); return; } } } ); } ); return; } $content.html( data.parse.text['**'] ); $this.text( hideText ); $body.removeClass( 'loading' ); $( 'body' ).css( 'cursor', 'auto' ); } ).fail( function( error ) { if ( $( '#error-dialog' ).length ) { * Make simple search suggestions box separately styled return; */ } mw.loader.using( 'mediawikijquery.searchSuggestui.dialog', function() { $body.removeClass( 'loading' ); $( 'body' ).suggestionscss( 'cursor', 'auto' ); $( '#netbar' ).after( '<div id="error-dialog" />' ); if ( !error.responseText ){ $( '#error-dialog' ).html( '<p><strong>Error:first</strong> No response from the server</p>' ); } else { $( '#error-dialog' ).addClasshtml( '<p><strong>Error:</strong> ' + error.responseText + '</p>' ); } $( '#error-dialog' ).dialog( { title: 'Hey! Listen!', resizable: false, width: 400, modal: true, buttons: { 'Retry': function() { $this.click(); $( this ).dialog( 'destroy' ); $( '#error-dialog' ).remove(); }, Cancel: function() { $( this ).dialog( 'destroy' ); $( 'searchbar#error-dialog' ).remove(); return; } } } ); } ); } ); } else if ( $this.text() === showText ) { $content.show(); $this.text( hideText ); } else { $content.hide(); $this.text( showText ); }
} );
/**
* Collapsible details Frame parser (for [[Template:History2Grid]]) * * Allows version history Requests the urls for all the animated grids on a page in 2 * API requests (due to a bug, 1 API request when it is fixed) * and appends them to be split up into snapshotsthe correct location.
*/
var baseURL = '/', wikiURL = '/wiki/', $grids = $( '.grid' ), titles = [], titleCount = 0, section = 0;if ( $grids.length ) { $grids.each( function() { var imgs = $( this ).data( 'imgs' ), mod = $( this ).data( 'mod' ); if ( !imgs ) { return true; } imgs = imgs.split( ';' ); imgs.shift(); $.each( imgs, function() { if ( !this.trim() ) { return true; } if ( titleCount === 50 ) { titleCount = 0; section++; } if ( !titles[section] ) { titles[section] = ''; } if ( this.indexOf( ':' ) > -1 ) { this.replace( /([^:]*):?([^,]*)/, function( $, mod, name ) { if ( mod.trim().toLowerCase() === 'v' || mod.trim().toLowerCase() === 'vanilla' ) { if ( titles[section].indexOf( 'File:Grid ' + name.trim() + '.png' ) < 0 ) { titles[section] += 'File:Grid ' + name.trim() + '.png|'; titleCount++; } } else { if ( titles[section].indexOf( 'File:Grid ' + name.trim() + ' (' + mod.trim() + ').png' ) < 0 ) { titles[section] += 'File:Grid ' + name.trim() + ' (' + mod.trim() + ').png|'; titleCount++; } } } ); } else { this.replace( /([^,]*)/, function( $, name ) { if ( !mod || mod.trim( ).toLowerCase() === 'v' || mod.history2trim().toLowerCase() === 'vanilla' ) { if ( titles[section].indexOf( 'File:Grid ' + name.trim() + '.png' ) < 0 ) { titles[section] += 'File:Grid ' + name.trim() + '.png|'; titleCount++; } } else { if ( titles[section].indexOf( 'File:Grid ' + name.trim() + ' (' + mod.trim() + ').png' ) < 0 ) { titles[section] += 'File:Grid ' + name.trim() + ' (' + mod.trim() + ').png|'; titleCount++; } } } ); } } ); } ); /* Thanks to bug 23750 (https://bugzilla.wikimedia.org/show_bug.cgi?id=23750) * &redirects doesn't work properly with prop=imageinfo. Some of the images * will return without any imageinfo, even though they are valid. * So the redirects have to be resolved in a separate request... */ if ( titles ) { var promise = [], redirects = {}, urls = {}; $.each( titles, function( index ) { var titleSection = this.slice( 0, -1 ); promise.push( $.ajax( { type: 'POST', url: baseURL + 'api.php?action=query&format=json&redirects' , data: { titles: titleSection }, timeout: 20000 } ).done( function( data ) { if ( data.query.redirects ) { $.each( data.query.redirects, function() { redirects[this.to] = this.from; titles[index] = titles[index].replace( this.from, this.to ); } ); } } ).fail( function( error ) { console.error( error ); } ) ); } ); $.when.apply( $, promise ).then( function() { promise.length = 0; $.each( titles, function() { var titles = this.slice( 0, -1 ); promise.push( $.ajax( { type: 'POST', url: baseURL + 'api.php?action=query&format=json&prop=imageinfo&iiprop=url&iiurlwidth=32&iiurlheight=32', data: { titles: titles }, timeout: 20000 } ).done( function( data ) { $.each( data.query.pages, function( index ) { if ( index < 0 ) { return true; } if ( redirects.hasOwnProperty( this.title ) ) { urls[redirects[this.title].replace( /File:Grid (.*).png/, '$1' )] = this.imageinfo[0].thumburl; } else { urls[this.title.replace( /File:Grid (.*).png/, '$1' )] = this.imageinfo[0].thumburl; } } ); } ).fail( function( error ) { console.error( error ); } ) ); } ); $.when.apply( $, promise ).then( function() { $grids.each( function() { var $grid = $( this ), imgs = $grid.data( 'imgs' ), mod = $( this ).data( 'mod' ), html = ''; if ( !imgs ) { return true; } imgs = imgs.split( ';' ); imgs.shift(); $.each( imgs, function() { if ( !this.trim() ) { html += gridFormat(); return true; } if ( this.indexOf( ':' ) > -1 ) { this.replace( /([^:]*):?([^,]*),?(\d*)/, function( $, mod, name, num ) { if ( mod.trim().toLowerCase() === 'v' || mod.trim().toLowerCase() === 'vanilla' ) { html += gridFormat( name.trim(), name.trim(), urls[name.trim()], num ); } else { var img = name.trim() + ' (' + mod.trim() + ')'; html += gridFormat( img, 'Mods/' + mod.trim() + '/' + name.trim(), urls[img], num ); } } ); } else { this.replace( /([^,]*),?(\d*)/, function( $, name, num ) { if ( !mod || mod.trim().toLowerCase() === 'v' || mod.trim().toLowerCase() === 'vanilla' ) { html += gridFormat( name.trim(), name.trim(), urls[name.trim()], num ); } else { var img = name.trim() + ' (' + mod.trim() + ')'; html += gridFormat( img, 'Mods/' + mod.trim() + '/' + name.trim(), urls[img], num ); } } ); } } ); $grid.find( 'pre> .border > span > .animated' ).length append( html ); } ); } ); } ); }} function gridFormat( name, link, url, num ) { var histExpandText html = '<span class="image">'; if ( name ) { if ( url ) { html += '<a title="' + link + '" href="' + wikiURL + link.replace( / /g, '_' ) + '"><img width="32" height="32" src="' + url + '" alt="' + name + '"></a>'; if ( num ) { html += 'View snapshot history<span class="number"><a title="'+ link + '" href="' + wikiURL + link.replace( / /g, histCollapseText '_' ) + '">' + num + '</a></span>'; } } else { html += 'Hide snapshot history<a class="new" title="File:Grid ' + name + '.png" href="' + baseURL + 'index.php?title=Special:Upload&wpDestFile=Grid_' + name.replace( / /g, '_' ) + '.png"></a>'; } } else { html += ' '; } return html += '</span>';}
/**Edittools javascript loader ************************************************ * * Description: Pulls in [[MediaWiki:Edittools.js]]. Includes a cache-bypassing * version number in the URL in order to allow any changes to the edittools to * be rapidly deployed to users. * * Note that, by default, this function does nothing unless the element with * the ID "editpage-specialchars" (which contains the old edittools code in * [[MediaWiki:Edittools]], and will be retained as a placeholder in the new * implementation) has a class named "edittools-version-NNN", where NNN is a * number. If the class name has "test" before the number, the code will only * run for users who have set "window.testJsEdittools = true" in their user JS. * The "test" should be retained in the class name until the new edittools * implementation is ready and fully tested, and until at least 30 days have * Issue tracker passed since this loaderstub was added (which will be in 27 June 2008). * * For compatibility with Alex Smotrov's original implementation, on which this * code is loosely based (see [[mw:User talk:Alex Smotrov/edittools.js]]), this * loader can also be disabled by setting "window.noDefaultEdittools = true". * * Maintainers: [[User:Ilmari Karonen]]
*/
//**if ( $Prevent the static edittools from flashing before the compact edittools below is loaded.appendCSS( '#issuediv.edittools-listtext { display:none; }' ).length ; addOnloadHook(function () { // needs to be deferred until the DOM has fully loaded var page placeholder = $document.getElementById( '#issue"editpage-list' specialchars").data; if ( 'name' ) !placeholder || mwwindow.confignoDefaultEdittools) { //Show the static edittools again for users with "window.noDefaultEdittools=true".get appendCSS( 'wgPageNamediv.edittools-text { display:block; }' ),; return; } amount var match = $/( '#issue?:^| )edittools-version-list' (\d+)(?: |$)/.dataexec( 'num' placeholder.className) || 20; // set window.testJsEdittools = true to enable testing before full deployment if ( $!match && window.isArraytestJsEdittools) match = /( page ?:^| ) edittools-version-(test\d+) { page = page(?: |$)/.joinexec( '" OR summary ~ "' placeholder.className); } if (!match) return; var jql url = encodeURIComponent( wgScript + 'project in (MC, MCPE) AND resolution ?title=MediaWiki:Edittools.js&action=raw&ctype=text/javascript&nocache= Unresolved AND ( summary ~ "' + page + '" match[1]; importScriptURI(url)' ;}); $.ajax( 'https://mojangTurn on spellchecking in the edit summary field, for Firefox.atlassian.net/rest/api/latest/search?maxResults=' + amount + '&fields=summary&jql=' + jqlTemporary until [[bugzilla:21604]] is deployed ).doneaddOnloadHook( function( search ) { if var wpSummary = document.getElementById( !search.issues.length "wpSummary" ) {; $ if ( '#issue-list' )wpSummary && typeof wpSummary.text( 'No issues were found.' spellcheck != undefined ); return false wpSummary.spellcheck = true; });
}
/**
* Set unlicensed as Frame parser (for [[Template:Grid]]) * * Requests the urls for all the default license animated grids on file pagesa page in 2 *API requests (due to a bug, 1 API request when it is fixed) * That way the file will be categorised so someone can find a license for and appends them to the filecorrect location.
*/
var baseURL = '/', wikiURL = '/wiki/', $grids = $( '.grid' ), titles = [], titleCount = 0, section = 0;if ( $grids.length ) { $grids.each( function() { var imgs = $( this ).data( 'imgs' ), mod = $( this ).data( 'mod' ); if ( !imgs ) { return true; } imgs = imgs.split( ';' ); imgs.shift(); $.each( imgs, function() { if ( !this.trim() ) { return true; } if ( titleCount === 50 ) { titleCount = 0; section++; } if ( !titles[section] ) { titles[section] = ''; } if ( this.indexOf( ':' ) > -1 ) { this.replace( /([^:]*):?([^,]*)/, function( $, mod, name ) { if ( mwmod.configtrim().gettoLowerCase( ) === 'wgCanonicalSpecialPageNamev' || mod.trim() .toLowerCase() ==='vanilla' ) { if ( titles[section].indexOf( 'File:Grid ' + name.trim() + '.png' ) < 0 ) { titles[section] += 'UploadFile:Grid ' + name.trim() + '.png|'; titleCount++; } } else { if ( titles[section].indexOf( 'File:Grid ' + name.trim() + ' (' + mod.trim() + ').png' ) < 0 ) { titles[section] += 'File:Grid ' + name.trim() + ' (' + mod.trim() + ').png|'; titleCount++; } } } ); } else { this.replace( /([^,]*)/, function( $, name ) { if ( !mod || mod.trim().toLowerCase() === 'v' || mod.trim().toLowerCase() === 'vanilla' ) { if ( titles[section].indexOf( 'File:Grid ' + name.trim() + '.png' ) < 0 ) { titles[section] += 'File:Grid ' + name.trim() + '.png|'; titleCount++; } } else { if ( titles[section].indexOf( 'File:Grid ' + name.trim() + ' (' + mod.trim( ) + ').png' ) < 0 ) { titles[section] += '#wpLicenseFile:Grid ' + name.trim() + ' (' + mod.trim() + ').png|'; titleCount++; } } } ); } } ); } ); /* Thanks to bug 23750 (https://bugzilla.wikimedia.org/show_bug.cgi?id=23750) * &redirects doesn't work properly with prop=imageinfo. Some of the images * will return without any imageinfo, even though they are valid. * So the redirects have to be resolved in a separate request...val */ if (titles ) { var promise =[], redirects ={}, urls = {}; $.each( titles, function( index ) { var titleSection = this.slice( 0, -1 ); promise.push( $.ajax( { type: 'POST', url: baseURL + ' api.php?action=query&format=json&redirects', data: { titles: titleSection }, timeout: 20000 } ).done( function( data ) { if ( data.query.redirects ) { $.each( data.query.redirects, function() { redirects[this.to] = this.from; titles[index] = titles[index].replace( this.from, this.to ); } ); } } ).fail( function( error ) { console.error( error ); } ) ); } ); $.when.apply( $, promise ).then( function() { promise.length = 0; $.each( titles, function() { var titles = this.slice( 0, -1 ); promise.push( $.ajax( { type: 'POST'#wpLicense, url: baseURL + ' api.php?action=query&format=json&prop=imageinfo&iiprop=url&iiurlwidth=32&iiurlheight=32', data: { titles: titles }, timeout: 20000 } ).done( function( data ){ $.valeach( mcwdata.i18nquery.defaultLicense pages, function( index ) { if ( index < 0 ){ return true; } mw if ( redirects.hasOwnProperty( this.loadertitle ) ) { urls[redirects[this.usingtitle].replace( /File:Grid ( .*).png/, '$1'mediawiki)] = this.imageinfo[0].thumburl; } else { urls[this.title.replace( /File:Grid (.legacy*).uploadpng/, '$1' )] = this.imageinfo[0].thumburl; } } ); } ).fail( function( error ) { console.error( error ); } ) ); } ); $.when.apply( $, promise ).then( function() { $grids.each( function() { var change $grid = $( this ), imgs = $grid.data( 'imgs' ), mod = $( this ).data( 'mod' ), html = setInterval''; if ( !imgs ) { return true; } imgs = imgs.split( ';' ); imgs.shift(); $.each( imgs, function() { if ( licenseSelectorCheck !this.trim() ) { html += gridFormat(); return true; } if ( this.indexOf( ':' ) > -1 ) { this.replace( /([^:]*):?([^,]*),?(\d*)/, function( $, mod, name, num ) { if ( mod.trim( ).toLowerCase() === 'v' || mod.trim().toLowerCase() === '#wpLicensevanilla' ){ html += gridFormat( name.trim(), name.trim(), urls[name.trim()], num ); } else { var img = name.trim() + ' (' + mod.changetrim()+ ')'; clearInterval html += gridFormat( img, 'Mods/' + mod.trim() + '/' + name.trim( change ), urls[img], num ); } }); } else { this.replace( /([^,]*),?(\d*)/, function( $, name, num ) { if ( !mod || mod.trim().toLowerCase() === 'v' || mod.trim().toLowerCase() === 'vanilla' ) { html += gridFormat( name.trim(), name.trim(), urls[name.trim()], num ); }else { var img = name.trim() + ' (' + mod.trim() + ')'; html += gridFormat( img, 500 'Mods/' + mod.trim() + '/' + name.trim(), urls[img], num ); } } ); } } ); $grid.find( '> .border > span > .animated' ).append( html ); } ); } ); } ); }
}
}