<?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-dropDisplay-core.js</id>
	<title>MediaWiki:Gadget-dropDisplay-core.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-dropDisplay-core.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-dropDisplay-core.js&amp;action=history"/>
	<updated>2026-04-05T13:57:48Z</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-dropDisplay-core.js&amp;diff=39050&amp;oldid=prev</id>
		<title>Alex at 16:14, 17 October 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-dropDisplay-core.js&amp;diff=39050&amp;oldid=prev"/>
		<updated>2024-10-17T16:14:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-dropDisplay-core.js&amp;amp;diff=39050&amp;amp;oldid=38921&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-dropDisplay-core.js&amp;diff=38921&amp;oldid=prev</id>
		<title>Alex at 16:12, 17 October 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-dropDisplay-core.js&amp;diff=38921&amp;oldid=prev"/>
		<updated>2024-10-17T16:12:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-dropDisplay-core.js&amp;amp;diff=38921&amp;amp;oldid=861&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-dropDisplay-core.js&amp;diff=861&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;&#039;use strict&#039;;  var userSettings, 	settingsName = &#039;rsw-drop-display-settings&#039;, 	defaultSettings = {_ratedisp: 2, _valcoldisp: 1};  // grabs settings from localstorage (or defaults if not supported) function getSettings(){ 	var settings = {}; 	if (rswiki.hasLocalStorage()) { 		try { 			settings = JSON.parse(localStorage.getItem(settingsName)); 		} catch (err) { 			settings = {}; 		} 		if (settings === null) { 			settings = {}; 		}  	} 	userSettings = $.extend({}, defaultSe...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=MediaWiki:Gadget-dropDisplay-core.js&amp;diff=861&amp;oldid=prev"/>
		<updated>2024-10-13T00:35:54Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;use strict&amp;#039;;  var userSettings, 	settingsName = &amp;#039;rsw-drop-display-settings&amp;#039;, 	defaultSettings = {_ratedisp: 2, _valcoldisp: 1};  // grabs settings from localstorage (or defaults if not supported) function getSettings(){ 	var settings = {}; 	if (rswiki.hasLocalStorage()) { 		try { 			settings = JSON.parse(localStorage.getItem(settingsName)); 		} catch (err) { 			settings = {}; 		} 		if (settings === null) { 			settings = {}; 		}  	} 	userSettings = $.extend({}, defaultSe...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;use strict&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
var userSettings,&lt;br /&gt;
	settingsName = &amp;#039;rsw-drop-display-settings&amp;#039;,&lt;br /&gt;
	defaultSettings = {_ratedisp: 2, _valcoldisp: 1};&lt;br /&gt;
