From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/*

* 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.

*/

 

(function($){

//	// Create function to retrieve bug statuses

	function bugStatus(){

		$.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.bugsb].id + '"]' );

						var title = $( '.trakbug-' + data.result.bugsb].id );

						if( title ) {

							title.text( data.result.bugsb].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(

										$( '<p />' ).append(

											$( '<span />' ).css( statusProps )

												.text( 'Status' )

										)

									);

							}

	//						// Udpate the status element.

							$item

								.parent()

								.next( 'p' )

								.children( 'span' )

								.css( 'color', colordata.result.bugsb].status || '#333333' )

								.text( data.result.bugsb].status );	

							$status = null;

						 }

					}

				}

			error: function ( foo, data, error ) {

	/* Using this string with 49741 being a ticket I can't see:

	https://bugzilla.wikimedia.org/jsonrpc.cgi?method=Bug.get&id=158&params=[{%20%22ids%22:%20[35810,35909,300,48745,49741,54598],%22include_fields%22:[%22last_change_time%22,%22status%22,%20%22id%22,%20%22summary%22]}]

	returns:

	{"error":{"message":"You are not authorized to access bug #49741. To see this bug, you must first log in to an account with the appropriate permissions.","code":102},"id":"158","result":null}

	*/

				console.error( 'Foo: %o\nRaw data: %o\nError: %o', foo, data, error );

				console.error( 'id array: %o', ids );

			}

		});

	}

	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

	bugStatus();

 })(jQuery);
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/*

* 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.

*/

 

(function($){

//	// Create function to retrieve bug statuses

	function bugStatus(){

		$.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.bugsb].id + '"]' );

						var title = $( '.trakbug-' + data.result.bugsb].id );

						if( title ) {

							title.text( data.result.bugsb].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(

										$( '<p />' ).append(

											$( '<span />' ).css( statusProps )

												.text( 'Status' )

										)

									);

							}

	//						// Udpate the status element.

							$item

								.parent()

								.next( 'p' )

								.children( 'span' )

								.css( 'color', colordata.result.bugsb].status || '#333333' )

								.text( data.result.bugsb].status );	

							$status = null;

						 }

					}

				}

			error: function ( foo, data, error ) {

	/* Using this string with 49741 being a ticket I can't see:

	https://bugzilla.wikimedia.org/jsonrpc.cgi?method=Bug.get&id=158&params=[{%20%22ids%22:%20[35810,35909,300,48745,49741,54598],%22include_fields%22:[%22last_change_time%22,%22status%22,%20%22id%22,%20%22summary%22]}]

	returns:

	{"error":{"message":"You are not authorized to access bug #49741. To see this bug, you must first log in to an account with the appropriate permissions.","code":102},"id":"158","result":null}

	*/

				console.error( 'Foo: %o\nRaw data: %o\nError: %o', foo, data, error );

				console.error( 'id array: %o', ids );

			}

		});

	}

	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

	bugStatus();

 })(jQuery);

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook