Commit 4c8b4c46 authored by Tobias Zeumer's avatar Tobias Zeumer
Browse files

Change folder layout

parent 742ffbce
......@@ -3,5 +3,16 @@
# Installation
Sofern Tampermonkey installiert ist, sollten die Scripts direkt per Click installierbar sein:
* [TUB TORE: Autoren-Authority anpassen](https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/TUB-Tore_-_Authority-Links.user.js)
* [TUB TORE: Fehlende DE-Übersetzungen](https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/TUB-Tore_-_Provide-Missing-Translations-DE.user.js)
\ No newline at end of file
## LBS
* [TUB LBS: WebSMM pimpen](https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/tub/lbs/WebSMM.js)
## TORE
* [TUB TORE: Autoren-Authority anpassen](https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/tub/tore/TUB-Tore_-_Authority-Links.user.js)
* [TUB TORE: Fehlende DE-Übersetzungen](https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/tub/tore/TUB-Tore_-_Provide-Missing-Translations-DE.user.js
## WWW (Sonstiges)
* [Twitter-Timeline](https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/www/twitter/Twitter_-_Highlight_Promoted_Tweets.user.js)
# Changelog
* 2019-09-06: WebSMM hinzugefügt
\ No newline at end of file
......@@ -2,7 +2,7 @@
// @name TUB TORE: Autoren-Authority anpassen
// @namespace https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/
// @version 1.0.5
// @updateURL https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/TUB-Tore_-_Authority-Links.user.js
// @updateURL https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/tub/tore/TUB-Tore_-_Authority-Links.user.js
// @description Icons für Autoren, die sich selbst in der Personensuche ausgeblendete haben und Anpassung der Farben.
// @author Tobias Zeumer
// @match https://tore.tuhh.de/*
......
// ==UserScript==
// @name TUB TORE: Fehlende DE-Übersetzungen
// @namespace https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/
// @version 1.0.1
// @updateURL https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/TUB-Tore_-_Provide-Missing-Translations-DE.user.js
// @version 1.0.2
// @updateURL https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/tub/tore/TUB-Tore_-_Provide-Missing-Translations-DE.user.js
// @description Fehlende Übersetzungen anpassen
// @author Tobias Zeumer
// @match https://tore.tuhh.de/*
......
// ==UserScript==
// @name TUB TORE: Autoren-Authority anpassen
// @namespace https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/
// @version 1.0.5
// @updateURL https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/tub/tore/TUB-Tore_-_Authority-Links.user.js
// @description Icons für Autoren, die sich selbst in der Personensuche ausgeblendete haben und Anpassung der Farben.
// @author Tobias Zeumer
// @match https://tore.tuhh.de/*
// @grant none
// @ merker: require https://code.jquery.com/jquery-3.1.0.min.js
// ==/UserScript==
/* NOTES
* Elegante Lösungen
* - https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518
* - https://stackoverflow.com/a/4793630
*/
(function() {
'use strict';
/* VARIANTE A https://tore.tuhh.de/handle/... */
// Alle Links mit class 'authority' finden
var lstAuthority = document.querySelectorAll('a.authority');
// Alle Links durchgehen und wenn auf einen Link mit 'author'-Class kein Link ohne 'author'-Class folgt, dann fehlt ein Typ-Link
var authorityLinkCount = lstAuthority.length - 1;
for (let i = 1; i <= authorityLinkCount; i++) {
let curAuthority = lstAuthority[i];
let prevAuthority = lstAuthority[i-1];
// Sind der letzte und der aktuelle Link beides Author-Links? Dann füge dem vorherigen einen People-Link an
if (prevAuthority.classList.contains('author') && curAuthority.classList.contains('author')) {
prevAuthority.parentNode.insertBefore(getAuthorityLink(prevAuthority), prevAuthority.nextSibling);
}
// Spezialfall - der letzte Autor (letztes Element mit 'author'-Class in <td>) hat kein Symbol
else if (curAuthority.parentElement.lastElementChild == curAuthority && curAuthority.classList.contains('author')) {
curAuthority.parentNode.insertBefore(getAuthorityLink(curAuthority), curAuthority.nextSibling);
}
}
// Link mit neuer Class 'staff-unlisted'
function getAuthorityLink(authorLink) {
let authorityID = authorLink.href.toString().match(/rp\d*/gi)[0];
let authorityLink = htmlToElement('<a href="/cris/rp/'+authorityID+'" class="authority"> <span data-toggle="tooltip" data-placement="top" title="TUHH MitarbeiterIn (ungelistet)" class="fa fa-user staff-unlisted"></span></a>');
return authorityLink;
}
// Get real nodes from plaintext html
function htmlToElement(html) {
var template = document.createElement('template');
html = html.trim(); // Never return a text node of whitespace as the result
template.innerHTML = html;
return template.content.firstChild;
}
/* VARIANTE B Startseite https://tore.tuhh.de/ */
document.querySelectorAll('.text-muted em').forEach(function(element) {
if (element.innerHTML.match(/&nbsp;;/gi)) {
element.innerHTML = element.innerHTML.replace(/&nbsp;;/gi, '<a href="#" class="authority"> <span data-toggle="tooltip" data-placement="top" title="TUHH MitarbeiterIn (ungelistet)" class="fa fa-user staff-unlisted"></span></a> ;');
}
})
// Eigenes Style-Element
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '\
.fa-user.staff {color: #2DC6C6;;} \
.fa-user.exstaff {color: #2EDCDC;} \
.fa-user.externalstaff {color: #999999;} \
.fa-user.undefinedstaff {color: #AFAFAF;} \
.fa-user.staff-unlisted {color: #4065CC;} \
';
document.getElementsByTagName('head')[0].appendChild(style);
})();
\ No newline at end of file
// ==UserScript==
// @name TUB TORE: Fehlende DE-Übersetzungen
// @namespace https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/
// @version 1.0.2
// @updateURL https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/tub/tore/TUB-Tore_-_Provide-Missing-Translations-DE.user.js
// @description Fehlende Übersetzungen anpassen
// @author Tobias Zeumer
// @match https://tore.tuhh.de/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Superior? Vielleicht eher "head"? An anderer Stelle (http://vm028.tub.tuhh.de/browse?type=ouname&rpp=100) wird "Director" genutzt
// Da sollten die ganze HTML-Leerzeichen weg: <span class="dynaLabel">Affiliations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
try {
translateToDe();
}
catch(err) {
console.log("Sollte mit wirklich allen Browsern kein Problem sein. Oder doch? ...: "+err);
}
/**
* Dumpf alles zum Übersetzen durchgehen
*/
function translateToDe() {
var enElements;
var i;
var translations = JSON.parse('{ \
"(All)": "(Alle)", \
"(Persons)": "(Personen)", \
"Affiliations": "Zugehörigkeit", \
"Amount": "Betrag", \
"Co-Investigator(s)": "Co-Schnüffler", \
"Coordinator": "Projektleitung", \
"Department": "Abteilung", \
"Description": "Bescheibung", \
"Director": "Leitung", \
"Email": "E-Mail", \
"Full Name": "Name", \
"Fullname": "Name", \
"Funding Program": "Förderprogramm", \
"Funding until": "Gefördert bis", \
"Grants": "Förderung", \
"Information": "Informationen", \
"Institute": "Institut", \
"Keyword(s)": "Schlagwörter", \
"P-Investigator": "P-Schnüffler", \
"Personal Site": "Webseite", \
"Projects": "Projekte", \
"Publications": "Veröffentlichungen", \
"Researcher": "Wissenschaftler", \
"Sponsor": "Förderer", \
"Subprojects": "Teilprojekte", \
"Superior": "Leitung", \
"Title": "Titel", \
"URL": "Webseite", \
"Variants": "Varianten", \
"xxx": "xxx", \
"xxx": "xxx", \
"xxx": "xxx", \
"xxx": "xxx", \
"Letze hat": "kein Komma ;)" \
}');
// Irgendwas um festzustellen, dass gerade kein Deutsch angezeigt wird
if (document.getElementById('designedby').innerHTML.indexOf('Ansprechpartner') < 1) return false;
// Alles auf einmal durchgehen (TEXT)
// Alle Tabs (.ui-tabs-anchor) durchgehen
// Alle grauen Abschnittsköpfe (.panel-title a) durchgehen
// Sortierbare Tabellen: sortierbarer Kopf (.table-hover th.sortable); z.B. http://vm028.tub.tuhh.de/cris/ou/ou00003/people.html?sort_bypersons=4&orderpersons=DESC&open=persons#persons
enElements = document.querySelectorAll(".ui-tabs-anchor, .panel-title a, .table-hover th.sortable a");
for (i = 0; i < enElements.length; i++) {
let txtEN = enElements[i].text.trim(); // Trim, weil die irgendwie unendlich Leerzeichen drumherum haben
if (translations[txtEN]) enElements[i].text = translations[txtEN];
}
// Alles auf einmal durchgehen (innerHTML)
// Alle Label (.dynaLabel) durchegehen
// Alle grauen Abschnittsköpfe die geklammerten Sachen (.panel-title .btn-group) durchgehen
// Sortierbare Tabellen: nicht sortierbarer Kopf (.table-hover th.sortable); z.B. http://vm028.tub.tuhh.de/cris/ou/ou00003/people.html?sort_bypersons=4&orderpersons=DESC&open=persons#persons
enElements = document.querySelectorAll(".dynaLabel, .panel-title .btn-group, .table-hover th");
for (i = 0; i < enElements.length; i++) {
let txtEN = enElements[i].innerHTML.trim(); // Trim, weil die irgendwie unendlich Leerzeichen drumherum haben
if (translations[txtEN]) enElements[i].innerHTML = translations[txtEN];
}
// Die Filterbuttons - ganz, ganz dumpf mit replace
enElements = document.getElementsByClassName('btn');
for (i = 0; i < enElements.length; i++) {
let txtEN = enElements[i].innerHTML;
console.log(txtEN);
txtEN = txtEN.replace('Show/Hide filters', 'Filter zeigen/verbergen')
txtEN = txtEN.replace('Close filters', 'Filter schließen')
enElements[i].innerHTML = txtEN;
}
}
})();
\ No newline at end of file
......@@ -2,7 +2,7 @@
// @name Twitter: Highlight promoted tweets
// @namespace https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/
// @version 0.0.1
// @updateURL https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/Twitter_-_Highlight_Promoted_Tweets.user.js xxx
// @updateURL https://collaborating.tuhh.de/tobias.zeumer/Tampermonkey/raw/master/www/twitter/Twitter_-_Highlight_Promoted_Tweets.user.js xxx
// @description Promoted tweets are far to similar to regular tweets. Make them red!
// @author Tobias Zeumer
// @match https://*twitter.com/*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment