MediaWiki:Gadget-ProgressLevel.js: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
m moveu MediaWiki:Gadget-EtapasDeDesenvolvimento.js para MediaWiki:Gadget-ProgressLevel.js: test |
m var test = 'ok'; |
||
Linha 1: | Linha 1: | ||
var test = 'ok'; |
|||
/* _____________________________________________________________________________ |
|||
* | | |
|||
* | === AVISO: ARQUIVO DE GADGET GLOBAL === | |
|||
* | Alterações a esta página afetarão vários colaboradores | |
|||
* | Por favor discuta alterações na página de discussão ou | |
|||
* | em [[Wikilivros:Gadgets]] antes de editar. | |
|||
* |_____________________________________________________________________________| |
|||
* |
|||
* Adiciona uma imagem ao lado direito do título de cada modulo, para indicar sua etapa de desenvolvimento (obtida a partir do Índice). |
|||
*/ |
|||
var parentPages; |
|||
window.findProgressLevel = function( res ) { |
|||
var baseUrlImg = 'http://upload.wikimedia.org/wikipedia/commons/thumb/'; |
|||
var progress = { |
|||
'0' : { 'img': '9/93/0de8.svg/25px-0de8.svg.png', 'txt': 'O desenvolvimento desta página está na etapa 0 de 8' }, |
|||
'1' : { 'img': '9/93/1de8.svg/25px-1de8.svg.png', 'txt': 'O desenvolvimento desta página está na etapa 1 de 8' }, |
|||
'2' : { 'img': '9/93/2de8.svg/25px-2de8.svg.png', 'txt': 'O desenvolvimento desta página está na etapa 2 de 8' }, |
|||
'3' : { 'img': '9/93/3de8.svg/25px-3de8.svg.png', 'txt': 'O desenvolvimento desta página está na etapa 3 de 8' }, |
|||
'4' : { 'img': '9/93/4de8.svg/25px-4de8.svg.png', 'txt': 'O desenvolvimento desta página está na etapa 4 de 8' }, |
|||
'5' : { 'img': '9/93/5de8.svg/25px-5de8.svg.png', 'txt': 'O desenvolvimento desta página está na etapa 5 de 8' }, |
|||
'6' : { 'img': '9/93/6de8.svg/25px-6de8.svg.png', 'txt': 'O desenvolvimento desta página está na etapa 6 de 8' }, |
|||
'7' : { 'img': '9/93/7de8.svg/25px-7de8.svg.png', 'txt': 'O desenvolvimento desta página está na etapa 7 de 8' }, |
|||
'8' : { 'img': '9/93/8de8.svg/25px-8de8.svg.png', 'txt': 'O desenvolvimento desta página está na etapa 8 de 8' }, |
|||
'00' : { 'img': 'd/d6/00%25.svg/25px-00%25.svg.png', 'txt': 'Esta página está 0% desenvolvida' }, |
|||
'25' : { 'img': '3/34/25%25.svg/25px-25%25.svg.png', 'txt': 'Esta página está 25% desenvolvida' }, |
|||
'50' : { 'img': 'c/c2/50%25.svg/25px-50%25.svg.png', 'txt': 'Esta página está 50% desenvolvida' }, |
|||
'75' : { 'img': '4/49/75%25.svg/25px-75%25.svg.png', 'txt': 'Esta página está 75% desenvolvida' }, |
|||
'100' : { 'img': 'c/ce/100%25.svg/25px-100%25.svg.png', 'txt': 'Esta página está 100% desenvolvida' } |
|||
}; |
|||
var level = null, |
|||
matches, //Used for keeping regex matches |
|||
match, //Used for keeping a specific regex matches |
|||
wikitext, //Text of a page |
|||
reTextChapterTitle, |
|||
reTextChapterLink, |
|||
reTextLeftRightLevel, |
|||
reTextGroupedLevel, |
|||
reChapter, |
|||
pages, |
|||
page, //A specific page or index of page |
|||
parentPageNames, |
|||
sortable = []; |
|||
pages = res.query.pages; |
|||
parentPageNames = decodeURIComponent( parentPages ).split('|'); |
|||
for ( page in pages ) { |
|||
if ( pages[ page ].missing !== '' && pages[ page ].revisions && pages.hasOwnProperty( page ) ) { |
|||
sortable.push([ |
|||
pages[ page ].revisions[0]['*'], //Wiki code of page |
|||
parentPageNames.indexOf( pages[ page ].title ), //Order of page |
|||
pages[ page ].title //Title of page |
|||
]); |
|||
} |
|||
} |
|||
//Sort pages in the given order |
|||
sortable.sort( function(a, b) { |
|||
return a[1] - b[1]; |
|||
} ); |
|||
reTextChapterTitle = mw.config.get( 'wgTitle' ).replace ( sortable[ sortable.length - 1 ][ 2 ] + '/', '') |
|||
.replace(/^.+?\//g, ''); |
|||
reTextChapterTitle = $.escapeRE( reTextChapterTitle ).replace(/ /g,'[ _]'); |
|||
reTextChapterLink = '(?:(?:\\[\\s*|\\/|\\{\\{Capítulo\\|)' + reTextChapterTitle + '(?:\\/?\\s*[\\|\\]]|\\}\\}))'; |
|||
reTextLeftRightLevel = '(?:\\[\\[(?:[Ii]magem?|[Ff]icheiro|[Aa]rquivo|[Ff]ile):(?:(\\d)de8|(\\d\\d\\d?)%)\\.svg[\\|\\]]|\\{\\{[Pp]rogresso\\|(\\d\\d\\d?)%\\}\\})'; |
|||
reTextGroupedLevel = '(?:\\{\\{[Ee]tapa\\|.*?' + reTextChapterTitle + '.*?\\|(?:p=)?(\\d+)\\}\\})'; |
|||
reChapter = '^.*?(?:' + reTextGroupedLevel |
|||
+ '|' + reTextLeftRightLevel + '.*?' + reTextChapterLink |
|||
+ '|' + reTextChapterLink + '.*?' + reTextLeftRightLevel |
|||
+ ').*?$'; |
|||
reChapter = new RegExp( reChapter, 'm' ); |
|||
pagesloop: |
|||
for ( page = 0 ; page < sortable.length; page++ ) { |
|||
wikitext = sortable[ page ][ 0 ]; |
|||
matches = wikitext.match( reChapter ); |
|||
if ( !matches ) { |
|||
continue; |
|||
} |
|||
for ( match = 1; match < matches.length; match++ ){ |
|||
if ( matches[match] ) { |
|||
level = matches[match]; |
|||
break pagesloop; |
|||
} |
|||
} |
|||
} |
|||
if ( level === null ) { |
|||
return; |
|||
} |
|||
$(document).ready(function() { |
|||
$( '#bodyContent').prepend( |
|||
'<div style="float:right; position:relative; top:-30px; height: 25px; width: 25px; background: url(' |
|||
+ baseUrlImg + progress[ level ].img |
|||
+ ')" title="' |
|||
+ progress[ level ].txt + '"/>' |
|||
); |
|||
}); |
|||
}; |
|||
if ( 0 === mw.config.get( 'wgNamespaceNumber' ) && ( $.inArray( mw.config.get( 'wgAction' ), [ 'view', 'submit' ]) !== -1 ) && -1 !== mw.config.get( 'wgTitle' ).indexOf('/') ) { |
|||
var parts = mw.config.get( 'wgTitle' ).split('/'), |
|||
current = parts[0], |
|||
limit = parts.length - 1; |
|||
parentPages = current; |
|||
for( i=1; i<limit; i++ ) { |
|||
current += '/' + parts[i]; |
|||
parentPages += '|' + encodeURIComponent( current ); |
|||
} |
|||
mw.loader.load( mw.config.get( 'wgServer' ) + mw.config.get( 'wgScriptPath' ) + '/api.php?action=query&prop=revisions&rvprop=content&format=json&callback=findProgressLevel&titles=' + parentPages ); |
|||
} |
|||
// [[Categoria:Gadgets|Etapas de desenvolvimento.js]] |