Bearbeiten von „OS2.haupt.user.js“
Zur Navigation springen
Zur Suche springen
Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.
Aktuelle Version | Dein Text | ||
Zeile 2: | Zeile 2: | ||
// @name OS2.haupt | // @name OS2.haupt | ||
// @namespace http://os.ongapo.com/ | // @namespace http://os.ongapo.com/ | ||
// @version 0. | // @version 0.30 | ||
// @copyright 2016+ | // @copyright 2016+ | ||
// @author Sven Loges (SLC) | // @author Sven Loges (SLC) | ||
Zeile 41: | Zeile 41: | ||
'RST' : "reset options" | 'RST' : "reset options" | ||
}; | }; | ||
// Moegliche Optionen (hier die Standardwerte editieren oder ueber das Benutzermenu setzen): | // Moegliche Optionen (hier die Standardwerte editieren oder ueber das Benutzermenu setzen): | ||
Zeile 71: | Zeile 48: | ||
'Type' : __OPTTYPES.MC, | 'Type' : __OPTTYPES.MC, | ||
'ValType' : "Number", | 'ValType' : "Number", | ||
'Choice' : [ | 'Choice' : [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ], | ||
'Action' : __OPTACTION.NXT, | 'Action' : __OPTACTION.NXT, | ||
'Label' : "Saison: $", | 'Label' : "Saison: $", | ||
Zeile 95: | Zeile 71: | ||
'Serial' : true, | 'Serial' : true, | ||
'Permanent' : true, | 'Permanent' : true, | ||
'Default' : { 'Team' : undefined, 'Liga' : undefined, 'Land' : undefined | 'Default' : { 'Team' : undefined, 'Liga' : undefined, 'Land' : undefined }, | ||
'Submit' : undefined, | 'Submit' : undefined, | ||
'Cols' : 36, | 'Cols' : 36, | ||
'Rows' : | 'Rows' : 5, | ||
'Replace' : null, | 'Replace' : null, | ||
'Space' : 1, | 'Space' : 1, | ||
Zeile 111: | Zeile 87: | ||
'FormLabel' : "" | 'FormLabel' : "" | ||
}, | }, | ||
'showForm' : { // Optionen auf der Webseite (true = anzeigen, false = nicht anzeigen) | 'showForm' : { // Optionen auf der Webseite (true = anzeigen, false = nicht anzeigen) | ||
'Name' : "showForm", | 'Name' : "showForm", | ||
Zeile 140: | Zeile 99: | ||
'AltHotkey' : 'v', | 'AltHotkey' : 'v', | ||
'FormLabel' : "" | 'FormLabel' : "" | ||
}}; | } | ||
}; | |||
// ==================== Invarianter Abschnitt fuer Optionen ==================== | // ==================== Invarianter Abschnitt fuer Optionen ==================== | ||
Zeile 245: | Zeile 205: | ||
function setNextStored(arr, name, value, reload = true, serial = false) { | function setNextStored(arr, name, value, reload = true, serial = false) { | ||
return setStored(name, getNextValue(arr, value), reload, serial); | return setStored(name, getNextValue(arr, value), reload, serial); | ||
} | } | ||
// Fuehrt die in einem Storage gespeicherte Operation aus | // Fuehrt die in einem Storage gespeicherte Operation aus | ||
// optSet: Set mit den Optionen | // optSet: Set mit den Optionen | ||
// | // session: true = bis Browserende gespeichert (sessionStorage), false = unbegrenzt gespeichert (localStorage) | ||
function runStored(optSet, | function runStored(optSet, session = true) { | ||
const __STORAGE = | const __STORAGE = (session ? sessionStorage : localStorage); | ||
const | const __CMD = ((__STORAGE !== undefined) ? __STORAGE.getItem('runcmd') : undefined); | ||
if ( | if (__CMD !== undefined) { | ||
const | const __KEY = __STORAGE.getItem('runkey'); | ||
let value = __STORAGE.getItem('runval'); | |||
try { | |||
value = JSON.parse(value); | |||
} catch (ex) { | |||
console.error("runStored(): " + __CMD + " '" + __KEY + "' hat illegalen Wert '" + value + "'"); | |||
// ... meist kann man den String selber aber speichern, daher kein "return"... | |||
} | |||
const __VAL = value; | |||
switch (__OPTACTION[__CMD]) { | |||
case __OPTACTION.SET : console.log("SET '" + __KEY + "' " + __VAL); | |||
setStored(__KEY, __VAL, false, false); | |||
break; | |||
case __OPTACTION.NXT : console.log("SETNEXT '" + __KEY + "' " + __VAL); | |||
//setNextStored(__CONFIG.Choice, __KEY, __VAL, false, false); | |||
setStored(__KEY, __VAL, false, false); | |||
break; | |||
case __OPTACTION.RST : console.log("RESET"); | |||
resetOptions(optSet, false); | |||
break; | |||
default : break; | |||
} | } | ||
} | |||
__STORAGE.removeItem('runcmd'); | |||
__STORAGE.removeItem('runkey'); | |||
__STORAGE.removeItem('runval'); | |||
} | } | ||
Zeile 564: | Zeile 492: | ||
} | } | ||
// | // Setzt eine Option auf einen vorgegebenen Wert | ||
// | // Fuer kontrollierte Auswahl des Values siehe setNextOpt() | ||
// | // opt: Config und vorheriger Value der Option | ||
// return | // value: (Bei allen Typen) Zu setzender Wert | ||
function | // reload: Seite mit neuem Wert neu laden | ||
// return Gesetzter Wert | |||
function setOpt(opt, value, reload = false) { | |||
return setOptValue(opt, setStored(getOptName(opt), value, reload, getOptConfig(opt).Serial)); | |||
} | |||
// Ermittelt die naechste moegliche Option | |||
// opt: Config und Value der Option | |||
// value: Ggfs. zu setzender Wert | |||
// return Zu setzender Wert | |||
function getNextOpt(opt, value = undefined) { | |||
const __CONFIG = getOptConfig(opt); | |||
const __VALUE = getOptValue(opt, value); | |||
switch (__CONFIG.Type) { | |||
case __OPTTYPES.MC : return getValue(value, getNextValue(__CONFIG.Choice, __VALUE)); | |||
case __OPTTYPES.SW : return getValue(value, ! __VALUE); | |||
case __OPTTYPES.TF : return getValue(value, ! __VALUE); | |||
case __OPTTYPES.SD : return getValue(value, __VALUE); | |||
case __OPTTYPES.SI : break; | |||
default : break; | |||
} | |||
return __VALUE; | |||
} | |||
// Setzt die naechste moegliche Option | |||
// opt: Config und Value der Option | |||
const | // value: Default fuer ggfs. zu setzenden Wert | ||
// reload: Seite mit neuem Wert neu laden | |||
// return Gesetzter Wert | |||
function setNextOpt(opt, value = undefined, reload = true) { | |||
const __CONFIG = getOptConfig(opt); | |||
const __VALUE = getOptValue(opt, value); | |||
return setOpt(opt, getNextOpt(opt, __VALUE), reload); | |||
} | } | ||
// Setzt eine Option auf einen vorgegebenen Wert (Version mit Key) | |||
// Fuer kontrollierte Auswahl des Values siehe setNextOptByName() | |||
// optSet: Platz fuer die gesetzten Optionen (und Config) | |||
// item: Key der Option | |||
// Setzt eine Option auf einen vorgegebenen Wert | |||
// Fuer kontrollierte Auswahl des Values siehe | |||
// | |||
// value: (Bei allen Typen) Zu setzender Wert | // value: (Bei allen Typen) Zu setzender Wert | ||
// reload: Seite mit neuem Wert neu laden | // reload: Seite mit neuem Wert neu laden | ||
// return Gesetzter Wert | // return Gesetzter Wert | ||
function | function setOptByName(optSet, item, value, reload = false) { | ||
const __OPT = getOptByName(optSet, item); | |||
return setOpt(__OPT, value, reload); | |||
} | } | ||
// Ermittelt die naechste moegliche Option | // Ermittelt die naechste moegliche Option (Version mit Key) | ||
// opt: Config und Value der Option | // opt: Config und Value der Option | ||
// optSet: Platz fuer die gesetzten Optionen (und Config) | |||
// item: Key der Option | |||
// value: Ggfs. zu setzender Wert | // value: Ggfs. zu setzender Wert | ||
// return Zu setzender Wert | // return Zu setzender Wert | ||
function | function getNextOptByName(optSet, item, value = undefined) { | ||
const | const __OPT = getOptByName(optSet, item); | ||
return getNextOpt(__OPT, value); | |||
} | } | ||
// Setzt die naechste moegliche Option | // Setzt die naechste moegliche Option (Version mit Key) | ||
// opt: Config und Value der Option | // opt: Config und Value der Option | ||
// value: | // optSet: Platz fuer die gesetzten Optionen (und Config) | ||
// item: Key der Option | |||
// value: Ggfs. zu setzender Wert | |||
// reload: Seite mit neuem Wert neu laden | // reload: Seite mit neuem Wert neu laden | ||
// return Gesetzter Wert | // return Gesetzter Wert | ||
function | function setNextOptByName(optSet, item, value = undefined, reload = true) { | ||
const | const __OPT = getOptByName(optSet, item); | ||
return | return setNextOpt(__OPT, value, reload); | ||
} | } | ||
// | // Baut das Benutzermenu auf | ||
// optSet: Gesetzte Optionen | |||
// optSet: | function buildMenu(optSet) { | ||
console.log("buildMenu()"); | |||
function | |||
for (let opt in optSet) { | |||
registerOption(optSet[opt]); | |||
} | |||
} | } | ||
// | // Laedt eine (ueber Menu) gesetzte Option | ||
// opt: | // opt: Zu ladende Option | ||
// | // force: Laedt auch Optionen mit 'AutoReset'-Attribut | ||
// | // return Gesetzter Wert der gelandenen Option | ||
function loadOption(opt, force = false) { | |||
const __CONFIG = getOptConfig(opt); | |||
function | |||
const | |||
return | if (! force && __CONFIG.AutoReset) { | ||
return setOptValue(opt, initOptValue(__CONFIG)); | |||
} else if (__CONFIG.Serial) { | |||
return setOptValue(opt, deserialize(getOptName(opt), getOptValue(opt))); | |||
} else { | |||
return setOptValue(opt, GM_getValue(getOptName(opt), getOptValue(opt))); | |||
} | |||
} | } | ||
// | // Laedt die (ueber Menu) gesetzten Optionen | ||
// optSet: Set mit den Optionen | |||
// optSet: | // force: Laedt auch Optionen mit 'AutoReset'-Attribut | ||
// | // return Set mit den geladenen Optionen | ||
function loadOptions(optSet, force = false) { | |||
for (let opt in optSet) { | |||
// return | loadOption(optSet[opt], force); | ||
function | } | ||
return | return optSet; | ||
} | } | ||
// | // Entfernt eine (ueber Menu) gesetzte Option (falls nicht 'Permanent') | ||
// | // opt: Gesetzte Option | ||
function | // force: Entfernt auch Optionen mit 'Permanent'-Attribut | ||
// reset: Setzt bei Erfolg auf Initialwert der Option | |||
function deleteOption(opt, force = false, reset = true) { | |||
const __CONFIG = getOptConfig(opt); | |||
if (force || ! __CONFIG.Permanent) { | |||
GM_deleteValue(getOptName(opt)); | |||
if (reset) { | |||
setOptValue(opt, initOptValue(__CONFIG)); | |||
} | |||
} | } | ||
} | } | ||
// | // Entfernt die (ueber Menu) gesetzten Optionen (falls nicht 'Permanent') | ||
// optSet: Gesetzte Optionen | |||
// force: Entfernt auch Optionen mit 'Permanent'-Attribut | |||
// reset: Setzt bei Erfolg auf Initialwert der Option | |||
function deleteOptions(optSet, force = false, reset = true) { | |||
// optSet: | |||
// force: | |||
// | |||
function | |||
for (let opt in optSet) { | for (let opt in optSet) { | ||
deleteOption(optSet[opt], force, reset); | |||
deleteOption(optSet[opt], force, reset); | |||
} | } | ||
} | } | ||
Zeile 762: | Zeile 640: | ||
// name: Neu zu setzender Name (Speicheradresse) | // name: Neu zu setzender Name (Speicheradresse) | ||
// reload: Wert nachladen statt beizubehalten | // reload: Wert nachladen statt beizubehalten | ||
// return Umbenannte Option | // return Umbenannte Option | ||
function renameOption(opt, name, reload | function renameOption(opt, name, reload = false) { | ||
const __NAME = getOptName(opt); | const __NAME = getOptName(opt); | ||
Zeile 773: | Zeile 650: | ||
if (reload) { | if (reload) { | ||
loadOption(opt | loadOption(opt); | ||
} | } | ||
} | } | ||
Zeile 781: | Zeile 658: | ||
// Setzt die Optionen in optSet auf die "Werkseinstellungen" des Skripts | // Setzt die Optionen in optSet auf die "Werkseinstellungen" des Skripts | ||
// reload: Seite mit "Werkseinstellungen" neu laden | |||
// optSet: Gesetzte Optionen | // optSet: Gesetzte Optionen | ||
function resetOptions(optSet, reload = true) { | function resetOptions(optSet, reload = true) { | ||
// Alle (nicht 'Permanent') gesetzten Optionen entfernen... | // Alle (nicht 'Permanent') gesetzten Optionen entfernen... | ||
deleteOptions(optSet, false, | deleteOptions(optSet, false, true); | ||
if (reload) { | if (reload) { | ||
Zeile 799: | Zeile 676: | ||
// Teamparameter fuer getrennte Speicherung der Optionen fuer Erst- und Zweitteam... | // Teamparameter fuer getrennte Speicherung der Optionen fuer Erst- und Zweitteam... | ||
const __MYTEAM = { 'Team' : undefined, 'Liga' : undefined, 'Land' : undefined | const __MYTEAM = { 'Team' : undefined, 'Liga' : undefined, 'Land' : undefined }; | ||
// Behandelt die Optionen und laedt das Benutzermenu | // Behandelt die Optionen und laedt das Benutzermenu | ||
Zeile 806: | Zeile 683: | ||
// optParams: Eventuell notwendige Parameter zur Initialisierung | // optParams: Eventuell notwendige Parameter zur Initialisierung | ||
// 'hideMenu': Optionen werden zwar geladen und genutzt, tauchen aber nicht im Benutzermenu auf | // 'hideMenu': Optionen werden zwar geladen und genutzt, tauchen aber nicht im Benutzermenu auf | ||
// 'teamParams': Getrennte "ligaSize"-Option wird genutzt, hier: __MYTEAM mit ' | // 'teamParams': Getrennte "ligaSize"-Option wird genutzt, hier: __MYTEAM mit 'Land' des Erst- bzw. Zweitteams | ||
// 'menuAnchor': Startpunkt fuer das Optionsmenu auf der Seite | // 'menuAnchor': Startpunkt fuer das Optionsmenu auf der Seite | ||
// 'showForm': Checkliste der auf der Seite sichtbaren Optionen (true fuer sichtbar) | // 'showForm': Checkliste der auf der Seite sichtbaren Optionen (true fuer sichtbar) | ||
Zeile 816: | Zeile 693: | ||
const __TEAMPARAMS = optParams.teamParams; // Ermittelte Parameter | const __TEAMPARAMS = optParams.teamParams; // Ermittelte Parameter | ||
optSet = | optSet = initOptions(optConfig, optSet); | ||
runStored(optSet, true); | |||
loadOptions(optSet); | |||
if (__TEAMPARAMS !== undefined) { | if (__TEAMPARAMS !== undefined) { | ||
Zeile 822: | Zeile 702: | ||
__MYTEAM.Liga = __TEAMPARAMS.Liga; | __MYTEAM.Liga = __TEAMPARAMS.Liga; | ||
__MYTEAM.Land = __TEAMPARAMS.Land; | __MYTEAM.Land = __TEAMPARAMS.Land; | ||
console.log("Ermittelt: " + JSON.stringify(__MYTEAM)); | console.log("Ermittelt: " + JSON.stringify(__MYTEAM)); | ||
// ... und abspeichern... | // ... und abspeichern... | ||
setOpt(optSet.team, __MYTEAM, false); | setOpt(optSet.team, __MYTEAM, false); | ||
} | } | ||
if (__MYTEAM. | if (__MYTEAM.Land !== undefined) { | ||
// Prefix fuer die Option "ligaSize"... | // Prefix fuer die Option "ligaSize"... | ||
renameOption(optSet.ligaSize, __MYTEAM.Land + getOptName(optSet.ligaSize), true); | |||
renameOption(optSet.ligaSize, | |||
// ... und nachladen... | // ... und nachladen... | ||
loadOption(optSet.ligaSize, true); | loadOption(optSet.ligaSize, true); | ||
} | } | ||
if (! optParams.hideMenu) { | |||
buildMenu(optSet); | |||
} | |||
if (optParams.menuAnchor !== undefined) { | |||
buildForm(optParams.menuAnchor, optSet, optParams); | |||
} | |||
return optSet; | return optSet; | ||
Zeile 997: | Zeile 865: | ||
// value: Ggfs. zu setzender Wert | // value: Ggfs. zu setzender Wert | ||
// serial: Serialization fuer String-Werte (Select, Textarea) | // serial: Serialization fuer String-Werte (Select, Textarea) | ||
// return String mit dem (reinen) Funktionsaufruf | // return String mit dem (reinen) Funktionsaufruf | ||
function getFormAction(opt, isAlt = false, value = undefined, serial = undefined | function getFormAction(opt, isAlt = false, value = undefined, serial = undefined) { | ||
const | const __CONFIG = getOptConfig(opt); | ||
const | const __SERIAL = getValue(serial, getValue(__CONFIG.Serial, false)); | ||
const | const __NAMSTR = "'" + getOptName(opt) + "'"; | ||
const | const __THISVAL = ((__CONFIG.ValType === "String") ? "'\\x22' + this.value + '\\x22'" : "this.value"); | ||
const __TVALUE = getValue(__CONFIG.ValType, __THISVAL, "new " + __CONFIG.ValType + '(' + __THISVAL + ')'); | |||
const __VALSTR = ((value !== undefined) ? JSON.stringify(value) : __SERIAL ? "JSON.stringify(" + __TVALUE + ')' : __TVALUE); | |||
const __ACTION = (isAlt ? getValue(__CONFIG.AltAction, __CONFIG.Action) : __CONFIG.Action); | |||
if ( | if (__ACTION !== undefined) { | ||
switch (__ACTION) { | |||
case __OPTACTION.SET : //return "doActionSet('" + getOptName(opt) + "', " + getNextOpt(opt, __VALSTR) + ')'; | |||
return "(sessionStorage.setItem('runcmd', 'SET'), sessionStorage.setItem('runkey', " + __NAMSTR + "), sessionStorage.setItem('runval', " + __VALSTR + "), window.location.reload())"; | |||
case __OPTACTION.NXT : //return "doActionNxt('" + getOptName(opt) + "', " + getNextOpt(opt, __VALSTR) + ')'; | |||
return "(sessionStorage.setItem('runcmd', 'NXT'), sessionStorage.setItem('runkey', " + __NAMSTR + "), sessionStorage.setItem('runval', " + __VALSTR + "), window.location.reload())"; | |||
case __OPTACTION.RST : //return "doActionRst()"; | |||
return "(sessionStorage.setItem('runcmd', 'RST'), window.location.reload())"; | |||
default : break; | |||
} | } | ||
} | } | ||
Zeile 1.043: | Zeile 896: | ||
// type: Event-Typ fuer <input>, z.B. "click" fuer "onclick=" | // type: Event-Typ fuer <input>, z.B. "click" fuer "onclick=" | ||
// serial: Serialization fuer String-Werte (Select, Textarea) | // serial: Serialization fuer String-Werte (Select, Textarea) | ||
// return String mit dem (reinen) Funktionsaufruf | // return String mit dem (reinen) Funktionsaufruf | ||
function getFormActionEvent(opt, isAlt = false, value = undefined, type = "click", serial | function getFormActionEvent(opt, isAlt = false, value = undefined, type = "click", serial = undefined) { | ||
const __ACTION = getFormAction(opt, isAlt, value, serial | const __ACTION = getFormAction(opt, isAlt, value, serial); | ||
return getValue(__ACTION, "", ' on' + type + '="' + __ACTION + '"'); | return getValue(__ACTION, "", ' on' + type + '="' + __ACTION + '"'); | ||
Zeile 1.459: | Zeile 1.311: | ||
} | } | ||
prop = '?' + 'erganzeigen' + '=' + 1 + '&' + 'saauswahl' + '=' + currZAT.saison + | prop = '?' + 'erganzeigen' + '=' + 1 + '&' + 'saauswahl' + '=' + currZAT.saison + | ||
'&' + 'landauswahl' + '=' + | '&' + 'landauswahl' + '=' + 20 + '&' + 'ligaauswahl' + '=' + 1 + prop + | ||
'&' + 'stataktion' + '=' + "Statistik+ausgeben"; | '&' + 'stataktion' + '=' + "Statistik+ausgeben"; | ||
zusatz = '<a href="' + __NAMESPACE + href + '.php' + prop + '" target="_blank">' + zusatz + '</a>'; | zusatz = '<a href="' + __NAMESPACE + href + '.php' + prop + '" target="_blank">' + zusatz + '</a>'; | ||
Zeile 1.469: | Zeile 1.321: | ||
// ==================== Abschnitt fuer Statistiken des Spielplans ==================== | // ==================== Abschnitt fuer Statistiken des Spielplans ==================== | ||
// ==================== Abschnitt fuer | // ==================== Abschnitt fuer Daten des Spielplans ==================== | ||
// Ermittelt den Spielgegner aus einer Tabellenzelle und liefert den Namen zurueck | |||
// cell: Tabellenzelle mit dem Namen des Gegners | |||
// return Der Name des Gegners | |||
// Ermittelt den Spielgegner aus einer Tabellenzelle und liefert den Namen zurueck | |||
// cell: Tabellenzelle mit dem Namen des Gegners | |||
// return Der Name des Gegners | |||
function getGegnerFromCell(cell) { | function getGegnerFromCell(cell) { | ||
const __GEGNER = cell.textContent; | const __GEGNER = cell.textContent; | ||
Zeile 1.617: | Zeile 1.365: | ||
} | } | ||
// Ermittelt das Spiel-Ergebnis aus einer Tabellenzelle und setzt tore/gtore im Spielplanzeiger | // Ermittelt das Spiel-Ergebnis aus einer Tabellenzelle und setzt tore/gtore im Spielplanzeiger | ||
// currZAT: Enthaelt den Spielplanzeiger auf den aktuellen ZAT | // currZAT: Enthaelt den Spielplanzeiger auf den aktuellen ZAT | ||
// cell: Tabellenzelle mit Eintrag "2 : 1" | // cell: Tabellenzelle mit Eintrag "2 : 1" | ||
function setErgebnisFromCell(currZAT, cell) { | function setErgebnisFromCell(currZAT, cell) { | ||
const __ERGEBNIS = getErgebnisFromCell(cell); | const __ERGEBNIS = getErgebnisFromCell(cell); | ||
if (__ERGEBNIS.length === 2) { | |||
currZAT.gFor = parseInt(__ERGEBNIS[0], 10); | |||
currZAT.gAga = parseInt(__ERGEBNIS[1], 10); | |||
} else { | |||
currZAT.gFor = -1; | |||
currZAT.gAga = -1; | |||
} | |||
} | |||
// Ermittelt die Spielart aus einer Tabellenzelle und setzt gameType/heim im Spielplanzeiger | |||
// currZAT: Enthaelt den Spielplanzeiger auf den aktuellen ZAT | |||
// cell: Tabellenzelle mit Eintrag "Liga : Heim" oder "Liga Heim" | |||
function setSpielArtFromCell(currZAT, cell) { | |||
const __SPIELART = getSpielArtFromCell(cell); | |||
currZAT.gameType = __SPIELART[0]; | |||
currZAT.heim = (__SPIELART.length < 2) || (__SPIELART[1] === "Heim"); | |||
} | |||
const __GAMETYPES = { // "Blind FSS gesucht!" | |||
"reserviert" : 0, | |||
"Frei" : 0, | |||
"spielfrei" : 0, | |||
"Friendly" : 1, | |||
"Liga" : 2, | |||
"LP" : 3, | |||
"OSEQ" : 4, | |||
"OSE" : 5, | |||
"OSCQ" : 6, | |||
"OSC" : 7 | |||
}; | |||
// Gibt die ID fuer den Namen eines Wettbewerbs zurueck | |||
// gameType: Name des Wettbewerbs eines Spiels | |||
// return OS2-ID fuer den Spieltyp (1 bis 7), 0 fuer spielfrei/Frei/reserviert, -1 fuer ungueltig | |||
function getGameTypeID(gameType) { | |||
const __ID = __GAMETYPES[gameType]; | |||
return (__ID === undefined) ? -1 : __ID; | |||
} | } | ||
Zeile 1.652: | Zeile 1.422: | ||
if (cell.textContent !== "Vorschau") { // Nur falls Link nicht bereits vorhanden | if (cell.textContent !== "Vorschau") { // Nur falls Link nicht bereits vorhanden | ||
if (__GAMETYPEID > 1) { | if (__GAMETYPEID > 1) { // nicht moeglich fuer "Friendly" bzw. "spielfrei"/"Frei"/"reserviert" | ||
const __SEARCHFUN = ":os_bericht("; | const __SEARCHFUN = ":os_bericht("; | ||
let paarung = cell.innerHTML.substr(cell.innerHTML.indexOf(__SEARCHFUN) + __SEARCHFUN.length); | let paarung = cell.innerHTML.substr(cell.innerHTML.indexOf(__SEARCHFUN) + __SEARCHFUN.length); | ||
Zeile 1.679: | Zeile 1.449: | ||
// ==================== Abschnitt fuer sonstige Parameter des Spielplans ==================== | // ==================== Abschnitt fuer sonstige Parameter des Spielplans ==================== | ||
// Ermittelt, wie das eigene Team heisst und aus welchem Land bzw. Liga es kommt (zur Unterscheidung von Erst- und Zweitteam) | // Ermittelt, wie das eigene Team heisst und aus welchem Land bzw. Liga es kommt (zur Unterscheidung von Erst- und Zweitteam) | ||
// cell: Tabellenzelle mit den Parametern zum Team " | // cell: Tabellenzelle mit den Parametern zum Team "<b>Willkommen im Managerbüro von TEAM</b><br>LIGA LAND<a href=..." | ||
// return Im Beispiel { 'Team' : "TEAM", 'Liga' : "LIGA", 'Land' : "LAND" }, | |||
// return Im Beispiel { 'Team' : "TEAM", 'Liga' : "LIGA", 'Land' : "LAND" | // z.B. { 'Team' : "Choromonets Odessa", 'Liga' : "1. Liga", 'Land' : "Ukraine" } | ||
// z.B. { 'Team' : "Choromonets Odessa", 'Liga' : "1. Liga", 'Land' : "Ukraine" | function getTeamParamsFromCell(cell) { | ||
function | const __SEARCHSTART = " von "; | ||
const __SEARCHMIDDLE = "</b><br>"; | |||
const __SEARCHLIGA = ". Liga "; | |||
const __SEARCHEND = "<a href="; | |||
const __INDEXSTART = cell.innerHTML.indexOf(__SEARCHSTART); | |||
const __SEARCHSTART | const __INDEXEND = cell.innerHTML.indexOf(__SEARCHEND); | ||
const __SEARCHMIDDLE = | |||
const __SEARCHLIGA | |||
const | |||
const __INDEXSTART | |||
const __INDEXEND | |||
let teamParams = | let teamParams = cell.innerHTML.substring(__INDEXSTART + __SEARCHSTART.length, __INDEXEND); | ||
const __INDEXLIGA = teamParams.indexOf(__SEARCHLIGA); | const __INDEXLIGA = teamParams.indexOf(__SEARCHLIGA); | ||
const __INDEXMIDDLE = teamParams.indexOf(__SEARCHMIDDLE); | const __INDEXMIDDLE = teamParams.indexOf(__SEARCHMIDDLE); | ||
Zeile 1.727: | Zeile 1.471: | ||
if (land !== undefined) { | if (land !== undefined) { | ||
if (land.charAt( | if (land.charAt(1) === ' ') { // Land z.B. hinter "2. Liga A " statt "1. Liga " | ||
land = land.substr(2); | land = land.substr(2); | ||
} | } | ||
if (liga !== undefined) { | if (liga !== undefined) { | ||
liga = liga.substring(0, liga.length - land.length | liga = liga.substring(0, liga.length - land.length - 1); | ||
} | } | ||
} | } | ||
Zeile 1.742: | Zeile 1.482: | ||
'Team' : __TEAM, | 'Team' : __TEAM, | ||
'Liga' : liga, | 'Liga' : liga, | ||
'Land' : land | 'Land' : land | ||
}; | }; | ||
Zeile 1.830: | Zeile 1.568: | ||
// Verarbeitet Ansicht "Haupt" (Managerbuero) | // Verarbeitet Ansicht "Haupt" (Managerbuero) | ||
function procHaupt() { | function procHaupt() { | ||
const __TEAMPARAMS = | const __TEAMPARAMS = getTeamParamsFromCell(getRows(1)[0].cells[1]); // Link mit Team, Liga, Land... | ||
buildOptions(__OPTCONFIG, __OPTSET, { | buildOptions(__OPTCONFIG, __OPTSET, { | ||
Zeile 1.836: | Zeile 1.574: | ||
'menuAnchor' : getTable(1, "div"), | 'menuAnchor' : getTable(1, "div"), | ||
'hideForm' : { | 'hideForm' : { | ||
'team' : true | 'team' : true, | ||
} | }, | ||
}); | }); | ||
const __ZAT = firstZAT(getOptValue(__OPTSET.saison), getOptValue(__OPTSET.ligaSize)); | const __ZAT = firstZAT(getOptValue(__OPTSET.saison), getOptValue(__OPTSET.ligaSize)); | ||
const __NEXTZAT = getZATNrFromCell(getRows(0)[2].cells[0]); | const __NEXTZAT = getZATNrFromCell(getRows(0)[2].cells[0]); // "Der naechste ZAT ist ZAT xx und ..." | ||
const __CURRZAT = __NEXTZAT - 1; | const __CURRZAT = __NEXTZAT - 1; | ||
addZusatz(getRows(2)[0], __ZAT, __CURRZAT, true); | addZusatz(getRows(2)[0], __ZAT, __CURRZAT, true); // "Dein letztes Spiel:" (+ __CURRZAT) | ||
addZusatz(getRows(3)[0], __ZAT); | addZusatz(getRows(3)[0], __ZAT); // "Dein naechstes Spiel:" (+ 1 ZAT) | ||
} | } | ||