// ==UserScript==
// @name EnstylerJS
// @namespace Enstyler
// @description MyDealz Enstyler Frontend and enhanced features
// @include http://www.mydealz.de/*
// @include https://www.mydealz.de/*
// @version 2.10.284
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_log
// @require https://openuserjs.org/src/libs/sizzle/GM_config.js
// ==/UserScript==
// create enstyler "Menu Button"
var input = document.createElement('input');
input.type = 'button';
input.value = 'Enstyler';
input.onclick = showEnstylerConfig;
// add to subnav and format
input.className = 'box--all-i subNavMenu-link'
input.setAttribute('style', 'font-size: 1.28571em; font-weight: 700; top: 3px; left: -0.7em');
document.getElementById('tour-filter').appendChild(input);
// hide Enstyler2 CSS (c) text
addStyleString('.threadWidget-footer::after {display: none !important};');
// basic config panel formatting, everything else is formatted by enstyler
var enCSS = ['#GM_config { left: 5% !important; top: 5% !important; height: auto !important; min-width: 19em; max-width: 33em !important;}',
'#GM_config .field_label { display: inline-block; min-width: 10em; font-weight: unset; margin-left: 1em; margin-right: 0;}',
'#GM_config input[type=button], #GM_config button { border: 1px solid; margin: 0.5em 0em 0.2em 1em; padding: 0.1em;}',
'#GM_config .reset { font-size: 9pt; padding-right: 1em; }',
].join(" ");
addStyleString(enCSS);
// call back for input.onklick
function showEnstylerConfig() {
GM_config.open();
}
// define GM_config elements
var fieldDefs = {
'enstyler': {
'section': ['additonal features for Enstyler', ''],
'label': 'Install / Update CSS...', // Appears on the button
'type': 'button', // Makes this setting a button input
'click': function() { // Function to call when button is clicked
showUrl('https://userstyles.org/styles/128262#style-info'); }
},
'mobileRedirect': {
'label': 'Amazon mobile redirect...', // Appears on the button
'type': 'button', // Makes this setting a button input
'click': function() { // Function to call when button is clicked
showUrl('https://greasyfork.org/de/scripts/19700'); }
},
'dontCookies': {
'label': 'Mozilla no cookies...', // Appears on the button
'type': 'button', // Makes this setting a button input
'click': function() { // Function to call when button is clicked
showUrl('https://addons.mozilla.org/de/addon/i-dont-care-about-cookies/'); }
},
'hidden1': {
'section': ['Configuration', ''],
'type': 'hidden', // Makes this setting a hidden input
'value': 'Some hidden value' // Value stored
},
'enConf_ShowA': {
'label': 'Show this or that A', // Appears next to field
'type': 'checkbox', // Makes this setting a checkbox input
'default': true // Default value if user doesn't change it
},
'enConf_ShowB': {
'label': 'Show this or that B', // Appears next to field
'type': 'checkbox', // Makes this setting a checkbox input
'default': true // Default value if user doesn't change it
},
'copy': {
'section': ['', '(c) Gnadelwartz - <a target="blank" href="https://www.mydealz.de/diskussion/enstyler2-style-your-mydealz-incl-pepper-sites-736219">Enstyler2 - Style your MyDealz</a>'],
'type': 'hidden', // Makes this setting a hidden input
'value': 'Some hidden value' // Value stored
},
};
// display GM_copnfig as div, so we cam apply CSS!!
var frame = document.createElement('div');
document.body.appendChild(frame);
GM_config.init(
{
id: 'GM_config',
title: 'EnstylerJS - Settings',
fields: fieldDefs,
'frame': frame // Element used for the panel
}
);
//=========== Support functions for actual use =======
// display website in external window
function showUrl(str) {
var myDeco = "innerheight=800,innerwidth=600";
var myName = "enstyler";
// workaround for not working window.focus(): close an existing window first
//var myWindowShow = window.open('', myName, "width=100,height=100").close();
var myWindowShow = window.open(str, myName, myDeco);
}
// add CSS in to document
function addStyleString(str) {
var node = document.createElement('style');
node.innerHTML = str;
document.body.appendChild(node);
}