// ==UserScript==
// @name Shoptet zkratky beta
// @namespace mailto:[email protected]
// @version 0.02b
// @description Zkratky do Shoptetu
// @author Zuzana Nyiri
// @match https://*/admin/*
// @require https://openuserjs.org/src/libs/sizzle/GM_config.js
// @grant GM_getValue
// @grant GM_setValue
// @license MIT
// ==/UserScript==
(function() {
'use strict';
var sURL = [];
var sName = [];
var sTitle = [];
var sTarget = [];
initRows();
initMenu();
var aRows = GM_config.get('aRows');
for (let a = 1; a <= GM_config.get('aRows'); a++){
sURL[a] = GM_config.get('url'+a);
sName[a] = GM_config.get('name'+a);
sTitle[a] = GM_config.get('title'+a);
sTarget[a] = GM_config.get('target'+a);
};
var fieldDefs;
var myField;
const MenuHead = "<hr><div id='flip' style='padding-left:0px;'>";
const MenuRow1 = "<a href='#' class='navigation__link' target='_self'><div style='padding-left:0px; padding-right:12px;'>⭐</div>Zkratky</a></div>";
const PanelHead = "<ul><div id='panel1' style='display:none; padding-left:27px;'>";
const MenuFoot = "<hr><a href='#' id='myConfig' class='navigation__link' style='padding-top:5px; padding-bottom:5px; text-transform:none;'>Nastavení</a></div><hr></ul>";
var MyHtml = MenuHead+MenuRow1+PanelHead;
for (let a = 1; a <= aRows; a++) {
if (sURL[a] == "-") {
MyHtml = MyHtml+"<hr>"+sName[a];
}
else {
MyHtml = MyHtml+"<li><a href='"+sURL[a]+"' class='navigation__link' style='padding-top:5px; padding-bottom:5px; text-transform:none;' target='_"+sTarget[a]+"' title='"+sTitle[a]+"'>"+sName[a]+"</a></li>";
}
}
MyHtml = MyHtml+MenuFoot;
$(".navigation").prepend(MyHtml);
$('#flip').click(function(e) {
e.preventDefault();
$("#panel1").slideToggle("fast", function() {
if ($('#panel1').is(":visible")){
//console.log('otevřeno');
GM_config.set('otevreno',true);
GM_config.save();
}
// The same works with hidden
else if($('#panel1').is(":hidden")){
//console.log('zavřeno');
GM_config.set('otevreno',false);
GM_config.save();
}
});
});
// zajistí otevření menu pokud bylo otevřeno ručně otevřeno, jinak bude menu zavřené.
if (GM_config.get('otevreno')){
$("#panel1").slideToggle(0);
};
//Nastavení doplňku
$('#myConfig').click(function(e) {
e.preventDefault();
initMenu();
GM_config.open();
});
})();
function initMenu(){
var myRows = GM_config.get('aRows');
//alert(myRows);
var myText = "{";
for (let b = 1; b <= myRows; b++){
var text =
'"url'+b+'":{'+
'"section": "Řádek '+b+'",'+
'"labelPos": "left",'+
'"label": "URL *",'+
'"type":"text",'+
'"size":"60",'+
'"default": "/admin/"'+
'},'+
'"name'+b+'":{'+
'"labelPos": "left",'+
'"label": "Text odkazu",'+
'"type": "text",'+
'"default": "Přehled"'+
'},'+
'"target'+b+'":{'+
'"labelPos": "left",'+
'"options": ["self", "new"],'+
'"label": "target",'+
'"type": "radio",'+
'"default": "self"'+
'},'+
'"title'+b+'":{'+
'"labelPos": "left",'+
'"label": "Nápověda",'+
'"type": "text",'+
'"default": "Administrace základní přehled"'+
'}';
myText = myText + text;
if(b < myRows){
myText=myText+",";
}
};
myText = myText + "}";
var fieldDefs = JSON.parse(myText);
GM_config.init(
{
'id': 'Zkratky', // The id used for this instance of GM_config
'title': 'Nastavení zkratek',
'fields': fieldDefs, // Fields object
'events':{
'open': function(doc) {
$('#Zkratky')
.contents()
.find('#Zkratky_buttons_holder')
.append('<div style="font-family: verdana, geneva; font-size: 10pt;">Ulož a pak obnov stránku stiskem F5 aby došlo k načtení nového menu.</div>'+
'<p><a href="https://greasyfork.org/cs/users/600258-zuzana-nyiri" target="new" title="Další uživatelské skripty pro ***monkey dopňky.">Získat další skripty</a></p>'+
'<p><div style="font-family: verdana, geneva; font-size: 8pt;">Prosím, zvažte pravidelnou finanční podporu pro další vývoj a aktualizace skriptů.<br>Děkuji, Zuzana Nyiri - Vokolo.cz</div>'+
'<form action="https://www.paypal.com/donate" method="post" target="_new">'+
'<input type="hidden" name="hosted_button_id" value="FSBBE3GUXYW52" />'+
'<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif"'+
' border="0" name="submit" title="Jednorázové i měsíční dary na podporu dalšího vývoje a aktualizace skriptů." alt="Donate with PayPal button" /></form></p>');
},
'close': function(doc){
},
'init': function(doc){
//alert('init');
}
},
css:
'#Zkratky * {font-family: verdana, geneva !important;}'+
'#Zkratky_header { font-size: 20pt !important;}'+
'#Zkratky_info_var { padding-top: 20px !important;}'+
'#Zkratky_field_info { display: none !important;}'+
'#Zkratky_buttons_holder { text-align: center !important;}'+
'#Zkratky_resetLink { display: none !important;}'+
'.space_lg { width:30px; }'
});
};
function initRows(){
var fieldRows = {
'btn+':
{
'section': 'Počet řádků menu',
type: 'button',
label: '+',
'click': function() {
var aRows = GM_config.get('aRows',true);
GM_config.set('aRows',aRows+1);
console.log( 'Vytvářím Řádek '+aRows+1);
GM_config.save();
GM_config.close();
initMenu();
GM_config.open();
//$('#myConfig')[0].click();
}
},
'aRows':
{
'labelPos': 'left',
'label': 'Počet', // Appears next to field
'type': 'number', // Makes this setting a text field
'default': '1', // Default value if user doesn't change it
'size': 1,
'min': 1,
'max': 30
},
'btn-': {
'label': '-',
'type': 'button',
'click': function() {
var aRows = GM_config.get('aRows',true);
//alert(aRows);
if(aRows-1 > 0){
console.log( 'Odstraňuji Řádek '+aRows);
$('#Zkratky').contents().find('body').find("#Zkratky_field_aRows").val(aRows-1);
GM_config.fields['title'+aRows].remove();
GM_config.fields['target'+aRows].remove();
GM_config.fields['name'+aRows].remove();
GM_config.fields['url'+aRows].remove();
//GM_config.set('aRows',aRows-1);
//GM_config.fields['aRows'].reload();
//GM_config.fields['Zkratky_section_header_'+aRows].remove();
// GM_config.close();
// $('#myConfig')[0].click();
//$('#Zkratky').contents().find('body').find("#Zkratky_section_"+aRows).css("display", "none");
//aRows--;
var myText =
'{'+
'"url'+aRows+'":'+
'{'+
'"type":"hidden"'+
'},'+
'"name'+aRows+'":'+
'{'+
'"type":"hidden"'+
'},'+
'"target'+aRows+'":'+
'{'+
'"type":"hidden"'+
'},'+
'"title'+aRows+'":'+
'{'+
'"type":"hidden"'+
'}'+
'}';
//alert(myText);
var delField = JSON.parse(myText);
GM_config.init(
{
'id': 'Zkratky',
'title': 'Nastavení zkratek: řádků '+aRows-1,
'fields': delField,
});
GM_config.save();
GM_config.close();
initMenu();
//$('#myConfig')[0].click();
GM_config.open();
}
}
},
'otevreno':
{
'type': 'hidden',
'default': false,
},
'info':
{
'labelPos': 'right',
'label': '* Do pole URL napiš adresu jako:'+
'<div style="margin-left:30px;">- relativní: /admin/</div>'+
'<div style="margin-left:30px;">- kompletní vč. protokolu: http://... nebo https://...</div>'+
'<div style="margin-left:30px;">Pro zobrazení dělící čáry napiš pomlčku do pole URL, pole Text odkazu bude jako nadpis nové sekce.</div>',
'type': 'radio',
'options': [''],
}
}
GM_config.init(
{
'id': 'Zkratky', // The id used for this instance of GM_config
'title': 'Nastavení zkratek',
'fields': fieldRows, // Fields object
});
};