Skip to content

Commit

Permalink
Bibliothek, Verbund auf Index-Seite auswählbar
Browse files Browse the repository at this point in the history
Index-Seite als Menü auch verlinkt und weiter ausgebaut. Über eine
neue Funktion updateLinks() können die URL-Parameter auch in den
Links auf verschiedenen Seiten entsprechend angepasst werden.
  • Loading branch information
zuphilip committed Feb 4, 2025
1 parent 765c97c commit 3b9e2a8
Show file tree
Hide file tree
Showing 4 changed files with 143 additions and 9 deletions.
109 changes: 104 additions & 5 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,121 @@
margin-right: auto;
}
</style>
<script src="./isbn/rendering.js"></script>
</head>
<body>
<h1>malibu - Mannheim library utilities</h1>
<p><b>malibu</b> ist eine Sammlung von leichtgewichtigen, webbasierten Tools im Umfeld von bibliographischen Daten zur Unterstützung von Arbeitsabläufen, wie sie häufig in Bibliotheken bei den Fachreferaten und der Erwerbung aufteten.</p>
<p>Hauptkomponenten sind:</p>
<h2>Hauptkomponenten</h2>
<ul>
<li><b>Suche nach einer ISBN</b> in verschiedenen Verbunddatenbanken und weitere Informationen etwa von Buchhändlern: <a href="isbn/suche.html">isbn/suche.html</a><br/></li>
<li><b>Suche nach einer ISBN</b> in verschiedenen Verbunddatenbanken und weitere Informationen etwa von Buchhändlern: <a class="link" href="isbn/suche.html" data-href="isbn/suche.html">isbn/suche.html</a><br/></li>
<li>Recherchewerkzeug für die <b>BNB weekly</b>: <a href="bnb/recherche.php">bnb/recherche.php</a><br/></li>
<li><b>Bestandsabgleich</b> anhand einer Liste von ISBNs:<ul>
<li>für den Bestand der UB Mannheim: <a href="tools/bestandsabgleich.html">tools/bestandsabgleich.html</a></li>
<li>für die Bestandsdaten in einem Verbund: <a href="tools/bestandsabgleichA.html">tools/bestandsabgleichA.html</a></li>
<li>für Bibliotheken mit einer ALMA-SRU-Schnittstelle: <a href="tools/bestandsabgleichB.html">tools/bestandsabgleichB.html</a></li></ul>
<li>für die Bestandsdaten in einem Verbund: <a class="link" href="tools/bestandsabgleichA.html" data-href="tools/bestandsabgleichA.html">tools/bestandsabgleichA.html</a></li>
<li>für Bibliotheken mit einer ALMA-SRU-Schnittstelle: <a class="link" href="tools/bestandsabgleichB.html" data-href="tools/bestandsabgleichB.html">tools/bestandsabgleichB.html</a></li></ul>
</li>
<li><b>PPN/ISBN-Liste anreichern</b> mit Werten eines Feldes (z.B. ISBN, Bestand, RVK, Schlagwörter) aus dem gleichen Verbund: <a href="tools/ppnListe.html">tools/ppnListe.html</a></li>
<li><b>PPN/ISBN-Liste anreichern</b> mit Werten eines Feldes (z.B. ISBN, Bestand, RVK, Schlagwörter) aus dem gleichen Verbund: <a class="link" href="tools/ppnListe.html" data-href="tools/ppnListe.html">tools/ppnListe.html</a></li>
</ul>
<h2>Einstellungen</h2>
<form>
<label>Verbund auswählen:</label>
<select id="verbund" onchange="updateBookmark()">
<option>k10plus</option>
<option>b3kat</option>
<option>hebis</option>
<option>hbz</option>
<option>dnb</option>
<option>swiss</option>
<option>obvsg</option>
</select>
<label for="bibliothek">Bibliothek auswählen:</label>
<select name="bibliothek" id="bibliothek" onchange="updateBookmark()">
<option value="keine">keine</option>
<optgroup id="DE" label="Deutschland" />
<optgroup id="AT" label="Österreich" />
<optgroup id="CH" label="Schweiz" />
</select>
</form>
<p>Bei Auswahl eines anderen Verbundes und/oder Bibliothek ändert sich die URL um die entsprechenden Parameter hier.
Zudem berücksichtigen die ausgehenden Links dann auch diese Einstellungen (soweit relevant ist).</p>

