added Auto Select Deleted Threads
Drop down menu to enable/disable
This commit is contained in:
parent
71ae52daca
commit
9c0fda2a44
78
auto-select-deleted-threads.js
Normal file
78
auto-select-deleted-threads.js
Normal file
@ -0,0 +1,78 @@
|
||||
// ==UserScript==
|
||||
// @name Auto Select Deleted Threads
|
||||
// @namespace http://tampermonkey.net/
|
||||
// @version 1.0.0
|
||||
// @description Auto select deleted threads based on user preference.
|
||||
// @author Ryahn
|
||||
// @match https://f95zone.to/forums/*
|
||||
// @grant GM.setValue
|
||||
// @grant GM.getValue
|
||||
// ==/UserScript==
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
function createSettingsBar() {
|
||||
const settingsBar = document.createElement('div');
|
||||
settingsBar.style.float = 'right';
|
||||
settingsBar.style.marginRight = '10px';
|
||||
|
||||
const selectLabel = document.createElement('label');
|
||||
selectLabel.textContent = 'Auto Select Deleted: ';
|
||||
|
||||
const select = document.createElement('select');
|
||||
const optionYes = document.createElement('option');
|
||||
optionYes.value = 'yes';
|
||||
optionYes.textContent = 'Yes';
|
||||
const optionNo = document.createElement('option');
|
||||
optionNo.value = 'no';
|
||||
optionNo.textContent = 'No';
|
||||
|
||||
select.appendChild(optionYes);
|
||||
select.appendChild(optionNo);
|
||||
|
||||
settingsBar.appendChild(selectLabel);
|
||||
settingsBar.appendChild(select);
|
||||
|
||||
const targetDiv = document.querySelector('#top > div.uix_headerContainer > div.breadcrumb.block > div');
|
||||
if (targetDiv) {
|
||||
targetDiv.appendChild(settingsBar);
|
||||
}
|
||||
|
||||
GM.getValue('autoSelectDeleted', 'no').then(value => {
|
||||
select.value = value;
|
||||
});
|
||||
|
||||
select.addEventListener('change', function() {
|
||||
GM.setValue('autoSelectDeleted', this.value);
|
||||
applyAutoSelect();
|
||||
});
|
||||
}
|
||||
|
||||
function triggerEvent(element, eventType) {
|
||||
const event = new Event(eventType, { bubbles: true });
|
||||
element.dispatchEvent(event);
|
||||
}
|
||||
|
||||
function applyAutoSelect() {
|
||||
GM.getValue('autoSelectDeleted', 'no').then(value => {
|
||||
const deletedThreads = document.querySelectorAll('.is-deleted input[type="checkbox"]');
|
||||
deletedThreads.forEach(checkbox => {
|
||||
if (value === 'yes') {
|
||||
checkbox.checked = true;
|
||||
triggerEvent(checkbox, 'click');
|
||||
triggerEvent(checkbox, 'change');
|
||||
} else {
|
||||
checkbox.checked = false;
|
||||
triggerEvent(checkbox, 'click');
|
||||
triggerEvent(checkbox, 'change');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
window.addEventListener('load', function() {
|
||||
createSettingsBar();
|
||||
applyAutoSelect();
|
||||
});
|
||||
})();
|
||||
Loading…
x
Reference in New Issue
Block a user