Skillnad mellan versioner av "IntranetUserJS/mellansjo"
(14 mellanliggande sidversioner av samma användare visas inte) | |||
Rad 1: | Rad 1: | ||
− | == Väntfunktionen == | + | == Väntfunktionen '''VIKTIGT''' == |
'''Lägg denna högst upp i intranetuserjs under $(document).ready(function() {, Viktig funktion för att scripten ska fungera.''' | '''Lägg denna högst upp i intranetuserjs under $(document).ready(function() {, Viktig funktion för att scripten ska fungera.''' | ||
Rad 17: | Rad 17: | ||
</pre> | </pre> | ||
− | |||
== Periodika / Ta emot == | == Periodika / Ta emot == | ||
Rad 430: | Rad 429: | ||
− | == Katalog / | + | == Katalog / Barnmedia == |
'''Ändrar automatiskt till itemtype "BARNBOK" om man skriver in Hcf, Hcg eller något med litet u i Full call number vid exemplarinläggning eller redigering.''' | '''Ändrar automatiskt till itemtype "BARNBOK" om man skriver in Hcf, Hcg eller något med litet u i Full call number vid exemplarinläggning eller redigering.''' | ||
Rad 447: | Rad 446: | ||
</pre> | </pre> | ||
− | |||
== Katalog / Exemplar == | == Katalog / Exemplar == | ||
Rad 473: | Rad 471: | ||
</pre> | </pre> | ||
− | |||
== Låntagare / Registrering == | == Låntagare / Registrering == | ||
Rad 520: | Rad 517: | ||
$('.capitalizerfw').on('input', function() { | $('.capitalizerfw').on('input', function() { | ||
$(this).capitalizefw(); | $(this).capitalizefw(); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | '''Endast småbokstäver i e-postfält.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | jQuery.fn.decapitalize = function() { | ||
+ | $(this[0]).keyup(function(event) { | ||
+ | var box = event.target; | ||
+ | var txt = $(this).val(); | ||
+ | var stringStart = box.selectionStart; | ||
+ | var stringEnd = box.selectionEnd; | ||
+ | $(this).val(txt.replace(/^(.)|(\s|\-)(.)/g, function($word) { | ||
+ | return $word.toLowerCase(); | ||
+ | })); | ||
+ | box.setSelectionRange(stringStart , stringEnd); | ||
+ | }); | ||
+ | |||
+ | return this; | ||
+ | } | ||
+ | |||
+ | $('#email').addClass('decapitalizer'); | ||
+ | |||
+ | $('.decapitalizer').on('input', function() { | ||
+ | $(this).decapitalize(); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Cirkulation / Utlåning och detaljer för låntagare == | ||
+ | |||
+ | '''Meddelanden på låntagarsidan går nu redigera så man slipper skriva en nya varje gång.''' | ||
+ | |||
+ | [[Fil:Meddelande.png]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('<a class="editmsg btn btn-link btn-sm" href="#"><i class="fa fa-edit"></i>Ändra</a>').insertAfter('#messages .circ-hlt'); | ||
+ | |||
+ | $('.editmsg').on('click', function() { | ||
+ | |||
+ | var delmsglink = $(this).next().attr('href'); | ||
+ | var msg = $(this).closest('li').find('span.circ-hlt i').text().slice(1,-1); | ||
+ | localStorage.setItem('editmsg', msg); | ||
+ | |||
+ | $('#addnewmessageLabel').trigger('click'); | ||
+ | |||
+ | $('#borrower_message').val(msg); | ||
+ | |||
+ | $('.modal-footer button.btn.btn-default.approve').on('click', function (event) { | ||
+ | event.preventDefault(); | ||
+ | $.get('https://' + window.location.hostname + delmsglink).done(function(datan) { | ||
+ | $('form#message_form').trigger('submit'); | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | $('.modal-footer button.btn.btn-default.deny.cancel').on('click', function () { | ||
+ | $('#borrower_message').val(msg); | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Exemplar / Streckkoder == | ||
+ | |||
+ | '''Markera innehållet i Streckkodsrutan när man klickar i rutan, förenklar så man kan dra streckkoden direkt när man ställer sig i rutan.''' | ||
+ | |||
+ | [[Fil:Streckkodsrutan.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('input[id^="tag_952_subfield_p"]').each(function() { | ||
+ | $(this).addClass('bcselect'); | ||
+ | }); | ||
+ | |||
+ | $('.bcselect').on('focus', function(){ | ||
+ | $(this).select(); | ||
+ | }); | ||
+ | |||
+ | $('input[id^="tag_952_subfield_p"]').on('click', function() { | ||
+ | if (!$('input[id^="tag_952_subfield_p"]').val() > -1) { | ||
+ | $(this).select(); | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Cirkulation / Reservationer == | ||
+ | |||
+ | '''Visar antal reservationer i kö vid utlån.''' | ||
+ | |||
+ | [[Fil:Antalreservationervidutlan.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('#circ_needsconfirmation').each(function() { | ||
+ | var barcode = sessionStorage.getItem('lastbarcode'); | ||
+ | |||
+ | if ($('#circ_needsconfirmation ul li').text().indexOf('Efterfrågat') > -1 | $('#circ_needsconfirmation ul li').text().indexOf('High demand') > -1) { | ||
+ | |||
+ | $('#circ_needsconfirmation ul').append('<li>Antal reservationer i kö:\t <span id="antal"><i>Hämtar...</i></span></li>'); | ||
+ | |||
+ | $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=454&sql_params=' + barcode, "json").done(function(data) { | ||
+ | |||
+ | var res = data[data.length - 1][4]; | ||
+ | var link = '/cgi-bin/koha/reserve/request.pl?biblionumber=' + data[0][5]; | ||
+ | |||
+ | $('#antal').html('<b>' + res + '</b><a href="https://' + window.location.hostname + link +'" target="_blank"> (Öppna kön i ny flik)</a>'); | ||
+ | |||
+ | }); | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | |||
+ | == Cirkulation / Sparade lån == | ||
+ | |||
+ | '''SPARADE LÅN - Varning med datum, Vid försök av lån tidigare lånad bok så anges nu senast lånat datum i bekräftelserutan, även om annan streckkod av samma titel försöker lånas.''' | ||
+ | |||
+ | [[Fil:Sparadelandatum.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('form#mainform').on('submit', function(event) { // Spara senast dragna streckkod vid utlån i webbläsaren | ||
+ | sessionStorage.setItem('lastbarcode',$('#barcode').val()); | ||
+ | }); | ||
+ | |||
+ | $('#circ_needsconfirmation').each(function() { // Bekräfta lån-rutan | ||
+ | var link = $.cookie('patronlink'); | ||
+ | var barcode = sessionStorage.getItem('lastbarcode'); | ||
+ | |||
+ | if (link.indexOf("findborrower") > -1) { | ||
+ | var type = "cardnumber="; | ||
+ | } | ||
+ | else { | ||
+ | var type = "borrowernumber="; | ||
+ | }; | ||
+ | |||
+ | link = link.slice(link.indexOf('=')+1); | ||
+ | |||
+ | if ($('#circ_needsconfirmation ul li').text().indexOf('previously ') > -1 | $('#circ_needsconfirmation ul li').text().indexOf('tidigare') > -1) { | ||
+ | |||
+ | $('#circ_needsconfirmation ul').append('<h4 id="lastdateloading">Hämtar information... vänta</h4>'); | ||
+ | |||
+ | $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=450&sql_params=' + link + '&sql_params=' + barcode, "json").done(function(data) { | ||
+ | |||
+ | var lastdate = data[0][5]; | ||
+ | |||
+ | if (lastdate == null) { | ||
+ | lastdate = 0; | ||
+ | }; | ||
+ | |||
+ | $('#circ_needsconfirmation #lastdateloading').remove(); | ||
+ | if (lastdate == 0) { | ||
+ | $('#circ_needsconfirmation ul').append('<li id="lastdate">Senast lånad:\t <b>Okänt</b> <i>(före övergång till koha)</i></li>'); | ||
+ | sessionStorage.removeItem('lastbarcode'); | ||
+ | } | ||
+ | else { | ||
+ | $('#circ_needsconfirmation ul').append('<li id="lastdate">Senast lånad:\t <b>' + lastdate + '</b></li>'); | ||
+ | sessionStorage.removeItem('lastbarcode'); | ||
+ | }; | ||
+ | |||
+ | }); | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Exemplar / Skolbibliotek == | ||
+ | |||
+ | '''Vid redigering/registrering av exemplar så sparas exemplaret automatisk ifall man drar streckkoden, man behöver alltså inte klicka på knappen "Spara" vid redigering av exemplar.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('#cataloguing_additem_newitem #f').has('#edititem').each(function() { | ||
+ | |||
+ | $('#subfield952p input').keypress(function(event) { | ||
+ | var keycode = event.keyCode || event.which; | ||
+ | if(keycode == '13') { | ||
+ | if ($(this).val()) { | ||
+ | $('input[onclick="return Check(this.form)"]').trigger('click'); | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | == Låntagare / Personnummer == | ||
+ | |||
+ | '''Personnummerfältet låst till endast 10 siffror och flytta fältet till ovan födelsedatum samt autofyll födelsedagsdatum. Känner av att det är ett giltigt personnr annars rensar den fältet och ger ett meddelande. Kontrollerar även nu också att inte personnumret finns registrerat i katalogen.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | var validatePersonalNumber = function(input) { // Valideringsscript för svenskt personnummer | ||
+ | // Kontrollera godkänd längd och form | ||
+ | if (!input) return false; | ||
+ | |||
+ | if (input.indexOf('-') == -1) { | ||
+ | if (input.length === 10) { | ||
+ | input = input.slice(0, 6) + "-" + input.slice(6); | ||
+ | } else { | ||
+ | input = input.slice(0, 8) + "-" + input.slice(8); | ||
+ | } | ||
+ | } | ||
+ | if (!input.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})|(\d{4})(\d{2})(\d{2})\-(\d{4})$/)) return false; | ||
+ | |||
+ | // Snygga till input | ||
+ | input = input.replace('-', ''); | ||
+ | if (input.length == 12) { | ||
+ | input = input.substring(2); | ||
+ | } | ||
+ | |||
+ | // Deklarera variabler | ||
+ | var d = new Date(((!!RegExp.$1) ? RegExp.$1 : RegExp.$5), (((!!RegExp.$2) ? RegExp.$2 : RegExp.$6)-1), ((!!RegExp.$3) ? RegExp.$3 : RegExp.$7)), | ||
+ | sum = 0, | ||
+ | numdigits = input.length, | ||
+ | parity = numdigits % 2, | ||
+ | i, | ||
+ | digit; | ||
+ | |||
+ | // Kontrollera godkänt datum | ||
+ | if (Object.prototype.toString.call(d) !== "[object Date]" || isNaN(d.getTime())) return false; | ||
+ | |||
+ | // Kontrollera luhn algoritmen | ||
+ | for (i = 0; i < numdigits; i = i + 1) { | ||
+ | digit = parseInt(input.charAt(i)) | ||
+ | if (i % 2 == parity) digit *= 2; | ||
+ | if (digit > 9) digit -= 9; | ||
+ | sum += digit; | ||
+ | } | ||
+ | return (sum % 10) == 0; | ||
+ | }; | ||
+ | |||
+ | |||
+ | $('#patron_attr_3').attr('maxlength','10').attr('placeholder','10 siffror (ÅÅMMDDNNNN)').attr('style','width: 174px; height: 22px;'); // Ge fältet rätt attribut | ||
+ | |||
+ | $('#patron_attr_3').parent().insertBefore('li label[for="dateofbirth"]'); // Flyttar personnrfältet till innan födelsedagsdatumfältet | ||
+ | |||
+ | $('#patron_attr_3').change(function() { // Känner av ändring i personnrfältet och uppdaterar födelsedagsdatumfältet och OPAC användarnamnet | ||
+ | |||
+ | if (validatePersonalNumber($(this).val())) { | ||
+ | var d = new Date(); // Kollar det aktuella datumet | ||
+ | var year = d.getFullYear(); // Sorterar ut vilket år det är | ||
+ | year = year.toString().slice(0,2); // Gör om till sträng och ta bara med de två första siffrorna, dvs 19 eller 20 | ||
+ | |||
+ | var patronyear = $(this).val().slice(0,2); // Kollar personnummrets två första siffror och sparar det till variable | ||
+ | |||
+ | if (patronyear > year) { // Kontrollerar om personen är mer än hundra år, om inte gör detta följande | ||
+ | $('input#dateofbirth').val('19' + $(this).val().slice(0,2) + '-' + $(this).val().slice(2,4) + '-' + $(this).val().slice(4,6)); | ||
+ | } | ||
+ | else { // Personen är äntingen över hundra år (inte så troligt) så då förutsätter vi att personen är född på 2000-talet | ||
+ | $('input#dateofbirth').val('20' + $(this).val().slice(0,2) + '-' + $(this).val().slice(2,4) + '-' + $(this).val().slice(4,6)); | ||
+ | }; | ||
+ | |||
+ | $('input#userid').val($(this).val()); // Kopierar även personnr till OPAC Användarnamnet | ||
+ | |||
+ | chkpnr = $(this).val(); | ||
+ | |||
+ | $.get('https://' + window.location.hostname + '/cgi-bin/koha/circ/circulation.pl?findborrower=' + chkpnr).done(function(datan) { | ||
+ | |||
+ | var contents = datan.slice(datan.indexOf('<title>')+7, datan.indexOf('</title>')); | ||
+ | |||
+ | if (contents.indexOf('Låna ut') > -1 | contents.indexOf('Checking') > -1) { | ||
+ | |||
+ | alert('Personnumret finns redan registrerat!'); | ||
+ | $('#patron_attr_3').css('background','red').focus().select(); | ||
+ | |||
+ | } else { | ||
+ | |||
+ | $('#patron_attr_3').css('background','#d4efb7'); | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | } | ||
+ | else { | ||
+ | $('textarea[id="patron_attr_3"]').val(null); // Rensa fältet | ||
+ | alert("Personnummret är felaktigt, var god ändra."); // Varna för fel personnr | ||
+ | setTimeout(function(){$('textarea[id="patron_attr_3"]').focus();}, 1); // Ställ markören i fältet igen | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Låntagare / Smsnummer == | ||
+ | |||
+ | '''Lägger automatiskt in samma nummer som fylls i fältet Annan telefon(other phone) till SMSnummer.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('input#mobile').change(function() { | ||
+ | $('input#SMSnumber').val($(this).val()); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Låntagare / Nummerfält == | ||
+ | |||
+ | '''Tillåt endast siffror i telefonnummer och personnummer.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $("input#mobile , #patron_attr_3").keydown(function (e) { | ||
+ | var isModifierkeyPressed = (e.metaKey || e.ctrlKey || e.shiftKey); | ||
+ | var isCursorMoveOrDeleteAction = ([46,8,9,35,36,37,38,39,40].indexOf(e.keyCode) != -1); | ||
+ | var isNumKeyPressed = (e.keyCode >= 48 && e.keyCode <= 58) || (e.keyCode >=96 && e.keyCode <= 105); | ||
+ | var vKey = 86, cKey = 67,aKey = 65, xKey = 88; | ||
+ | switch(true){ | ||
+ | case isCursorMoveOrDeleteAction: | ||
+ | case isModifierkeyPressed == false && isNumKeyPressed: | ||
+ | case (e.metaKey || e.ctrlKey) && ([vKey,cKey,aKey,xKey].indexOf(e.keyCode) != -1): | ||
+ | break; | ||
+ | default: | ||
+ | e.preventDefault(); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Exemplar / Skolbibliotek == | ||
+ | |||
+ | '''Skapar knappen ”lägg till och duplicera för enklare registrering av flera exemplar av samma bok utan extra knapptryck, ställer sig i streckkodsfältet när en bok är färdig. Behöver endast dra streckkod på exemplaren efter det så sparas exemplaren automatiskt. Markering av senast inlagt exemplar i listan med grönt.''' | ||
+ | |||
+ | [[Fil:Duplicera.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('input[name="add_duplicate_submit"]').on('click', function(event) { | ||
+ | localStorage.setItem('lastbarcode',$('#subfield952p input').val()); | ||
+ | localStorage.setItem('addmulti','yes'); | ||
+ | }); | ||
+ | |||
+ | $('body#cat_additem').each(function() { | ||
+ | if (localStorage.getItem('addmulti')) { | ||
+ | $('#subfield952p input:eq(0)').focus().select(); | ||
+ | $('#subfield952p input:eq(0)').css('background-color','#d4efb7'); | ||
+ | $('#subfield952p input:eq(0)').attr('placeholder','Fortsätt dra nästa exemplar...'); | ||
+ | $('#subfield952p input').keypress(function(event) { | ||
+ | var keycode = event.keyCode || event.which; | ||
+ | if(keycode == '13') { | ||
+ | if ($(this).val()) { | ||
+ | localStorage.setItem('lastbarcode',$(this).val()); | ||
+ | $('input[name="add_duplicate_submit"]').trigger('click'); | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | $('#itemst td').text(function () { | ||
+ | var lastbarcode = localStorage.getItem('lastbarcode'); | ||
+ | if ($(this).text() == lastbarcode) { | ||
+ | $(this).closest('tr').children().css('background-color','#d4efb7'); | ||
+ | localStorage.removeItem('lastbarcode'); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Startsidan == | ||
+ | |||
+ | '''Gömmer redigeringsknapparna för nyheterna.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $("p.newsfooter a").hide(); | ||
+ | |||
+ | $("p.newsfooter").each(function() { | ||
+ | var text = $(this).html().replace(/\|/g, ' '); | ||
+ | $(this).html(text); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Katalog / Sökning== | ||
+ | |||
+ | '''När sökning sker i fel fält, t.ex Katalogsökning i ”låna ut”. Trycker man enter(eller knappen) så görs automatiskt samma sökning i katalogen istället.''' | ||
+ | |||
+ | [[Fil:Felsökning.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('body#circ_circulation #doc3 #bd #yui-main .yui-b h4').each(function() { | ||
+ | if ($(this).text().indexOf('Ingen låntagare hittad') >= 0) { | ||
+ | $('<br /><h2>Sökte du på fel ställe kanske? Ingen fara!</h2> <br /><span>Prova sökknappen eller tryck ENTER igen.<br /><br /></span><button id="searchcat" class="btn btn-success btn-sm">Sök i katalogen</button>').insertAfter(this); | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | $('#patronsearch').bind('submit',function(event) { | ||
+ | if ($('#findborrower').val() == '') { | ||
+ | event.preventDefault(); | ||
+ | $('#searchcat').trigger('click'); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | $('#searchcat').on('click', function(event){ | ||
+ | var string = $('body#circ_circulation #doc3 #bd #yui-main .yui-b h4 span').text(); | ||
+ | var location = window.location.hostname; | ||
+ | localStorage.setItem('lastsearch', string.slice(1,-1)); | ||
+ | window.location.assign("https://" + location + "/cgi-bin/koha/catalogue/search.pl?idx=kw&q=" + string); | ||
+ | }); | ||
+ | |||
+ | $('body#catalog_results #search-form').attr('value', localStorage.getItem('lastsearch')).select(); | ||
+ | |||
+ | $('#main_intranet-main').ready(function () { | ||
+ | localStorage.removeItem('lastsearch'); | ||
+ | }); | ||
+ | |||
+ | $('#cat-search-block').bind('submit',function(event) { | ||
+ | var string = $('#search-form').attr('value'); | ||
+ | localStorage.setItem('lastsearch', string); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Katalog / Resultat == | ||
+ | |||
+ | '''Klickbara hyllsignaturer.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('td.itemcallnumber').each(function() { | ||
+ | var itemcallnr = $(this).text().slice(1); | ||
+ | var location = window.location.hostname; | ||
+ | $(this).html('<a href="https://'+location+'/cgi-bin/koha/catalogue/search.pl?idx=callnum&q='+itemcallnr+'">'+itemcallnr+'</a>'); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Katalog / Klassifikation == | ||
+ | |||
+ | '''Gör klassifikationer i katalogposten klickbara.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $(".results_summary.oc").each(function() { | ||
+ | var oc = $(this).text(); | ||
+ | var newtext = oc.slice(0,oc.indexOf(':')+2); | ||
+ | $(this).text(newtext); | ||
+ | oc = oc.slice(oc.indexOf(':')+2); | ||
+ | ocarr = oc.trim().split(' | '); | ||
+ | for (i = 0 ; i < ocarr.length ; i++) { | ||
+ | $(this).append('<a href="https://' + window.location.hostname + '/cgi-bin/koha/catalogue/search.pl?idx=kw&q=lcn%3A' + ocarr[i] + '">' + ocarr[i] + '</a>'); | ||
+ | if (i < (ocarr.length -1)) { | ||
+ | $(this).append(' | '); | ||
+ | } | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Katalog / Informationslänkar == | ||
+ | |||
+ | '''Gör ISBN i katalogposten klickbara för att komma till Adlibris, Btj, Legimus och LIBRIS, samt förhandsvisning av post hos Adlibris när man har muspekaren över Adlibris-länken.''' | ||
+ | |||
+ | [[Fil:Adlibrisbtjlegimus.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $(".results_summary.isbn").each(function() { | ||
+ | var isbn = $(this).text().slice(6,-1); | ||
+ | isbn = isbn.replace('-', ''); | ||
+ | if (isbn.indexOf(';') > -1) { | ||
+ | isbn = isbn.replace(';', ' ').replace(/\s+/g,' ').trim(); | ||
+ | isbnarr = isbn.split(' '); | ||
+ | isbn = isbnarr[0].toString(); | ||
+ | }; | ||
+ | isbn = isbn.replace(/\D/g,''); | ||
+ | $(this).append('<span class="isbncont"></span>') | ||
+ | |||
+ | // Adlibris | ||
+ | $('.isbncont' ,this).append('<span class="label"> Öppna i: </span><a href="https://www.adlibris.com/se/organisationer/product.aspx?isbn=' + isbn + '" target="_blank" class="pvframelink">Adlibris</a> | '); | ||
+ | // Btj | ||
+ | $('.isbncont' ,this).append('<a href="http://butik.btj.se/default.aspx?search=' + isbn + '" target="_blank">Btj</a> | '); | ||
+ | // Legimus | ||
+ | $('.isbncont' ,this).append('<a href="http://www.legimus.se/search?isbn=' + isbn + '" target="_blank">Legimus</a> | '); | ||
+ | // Libris | ||
+ | $('.isbncont' ,this).append('<a href="http://libris.kb.se/hitlist?d=libris&q=numm%3a' + isbn + '&f=ext&spell=true&hist=true&p=1" target="_blank">Libris</a>'); | ||
+ | |||
+ | }); | ||
+ | |||
+ | $('.pvframelink').on('mouseover', function() { | ||
+ | isbn = $(this).attr('href'); | ||
+ | isbn = isbn.slice(isbn.indexOf('=')+1); | ||
+ | |||
+ | $('<div class="previewbox"><iframe class="pvframe" src="https://www.adlibris.com/se/organisationer/product.aspx?isbn=' + isbn + '#ctl00_content" width="720px" height="700px"></iframe></div>').insertAfter(this); | ||
+ | |||
+ | }); | ||
+ | |||
+ | $('.pvframelink').on('mouseout', function() { | ||
+ | $('.previewbox').remove(); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Låntagare / Sökning == | ||
+ | |||
+ | '''Spara senaste låntagare som lånat eller återlämnat med hjälp av cookies, spara även de 15 senaste med timestamp när.''' | ||
+ | |||
+ | [[Fil:Senastelantagare.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | var midnight = new Date(); | ||
+ | midnight.setHours(23,59,59,0); | ||
+ | |||
+ | |||
+ | $('#checkedintable tr:nth-child(1) td.ci-patron a:first, #hold-request-form a:first').each(function(){ // Senaste låntagaren som återlämnat eller reserverat | ||
+ | var checkedinpatron = $(this).attr('href'); | ||
+ | var name = $(this).text(); | ||
+ | if (name.indexOf(',') > -1) { | ||
+ | var surname = name.slice(name.indexOf(',')+2, name.indexOf('(')); | ||
+ | var lastname = name.slice(2, name.indexOf(',')); | ||
+ | var patronname = surname.concat(lastname); | ||
+ | |||
+ | document.cookie = "lastpatron=" + patronname + " [ Återlämnat ]; expires=" + midnight + "; path=/ " ; | ||
+ | |||
+ | } | ||
+ | else { | ||
+ | var patronname = $(this).text(); | ||
+ | document.cookie = "lastpatron=" + patronname + "; expires=" + midnight + "; path=/ " ; | ||
+ | }; | ||
+ | |||
+ | var patronlink = checkedinpatron.slice(checkedinpatron.indexOf('?')+1); | ||
+ | document.cookie = "patronlink=" + patronlink + "; expires=" + midnight + "; path=/ " ; | ||
+ | |||
+ | savePatron(); | ||
+ | |||
+ | }); | ||
+ | |||
+ | |||
+ | $('div.patroninfo h5').each(function(){ // Spara senaste låntagaren som laddats | ||
+ | var name = $(this).text().replace(/\s+/g, " "); | ||
+ | var borrowernumber = $('.patronborrowernumber').text(); | ||
+ | borrowernumber = borrowernumber.slice(16); | ||
+ | var patronlink = 'borrowernumber=' + borrowernumber; | ||
+ | |||
+ | document.cookie = "lastpatron=" + name + "; expires=" + midnight + "; path=/ " ; | ||
+ | document.cookie = "patronlink=" + patronlink + "; expires=" + midnight + "; path=/ " ; | ||
+ | |||
+ | savePatron(); | ||
+ | |||
+ | }); | ||
+ | |||
+ | |||
+ | function savePatron() { // Spara ner låntagare i listan ifall hen inte finns med förut | ||
+ | |||
+ | var d = new Date(); | ||
+ | time = d.toTimeString(); | ||
+ | time = time.split(' ')[0]; | ||
+ | |||
+ | document.cookie = "timestamp=" + time + "; expires=" + midnight + "; path=/ " ; | ||
+ | |||
+ | var name = $.cookie('lastpatron'); | ||
+ | var link = $.cookie('patronlink'); | ||
+ | var time = $.cookie('timestamp'); | ||
+ | |||
+ | if ($.cookie('lastpatrons')) { | ||
+ | |||
+ | var theString = $.cookie('lastpatrons'); | ||
+ | var lastpatrons = theString.split(","); | ||
+ | var theString2 = $.cookie('patronlinks'); | ||
+ | var patronlinks = theString2.split(","); | ||
+ | var theString3 = $.cookie('timestamps'); | ||
+ | var timestamps = theString3.split(","); | ||
+ | |||
+ | if (patronlinks.indexOf(link) > -1) { | ||
+ | |||
+ | var indexnr = $.inArray(link, patronlinks); | ||
+ | patronlinks.splice(indexnr, 1); | ||
+ | lastpatrons.splice(indexnr, 1); | ||
+ | timestamps.splice(indexnr, 1); | ||
+ | }; | ||
+ | } | ||
+ | else { | ||
+ | var lastpatrons = []; | ||
+ | var patronlinks = []; | ||
+ | var timestamps = []; | ||
+ | }; | ||
+ | |||
+ | lastpatrons.unshift(name); | ||
+ | patronlinks.unshift(link); | ||
+ | timestamps.unshift(time); | ||
+ | |||
+ | if (lastpatrons.length > 15) { | ||
+ | lastpatrons.pop(); | ||
+ | patronlinks.pop(); | ||
+ | timestamps.pop(); | ||
+ | }; | ||
+ | |||
+ | document.cookie = "lastpatrons=" + lastpatrons + "; expires=" + midnight + "; path=/ "; | ||
+ | document.cookie = "patronlinks=" + patronlinks + "; expires=" + midnight + "; path=/ " ; | ||
+ | document.cookie = "timestamps=" + timestamps + "; expires=" + midnight + "; path=/ " ; | ||
+ | |||
+ | }; | ||
+ | |||
+ | |||
+ | if ($.cookie('lastpatron')) { // Visa knappen ifall det finns en sparad låntagare | ||
+ | var lpatron = $.cookie('lastpatron'); | ||
+ | $('<span> </span><button id="lastpatron">Senaste låntagare</button>').insertAfter('input[id="autocsubmit"]'); | ||
+ | $('<a href="#" id="clearlpatron"> Rensa</a>').insertAfter('#lastpatron'); | ||
+ | }; | ||
+ | |||
+ | $("<a href='#' id='patronspan'> "+lpatron+"</a>").insertBefore('#clearlpatron').hide(); | ||
+ | |||
+ | $('#lastpatron').mouseover(function(event){ | ||
+ | event.preventDefault(); | ||
+ | $("#clearlpatron").hide(); | ||
+ | $("#patronspan").show(); | ||
+ | }); | ||
+ | |||
+ | $('#lastpatron').mouseout(function(event){ | ||
+ | event.preventDefault(); | ||
+ | $("#clearlpatron").show(); | ||
+ | $("#patronspan").hide(); | ||
+ | }); | ||
+ | |||
+ | $('#lastpatron').on('click', function(event){ // Öppna senaste låntagare | ||
+ | if ($.cookie('lastpatron')) { | ||
+ | event.preventDefault(); | ||
+ | var patronlink = $.cookie('patronlink'); | ||
+ | var location = window.location.hostname; | ||
+ | window.location.assign("https://" + location + "/cgi-bin/koha/circ/circulation.pl?" + patronlink); | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | $('#clearlpatron').on('click', function(event){ // Rensa senaste låntagare | ||
+ | |||
+ | $.removeCookie('patronlink', { path: '/' }); | ||
+ | $.removeCookie('lastpatron', { path: '/' }); | ||
+ | $.removeCookie('lastpatrons', { path: '/' }); | ||
+ | $.removeCookie('patronlinks', { path: '/' }); | ||
+ | $.removeCookie('timestamp', { path: '/' }); | ||
+ | $.removeCookie('timestamps', { path: '/' }); | ||
+ | |||
+ | $('#lastpatron').hide(); | ||
+ | $('#clearlpatron').hide(); | ||
+ | $('#lastpatrons').hide(); | ||
+ | }); | ||
+ | |||
+ | |||
+ | // Knapp för att visa flera av senaste låntagare | ||
+ | |||
+ | $('<span> </span><div class="btn-group" style="vertical-align:unset;"><button id="lastpatrons" class="dropdown-toggle" data-toggle="dropdown">Fler<span class="caret"></span></button><ul id="patron-dropdown" class="dropdown-menu"></ul></div>').insertAfter('#lastpatron'); | ||
+ | |||
+ | |||
+ | $('#lastpatrons').on('click', function(event){ // Öppna listan med senaste låntagare | ||
+ | |||
+ | var lp = $.cookie('lastpatrons'); | ||
+ | var names = lp.split(","); | ||
+ | var pl = $.cookie('patronlinks'); | ||
+ | var links = pl.split(","); | ||
+ | var ts = $.cookie('timestamps'); | ||
+ | var times = ts.split(","); | ||
+ | var list = $("#patron-dropdown"); | ||
+ | var parent = list.parent(); | ||
+ | var location = window.location.hostname; | ||
+ | |||
+ | list.detach().empty().each(function(i){ | ||
+ | for (var x = 0; x < names.length; x++){ | ||
+ | $(this).append('<li><a href="https://' + location + '/cgi-bin/koha/circ/circulation.pl?' + links[x] + '"><span class="timestamps">' + times[x].slice(0,5) + ' </span>' + names[x] + '</a></li>'); | ||
+ | if (x == names.length - 1){ | ||
+ | $(this).appendTo(parent); | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Cirkulation / Reservation == | ||
+ | |||
+ | '''Snabbaccess till senaste låntagare vid reservation.''' | ||
+ | |||
+ | [[Fil:Senastelantagarereservation.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | if ($.cookie('lastpatron')) { | ||
+ | var name = $.cookie('lastpatron'); | ||
+ | var link = $('#holds_patronsearch').attr('action'); | ||
+ | var location = window.location.hostname; | ||
+ | var patronlink = $.cookie('patronlink'); | ||
+ | $('<br /><br /><span>eller reservera för senaste låntagaren: </span><a href="https://' + location + '/cgi-bin/koha/reserve/' + link + '&' + patronlink +'" id="hold">' + name + '</a>').insertAfter('#holds_patronsearch input[type="submit"]'); | ||
+ | |||
+ | $('<span> </span><div class="btn-group" style="vertical-align:unset;"><button id="lastpatrons_res" class="dropdown-toggle" data-toggle="dropdown">Fler<span class="caret"></span></button><ul id="patron-dropdown2" class="dropdown-menu"></ul></div>').insertAfter('#hold'); | ||
+ | |||
+ | $('#lastpatrons_res').on('click', function(event){ // Öppna listan med senaste låntagare | ||
+ | |||
+ | var reslp = $.cookie('lastpatrons'); | ||
+ | var resnames = reslp.split(","); | ||
+ | var respl = $.cookie('patronlinks'); | ||
+ | var reslinks = respl.split(","); | ||
+ | var rests = $.cookie('timestamps'); | ||
+ | var restimes = rests.split(","); | ||
+ | var reslist = $("#patron-dropdown2"); | ||
+ | var resparent = reslist.parent(); | ||
+ | var location = window.location.hostname; | ||
+ | var reslink = $('#holds_patronsearch').attr('action'); | ||
+ | |||
+ | reslist.detach().empty().each(function(i){ | ||
+ | for (var x = 0; x < resnames.length; x++){ | ||
+ | $(this).append('<li><a href="https://' + location + '/cgi-bin/koha/reserve/' + link + '&' + reslinks[x] +'" id="hold"><span class="timestamps">' + restimes[x].slice(0,5) + ' </span>' + resnames[x] + '</a></li>'); | ||
+ | if (x == resnames.length - 1){ | ||
+ | $(this).appendTo(resparent); | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | }); | ||
+ | }; | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Cirkulation / Tidsstämpel== | ||
+ | |||
+ | '''Ta bort tidsstämpeln på återlämnade böcker.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $("td.ci-duedate:contains('23:59')").each(function() { | ||
+ | var text = $(this).html().replace('23:59', ''); | ||
+ | $(this).html(text); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Cirkulation / Exemplar == | ||
+ | |||
+ | '''Markerar raden med det aktuella exemplaret efter sökt streckkod.''' | ||
+ | |||
+ | [[Fil:Markerarad.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('#cat-search-block .submit').on('click', function(){ // Vanlig katalogsökning | ||
+ | $('input[type="text"]').each(function(){ | ||
+ | var id = $(this).attr('id'); | ||
+ | var value = $(this).val(); | ||
+ | localStorage.setItem(id, value); | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | $('form[action="search.pl"] .btn').on('click', function(){ // Avancerad sökning | ||
+ | $('input[type="text"]').each(function(){ | ||
+ | var value = $(this).val(); | ||
+ | if (value !== '') { | ||
+ | localStorage.setItem('search-form', value); | ||
+ | } | ||
+ | }); | ||
+ | }); | ||
+ | |||
+ | $('td a[href^="/cgi-bin/koha/catalogue/moredetail.pl"]').text(function () { | ||
+ | var storedsearch = localStorage.getItem('search-form'); | ||
+ | if ($(this).text() == storedsearch) { | ||
+ | $(this).closest('tr').children().css('background-color','#d4efb7'); | ||
+ | localStorage.removeItem('search-form'); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Exemplar / Nytt exemplar == | ||
+ | |||
+ | '''Lägger in taggen #additema så fokus hamnar på exemplarinläggningen vid Nytt exemplar.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('#cataloguing_additem_newitem #f').attr('action', '/cgi-bin/koha/cataloguing/additem.pl#additema'); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Katalog / Resultat == | ||
+ | |||
+ | '''Visa fler/färre på resultatsidan, Märker även tillgängligheten med grön/röd.''' | ||
+ | |||
+ | [[Fil:visaflerfarre.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | if ($('.logged-in-branch-name:first()').text().length > 0) { | ||
+ | var loggedinbranch = $('.logged-in-branch-name:first()').text(); | ||
+ | localStorage.setItem('loggedinbranch', loggedinbranch); | ||
+ | }; | ||
+ | |||
+ | $('.availability').each(function() { | ||
+ | var LiN = $(this).find('li').length; | ||
+ | |||
+ | if( LiN > 0) { | ||
+ | $('li', this).hide().addClass('toggleable'); | ||
+ | $(this).append('<span class="more">Visa fler...</span>'); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | $('.availability li').each(function() { | ||
+ | var loggedinbranch = $('.logged-in-branch-name:first()').text(); | ||
+ | if ($(this).text().indexOf(loggedinbranch) > -1 ) { | ||
+ | |||
+ | $(this).removeClass('toggleable').show(); | ||
+ | |||
+ | if ($(this).parent().prev().hasClass('status') | $(this).parent().prev().hasClass('unavailable')) { | ||
+ | $(this).css('background','#ffe7e7'); | ||
+ | } else { | ||
+ | $(this).css('background','#d4efb7'); | ||
+ | }; | ||
+ | |||
+ | // Karlsborg - Undenäs - Mölltorp | ||
+ | |||
+ | if (loggedinbranch.indexOf('Karlsborg') > -1 | loggedinbranch.indexOf('Undenäs') > -1 | loggedinbranch.indexOf('Mölltorp') > -1 ) { | ||
+ | $('.availability li').each(function() { | ||
+ | if ($(this).text().indexOf('Karlsborg') > -1 | $(this).text().indexOf('Undenäs') > -1 | $(this).text().indexOf('Mölltorp') > -1 ) { | ||
+ | $(this).removeClass('toggleable').show(); | ||
+ | |||
+ | if ($(this).parent().prev().hasClass('status') | $(this).parent().prev().hasClass('unavailable')) { | ||
+ | $(this).css('background','#ffe7e7'); | ||
+ | } else { | ||
+ | $(this).css('background','#d4efb7'); | ||
+ | }; | ||
+ | }; | ||
+ | }); | ||
+ | }; | ||
+ | |||
+ | // Tidaholm - KVA | ||
+ | |||
+ | if (loggedinbranch.indexOf('Tidaholm') > -1 ) { | ||
+ | $('.availability li').each(function() { | ||
+ | if ($(this).text().indexOf('Tidaholm') > -1 ) { | ||
+ | $(this).removeClass('toggleable').show(); | ||
+ | |||
+ | if ($(this).parent().prev().hasClass('status') | $(this).parent().prev().hasClass('unavailable')) { | ||
+ | $(this).css('background','#ffe7e7'); | ||
+ | } else { | ||
+ | $(this).css('background','#d4efb7'); | ||
+ | }; | ||
+ | }; | ||
+ | }); | ||
+ | }; | ||
+ | |||
+ | |||
+ | |||
+ | }; | ||
+ | }); | ||
+ | |||
+ | $('.availability').on('click','.more', function() { | ||
+ | if( $(this).hasClass('less') ) { | ||
+ | $(this).text('Visa fler...').removeClass('less'); | ||
+ | } | ||
+ | else { | ||
+ | $(this).text('Visa färre...').addClass('less'); | ||
+ | } | ||
+ | $(this).parent().children('ul').children('li.toggleable').slideToggle("fast"); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Katalog / Sortering == | ||
+ | |||
+ | '''Sortera biblioteken i träfflistan i alfabetisk ordning.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $(".availability ul").each(function() { | ||
+ | $(this).html( | ||
+ | $(this).children("li").sort(function (a, b) { | ||
+ | return $(a).text().toUpperCase().localeCompare( | ||
+ | $(b).text().toUpperCase()); | ||
+ | }) | ||
+ | ); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Katalog / Tillgängligt == | ||
+ | |||
+ | '''Markera "Tillgänglig" med grönt på detaljsidan.''' | ||
+ | |||
+ | [[Fil:Grontillganglig.PNG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('#bibliodetails .status').each(function() { | ||
+ | if ($(this).text().indexOf('Tillgänglig') > -1 | $(this).text().indexOf('Available') > -1 ) { | ||
+ | $(this).css('color', 'green'); | ||
+ | }; | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Låntagare / Dölj fält == | ||
+ | |||
+ | '''Göm Alternativ adress och Mer information som standard vid låntagaranmälan''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('#memberentry_address ol, #memberentry_patron_attributes ol').hide(); | ||
+ | |||
+ | $('legend').click(function() { | ||
+ | $(this).parent().find('ol').slideToggle("fast"); | ||
+ | }); | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Övergripande / Genvägar == | ||
+ | |||
+ | '''När man trycker på Pause-Break knappen laddas kohas startsida.''' | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | document.onkeydown=function keypress(e) { | ||
+ | e=(e||window.event); | ||
+ | if (e.keyCode == 19) { | ||
+ | try{e.preventDefault();}//Non-IE | ||
+ | catch(x){e.returnValue=false;} //IE (verkade inte fungera!) | ||
+ | window.location.href = "https://" + window.location.hostname; | ||
+ | }; | ||
+ | } | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | == Översättningar / Svenska == | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | $('a[href="#otherholdings"]').text(function () { | ||
+ | return $(this).text().replace('Andra reservationer', 'Andra bibliotek'); | ||
+ | }); | ||
+ | |||
+ | $('label[for="mobile"]').text(function () { | ||
+ | return $(this).text().replace('Annan telefon', 'Mobiltelefon'); | ||
+ | }); | ||
+ | |||
+ | $('#circmessages h3').html(function() { | ||
+ | return $(this).html().replace('Till', 'Upplysningar'); | ||
+ | }); | ||
+ | |||
+ | $('#printquickslip').text(function () { | ||
+ | return $(this).text().replace('Skriv ut snabbkvitto', 'Skriv ut endast nya lån'); | ||
}); | }); | ||
</pre> | </pre> |
Nuvarande version från 2 april 2019 kl. 12.59
Väntfunktionen VIKTIGT
Lägg denna högst upp i intranetuserjs under $(document).ready(function() {, Viktig funktion för att scripten ska fungera.
// Vänt-funktion var waitForEl = function(selector, callback) { if (jQuery(selector).length) { callback(); } else { setTimeout(function() { waitForEl(selector, callback); }, 100); } };
Periodika / Ta emot
Lättare att se hembibliotekets prenumeration genom att markera den grön och förstora rutan vid sökning. ver 1 2019-03-22
if ($('#ser_serials-home').length) { waitForEl('.dataTables_wrapper', function() { var logbib = localStorage.getItem('loggedinbranch'); $('.dataTables_wrapper td:nth-child(5)').each(function() { if ($(this).text().indexOf(logbib) > -1) { $(this).closest('tr').children().css('background-color','#d4efb7'); $(this).closest('tr').children().css('padding','30px 4px'); }; }); }); };
Katalog / Sökning
Skapar språkfält vid enkel sökning i katalogen. Språk hämtas från 008 och 040 fler språk går att lägga till.
if ($('#header_search').length) { $('<select id="language-limit" name="limit" style="margin-left:3px;"><option value="">Alla språk</option><option value="ln,rtrn:alb">Albanska</option><option value="ln,rtrn:ara">Arabiska</option><option value="ln,rtrn:bos">Bosniska</option><option value="ln,rtrn:dan">Danska</option><option value="ln,rtrn:eng">Engelska</option><option value="ln,rtrn:fin">Finska</option><option value="ln,rtrn:fre">Franska</option><option value="ln,rtrn:heb">Hebreiska</option><option value="ln,rtrn:ita">Italienska</option><option value="ln,rtrn:hrv">Kroatiska</option><option value="ln,rtrn:chi">Kinesiska</option><option value="ln,rtrn:nob">Norskt bokmål</option><option value="ln,rtrn:nno">Nynorsk</option><option value="ln,rtrn:per">Persiska</option><option value="ln,rtrn:pol">Polska</option><option value="ln,rtrn:prs">Dari</option><option value="ln,rtrn:por">Portugisiska</option><option value="ln,rtrn:rum">Romani</option><option value="ln,rtrn:rus">Ryska</option><option value="ln,rtrn:srp">Serbiska</option><option value="ln,rtrn:slo">Slovakiska</option><option value="ln,rtrn:slv">Slovenska</option><option value="ln,rtrn:som">Somaliska</option><option value="ln,rtrn:spa">Spanska</option><option value="ln,rtrn:swe">Svenska</option><option value="ln,rtrn:tha">Thailändska</option><option value="ln,rtrn:tgl">Tagalog </option><option value="ln,rtrn:tir">Tigriska</option><option value="ln,rtrn:tur">Turkiska</option><option value="ln,rtrn:ger">Tyska</option><option value="ln,rtrn:urd">Urdu</option></select>').insertAfter('#header_search #search-form'); };
Cirkulation / Återlämning
Meddelande om återlämnad Magasin-bok.
if ($('#circ_returns').length) { if ($('#checkedintable tbody tr:first .ci-type').text().indexOf('Magasin') > -1) { $('#bd .yui-g:first').append('<div class="dialog message"><h3 class="problem" style="margin:25px;color:#990000">Detta exemplar tillhör Magasin</hr></div>'); }; };
Cirkulation / Omlån
Skapar en egen låna om-knapp för varje utlånat exemplar.
// IntranetUserJS if ($('#circ_circulation').length) { waitForEl('.renew', function() { $('.renew:visible').each(function() { var itemId = $(this).attr('value'); $(this).parent().parent().append('<button class="btn btn-default btn-xs renewlink" value="' + itemId + '">Låna om</a>'); }); $('.renewlink').on('click', function(event) { event.preventDefault(); var id = $(this).attr('value'); console.log('Button pressed! - ' + id); $(".renew:visible").prop("checked", false); $(this).siblings().find('.renew').prop('checked', true); $('#RenewCheckinChecked').trigger('click'); $(".renew:visible").prop("checked", true); }); $('.renewals-disabled:visible').each(function() { $(this).parent().append('<i class="fa fa-frown-o" style="float:right;font-size:x-large;color:#d0d0d0;"></i>'); }); }); };
OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"
// IntranetUserCSS /* Lånaom-knapp */ .renewlink { font-size: smaller !important; } .renewals-disabled { color: #c00; }
Katalog / Reservationer
Hämta mer information om reservationer på detaljsidan.
// IntranetUserJS if ($('#catalog_detail').length) { var bibnr = $('input[name="bib"]').attr('value'); if ($('.number_box').length) { $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=463&sql_params=' + bibnr, "json").done(function(data) { function countResStat(type) { val = 0; for (i = 0;i < data.length;i++) { if (data[i][2] === type) { val = val + 1; }; }; return val; }; var res = data[data.length - 1][3]; var trans = countResStat('T'); var waiting = countResStat('W'); if (res > 0) { $('.number_box').parent().append('<span class="resDetail">Antal i kö: ' + res + '</span>'); }; if (trans > 0) { $('.number_box').parent().append('<span class="resDetail">På väg: ' + trans + '</span>'); }; if (waiting > 0) { $('.number_box').parent().append('<span class="resDetail">Aviserade: ' + waiting + '</span>'); }; }); }; };
OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"
//IntranetUserCSS .resDetail { /* Detaljsidan: Reservationsdetaljer avstånd */ padding: 10px; color: #900; } .resExtra { padding: 20px !important; font-size: large; }
Katalog / Shelving location
Lägg till en pil och ändra färg på shelving locations på detaljsidan.
// IntranetUserJS if ($('#bibliodetails').length) { $('.shelvingloc').each(function() { if ($(this).text().length) { var loc = $(this).text(); $(this).html('<span class="pil">↳ </span>' + loc); }; }); };
OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"
// IntranetUserCSS .shelvingloc { color: olive; } .pil { /* Pil framför Lokal placering under Hembibliotek */ font-style: normal; /* Normal font */ color: #900; /* Färg (rödaktig) */ font-size: large; /* Större text */ }
Katalog / postsammanslagning
Skapar en sammanslagningsknapp på resultatsidan för enklare hantering av dublettposter.
// IntranetUserJS if ($('#catalog_results').length) { $('#selection_ops').append('<div class="btn-group"><button id="mergeposts" class="btn btn-default btn-xs" type="submit"><i class="fa fa-compress"></i> Slå samman</button></div>'); $('#mergeposts').on('click', function() { var selIDs = []; var link = 'https://' + window.location.hostname + '/cgi-bin/koha/cataloguing/merge.pl?'; $('.selection').each(function() { if ($(this).is(':checked')) { selIDs.push($(this).attr('value')); }; }); for (i = 0; i < selIDs.length; i++) { link = link + 'biblionumber=' + selIDs[i] + '&'; } link = link.substring(0, link.length -1); if (selIDs.length > 1) { window.open(link); } else { alert('Välj vilka poster du vill slå samman först...'); }; }); };
Katalog / Knappar
Skapar knappar för Kopiera streckkod, Återlämna exemplar och Radera exemplar bredvid streckkoden i katalogen.
// IntranetUserJS if ($('#catalog_detail').length) { $('#holdings_table tbody tr td:nth-child(9), #otherholdings_table tbody tr td:nth-child(9)').each(function() { $(this).append('<br /><a href="#" class="btn btn-default btn-xs bcopy" data-toggle="tooltip" title="Kopiera"><i class="fa fa-copy"></i></a><a href="#" class="btn btn-default btn-xs breturn" data-toggle="tooltip" title="Återlämna"><i class="fa fa-sign-in"></i></a><a href="#" class="btn btn-default btn-xs btrash" data-toggle="tooltip" title="Radera"><i class="fa fa-trash"></i></a>'); }); // Kopiera $('.bcopy').on('click', function(event) { event.preventDefault(); $('a').removeClass('bcSel'); $(this).siblings('a:first').addClass('bcSel'); var bcLink = document.querySelector('.bcSel'); var range = document.createRange(); range.selectNode(bcLink); window.getSelection().addRange(range); try { document.execCommand('copy'); } catch(e) { alert(e); }; window.getSelection().removeAllRanges(); }); // Återlämna $('.breturn').on('click', function(event) { event.preventDefault(); var bc = $(this).siblings('a:first').text(); if(confirm("Är du säker på att du vill återlämna detta exemplaret? \n\r\n\r" + bc)){ window.location.href = 'https://' + window.location.hostname + '/cgi-bin/koha/circ/returns.pl?barcode=' + bc; }; }); // Radera $('.btrash').on('click', function(event) { event.preventDefault(); var bc = $(this).siblings('a:first').text(); var itemnr = $(this).siblings('a:first').attr('href'); itemnr = itemnr.slice(itemnr.indexOf('itemnumber=') + 11, itemnr.indexOf('&biblionumber')); var bibnr = $('.yui-b #menu li:first a').attr('href'); bibnr = bibnr.slice(bibnr.indexOf('biblionumber') + 13); var link = 'https://' + window.location.hostname + '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1&itemnumber=' + itemnr + '&src=%2Fcgi-bin%2Fkoha%2Fcatalogue%2Fdetail.pl%3Fbiblionumber%3D' + bibnr; if (confirm("Är du säker på att du vill radera detta exemplaret? \n\r\n\r" + bc)) { window.location.href = link; }; }); };
OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"
// IntranetUserCSS .bcSel { background-color: gold; } .bcopy, .breturn, .btrash { min-width: 22px; margin: 5px 7px 2px 0; }
Cirkulation / Knappar
Skapar knappar för Kopiera streckkod och Återlämna bredvid streckkod på utlåningssidan.
// IntranetUserJS if ($('#circ_circulation').length | $('#pat_moremember').length) { waitForEl('#issues-table tbody tr td:nth-child(2)', function() { $('#issues-table tbody tr td:nth-child(2)').each(function() { $(this).append('</br><a href="#" class="btn btn-default btn-xs bcopy" data-toggle="tooltip" title="Kopiera"><i class="fa fa-copy"></i><a href="#" class="btn btn-default btn-xs breturn" data-toggle="tooltip" title="Återlämna"><i class="fa fa-sign-in"></i></a>'); }); // Kopiera $('.bcopy').on('click', function(event) { event.preventDefault(); var isSupported = document.queryCommandSupported('copy'); console.log('Går kopiera? = ' + isSupported); $('td a').removeClass('bcSel'); $(this).siblings('a:first').addClass('bcSel'); var bcLink = document.querySelector('.bcSel'); var range = document.createRange(); range.selectNode(bcLink); window.getSelection().addRange(range); try { document.execCommand('copy'); } catch(e) { alert(e); }; window.getSelection().removeAllRanges(); }); // Återlämna $('.breturn').on('click', function(event) { event.preventDefault(); var bc = $(this).siblings('a:first').text(); if(confirm("Är du säker på att du vill återlämna detta exemplaret? \n\r\n\r" + bc)){ window.location.href = 'https://' + window.location.hostname + '/cgi-bin/koha/circ/returns.pl?barcode=' + bc; }; }); }); };
OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"
// IntranetUserCSS .bcSel { background-color: gold; } .bcopy, .breturn, .btrash { min-width: 22px; margin: 5px 7px 2px 0; }
Katalog / Visning
Visa antal exemplar på flikarna för både egna och andra bibliotek.
$('#holdings').each(function() { var nrex = $('#holdings tbody tr').length; var nroex = $('#otherholdings tbody tr').length; $('a[href="#holdings"]').append('<span> (' + nrex + ')</span>'); $('a[href="#otherholdings"]').append('<span> (' + nroex + ')</span>'); });
Katalog / Barnmedia
Ändrar automatiskt till itemtype "BARNBOK" om man skriver in Hcf, Hcg eller något med litet u i Full call number vid exemplarinläggning eller redigering.
$('#subfield952o input:first').change(function() { if ($(this).val().indexOf('Hcf') > -1 | $(this).val().indexOf('Hcg') > -1 | ($(this).val().startsWith('u',0) && $(this).val().charAt(1) === $(this).val().charAt(1).toUpperCase()) | $(this).val().indexOf(',u') > -1 ) { $('select[id^="tag_952_subfield_y"]').select2('val','BARNBOK'); }; });
Katalog / Exemplar
Döljer onödiga fält vid exemplarredigering/registrering.
if ($('#cat_additem').length) { var hiddenArr = ['1','3','5','6','f','j','t','u','w']; for (i = 0; i < hiddenArr.length; i++) { $('.subfield_line label').each(function() { if ($(this).text().charAt(0) == hiddenArr[i]) { $(this).closest('li').hide(); }; }); }; };
Låntagare / Registrering
Tvingar stor bokstav i början på alla namn och adresser på låntagaranmälan och redigering.
jQuery.fn.capitalize = function() { $(this[0]).keyup(function(event) { var box = event.target; var txt = $(this).val(); var stringStart = box.selectionStart; var stringEnd = box.selectionEnd; $(this).val(txt.replace(/^(.)|(\s|\-)(.)/g, function($word) { return $word.toUpperCase(); })); box.setSelectionRange(stringStart , stringEnd); }); return this; } jQuery.fn.capitalizefw = function() { $(this).keyup(function(event) { var textBox = event.target; var start = textBox.selectionStart; var end = textBox.selectionEnd; textBox.value = textBox.value.charAt(0).toUpperCase() + textBox.value.slice(1); textBox.setSelectionRange(start, end); }); return this; } $('#surname, #firstname, #city, #country, #B_city, #B_country').addClass('capitalizer'); $('#address, #address2, #B_address, #B_address2').addClass('capitalizerfw'); $('.capitalizer').on('input', function() { $(this).capitalize(); }); $('.capitalizerfw').on('input', function() { $(this).capitalizefw(); });
Endast småbokstäver i e-postfält.
jQuery.fn.decapitalize = function() { $(this[0]).keyup(function(event) { var box = event.target; var txt = $(this).val(); var stringStart = box.selectionStart; var stringEnd = box.selectionEnd; $(this).val(txt.replace(/^(.)|(\s|\-)(.)/g, function($word) { return $word.toLowerCase(); })); box.setSelectionRange(stringStart , stringEnd); }); return this; } $('#email').addClass('decapitalizer'); $('.decapitalizer').on('input', function() { $(this).decapitalize(); });
Cirkulation / Utlåning och detaljer för låntagare
Meddelanden på låntagarsidan går nu redigera så man slipper skriva en nya varje gång.
$('<a class="editmsg btn btn-link btn-sm" href="#"><i class="fa fa-edit"></i>Ändra</a>').insertAfter('#messages .circ-hlt'); $('.editmsg').on('click', function() { var delmsglink = $(this).next().attr('href'); var msg = $(this).closest('li').find('span.circ-hlt i').text().slice(1,-1); localStorage.setItem('editmsg', msg); $('#addnewmessageLabel').trigger('click'); $('#borrower_message').val(msg); $('.modal-footer button.btn.btn-default.approve').on('click', function (event) { event.preventDefault(); $.get('https://' + window.location.hostname + delmsglink).done(function(datan) { $('form#message_form').trigger('submit'); }); }); $('.modal-footer button.btn.btn-default.deny.cancel').on('click', function () { $('#borrower_message').val(msg); }); });
Exemplar / Streckkoder
Markera innehållet i Streckkodsrutan när man klickar i rutan, förenklar så man kan dra streckkoden direkt när man ställer sig i rutan.
$('input[id^="tag_952_subfield_p"]').each(function() { $(this).addClass('bcselect'); }); $('.bcselect').on('focus', function(){ $(this).select(); }); $('input[id^="tag_952_subfield_p"]').on('click', function() { if (!$('input[id^="tag_952_subfield_p"]').val() > -1) { $(this).select(); }; });
Cirkulation / Reservationer
Visar antal reservationer i kö vid utlån.
$('#circ_needsconfirmation').each(function() { var barcode = sessionStorage.getItem('lastbarcode'); if ($('#circ_needsconfirmation ul li').text().indexOf('Efterfrågat') > -1 | $('#circ_needsconfirmation ul li').text().indexOf('High demand') > -1) { $('#circ_needsconfirmation ul').append('<li>Antal reservationer i kö:\t <span id="antal"><i>Hämtar...</i></span></li>'); $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=454&sql_params=' + barcode, "json").done(function(data) { var res = data[data.length - 1][4]; var link = '/cgi-bin/koha/reserve/request.pl?biblionumber=' + data[0][5]; $('#antal').html('<b>' + res + '</b><a href="https://' + window.location.hostname + link +'" target="_blank"> (Öppna kön i ny flik)</a>'); }); }; });
Cirkulation / Sparade lån
SPARADE LÅN - Varning med datum, Vid försök av lån tidigare lånad bok så anges nu senast lånat datum i bekräftelserutan, även om annan streckkod av samma titel försöker lånas.
$('form#mainform').on('submit', function(event) { // Spara senast dragna streckkod vid utlån i webbläsaren sessionStorage.setItem('lastbarcode',$('#barcode').val()); }); $('#circ_needsconfirmation').each(function() { // Bekräfta lån-rutan var link = $.cookie('patronlink'); var barcode = sessionStorage.getItem('lastbarcode'); if (link.indexOf("findborrower") > -1) { var type = "cardnumber="; } else { var type = "borrowernumber="; }; link = link.slice(link.indexOf('=')+1); if ($('#circ_needsconfirmation ul li').text().indexOf('previously ') > -1 | $('#circ_needsconfirmation ul li').text().indexOf('tidigare') > -1) { $('#circ_needsconfirmation ul').append('<h4 id="lastdateloading">Hämtar information... vänta</h4>'); $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=450&sql_params=' + link + '&sql_params=' + barcode, "json").done(function(data) { var lastdate = data[0][5]; if (lastdate == null) { lastdate = 0; }; $('#circ_needsconfirmation #lastdateloading').remove(); if (lastdate == 0) { $('#circ_needsconfirmation ul').append('<li id="lastdate">Senast lånad:\t <b>Okänt</b> <i>(före övergång till koha)</i></li>'); sessionStorage.removeItem('lastbarcode'); } else { $('#circ_needsconfirmation ul').append('<li id="lastdate">Senast lånad:\t <b>' + lastdate + '</b></li>'); sessionStorage.removeItem('lastbarcode'); }; }); }; });
Exemplar / Skolbibliotek
Vid redigering/registrering av exemplar så sparas exemplaret automatisk ifall man drar streckkoden, man behöver alltså inte klicka på knappen "Spara" vid redigering av exemplar.
$('#cataloguing_additem_newitem #f').has('#edititem').each(function() { $('#subfield952p input').keypress(function(event) { var keycode = event.keyCode || event.which; if(keycode == '13') { if ($(this).val()) { $('input[onclick="return Check(this.form)"]').trigger('click'); } } }); });
Låntagare / Personnummer
Personnummerfältet låst till endast 10 siffror och flytta fältet till ovan födelsedatum samt autofyll födelsedagsdatum. Känner av att det är ett giltigt personnr annars rensar den fältet och ger ett meddelande. Kontrollerar även nu också att inte personnumret finns registrerat i katalogen.
var validatePersonalNumber = function(input) { // Valideringsscript för svenskt personnummer // Kontrollera godkänd längd och form if (!input) return false; if (input.indexOf('-') == -1) { if (input.length === 10) { input = input.slice(0, 6) + "-" + input.slice(6); } else { input = input.slice(0, 8) + "-" + input.slice(8); } } if (!input.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})|(\d{4})(\d{2})(\d{2})\-(\d{4})$/)) return false; // Snygga till input input = input.replace('-', ''); if (input.length == 12) { input = input.substring(2); } // Deklarera variabler var d = new Date(((!!RegExp.$1) ? RegExp.$1 : RegExp.$5), (((!!RegExp.$2) ? RegExp.$2 : RegExp.$6)-1), ((!!RegExp.$3) ? RegExp.$3 : RegExp.$7)), sum = 0, numdigits = input.length, parity = numdigits % 2, i, digit; // Kontrollera godkänt datum if (Object.prototype.toString.call(d) !== "[object Date]" || isNaN(d.getTime())) return false; // Kontrollera luhn algoritmen for (i = 0; i < numdigits; i = i + 1) { digit = parseInt(input.charAt(i)) if (i % 2 == parity) digit *= 2; if (digit > 9) digit -= 9; sum += digit; } return (sum % 10) == 0; }; $('#patron_attr_3').attr('maxlength','10').attr('placeholder','10 siffror (ÅÅMMDDNNNN)').attr('style','width: 174px; height: 22px;'); // Ge fältet rätt attribut $('#patron_attr_3').parent().insertBefore('li label[for="dateofbirth"]'); // Flyttar personnrfältet till innan födelsedagsdatumfältet $('#patron_attr_3').change(function() { // Känner av ändring i personnrfältet och uppdaterar födelsedagsdatumfältet och OPAC användarnamnet if (validatePersonalNumber($(this).val())) { var d = new Date(); // Kollar det aktuella datumet var year = d.getFullYear(); // Sorterar ut vilket år det är year = year.toString().slice(0,2); // Gör om till sträng och ta bara med de två första siffrorna, dvs 19 eller 20 var patronyear = $(this).val().slice(0,2); // Kollar personnummrets två första siffror och sparar det till variable if (patronyear > year) { // Kontrollerar om personen är mer än hundra år, om inte gör detta följande $('input#dateofbirth').val('19' + $(this).val().slice(0,2) + '-' + $(this).val().slice(2,4) + '-' + $(this).val().slice(4,6)); } else { // Personen är äntingen över hundra år (inte så troligt) så då förutsätter vi att personen är född på 2000-talet $('input#dateofbirth').val('20' + $(this).val().slice(0,2) + '-' + $(this).val().slice(2,4) + '-' + $(this).val().slice(4,6)); }; $('input#userid').val($(this).val()); // Kopierar även personnr till OPAC Användarnamnet chkpnr = $(this).val(); $.get('https://' + window.location.hostname + '/cgi-bin/koha/circ/circulation.pl?findborrower=' + chkpnr).done(function(datan) { var contents = datan.slice(datan.indexOf('<title>')+7, datan.indexOf('</title>')); if (contents.indexOf('Låna ut') > -1 | contents.indexOf('Checking') > -1) { alert('Personnumret finns redan registrerat!'); $('#patron_attr_3').css('background','red').focus().select(); } else { $('#patron_attr_3').css('background','#d4efb7'); }; }); } else { $('textarea[id="patron_attr_3"]').val(null); // Rensa fältet alert("Personnummret är felaktigt, var god ändra."); // Varna för fel personnr setTimeout(function(){$('textarea[id="patron_attr_3"]').focus();}, 1); // Ställ markören i fältet igen }; });
Låntagare / Smsnummer
Lägger automatiskt in samma nummer som fylls i fältet Annan telefon(other phone) till SMSnummer.
$('input#mobile').change(function() { $('input#SMSnumber').val($(this).val()); });
Låntagare / Nummerfält
Tillåt endast siffror i telefonnummer och personnummer.
$("input#mobile , #patron_attr_3").keydown(function (e) { var isModifierkeyPressed = (e.metaKey || e.ctrlKey || e.shiftKey); var isCursorMoveOrDeleteAction = ([46,8,9,35,36,37,38,39,40].indexOf(e.keyCode) != -1); var isNumKeyPressed = (e.keyCode >= 48 && e.keyCode <= 58) || (e.keyCode >=96 && e.keyCode <= 105); var vKey = 86, cKey = 67,aKey = 65, xKey = 88; switch(true){ case isCursorMoveOrDeleteAction: case isModifierkeyPressed == false && isNumKeyPressed: case (e.metaKey || e.ctrlKey) && ([vKey,cKey,aKey,xKey].indexOf(e.keyCode) != -1): break; default: e.preventDefault(); } });
Exemplar / Skolbibliotek
Skapar knappen ”lägg till och duplicera för enklare registrering av flera exemplar av samma bok utan extra knapptryck, ställer sig i streckkodsfältet när en bok är färdig. Behöver endast dra streckkod på exemplaren efter det så sparas exemplaren automatiskt. Markering av senast inlagt exemplar i listan med grönt.
$('input[name="add_duplicate_submit"]').on('click', function(event) { localStorage.setItem('lastbarcode',$('#subfield952p input').val()); localStorage.setItem('addmulti','yes'); }); $('body#cat_additem').each(function() { if (localStorage.getItem('addmulti')) { $('#subfield952p input:eq(0)').focus().select(); $('#subfield952p input:eq(0)').css('background-color','#d4efb7'); $('#subfield952p input:eq(0)').attr('placeholder','Fortsätt dra nästa exemplar...'); $('#subfield952p input').keypress(function(event) { var keycode = event.keyCode || event.which; if(keycode == '13') { if ($(this).val()) { localStorage.setItem('lastbarcode',$(this).val()); $('input[name="add_duplicate_submit"]').trigger('click'); } } }); }; }); $('#itemst td').text(function () { var lastbarcode = localStorage.getItem('lastbarcode'); if ($(this).text() == lastbarcode) { $(this).closest('tr').children().css('background-color','#d4efb7'); localStorage.removeItem('lastbarcode'); } });
Startsidan
Gömmer redigeringsknapparna för nyheterna.
$("p.newsfooter a").hide(); $("p.newsfooter").each(function() { var text = $(this).html().replace(/\|/g, ' '); $(this).html(text); });
Katalog / Sökning
När sökning sker i fel fält, t.ex Katalogsökning i ”låna ut”. Trycker man enter(eller knappen) så görs automatiskt samma sökning i katalogen istället.
$('body#circ_circulation #doc3 #bd #yui-main .yui-b h4').each(function() { if ($(this).text().indexOf('Ingen låntagare hittad') >= 0) { $('<br /><h2>Sökte du på fel ställe kanske? Ingen fara!</h2> <br /><span>Prova sökknappen eller tryck ENTER igen.<br /><br /></span><button id="searchcat" class="btn btn-success btn-sm">Sök i katalogen</button>').insertAfter(this); }; }); $('#patronsearch').bind('submit',function(event) { if ($('#findborrower').val() == '') { event.preventDefault(); $('#searchcat').trigger('click'); } }); $('#searchcat').on('click', function(event){ var string = $('body#circ_circulation #doc3 #bd #yui-main .yui-b h4 span').text(); var location = window.location.hostname; localStorage.setItem('lastsearch', string.slice(1,-1)); window.location.assign("https://" + location + "/cgi-bin/koha/catalogue/search.pl?idx=kw&q=" + string); }); $('body#catalog_results #search-form').attr('value', localStorage.getItem('lastsearch')).select(); $('#main_intranet-main').ready(function () { localStorage.removeItem('lastsearch'); }); $('#cat-search-block').bind('submit',function(event) { var string = $('#search-form').attr('value'); localStorage.setItem('lastsearch', string); });
Katalog / Resultat
Klickbara hyllsignaturer.
$('td.itemcallnumber').each(function() { var itemcallnr = $(this).text().slice(1); var location = window.location.hostname; $(this).html('<a href="https://'+location+'/cgi-bin/koha/catalogue/search.pl?idx=callnum&q='+itemcallnr+'">'+itemcallnr+'</a>'); });
Katalog / Klassifikation
Gör klassifikationer i katalogposten klickbara.
$(".results_summary.oc").each(function() { var oc = $(this).text(); var newtext = oc.slice(0,oc.indexOf(':')+2); $(this).text(newtext); oc = oc.slice(oc.indexOf(':')+2); ocarr = oc.trim().split(' | '); for (i = 0 ; i < ocarr.length ; i++) { $(this).append('<a href="https://' + window.location.hostname + '/cgi-bin/koha/catalogue/search.pl?idx=kw&q=lcn%3A' + ocarr[i] + '">' + ocarr[i] + '</a>'); if (i < (ocarr.length -1)) { $(this).append(' | '); } }; });
Katalog / Informationslänkar
Gör ISBN i katalogposten klickbara för att komma till Adlibris, Btj, Legimus och LIBRIS, samt förhandsvisning av post hos Adlibris när man har muspekaren över Adlibris-länken.
$(".results_summary.isbn").each(function() { var isbn = $(this).text().slice(6,-1); isbn = isbn.replace('-', ''); if (isbn.indexOf(';') > -1) { isbn = isbn.replace(';', ' ').replace(/\s+/g,' ').trim(); isbnarr = isbn.split(' '); isbn = isbnarr[0].toString(); }; isbn = isbn.replace(/\D/g,''); $(this).append('<span class="isbncont"></span>') // Adlibris $('.isbncont' ,this).append('<span class="label"> Öppna i: </span><a href="https://www.adlibris.com/se/organisationer/product.aspx?isbn=' + isbn + '" target="_blank" class="pvframelink">Adlibris</a> | '); // Btj $('.isbncont' ,this).append('<a href="http://butik.btj.se/default.aspx?search=' + isbn + '" target="_blank">Btj</a> | '); // Legimus $('.isbncont' ,this).append('<a href="http://www.legimus.se/search?isbn=' + isbn + '" target="_blank">Legimus</a> | '); // Libris $('.isbncont' ,this).append('<a href="http://libris.kb.se/hitlist?d=libris&q=numm%3a' + isbn + '&f=ext&spell=true&hist=true&p=1" target="_blank">Libris</a>'); }); $('.pvframelink').on('mouseover', function() { isbn = $(this).attr('href'); isbn = isbn.slice(isbn.indexOf('=')+1); $('<div class="previewbox"><iframe class="pvframe" src="https://www.adlibris.com/se/organisationer/product.aspx?isbn=' + isbn + '#ctl00_content" width="720px" height="700px"></iframe></div>').insertAfter(this); }); $('.pvframelink').on('mouseout', function() { $('.previewbox').remove(); });
Låntagare / Sökning
Spara senaste låntagare som lånat eller återlämnat med hjälp av cookies, spara även de 15 senaste med timestamp när.
var midnight = new Date(); midnight.setHours(23,59,59,0); $('#checkedintable tr:nth-child(1) td.ci-patron a:first, #hold-request-form a:first').each(function(){ // Senaste låntagaren som återlämnat eller reserverat var checkedinpatron = $(this).attr('href'); var name = $(this).text(); if (name.indexOf(',') > -1) { var surname = name.slice(name.indexOf(',')+2, name.indexOf('(')); var lastname = name.slice(2, name.indexOf(',')); var patronname = surname.concat(lastname); document.cookie = "lastpatron=" + patronname + " [ Återlämnat ]; expires=" + midnight + "; path=/ " ; } else { var patronname = $(this).text(); document.cookie = "lastpatron=" + patronname + "; expires=" + midnight + "; path=/ " ; }; var patronlink = checkedinpatron.slice(checkedinpatron.indexOf('?')+1); document.cookie = "patronlink=" + patronlink + "; expires=" + midnight + "; path=/ " ; savePatron(); }); $('div.patroninfo h5').each(function(){ // Spara senaste låntagaren som laddats var name = $(this).text().replace(/\s+/g, " "); var borrowernumber = $('.patronborrowernumber').text(); borrowernumber = borrowernumber.slice(16); var patronlink = 'borrowernumber=' + borrowernumber; document.cookie = "lastpatron=" + name + "; expires=" + midnight + "; path=/ " ; document.cookie = "patronlink=" + patronlink + "; expires=" + midnight + "; path=/ " ; savePatron(); }); function savePatron() { // Spara ner låntagare i listan ifall hen inte finns med förut var d = new Date(); time = d.toTimeString(); time = time.split(' ')[0]; document.cookie = "timestamp=" + time + "; expires=" + midnight + "; path=/ " ; var name = $.cookie('lastpatron'); var link = $.cookie('patronlink'); var time = $.cookie('timestamp'); if ($.cookie('lastpatrons')) { var theString = $.cookie('lastpatrons'); var lastpatrons = theString.split(","); var theString2 = $.cookie('patronlinks'); var patronlinks = theString2.split(","); var theString3 = $.cookie('timestamps'); var timestamps = theString3.split(","); if (patronlinks.indexOf(link) > -1) { var indexnr = $.inArray(link, patronlinks); patronlinks.splice(indexnr, 1); lastpatrons.splice(indexnr, 1); timestamps.splice(indexnr, 1); }; } else { var lastpatrons = []; var patronlinks = []; var timestamps = []; }; lastpatrons.unshift(name); patronlinks.unshift(link); timestamps.unshift(time); if (lastpatrons.length > 15) { lastpatrons.pop(); patronlinks.pop(); timestamps.pop(); }; document.cookie = "lastpatrons=" + lastpatrons + "; expires=" + midnight + "; path=/ "; document.cookie = "patronlinks=" + patronlinks + "; expires=" + midnight + "; path=/ " ; document.cookie = "timestamps=" + timestamps + "; expires=" + midnight + "; path=/ " ; }; if ($.cookie('lastpatron')) { // Visa knappen ifall det finns en sparad låntagare var lpatron = $.cookie('lastpatron'); $('<span> </span><button id="lastpatron">Senaste låntagare</button>').insertAfter('input[id="autocsubmit"]'); $('<a href="#" id="clearlpatron"> Rensa</a>').insertAfter('#lastpatron'); }; $("<a href='#' id='patronspan'> "+lpatron+"</a>").insertBefore('#clearlpatron').hide(); $('#lastpatron').mouseover(function(event){ event.preventDefault(); $("#clearlpatron").hide(); $("#patronspan").show(); }); $('#lastpatron').mouseout(function(event){ event.preventDefault(); $("#clearlpatron").show(); $("#patronspan").hide(); }); $('#lastpatron').on('click', function(event){ // Öppna senaste låntagare if ($.cookie('lastpatron')) { event.preventDefault(); var patronlink = $.cookie('patronlink'); var location = window.location.hostname; window.location.assign("https://" + location + "/cgi-bin/koha/circ/circulation.pl?" + patronlink); }; }); $('#clearlpatron').on('click', function(event){ // Rensa senaste låntagare $.removeCookie('patronlink', { path: '/' }); $.removeCookie('lastpatron', { path: '/' }); $.removeCookie('lastpatrons', { path: '/' }); $.removeCookie('patronlinks', { path: '/' }); $.removeCookie('timestamp', { path: '/' }); $.removeCookie('timestamps', { path: '/' }); $('#lastpatron').hide(); $('#clearlpatron').hide(); $('#lastpatrons').hide(); }); // Knapp för att visa flera av senaste låntagare $('<span> </span><div class="btn-group" style="vertical-align:unset;"><button id="lastpatrons" class="dropdown-toggle" data-toggle="dropdown">Fler<span class="caret"></span></button><ul id="patron-dropdown" class="dropdown-menu"></ul></div>').insertAfter('#lastpatron'); $('#lastpatrons').on('click', function(event){ // Öppna listan med senaste låntagare var lp = $.cookie('lastpatrons'); var names = lp.split(","); var pl = $.cookie('patronlinks'); var links = pl.split(","); var ts = $.cookie('timestamps'); var times = ts.split(","); var list = $("#patron-dropdown"); var parent = list.parent(); var location = window.location.hostname; list.detach().empty().each(function(i){ for (var x = 0; x < names.length; x++){ $(this).append('<li><a href="https://' + location + '/cgi-bin/koha/circ/circulation.pl?' + links[x] + '"><span class="timestamps">' + times[x].slice(0,5) + ' </span>' + names[x] + '</a></li>'); if (x == names.length - 1){ $(this).appendTo(parent); } } }); });
Cirkulation / Reservation
Snabbaccess till senaste låntagare vid reservation.
if ($.cookie('lastpatron')) { var name = $.cookie('lastpatron'); var link = $('#holds_patronsearch').attr('action'); var location = window.location.hostname; var patronlink = $.cookie('patronlink'); $('<br /><br /><span>eller reservera för senaste låntagaren: </span><a href="https://' + location + '/cgi-bin/koha/reserve/' + link + '&' + patronlink +'" id="hold">' + name + '</a>').insertAfter('#holds_patronsearch input[type="submit"]'); $('<span> </span><div class="btn-group" style="vertical-align:unset;"><button id="lastpatrons_res" class="dropdown-toggle" data-toggle="dropdown">Fler<span class="caret"></span></button><ul id="patron-dropdown2" class="dropdown-menu"></ul></div>').insertAfter('#hold'); $('#lastpatrons_res').on('click', function(event){ // Öppna listan med senaste låntagare var reslp = $.cookie('lastpatrons'); var resnames = reslp.split(","); var respl = $.cookie('patronlinks'); var reslinks = respl.split(","); var rests = $.cookie('timestamps'); var restimes = rests.split(","); var reslist = $("#patron-dropdown2"); var resparent = reslist.parent(); var location = window.location.hostname; var reslink = $('#holds_patronsearch').attr('action'); reslist.detach().empty().each(function(i){ for (var x = 0; x < resnames.length; x++){ $(this).append('<li><a href="https://' + location + '/cgi-bin/koha/reserve/' + link + '&' + reslinks[x] +'" id="hold"><span class="timestamps">' + restimes[x].slice(0,5) + ' </span>' + resnames[x] + '</a></li>'); if (x == resnames.length - 1){ $(this).appendTo(resparent); } } }); }); };
Cirkulation / Tidsstämpel
Ta bort tidsstämpeln på återlämnade böcker.
$("td.ci-duedate:contains('23:59')").each(function() { var text = $(this).html().replace('23:59', ''); $(this).html(text); });
Cirkulation / Exemplar
Markerar raden med det aktuella exemplaret efter sökt streckkod.
$('#cat-search-block .submit').on('click', function(){ // Vanlig katalogsökning $('input[type="text"]').each(function(){ var id = $(this).attr('id'); var value = $(this).val(); localStorage.setItem(id, value); }); }); $('form[action="search.pl"] .btn').on('click', function(){ // Avancerad sökning $('input[type="text"]').each(function(){ var value = $(this).val(); if (value !== '') { localStorage.setItem('search-form', value); } }); }); $('td a[href^="/cgi-bin/koha/catalogue/moredetail.pl"]').text(function () { var storedsearch = localStorage.getItem('search-form'); if ($(this).text() == storedsearch) { $(this).closest('tr').children().css('background-color','#d4efb7'); localStorage.removeItem('search-form'); } });
Exemplar / Nytt exemplar
Lägger in taggen #additema så fokus hamnar på exemplarinläggningen vid Nytt exemplar.
$('#cataloguing_additem_newitem #f').attr('action', '/cgi-bin/koha/cataloguing/additem.pl#additema');
Katalog / Resultat
Visa fler/färre på resultatsidan, Märker även tillgängligheten med grön/röd.
if ($('.logged-in-branch-name:first()').text().length > 0) { var loggedinbranch = $('.logged-in-branch-name:first()').text(); localStorage.setItem('loggedinbranch', loggedinbranch); }; $('.availability').each(function() { var LiN = $(this).find('li').length; if( LiN > 0) { $('li', this).hide().addClass('toggleable'); $(this).append('<span class="more">Visa fler...</span>'); } }); $('.availability li').each(function() { var loggedinbranch = $('.logged-in-branch-name:first()').text(); if ($(this).text().indexOf(loggedinbranch) > -1 ) { $(this).removeClass('toggleable').show(); if ($(this).parent().prev().hasClass('status') | $(this).parent().prev().hasClass('unavailable')) { $(this).css('background','#ffe7e7'); } else { $(this).css('background','#d4efb7'); }; // Karlsborg - Undenäs - Mölltorp if (loggedinbranch.indexOf('Karlsborg') > -1 | loggedinbranch.indexOf('Undenäs') > -1 | loggedinbranch.indexOf('Mölltorp') > -1 ) { $('.availability li').each(function() { if ($(this).text().indexOf('Karlsborg') > -1 | $(this).text().indexOf('Undenäs') > -1 | $(this).text().indexOf('Mölltorp') > -1 ) { $(this).removeClass('toggleable').show(); if ($(this).parent().prev().hasClass('status') | $(this).parent().prev().hasClass('unavailable')) { $(this).css('background','#ffe7e7'); } else { $(this).css('background','#d4efb7'); }; }; }); }; // Tidaholm - KVA if (loggedinbranch.indexOf('Tidaholm') > -1 ) { $('.availability li').each(function() { if ($(this).text().indexOf('Tidaholm') > -1 ) { $(this).removeClass('toggleable').show(); if ($(this).parent().prev().hasClass('status') | $(this).parent().prev().hasClass('unavailable')) { $(this).css('background','#ffe7e7'); } else { $(this).css('background','#d4efb7'); }; }; }); }; }; }); $('.availability').on('click','.more', function() { if( $(this).hasClass('less') ) { $(this).text('Visa fler...').removeClass('less'); } else { $(this).text('Visa färre...').addClass('less'); } $(this).parent().children('ul').children('li.toggleable').slideToggle("fast"); });
Katalog / Sortering
Sortera biblioteken i träfflistan i alfabetisk ordning.
$(".availability ul").each(function() { $(this).html( $(this).children("li").sort(function (a, b) { return $(a).text().toUpperCase().localeCompare( $(b).text().toUpperCase()); }) ); });
Katalog / Tillgängligt
Markera "Tillgänglig" med grönt på detaljsidan.
$('#bibliodetails .status').each(function() { if ($(this).text().indexOf('Tillgänglig') > -1 | $(this).text().indexOf('Available') > -1 ) { $(this).css('color', 'green'); }; });
Låntagare / Dölj fält
Göm Alternativ adress och Mer information som standard vid låntagaranmälan
$('#memberentry_address ol, #memberentry_patron_attributes ol').hide(); $('legend').click(function() { $(this).parent().find('ol').slideToggle("fast"); });
Övergripande / Genvägar
När man trycker på Pause-Break knappen laddas kohas startsida.
document.onkeydown=function keypress(e) { e=(e||window.event); if (e.keyCode == 19) { try{e.preventDefault();}//Non-IE catch(x){e.returnValue=false;} //IE (verkade inte fungera!) window.location.href = "https://" + window.location.hostname; }; }
Översättningar / Svenska
$('a[href="#otherholdings"]').text(function () { return $(this).text().replace('Andra reservationer', 'Andra bibliotek'); }); $('label[for="mobile"]').text(function () { return $(this).text().replace('Annan telefon', 'Mobiltelefon'); }); $('#circmessages h3').html(function() { return $(this).html().replace('Till', 'Upplysningar'); }); $('#printquickslip').text(function () { return $(this).text().replace('Skriv ut snabbkvitto', 'Skriv ut endast nya lån'); });