<h2>Anwendungsbeschreibung</h2>
Es gibt keine offizielle Dokumentation, aber die prinzipielle Anwendung sollte hoffentlich möglichst selbsterklärend sein.
Zwei etwas ältere Veröffentlichungen können vielleicht die Anwendungsfälle und mögliche Workflows etwas klarer machen:
<ul>
<li><a href="https://netzwerkeln.bibliothekswelt.de/2020/12/21/informationen-zu-einer-isbn-auf-einen-blick-mit-malibu" target="_blank">
Informationen zu einer ISBN auf einen Blick mit malibu</a>, netzwerkeln [Blog], 2020.</li>
<li><a href="http://www.b-i-t-online.de/heft/2014-06-fachbeitrag-balz.pdf" target="_blank">
Literaturauswahl und -bestellung leichter gemacht!</a> BIT online, 2014.</li>
</ul>
Darüber hinaus gibt es in <a href="https://github.com/UB-Mannheim/malibu/wiki" target="_blank">Github ein Wiki</a> mit ein paar Unterseiten.

<h2>Quellcode und Kontakt</h2>
<p>malibu ist Open Source Software. Den Quellcode findet man auf GitHub zusammen mit der Möglichkeit eigene Issues oder Pull Requests zu stellen: <a href="https://github.com/UB-Mannheim/malibu/">https://github.com/UB-Mannheim/malibu</a></p>
<p>Ansprechperson: <a href="https://www.bib.uni-mannheim.de/ihre-ub/ansprechpersonen/dr-philipp-zumstein/">Philipp Zumstein</a></p>

<script>
function populateSelectElement(selectElementId, data) {
const selectElement = document.getElementById(selectElementId);
for (let index in data) {
let element = data[index];
if ("holdings" in element && !element["holdings"]) {
continue;
}
const option = document.createElement("option");
option.value = index;
option.text = element.name;
let country = index.substring(0,2);
let countryNode = document.getElementById(country);
if (countryNode != null) {
countryNode.appendChild(option);
} else {
selectElement.appendChild(option);
}
}
}
function updateBookmark() {
var param = document.getElementById("bibliothek").value;
var verbund = document.getElementById("verbund").value;
parameters = []
if (param != "") {
parameters.push("bibliothek=" + param);
}
if (verbund != "") {
parameters.push("verbund=" + verbund);
}
if (parameters.length > 0) {
window.location.href = window.location.pathname + "?" + parameters.join("&");
}
}
//-->
</script>



<script type="text/javascript">
var libraries;
fetch('./isbn/srulibraries.json')
.then((response) => response.json())
.then(json => {
libraries = json;
populateSelectElement("bibliothek", libraries);

updateLinks();
let bibliothek = getParameterByName("bibliothek");
let verbund = getParameterByName("verbund");
if (bibliothek != null) {
document.getElementById("bibliothek").value = bibliothek;
}
if (verbund != null) {
document.getElementById("verbund").value = verbund;
}

});


</script>

</body>
</html>
26 changes: 25 additions & 1 deletion isbn/rendering.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,38 @@ function renderDDC(ddcArray)
}


// Alle speziellen Links mit der ausgewählten Bibliothek und Verbund
// als URL-Paramter updaten.
function updateLinks() {
let bibliothek = getParameterByName("bibliothek");
let verbund = getParameterByName("verbund");
parameters = []
if (bibliothek != "") {
parameters.push("bibliothek=" + bibliothek);
}
if (verbund != "") {
parameters.push("verbund=" + verbund);
}
if (parameters.length > 0) {
for (let linkNode of document.getElementsByClassName("link")) {
let separator = "?";
if (linkNode.dataset.href.includes("?")) {
separator = "&";
}
linkNode.href = linkNode.dataset.href + separator + parameters.join("&")
}
}
}


