User:Technical 13/SandBox/Gadget-BugStatusUpdate.js

/* (function($){	var ids = [], target = 'https://bugzilla.wikimedia.org/jsonrpc.cgi'; //	// Ugly way to compose the request parameters. Though, bugzilla is happy with it.	var getParams = function ( ids ) {		return 'method=Bug.get&id=158&params=[{ "ids": [' + ids.join(',') + '],"include_fields":["last_change_time","status", "id", "summary"]}]';	}; //	// Get the bug id numbers on the page	$( '.mw-trackedTemplate' ).each( function { var title = $( this ).find( 'a[title^="bugzilla:"]' ).attr( 'title' ); ids.push( title.split( ':' )[1] ); }); //	// Do not query if no ids were found	if ( !ids.length ) {			return;	}	// Make jsonp request	$.ajax({ url: target, dataType: 'jsonp', data: getParams( ids ), success: function ( data ) { var color = { "RESOLVED": "green", "CRITICAL": "red" },					statusProps = { 'font-weight': 'bold', 'font-size': '1.5em', 'text-transform': 'uppercase' };			 if ( data.result.bugs ) { for( var b in data.result.bugs ) { //					//find the right bug to update var $item = $( '.mw-trackedTemplate' ).find( 'a[title^="bugzilla:' + data.result.bugs[b].id + '"]' ); var title = $( '.trakbug-' + data.result.bugs[b].id ); if( title ) { title.text( data.result.bugs[b].summary ); }					if( $item ) { //						// Find child, if it exists. $status = $item .parent .next( 'p' ) .children( 'span' ); //						//create the status element if it does not exist if( $status.length === 0 ){ $item .parent .parent .append(									$( '' ).append( $( ' ' ).css( statusProps ) .text( 'Status' ) )								);						} //						// Udpate the status element. $item .parent .next( 'p' ) .children( 'span' ) .css( 'color', color[data.result.bugs[b].status] || '#333333' ) .text( data.result.bugs[b].status ); $status = null; }				}			}		}// End of success: }); })(jQuery);
 * Bug Status Update Gadget
 * Author: Donald Fortier (User:Technical_13)
 * * Based on original code:
 * ** Author: Rob Moen (robm)
 * ** Source: mw:User:Robmoen/bugStatusUpdate.js
 * Description:
 * Finds and updates bug status templates on a page.
 * Makes 1 JSONP request to Bugzilla JSON RPC api.