Difference between revisions of "User:KamranMackey/common.js"

From Industrial-Craft-Wiki
Jump to navigation Jump to search
(Fudge it. Added the Edit Counter to my common.js.)
(Removed the "Edit Counter" code from my JS since it's been implemented into the main JS.)
Line 355: Line 355:
});
});
});
});
/* Counts all your edits and saves them to a page ( http://en.wikipedia.org/wiki/User:Kanegasi/editcounter ) */
if (mw.config.get('wgTitle') === mw.config.get('wgUserName') && mw.config.get('wgNamespaceNumber') === 2) {
/* begin options */
/* end options */
    mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:Kanegasi/editcounter.js&action=raw&ctype=text/javascript');
}

Revision as of 04:44, 22 February 2015

/******************************************
 * Page Edit Bar Improver                 *
 *****************************************/
var customizeToolbar = function() {
	// Template subgroup
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'sections': {
			'templates': {
				'type': 'toolbar', // Can also be 'booklet'
				'label': 'Templates'
				// or 'labelMsg': 'section-templates-label' for a localized label
			}
		}
	} );
	
 	// Infoboxes header
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'templates',
		'groups': {
			'infoboxes': {
				'label': 'Infoboxes' // or use labelMsg for a localized label, see above
			}
		}
	} );
 
	// [[Template:Block]] for blocks
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'templates',
		'group': 'infoboxes',
		'tools': {
			'block': {
				label: 'Block Infobox',
				type: 'button',
				icon: '/images/a/a6/Grid_Stone.png',
				filters: [ 'body.ns-0' ], //Namespaceless things only -  100, 102, 104 could also fit in
				action: {
					type: 'encapsulate',
					options: {
						'pre':
"<onlyinclude>{{\
{{{1|Block}}}\n\
|title=\n\
|image=\n\
|image2=\n\
|image3=\n\
|invimage=\n\
|invimage2=\n\
|invimage3=\n\
|invimage4=\n\
|type=\n\
|dirt=\n\
|maxeu=\n\
|storage=\n\
|eu_use=\n\
|eu_use2=\n\
|tool=\n\
|stackable=\n\
|data=\n\
|fluidspeed=\n\
|movespeed=",
						'post': "\n}}</onlyinclude>"
					}
				}
			}
		}
	} );

	//[[Template:Userinfo]]
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'templates',
		'group': 'infoboxes',
		'tools': {
			'user': {
				label: 'User Infobox',
				type: 'button',
				icon: '/images/a/a6/Grid_Stone.png',
				filters: [ 'body.ns-2' ], //User namespaces only
				action: {
					type: 'encapsulate',
					options: {
						'pre': "{{UserInfo\n\
|width=\n\
|user-avatar=\n\
|user-ig=\n\
|section1=\n\
|stat1=|value1=\n\
|section2=\n\
|stat2=|value2=\n\
|section3=\n\
|stat3=|value3=\n\
|section4=\n\
|stat4=|value4=\n\
|section5=\n\
|stat5=|value5=\n\
|section6=\n\
|stat6=|value6=\n\
|section7=\n\
|stat7=|value7=\n\
|section8=\n\
|stat8=|value8=\n\
|section9=\n\
|stat9=|value9=",
						'post': "\n}}"
					}
				}
			}
		}
	} );

	// Solution for items
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'templates',
		'group': 'infoboxes',
		'tools': {
			'item': {
				label: 'Item Infobox',
				type: 'button',
				icon: '/images/e/e9/Grid_Stick.png',
				filters: [ 'body.ns-0' ], //Namespaceless things only -  100, 102, 104 could also fit in
				action: {
					type: 'encapsulate',
					options: {
						'peri': "<!-- We don't have one ;) -->"
						}
					}
				}
			}
	}   );
	
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'templates',
		'groups': {
			'craftingtemplates': {
				'label': 'Crafting Grids' // or use labelMsg for a localized label, see above
			}
		}
	} );
	
	// [[Template:Grid/Crafting Table]] for simple crafting recipes
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'templates',
		'group': 'craftingtemplates',
		'tools': {
			'block': {
				label: 'Simple Crafting Table',
				type: 'button',
				icon: '/images/7/79/Grid_Crafting_Table.png',
				filters: [ 'body.ns-0' ], //Namespaceless things only -  100, 102, 104 could also fit in
				action: {
					type: 'encapsulate',
					options: {
						'pre':
"{{Grid/Crafting Table\n\
|A1=\n\
|B1=\n\
|C1=\n\
|A2=\n\
|B2=\n\
|C2=\n\
|A3=\n\
|B3=\n\
|C3=\n\
|Output= |OA=",
						'post': "\n}}"
					}
				}
			}
		}
	} );
	
	// [[Template:Grid/Crafting Table]] for complicated crafting recipes
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'templates',
		'group': 'craftingtemplates',
		'tools': {
			'block': {
				label: 'Full Crafting Table',
				type: 'button',
				icon: '/images/7/79/Grid_Crafting_Table.png',
				filters: [ 'body.ns-0' ], //Namespaceless things only -  100, 102, 104 could also fit in
				action: {
					type: 'encapsulate',
					options: {
						'pre':
"{{Grid/Crafting Table\n\
|A1= |A1-link= |A1-image=\n\
|B1= |B1-link= |B1-image=\n\
|C1= |C1-link= |C1-image=\n\
|A2= |A2-link= |A2-image=\n\
|B2= |B2-link= |B2-image=\n\
|C2= |C2-link= |C2-image=\n\
|A3= |A3-link= |A3-image=\n\
|B3= |B3-link= |B3-image=\n\
|C3= |C3-link= |C3-image=\n\
|Output= |OA=",
						'post': "\n}}"
					}
				}
			}
		}
	} );
	
	// [[Template:Grid/Furnace]] for simple furnace recipes
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'templates',
		'group': 'craftingtemplates',
		'tools': {
			'block': {
				label: 'Furnace', //Ex "Simple Furnace"
				type: 'button',
				icon: '/images/2/2e/Grid_Furnace.png',
				filters: [ 'body.ns-0' ], //Namespaceless things only -  100, 102, 104 could also fit in
				action: {
					type: 'encapsulate',
					options: {
						'pre':
"{{Grid/Furnace\n\
|Input=\n\
|Output=\n\
|Fuel=\n\
|Break=\n\
}}",
						'post': "\n}}"
					}
				}
			}
		}
	} );
	
	// [[Template:Grid/Furnace]] for complicated furnace recipes
	/*
	$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
		'section': 'templates',
		'group': 'craftingtemplates',
		'tools': {
			'block': {
				label: 'Full Furnace',
				type: 'button',
				icon: '/images/2/2e/Grid_Furnace.png',
				filters: [ 'body.ns-0' ], //Namespaceless things only -  100, 102, 104 could also fit in
				action: {
					type: 'encapsulate',
					options: {
						'pre':
"{{Grid/Furnace\n\
|Input=  |IA= \n\
|Output= |OA= \n\
|Fuel=   |FA= \n\
}}",
						'post': "\n}}"
					}
				}
			}
		}
	} );*/
	
};

