<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-navbox-tracking.js</id>
	<title>MediaWiki:Gadget-navbox-tracking.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-navbox-tracking.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-navbox-tracking.js&amp;action=history"/>
	<updated>2026-05-28T07:17:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-navbox-tracking.js&amp;diff=840&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;;(function($, mw){ 	if ($(&#039;.navbox&#039;).length &lt;= 0) return; 	var LOADING = false; 	function trackNavboxClick(event) { 		var $e = $(event.currentTarget), 		    pagename = mw.config.get(&#039;wgPageName&#039;), 		    href, 		    navbox, 		    link_type = [&#039;link&#039;], 		    click_type, 		    data; 		href = $e.attr(&#039;href&#039;); 		navbox = $e.parents(&#039;.navbox[data-navbox-name]&#039;); 		if (navbox.length&lt;1) { 			// missing name, template not propagated - skip 			return; 		} 		navbox = navbox.attr(&#039;d...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-navbox-tracking.js&amp;diff=840&amp;oldid=prev"/>
		<updated>2024-10-13T00:28:32Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;;(function($, mw){ 	if ($(&amp;#039;.navbox&amp;#039;).length &amp;lt;= 0) return; 	var LOADING = false; 	function trackNavboxClick(event) { 		var $e = $(event.currentTarget), 		    pagename = mw.config.get(&amp;#039;wgPageName&amp;#039;), 		    href, 		    navbox, 		    link_type = [&amp;#039;link&amp;#039;], 		    click_type, 		    data; 		href = $e.attr(&amp;#039;href&amp;#039;); 		navbox = $e.parents(&amp;#039;.navbox[data-navbox-name]&amp;#039;); 		if (navbox.length&amp;lt;1) { 			// missing name, template not propagated - skip 			return; 		} 		navbox = navbox.attr(&amp;#039;d...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;(function($, mw){&lt;br /&gt;
	if ($(&amp;#039;.navbox&amp;#039;).length &amp;lt;= 0) return;&lt;br /&gt;
	var LOADING = false;&lt;br /&gt;
	function trackNavboxClick(event) {&lt;br /&gt;
		var $e = $(event.currentTarget),&lt;br /&gt;
		    pagename = mw.config.get(&amp;#039;wgPageName&amp;#039;),&lt;br /&gt;
		    href,&lt;br /&gt;
		    navbox,&lt;br /&gt;
		    link_type = [&amp;#039;link&amp;#039;],&lt;br /&gt;
		    click_type,&lt;br /&gt;
		    data;&lt;br /&gt;
		href = $e.attr(&amp;#039;href&amp;#039;);&lt;br /&gt;
		navbox = $e.parents(&amp;#039;.navbox[data-navbox-name]&amp;#039;);&lt;br /&gt;
		if (navbox.length&amp;lt;1) {&lt;br /&gt;
			// missing name, template not propagated - skip&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		navbox = navbox.attr(&amp;#039;data-navbox-name&amp;#039;);&lt;br /&gt;
		if ($e.find(&amp;#039;img&amp;#039;).length&amp;gt;0) {&lt;br /&gt;
			link_type.push(&amp;#039;image&amp;#039;);&lt;br /&gt;
			if ($e.parent().is(&amp;#039;span.inventory-image&amp;#039;)) {&lt;br /&gt;
				link_type.push(&amp;#039;inventory&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
			if ($e.parent().is(&amp;#039;span.chathead-link&amp;#039;)) {&lt;br /&gt;
				link_type.push(&amp;#039;chathead&amp;#039;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		if ($e.parents(&amp;#039;th.navbox-title&amp;#039;).length&amp;gt;0) {&lt;br /&gt;
			link_type.push(&amp;#039;navboxtitle&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
		if ($e.parent().is(&amp;#039;td.navbox-group-title&amp;#039;)) {&lt;br /&gt;
			link_type.push(&amp;#039;navboxgrouptitle&amp;#039;);&lt;br /&gt;
			link_type.push(&amp;#039;navboxgroup-&amp;#039;+$e.parents(&amp;#039;tr.navbox-group&amp;#039;).length)&lt;br /&gt;
		}&lt;br /&gt;
		if ($e.parents(&amp;#039;div.navbar&amp;#039;).length&amp;gt;0) {&lt;br /&gt;
			link_type.push(&amp;#039;navbar&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
		if ($e.parents(&amp;#039;sup&amp;#039;).length&amp;gt;0) {&lt;br /&gt;
			link_type.push(&amp;#039;sup&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
		if ($e.parents(&amp;#039;sub&amp;#039;).length&amp;gt;0) {&lt;br /&gt;
			link_type.push(&amp;#039;sub&amp;#039;);&lt;br /&gt;
		}&lt;br /&gt;
		switch (event.which) {&lt;br /&gt;
			case 1:&lt;br /&gt;
				click_type = &amp;#039;left&amp;#039;;&lt;br /&gt;
				if (!(event.altKey || event.ctrlKey || event.altKey || event.metaKey)) {&lt;br /&gt;
					$e.attr({&amp;#039;x-href&amp;#039;: href, &amp;#039;x-leftclicked&amp;#039;:&amp;#039;1&amp;#039;}).removeAttr(&amp;#039;href&amp;#039;);&lt;br /&gt;
				}&lt;br /&gt;
				break;&lt;br /&gt;
			case 2:&lt;br /&gt;
				click_type = &amp;#039;middle&amp;#039;;&lt;br /&gt;
				break;&lt;br /&gt;
			case 3:&lt;br /&gt;
				click_type = &amp;#039;right&amp;#039;;&lt;br /&gt;
				break;&lt;br /&gt;
			default:&lt;br /&gt;
				click_type = &amp;#039;other: &amp;#039;+event.which;&lt;br /&gt;
		}&lt;br /&gt;
		if (event.shiftKey) {&lt;br /&gt;
			click_type += &amp;#039;-shift&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		if (event.ctrlKey) {&lt;br /&gt;
			click_type += &amp;#039;-control&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		if (event.altKey) {&lt;br /&gt;
			click_type += &amp;#039;-alt&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		if (event.metaKey) {&lt;br /&gt;
			click_type += &amp;#039;-meta&amp;#039;;&lt;br /&gt;
		}&lt;br /&gt;
		data = {&lt;br /&gt;
				page: pagename,&lt;br /&gt;
				link: href,&lt;br /&gt;
				navbox: navbox,&lt;br /&gt;
				&amp;#039;type&amp;#039;: link_type.join(&amp;#039; &amp;#039;),&lt;br /&gt;
				click: click_type,&lt;br /&gt;
				wiki: mw.config.get(&amp;#039;wgDBname&amp;#039;)&lt;br /&gt;
		};&lt;br /&gt;
		console.log(&amp;#039;Sending navbox click data:&amp;#039;, data);&lt;br /&gt;
		var req = $.ajax(&amp;#039;https://chisel.weirdgloop.org/gazproj/track/navbox&amp;#039;, {&lt;br /&gt;
			method: &amp;#039;POST&amp;#039;,&lt;br /&gt;
			data: data&lt;br /&gt;
		});&lt;br /&gt;
		req.done(function(d, s, xhr){&lt;br /&gt;
			console.log(&amp;#039;Data (success): &amp;#039;, d, s, xhr);&lt;br /&gt;
			if (click_type === &amp;#039;left&amp;#039; &amp;amp;&amp;amp; $e.attr(&amp;#039;x-leftclicked&amp;#039;) === &amp;#039;1&amp;#039;) {&lt;br /&gt;
				$e.attr({&amp;#039;href&amp;#039;:$e.attr(&amp;#039;x-href&amp;#039;), &amp;#039;x-leftclicked&amp;#039;:&amp;#039;0&amp;#039;});&lt;br /&gt;
				$e.get(0).click();&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		req.fail(function(d, s, xhr){&lt;br /&gt;
			console.log(&amp;#039;Data (fail): &amp;#039;, d, s, xhr);&lt;br /&gt;
			if (click_type === &amp;#039;left&amp;#039; &amp;amp;&amp;amp; $e.attr(&amp;#039;x-leftclicked&amp;#039;) === &amp;#039;1&amp;#039;) {&lt;br /&gt;
				$e.attr({&amp;#039;href&amp;#039;:$e.attr(&amp;#039;x-href&amp;#039;), &amp;#039;x-leftclicked&amp;#039;:&amp;#039;0&amp;#039;});&lt;br /&gt;
				$e.get(0).click();&lt;br /&gt;
			}&lt;br /&gt;
    	});&lt;br /&gt;
	}&lt;br /&gt;
	function init(){&lt;br /&gt;
		$(&amp;#039;.navbox a[href]&amp;#039;).on(&amp;#039;mousedown&amp;#039;, trackNavboxClick);&lt;br /&gt;
	}&lt;br /&gt;
	$(init);&lt;br /&gt;
})(jQuery, mw);&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>