User:Isaacl/script/toggle-discussion-threads-style.js

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.
(function() {
	let portletItemId = 'discussionThreadsStyle-PortletItem-tb';
	let contentElementId = 'mw-content-text';
	let attributeFlag = 'data-discussion-threads-style-disable';
	let fStyleDisabled = false;

    function showEnabledNotification()
    {
    	mw.loader.using(['mediawiki.notification']).then( () => {
			mw.notification.notify("Enabled style rules for discussion threads.");
		});
    }

    function showDisabledNotification()
    {
    	mw.loader.using(['mediawiki.notification']).then( () => {
			mw.notification.notify("Disabled style rules for discussion threads.");
		});
    }

	function clickEventListener(event)
    {
    	event.preventDefault();
    	event.stopPropagation();

		let contentElement = document.getElementById(contentElementId);
		if (contentElement == null)
			return false;

		fStyleDisabled = !fStyleDisabled;

		if (!fStyleDisabled)
		{
			contentElement.removeAttribute(attributeFlag);
			showEnabledNotification();
		}
		else
		{
			contentElement.setAttribute(attributeFlag, '');
			showDisabledNotification();
		}
    	return false;
    }  // clickEventListener()
    
	function addPortletLinkEventHandler(item, options)
	{
    	if (options.id == portletItemId)
    	{
			item.addEventListener('click', clickEventListener);
    	}
	}

	function initializePortletItem()
	{
		mw.hook('util.addPortletLink').add(addPortletLinkEventHandler);
		mw.loader.using( [ 'mediawiki.util' ] ).then( function () {
			mw.util.addPortletLink('p-tb', '#', 'Toggle thread style', portletItemId);
		} );
		return;
	}

    initializePortletItem();

})();