add out of stock toggle for spalena53
This commit is contained in:
parent
8532af9fb3
commit
7916dda024
|
@ -0,0 +1,68 @@
|
||||||
|
// ==UserScript==
|
||||||
|
// @name New script - spalena53.cz
|
||||||
|
// @namespace Violentmonkey Scripts
|
||||||
|
// @match https://www.spalena53.cz/hledat/dostojevskij
|
||||||
|
// @grant none
|
||||||
|
// @version 1.0
|
||||||
|
// @author -
|
||||||
|
// @description 04/03/2023, 07:42:56
|
||||||
|
// ==/UserScript==
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} type
|
||||||
|
* @param {object} props
|
||||||
|
* @param {...(string|HTMLElement)} children
|
||||||
|
* @return {HTMLElement}
|
||||||
|
*/
|
||||||
|
function elt(type, props, ...children) {
|
||||||
|
let dom = document.createElement(type);
|
||||||
|
if (props) Object.assign(dom, props);
|
||||||
|
for (let child of children) {
|
||||||
|
if (typeof child != "string") dom.appendChild(child);
|
||||||
|
else dom.appendChild(document.createTextNode(child));
|
||||||
|
}
|
||||||
|
return dom;
|
||||||
|
}
|
||||||
|
|
||||||
|
let bookElements = document.querySelectorAll(".product.book");
|
||||||
|
let outOfStockElements = Array.from(bookElements).filter(
|
||||||
|
(node) => node.querySelector(".availability_info.black") != null
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {HTMLElement} element
|
||||||
|
*/
|
||||||
|
function toggleDisplay(element) {
|
||||||
|
if (element.style.display != "none") element.style.display = "none";
|
||||||
|
else element.style.display = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
let toggleOutOfStockLabel = elt(
|
||||||
|
"label",
|
||||||
|
{
|
||||||
|
for: "out-of-stock",
|
||||||
|
className: "change_number",
|
||||||
|
},
|
||||||
|
"Toggle out of stock"
|
||||||
|
);
|
||||||
|
toggleOutOfStockLabel.cssText = `
|
||||||
|
height: 38px;
|
||||||
|
margin-right: 1rem;
|
||||||
|
`;
|
||||||
|
|
||||||
|
let toggleOutOfStockCheckbox = elt("input", {
|
||||||
|
onclick: (event) => {
|
||||||
|
outOfStockElements.forEach((element) => toggleDisplay(element));
|
||||||
|
},
|
||||||
|
id: "out-of-stock",
|
||||||
|
type: "checkbox",
|
||||||
|
className: "change_number",
|
||||||
|
});
|
||||||
|
|
||||||
|
toggleOutOfStockCheckbox.style.cssText = `
|
||||||
|
height: 33px;
|
||||||
|
`;
|
||||||
|
|
||||||
|
let pageHead = document.querySelector(".page_head");
|
||||||
|
pageHead.append(toggleOutOfStockLabel, toggleOutOfStockCheckbox);
|
Loading…
Reference in New Issue