/* Check if view is in edit mode and that the required modules are available. Then, customize the toolbar . . . */
if ( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {
	mw.loader.using( 'user.options', function () {
		if ( mw.user.options.get('usebetatoolbar') && mw.user.options.get( 'showtoolbar' ) ) {
			mw.loader.using( 'ext.wikiEditor.toolbar', function () {
				$( customizeToolbar );
			} );
		}
	} );
}

/******************************************
 * Tooltip Testing                        *
 *****************************************/
$(function() {
	var mc_tooltip = null;
 
	$(".a1, .tooltip").on({
	    'mouseenter.tooltip': function(e) {
	        var $me = $(this);
 
	        // Make sure this isn't a link to upload a new file
	        if ($me.find('.new').length > 0) {
	        	// This isn't one we want to show a tooltip for
	        	return;
	        }
 
	        // Try to get the title
	        var title = $me.data('tooltip');
 
	        // See if we can find a title elsewhere
	        // Check this element or its child
	        if (title === undefined) {
	            title = $me.attr('title') || $me.children(':first').attr('title');
 
	            // Check if we found anything
	            if (title) {
	                // Save it for later
	                $me.data('tooltip', title);
	            }
	            else {
	                // Didn't find anything, no sense continuing
	                return;
	            }
	        }
 
	        // Remove any title elements to avoid the default tooltip
	        $me.add('*', $me).filter('[title]').removeAttr('title');
 
	        // Check to see if we've already created the div
	        if (!$('#tooltip-display').length) {
	            $('body').append('<div id="tooltip-display" />');
	        }
	        mc_tooltip = $('#tooltip-display');
 
 
	        // Add the text to the tooltip
	        mc_tooltip.html(title);
 
	        // Need to update the position to the cursor position
	        $me.trigger('mousemove', e);
	    },
	    'mousemove.tooltip': function (e) {
	        // Check if the element exists already, create it if it doesn't
	        if (!$('#tooltip-display').length) {
	            $(this).trigger('mouseenter');
	            return;
	        }
 
	        // Get dimensions for bounds checking
	        var top = e.pageY - 30,
	            height = mc_tooltip.outerHeight(true),
	            left = e.pageX + 15,
	            width = mc_tooltip.outerWidth(true);
 
	        // Get window dimensions
	        var $w = $(window),
	            win_width = $w.width(),
	            win_height = $w.height();
 
	        // TODO: Make it so it doesn't go off the sides
 
	        // Apply the position
	        mc_tooltip.css({
	            top: top,
	            left: left
	        });
	    },
	    'mouseleave.tooltip': function (e) {
	        // Make sure the tooltip is there before we use it
	        if (!mc_tooltip) {
	            return;
	        }
 
	        mc_tooltip.remove();
	    },
	});
});