function renderRelationen(relationenArray)
{
if (typeof relationenArray === 'string') {
return relationenArray;
} else {
for (var i=0; i<relationenArray.length; i++) {
var rel = relationenArray[i];
relationenArray[i] = '<a href="./suche.html?isbn=' + rel + '" target="_blank">' + rel + '</a>';
relationenArray[i] = '<a class="link" href="./suche.html?isbn=' + rel + '" data-href="./suche.html?isbn=' + rel + '" target="_blank">' + rel + '</a>';
}
return relationenArray.join(', ');
}
Expand Down
10 changes: 7 additions & 3 deletions isbn/suche.html
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,9 @@
showNotification('Jetzt Cmd+C zum Kopieren drücken!', '#8A4B08', 'white');
});

updateLinks();


var meinVerbund = getParameterByName("verbund").toLowerCase() || "k10plus";
document.querySelector("#selectPpn").value = meinVerbund;
//Damit werden die Variablen ueber HTML ausgewertet (so wie GET Variablen in PHP)
Expand Down Expand Up @@ -388,7 +391,7 @@
var bestandsArray = [];
$.each(data.einzelaufnahmen, function(key, currentRecord) {
$('#ausgaben table').append("<tr id='"+currentRecord.id+"'>");
$('#'+currentRecord.id).append("<td>"+coins(currentRecord)+currentRecord.id+"<br/><button class='btn' title='In Zwischenablage kopieren' data-clipboard-text=''>Bestell Info <img src='../img/clippy.svg' width='16'/></button></td>");
$('#'+currentRecord.id).append("<td>"+coins(currentRecord)+currentRecord.id+"<br/><button class='btn' title='In Zwischenablage kopieren' data-clipboard-text=''>Bestell Info <img src='../img/clippy.svg' alt='clipboard icon' width='16'/></button></td>");
$('#'+currentRecord.id).append("<td>"+render(currentRecord.auflage)+"</td>");
$('#'+currentRecord.id).append("<td>"+render(currentRecord.erscheinungsinfo)+"</td>");
if (render(currentRecord.produktSigel) == '') {
Expand Down Expand Up @@ -472,6 +475,7 @@
$('#relationen').html(relationenText.trim());
}
$('#links').append( renderLinks(data.links) );
updateLinks();
});
});

Expand Down Expand Up @@ -513,10 +517,10 @@ <h1>Unterstützungstool für Fachreferatsarbeit</h1>
</form>
</td>
<td id="idTD">
<span class="box" onclick="ChangeDesign();" id="ChangeDesignButton"><b>Design wechseln</b></span>
<span class="box">
<a href="http://wiki.bib.uni-mannheim.de/InterneSeiten/doku.php?id=anleitungen:anleitungen_und_formulare#fachreferenten" target="_blank" title="Internes Wiki -> Unterstützungstool für Fachreferatsarbeit">Hilfe</a>
<a class="link" href="../index.html" data-href="../index.html" title="Zurück zum Hauptmenü">Menü ✨</a>
</span>
<span class="box" onclick="ChangeDesign();" id="ChangeDesignButton"><b>Design wechseln</b></span>
</td>
</tr>
</table>
Expand Down
7 changes: 7 additions & 0 deletions tools/bestandsabgleichA.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
</style>
<script src="../isbn/jquery.min.js"></script>
<script src="../isbn/clipboard.min.js"></script>
<script src="../isbn/rendering.js"></script>
<script type="text/javascript">
<!--
function listeEingabe() {
Expand Down Expand Up @@ -112,6 +113,12 @@ <h2>Ausgabe</h2>
<div id='ausgabe' style='background-color:#F0F0F0'></div>


<script type="text/javascript">
let param = getParameterByName("verbund");
if (param != null) {
document.getElementById("verbund").value = param;
}
</script>

<script type="text/javascript">
new ClipboardJS('.btn');
Expand Down

0 comments on commit 3b9e2a8

Please sign in to comment.