&lt;br /&gt;
// grabs settings from localstorage (or defaults if not supported)&lt;br /&gt;
function getSettings(){&lt;br /&gt;
	var settings = {};&lt;br /&gt;
	if (rswiki.hasLocalStorage()) {&lt;br /&gt;
		try {&lt;br /&gt;
			settings = JSON.parse(localStorage.getItem(settingsName));&lt;br /&gt;
		} catch (err) {&lt;br /&gt;
			settings = {};&lt;br /&gt;
		}&lt;br /&gt;
		if (settings === null) {&lt;br /&gt;
			settings = {};&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
	userSettings = $.extend({}, defaultSettings, settings);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// put settings back into localstorage&lt;br /&gt;
function updateSettings(){&lt;br /&gt;
	if (!rswiki.hasLocalStorage()) return;&lt;br /&gt;
	localStorage.setItem(settingsName, JSON.stringify(userSettings));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// change rate to a different display&lt;br /&gt;
function changeRateDisp(data, selected, init){&lt;br /&gt;
	var  rdisp = 0, attr = &amp;#039;&amp;#039;, append = &amp;#039;&amp;#039;, upsettings = false;&lt;br /&gt;
	if (init == true) {&lt;br /&gt;
		rdisp = data;&lt;br /&gt;
	} else {&lt;br /&gt;
		rdisp = data.getData();&lt;br /&gt;
	}&lt;br /&gt;
	switch(rdisp) {&lt;br /&gt;
		case 1:&lt;br /&gt;
			attr = &amp;#039;data-drop-fraction&amp;#039;;&lt;br /&gt;
			upsettings = true;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			attr = &amp;#039;data-drop-oneover&amp;#039;;&lt;br /&gt;
			upsettings = true;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			attr = &amp;#039;data-drop-percent&amp;#039;;&lt;br /&gt;
			upsettings = true;&lt;br /&gt;
			append = &amp;#039;%&amp;#039;;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
			mw.log(&amp;#039;Invalid rate display type &amp;#039;+rdisp);&lt;br /&gt;
	}&lt;br /&gt;
	$(&amp;#039;table.item-drops td span[data-drop-fraction]&amp;#039;).each(function(){&lt;br /&gt;
		var $cell = $(this), newText = $cell.attr(attr);&lt;br /&gt;
		$cell.text(newText + append);&lt;br /&gt;
	});&lt;br /&gt;
	if (upsettings == true) {&lt;br /&gt;
		userSettings._ratedisp = rdisp;&lt;br /&gt;
		updateSettings();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// change value display column&lt;br /&gt;
function changeValDisp(data, selected, init){&lt;br /&gt;
	var tbl = &amp;#039;table.item-drops.filterable&amp;#039;;&lt;br /&gt;
	var vdisp = 0, upsettings = false;&lt;br /&gt;
	if (init == true) {&lt;br /&gt;
		vdisp = data;&lt;br /&gt;
	} else {&lt;br /&gt;
		vdisp = data.getData();&lt;br /&gt;
	}&lt;br /&gt;
	switch (vdisp) {&lt;br /&gt;
		case 1:&lt;br /&gt;
			$(tbl).each(function(){&lt;br /&gt;
				$(this).removeClass(&amp;#039;rsw-dropsline-hidege&amp;#039;);&lt;br /&gt;
				$(this).addClass(&amp;#039;rsw-dropsline-hidealch&amp;#039;);&lt;br /&gt;
			});&lt;br /&gt;
			upsettings = true;&lt;br /&gt;
			break;&lt;br /&gt;
		case 2:&lt;br /&gt;
			$(tbl).each(function(){&lt;br /&gt;
				$(this).addClass(&amp;#039;rsw-dropsline-hidege&amp;#039;);&lt;br /&gt;
				$(this).removeClass(&amp;#039;rsw-dropsline-hidealch&amp;#039;);&lt;br /&gt;
			});&lt;br /&gt;
			upsettings = true;&lt;br /&gt;
			break;&lt;br /&gt;
		case 3:&lt;br /&gt;
			$(tbl).each(function(){&lt;br /&gt;
				$(this).removeClass(&amp;#039;rsw-dropsline-hidege&amp;#039;);&lt;br /&gt;
				$(this).removeClass(&amp;#039;rsw-dropsline-hidealch&amp;#039;);&lt;br /&gt;
			});&lt;br /&gt;
			upsettings = true;&lt;br /&gt;
			break;&lt;br /&gt;
		default:&lt;br /&gt;
			mw.log(&amp;#039;Invalid value column display type &amp;#039;+vdisp);&lt;br /&gt;
	}&lt;br /&gt;
	if (upsettings == true) {&lt;br /&gt;
		userSettings._valcoldisp = vdisp;&lt;br /&gt;
		updateSettings();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// initialise&lt;br /&gt;
function init() {&lt;br /&gt;
	var $tables = $(&amp;#039;table.item-drops.filterable&amp;#039;),&lt;br /&gt;
	$overlay = $(&amp;#039;&amp;lt;div id=&amp;quot;rsw-drops-overlay2&amp;quot;&amp;gt;&amp;#039;).appendTo(&amp;#039;body&amp;#039;),&lt;br /&gt;
	popup,&lt;br /&gt;
	fieldset, applyButton, &lt;br /&gt;
	fractionButton, overoneButton, percentButton, rateGroup,&lt;br /&gt;
	gecolButton, alcolButton, bothcolButton, valGroup,&lt;br /&gt;
	typeGroup;&lt;br /&gt;
&lt;br /&gt;
	// get settings and update display&lt;br /&gt;
	getSettings();&lt;br /&gt;
	changeRateDisp(userSettings._ratedisp, true, true);&lt;br /&gt;
	changeValDisp(userSettings._valcoldisp, true, true);&lt;br /&gt;
	&lt;br /&gt;
	// build popup&lt;br /&gt;
	// Droprate column&lt;br /&gt;
	fractionButton = new OO.ui.ButtonOptionWidget({&lt;br /&gt;
		data: 1,&lt;br /&gt;
		label: &amp;#039;Expanded fraction (a/b)&amp;#039;,&lt;br /&gt;
		title: &amp;#039;Displays a fraction without simplifying, in a/b style. Example: 4/128.&amp;#039;,&lt;br /&gt;
	});&lt;br /&gt;
	overoneButton = new OO.ui.ButtonOptionWidget({&lt;br /&gt;
		data: 2,&lt;br /&gt;
		label: &amp;#039;One-over fraction (1/x, default)&amp;#039;,&lt;br /&gt;
		title: &amp;#039;Displays a fraction simplified to 1/x. Fraction denominators are rounded to 3 significant figures. This is the default display.&amp;#039;,&lt;br /&gt;
	});&lt;br /&gt;
	percentButton = new OO.ui.ButtonOptionWidget({&lt;br /&gt;
		data: 3,&lt;br /&gt;
		label: &amp;#039;Percentage (y%)&amp;#039;,&lt;br /&gt;
		title: &amp;#039;Displays a percentage (y%), rounded to 3 significant figures.&amp;#039;,&lt;br /&gt;
	});&lt;br /&gt;
	rateGroup = new OO.ui.ButtonSelectWidget({&lt;br /&gt;
		items: [overoneButton, fractionButton, percentButton]&lt;br /&gt;
	});&lt;br /&gt;
	rateGroup.selectItemByData(userSettings._ratedisp);&lt;br /&gt;
	rateGroup.on(&amp;#039;choose&amp;#039;,changeRateDisp);&lt;br /&gt;
&lt;br /&gt;
	//Price/Value columns&lt;br /&gt;
	gecolButton = new OO.ui.ButtonOptionWidget({&lt;br /&gt;
		data: 1,&lt;br /&gt;
		label: &amp;#039;Show GE Price&amp;#039;,&lt;br /&gt;
		title: &amp;#039;Display only the GE Price column.&amp;#039;,&lt;br /&gt;
	});&lt;br /&gt;
	alcolButton = new OO.ui.ButtonOptionWidget({&lt;br /&gt;
		data: 2,&lt;br /&gt;
		label: &amp;#039;Show High alch value&amp;#039;,&lt;br /&gt;
		title: &amp;#039;Display only the high alch value column.&amp;#039;,&lt;br /&gt;
	});&lt;br /&gt;
	bothcolButton = new OO.ui.ButtonOptionWidget({&lt;br /&gt;
		data: 3,&lt;br /&gt;
		label: &amp;#039;Show both&amp;#039;,&lt;br /&gt;
		title: &amp;#039;Display both the GE Price and high alch value columns.&amp;#039;,&lt;br /&gt;
	});&lt;br /&gt;
	valGroup = new OO.ui.ButtonSelectWidget({&lt;br /&gt;
		items: [gecolButton, alcolButton, bothcolButton]&lt;br /&gt;
	});&lt;br /&gt;
	valGroup.selectItemByData(userSettings._valcoldisp);&lt;br /&gt;
	valGroup.on(&amp;#039;choose&amp;#039;,changeValDisp);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	fieldset = new OO.ui.FieldsetLayout({});&lt;br /&gt;
	fieldset.addItems([&lt;br /&gt;
		new OO.ui.FieldLayout(rateGroup, {label: &amp;#039;Display drops as: &amp;#039;, align: &amp;#039;top&amp;#039;}),&lt;br /&gt;
		new OO.ui.FieldLayout(valGroup, {label: &amp;#039;Display price/value as: &amp;#039;, align: &amp;#039;top&amp;#039;}),&lt;br /&gt;
	]);&lt;br /&gt;
	&lt;br /&gt;
	popup = new OO.ui.PopupWidget({&lt;br /&gt;
		padded: true,&lt;br /&gt;
		autoClose: true,&lt;br /&gt;
		$content: fieldset.$element,&lt;br /&gt;
		width: &amp;#039;auto&amp;#039;,&lt;br /&gt;
		position: &amp;#039;above&amp;#039;,&lt;br /&gt;
		align: &amp;#039;force-right&amp;#039;,&lt;br /&gt;
		head: true,&lt;br /&gt;
		label: &amp;#039;Display settings&amp;#039;,&lt;br /&gt;
		classes: [&amp;#039;rsw-drop-display-popup2&amp;#039;]&lt;br /&gt;
	});&lt;br /&gt;
	$overlay.append(popup.$element);&lt;br /&gt;
	&lt;br /&gt;
	// add button to each table&lt;br /&gt;
	$tables.each(function(i,e){&lt;br /&gt;
		var button = new OO.ui.ButtonWidget({&lt;br /&gt;
			icon: &amp;#039;settings&amp;#039;,&lt;br /&gt;
			title: &amp;#039;Open display settings&amp;#039;,&lt;br /&gt;
			framed: false,&lt;br /&gt;
			invisibleLabel: true,&lt;br /&gt;
			classes: [&amp;#039;rsw-drop-display-button2&amp;#039;]&lt;br /&gt;
		});&lt;br /&gt;
		button.on(&amp;#039;click&amp;#039;,function(){&lt;br /&gt;
			// move popup to the clicked button&lt;br /&gt;
			popup.setFloatableContainer(button.$element);&lt;br /&gt;
			// reset buttons (i.e. open popup, click a button but don&amp;#039;t apply, close - next time it is opened it should show the current setting not the unapplied one)&lt;br /&gt;
			rateGroup.selectItemByData(userSettings._ratedisp);&lt;br /&gt;
			valGroup.selectItemByData(userSettings._valcoldisp);&lt;br /&gt;
			// show popup&lt;br /&gt;
			popup.toggle(true);&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		var $cell = $(e).find(&amp;#039;th.drop-disp-btn&amp;#039;);&lt;br /&gt;
		$cell.append(button.$element);&lt;br /&gt;
	});&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(init);&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>