Skillnad mellan versioner av "Bibliotek Mellansjös IntranetUserJS"
Rad 2 139: | Rad 2 139: | ||
}); | }); | ||
} | } | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | == Katalog / Exemplar == | ||
+ | |||
+ | '''Knapp för uppdatera datum vid exemplarsredigering''' | ||
+ | |||
+ | [[Fil:uppdatera knapp.JPG]] | ||
+ | |||
+ | <pre> | ||
+ | |||
+ | // ************************************************************************************* | ||
+ | // - Katalog / Exemplar | ||
+ | // | ||
+ | // Date acquired - Uppdatera-knapp | ||
+ | // ver 1 | ||
+ | // 2019-05-21 | ||
+ | // ( Kompatibel med 20.11 ) | ||
+ | |||
+ | if ($('#cat_additem').length) { | ||
+ | $('#subfield952d .buttonDot').each(function() { | ||
+ | $(this).html('<button type="button">Uppdatera</button>') | ||
+ | }); | ||
+ | }; | ||
</pre> | </pre> |
Versionen från 12 oktober 2021 kl. 08.21
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); } };
Slutet VIKTIGT
Glöm inte att avsluta längst ner i din IntranetUserJS :).
}); /* SLUTET */
Periodika / Ta emot
Lättare att se hembibliotekets prenumeration genom att markera den grön och förstora rutan vid sökning.
// ************************************************************************************* // - Periodika / Ta emot // // Som standard endast hembibliotekets prenumerationer // Lättare att se hembibliotekets prenumerationer om sökning på alla // ver 2.2 // 2020-06-03 // ( Kompatibel med 20.11 ) if ($('#subscription_search').length) { $('#subscription_search form').append('<label><input id="localSerials" type="checkbox" style="margin-left:10px;" checked> Sök endast egna prenumerationer</label>'); if (document.getElementById('localSerials').checked) { $('#subscription_search form').prepend('<input type="hidden" id="locSerCB" name="branch_filter" value="' + $('.logged-in-branch-code:first').text() + '">'); }; $('#localSerials').change(function() { if (document.getElementById('localSerials').checked) { $('#subscription_search form').prepend('<input type="hidden" id="locSerCB" name="branch_filter" value="' + $('.logged-in-branch-code:first').text() + '">'); } else { $('#locSerCB').remove(); }; }); if ($('#DataTables_Table_0').length) { var table = $('#DataTables_Table_0').DataTable(); table.page.len(-1).draw(); if ($('#branch').val().length < 1) { waitForEl('.dataTables_wrapper', function() { $('.dataTables_wrapper td:nth-child(5)').each(function() { if ($(this).text().indexOf($('.logged-in-branch-name:first').text()) > -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.
// ************************************************************************************* // - Katalog / Sökning // // Välj språk vid sökning // ver 1.2 (uppdaterad med minoritetsspråken) // ( Kompatibel med 20.11 ) if ($('#header_search').length || $('#catalog_advsearch').length) { if ($('#catalog_advsearch').length) { $('#language-limit').remove(); $('<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:yid">Jiddisch</option><option value="ln,rtrn:hrv">Kroatiska</option><option value="ln,rtrn:chi">Kinesiska</option><option value="ln,rtrn:9mk">Meänkieli</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:rom">Romani</option><option value="ln,rtrn:rum">Rumänska</option><option value="ln,rtrn:rus">Ryska</option><option value="ln,rtrn:smi OR ln,rtrn:sme OR ln,rtrn:smn OR ln,rtrn:smj OR ln,rtrn:sms OR ln,rtrn:sma">Samiska</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>').appendTo('#language p'); } else { $('<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:yid">Jiddisch</option><option value="ln,rtrn:hrv">Kroatiska</option><option value="ln,rtrn:chi">Kinesiska</option><option value="ln,rtrn:9mk">Meänkieli</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:rom">Romani</option><option value="ln,rtrn:rum">Rumänska</option><option value="ln,rtrn:rus">Ryska</option><option value="ln,rtrn:smi OR ln,rtrn:sme OR ln,rtrn:smn OR ln,rtrn:smj OR ln,rtrn:sms OR ln,rtrn:sma">Samiska</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.
// ************************************************************************************* // - Cirkulation / Återlämning // // Meddelande om återlämnad Magasin-bok // ver 1.3 // ( Kompatibel med 20.11 ) if ($('#circ_returns').length) { if ($('#checkedintable tbody tr:first .ci-collection').text().indexOf('Magasin') > -1) { console.log('Magasin!'); $('main .row:first div:first').prepend('<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.
// ************************************************************************************* // - Cirkulation // // Låna om-knapp för varje utlånat exemplar // ver 1.2 // 2019-06-19 // ( Kompatibel med 20.11 ) if ($('#circ_circulation, #pat_moremember').is('*')) { waitForEl('.renew', function() { $('.renew:visible').each(function() { var itemId = $(this).attr('value'); $(this).parent().parent().append('<button type="button" class="btn btn-default btn-xs renewlink" value="' + itemId + '">Låna om</button>'); }); $('.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.
// ************************************************************************************* // - Återlämning / reservationer // // Hämta mer information om reservationer på återlämningssidan och automatisk utskrift av kvitto vid ENTER-tryckning // (Skövde drabbas inte av detta med utskrift) // ver 1.3 // Använder filen reserves_detail.sql som ska implementeras i rapportverktyget // ( Kompatibel med 20.11 ) if ($('#circ_returns').length) { if ($('#hold-found1').length) { var logbib = $('.logged-in-branch-name:first()').text(); if (logbib.indexOf('Skövde') <= -1) { $('#hold-found1').on('shown.bs.modal', function(e) { console.log('Modal hittad!') $('#hold-found1 .print').focus(); }); } } if ($('#hold-found2').length) { var bibnr = $('.modal-body input[name="biblionumber"]').attr('value'); var reportID = '463'; /* <- Ange rapportnummer för korrekt SQL-rapport */ $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=' + reportID + '&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'); $('#hold-found2 .modal-body').append('<hr /><h4 style="margin-bottom:10px">Reservationsstatus:</h4>'); if (res > 0) { $('#hold-found2 .modal-body').append('<span class="resDetail resExtra">Antal i kö: ' + res + '</span>'); } if (trans > 0) { $('#hold-found2 .modal-body').append('<span class="resDetail resExtra">Transport: ' + trans + '</span>'); } if (waiting > 0) { $('#hold-found2 .modal-body').append('<span class="resDetail resExtra">Aviserade: ' + waiting + '</span>'); } $('#hold-found2 .modal-body').append('<p><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=' + bibnr + '" target="_blank">Öppna reservationskö i nytt fönster</a></p>'); var logbib = $('.logged-in-branch-name:first()').text(); if (logbib.indexOf('Skövde') <= -1) { // Enter vid reservation $('#hold-found2').on('shown.bs.modal', function(e) { console.log('Modal hittad!') $('#hold-found2 .print').focus(); }); } }); } if ($('#item-transfer-modal').length) { var logbib = $('.logged-in-branch-name:first()').text(); if (logbib.indexOf('Skövde') <= -1) { $('#item-transfer-modal').on('shown.bs.modal', function(e) { console.log('Modal hittad!') $('#item-transfer-modal .print').focus(); }); } } if ($('#wrong-transfer-modal').length) { var logbib = $('.logged-in-branch-name:first()').text(); if (logbib.indexOf('Skövde') <= -1) { $('#wrong-transfer-modal').on('shown.bs.modal', function(e) { console.log('Modal hittad!') $('#wrong-transfer-modal .openWin').focus(); }); } } }
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.
// ************************************************************************************* // - Katalog / Detalj // // Shelvinglocations på detaljsidan // ver 1 // ( Kompatibel med 20.11 ) 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.
// ************************************************************************************* // - Katalog / Resultat // // Slå samman-knapp på resultatsidan // ver 1 // ( Kompatibel med 20.11 ) 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.
// ************************************************************************************* // - Cirkulation // // Knappar Kopiera streckkod och Återlämna bredvid streckkod på utlåningssidan // ver 1.3 // ( Kompatibel med 20.11 ) 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 class="btn btn-default btn-xs bcopy" data-toggle="tooltip" title="Kopiera"><i class="fa fa-copy"></i><a class="btn btn-default btn-xs breturn" data-toggle="tooltip" title="Återlämna"><i class="fa fa-sign-in"></i></a>'); }); $('#holds-table tbody tr td:nth-child(4)').each(function() { $(this).append('</br><a class="btn btn-default btn-xs bcopy" data-toggle="tooltip" title="Kopiera"><i class="fa fa-copy"></i><a 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) { for (i = 1;i < 3;i++) { event.preventDefault(); $('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); document.execCommand('copy'); 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)){ sessionStorage.setItem('lastbarcode', 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; }
Cirkulation / Knappar
Skapar knappar för Kopiera streckkod Återlämna och Radera bredvid streckkod på utlåningssidan.
// ************************************************************************************* // - Katalog / Detaljer // // Knappar för Kopiera, Återlämna och Radera bredvid streckkod på detaljssidan // ver 2.0 (2021-06-07) // ( Kompatibel med 20.11 ) if ($('#catalog_detail').length) { var cellnr = $('#holdings_barcode').index() + 1; if ($('.dataTables_empty').length < 1) { $('#holdings_table tbody tr td:nth-child(' + cellnr + '), #otherholdings_table tbody tr td:nth-child(' + cellnr + ')').each(function() { $(this).append('<br /><a class="btn btn-default btn-xs bcopy" data-toggle="tooltip" title="Kopiera"><i class="fa fa-copy"></i></a><a class="btn btn-default btn-xs breturn" data-toggle="tooltip" title="Återlämna"><i class="fa fa-sign-in"></i></a><a 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) { for (i = 1; i < 3; i++) { event.preventDefault(); $('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); document.execCommand('copy'); 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)) { sessionStorage.setItem('lastbarcode', 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 = $('#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; }
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.
// ************************************************************************************* // - Katalog / Exemplar // // Ä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. // ver 1.2 // ( Kompatibel med 20.11 ) $('#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"]').val('BARNBOK'); $('select[id^="tag_952_subfield_y"]').trigger('change'); }; });
Katalog / Exemplar
Döljer onödiga fält vid exemplarredigering/registrering.
// ************************************************************************************* // - Periodika / Exemplar // // Döljer onödiga fält vid exemplarredigering/registrering // ver 1 // 2019-04-03 // ( Kompatibel med 20.11 ) if ($('#ser_serials-edit').length) { var hiddenArr = ['0', '1', '2', '3', '4', '5', '6', 'e', 'f', 'g', '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.
// ************************************************************************************* // - Låntagare / Registrering // // Stor bokstav i början på alla namn och adresser på låntagaranmälan och redigering // ver 1.1 // ( Kompatibel med 20.11 ) 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.
// ************************************************************************************* // Endast småbokstäver i e-postfält // ver 1 // ( Kompatibel med 20.11 ) 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.
// ************************************************************************************* // - Cirkulation / Utlåning o detalj för låntagare // // Meddelanden på låntagarsidan går nu redigera så man slipper skriva en nya varje gång. // ver 1.2 // ( Kompatibel med 20.11 ) $('<a class="editmsg btn btn-link btn-sm" href="#"><i class="fa fa-edit"></i>Ändra</a>').insertAfter('#messages span'); $('.editmsg').on('click', function() { var delmsglink = $(this).next().attr('href'); var msg = $(this).closest('li').find('span em').text().slice(1, -1); localStorage.setItem('editmsg', msg); $('#addnewmessageLabel').trigger('click'); $('#borrower_message').val(msg); if ($(this).siblings('span').hasClass('circ-hlt')) { $('#message_type').val('L'); } else { $('#message_type').val('B'); }; $('.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); }); });
OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"
//IntranetUserCSS #messages span.circ-hlt, #circnotes span.circ-hlt { padding: 10px 0px; border-radius: 5px; line-height: 25px; -webkit-animation: blinkingmess 1s 2; /* Safari 4+ */ -moz-animation: blinkingmess 1s 1s 2; /* Fx 5+ */ -o-animation: blinkingmess 1s 1s 2; /* Opera 12+ */ animation: blinkingmess 1s 1s 2; /* IE 10+, Fx 29+ */ } #circ_returns .problem { -webkit-animation: blinkingmess 1s 2; /* Safari 4+ */ -moz-animation: blinkingmess 1s 1s 2; /* Fx 5+ */ -o-animation: blinkingmess 1s 1s 2; /* Opera 12+ */ animation: blinkingmess 1s 1s 2; /* IE 10+, Fx 29+ */ }
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.
// ************************************************************************************* // Exemplar // // 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. // ver 1 // ( Kompatibel med 20.11 ) $('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.
// ************************************************************************************* // - Cirkulation // // Antal reservationer i kö vid utlån // ver 2.1 // Använder filen reserves_circ.sql som ska implenteras i rapportverktyget // ( Kompatibel med 20.11 ) $('#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>'); var reportID = '454'; /* <- Ange rapportnummer för korrekt SQL-rapport */ $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=' + reportID + '&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.
// ************************************************************************************* // - Cirkulation // // 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. // ver 3.1 // Använder filen saved_loans.sql som ska implementeras i rapportverktyget // ( Kompatibel med 20.11 ) $('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>'); var reportID = '450'; /* <- Ange rapportnummer för korrekt SQL-rapport */ $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=' + reportID + '&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'); }; }); }; });
Detta ska föras in i en ny rapport i rapportverktyget
// SQL-kod som ska göras till en rapport // Kom sedan ihåg vilket rapportid den får i ert system och för in det i IntranetUserJS under variabeln "reportID". SELECT concat(b.surname,', ',b.firstname) AS Namn, i.barcode AS Streckkod, bi.author AS Författare, bi.title AS Titel, SUBSTRING (oi.returndate, 1, 10) AS Återlämningsdatum, SUBSTRING (oi.issuedate, 1, 10) AS Utlåningsdatum FROM old_issues oi LEFT JOIN borrowers b USING (borrowernumber) LEFT JOIN items i USING (itemnumber) LEFT JOIN biblio bi USING (biblionumber) WHERE b.borrowernumber = <<Låntagarnummer>> AND i.barcode = <<Streckkod>> LIMIT 8000
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.
// ************************************************************************************* // - Exemplar // // Vid redigering av exemplar så sparas exemplaret automatisk ifall man drar streckkoden // man behöver alltså inte klicka på knappen "Spara" vid redigering av exemplar. // ver 1 // ( Kompatibel med 20.11 ) $('#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.
// ************************************************************************************* // - Låntagare // // Personnummer endast 10 siffror och flytta fältet till ovan födelsedatum samt autofyll födelsedagsdatum, // Känner av att det är ett giltligt personnr annars rensar den fältet och ger ett meddelande. // Kontrollerar även nu oxå att inte personnumret finns sedan innan registrerat i katalogen. // Fyller även i automatiskt om det är en kvinna eller man. // ver 3.2 // 2020-03-11 // ( Kompatibel med 20.11 ) 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 antingen ö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'); }; }); var gender = $(this).val().charAt(8); // Kontrollera om det är en man eller kvinna och fyll i kön automatiskt gender = parseInt(gender, 10); if (gender % 2 == 0) { document.getElementById("sex-female").checked = true; } else { document.getElementById("sex-male").checked = true; }; } 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 }; }); $('#dateofbirth').focus(function() { console.log(validatePersonalNumber($('#patron_attr_3').val())); if (validatePersonalNumber($('#patron_attr_3').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 = $('#patron_attr_3').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' + $('#patron_attr_3').val().slice(0, 2) + '-' + $('#patron_attr_3').val().slice(2, 4) + '-' + $('#patron_attr_3').val().slice(4, 6)); } else { // Personen är antingen över hundra år (inte så troligt) så då förutsätter vi att personen är född på 2000-talet $('input#dateofbirth').val('20' + $('#patron_attr_3').val().slice(0, 2) + '-' + $('#patron_attr_3').val().slice(2, 4) + '-' + $('#patron_attr_3').val().slice(4, 6)); }; }; });
Låntagare / Smsnummer
Lägger automatiskt in samma nummer som fylls i fältet Annan telefon(other phone) till SMSnummer.
// ************************************************************************************* // - Låntagare // // Lägger automatiskt in samma nummer som fylls i mobilnummer till SMSnummer, // samt kopiera mobilnr till hemtelefon om inget nummer finns där innan. // ver 1.3 // ( Kompatibel med 20.11 ) if ($('#pat_memberentrygen').length) { if ($('input#SMSnumber').length) { $('input#mobile').change(function() { var telnr = $(this).val(); telnr = telnr.slice(1); $('input#SMSnumber').val('+46' + telnr); if ($('input#phone').val() == "") { console.log('Tomt i telefonnummer'); $('input#phone').val('0' + telnr); }; }); if ($('input#SMSnumber').val().length > 0) { console.log($('input#SMSnumber').val().slice(0, 2)); if ($('input#SMSnumber').val().slice(0, 2).indexOf('46') > -1) { console.log('1'); var telnr = $('input#SMSnumber').val(); telnr = telnr.slice(2); $('input#SMSnumber').val('+46' + telnr); } else { console.log('2'); if ($('input#SMSnumber').val().slice(0, 1).indexOf('+') == -1) { var telnr = $('input#SMSnumber').val(); telnr = telnr.slice(1); $('input#SMSnumber').val('+46' + telnr); }; }; }; }; };
Låntagare / Nummerfält
Tillåt endast siffror i telefonnummer och personnummer.
// ************************************************************************************* // - Låntagare // // Tillåt endast siffror i personnummer och mobiltelefonnummer (med förklaring om endast svenska nummer) // ver 1.1 // ( Kompatibel med 20.11 ) $("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(); } }); $('<div class="hint">Endast svenska mobilnummer</div>').insertAfter("input#mobile");
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.
// ************************************************************************************* // - Exemplar // // Lägga in flera exemplar av samma bok utan extra knapptryck // Markering av senast inlagt exemplar i listan med grönt // ver 1.2 // ( Kompatibel med 20.11 ) if (!$('#cat_additem').length) { localStorage.removeItem('addmulti'); }; $('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.
// ************************************************************************************* // - Startsidan // // Gömmer redigeringsknapparna för nyheterna // ( Kompatibel med 20.11 ) $("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.
// ************************************************************************************* // - Katalog / Sökning // // Felsökning i "Låna ut", ta med sökning till katalog, samt spara senast sökning så den visas i sökfältet som markerad text. // ver 1.2 // ( Kompatibel med 20.11 ) $('main h4').each(function() { if ($(this).text().indexOf('Ingen låntagare hittad') >= 0 || $(this).text().indexOf('No patron matched') >= 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 = $('main 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.
// ************************************************************************************* // - Katalog / Resultat // // Klickbara hyllsignaturer // ver 1 // ( Kompatibel med 20.11 ) $('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.
// ************************************************************************************* // - Katalog // // Gör klassifikationer i katalogposten klickbara // ver 2.2 // ( Kompatibel med 20.11 ) $(".results_summary.oc").each(function() { var oc = $(this).text(); var newtext = oc.slice(0, oc.indexOf(':') + 1); $(this).text(newtext); oc = oc.slice(oc.indexOf(':') + 1); 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.
// ************************************************************************************* // - Katalog // // 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. // Omslagsbilder på resultat- och detaljsidan, valbart om man vill visa eller inte. // ver 2.3 // 2020-07-09 // ( Kompatibel med 20.11 ) // Omslagbild på sökresultat function getImageResult(isbn) { if (isbn.slice(0, 3) == '978') { var subfolder = isbn.slice(0, 6); } else { isbn = '978' + isbn.slice(0, -1); var subfolder = isbn.slice(0, 6); isbnNr = parseInt(isbn, 10); var sum = 0; for (var x = 0; x < isbn.length; x++) { if (x === 0) { sum = sum + parseInt(isbn[x], 10); } else if (x % 2 === 0) { sum = sum + parseInt(isbn[x], 10); } else { sum = sum + (parseInt(isbn[x], 10) * 3); } } sum = 10 - (sum % 10); if (sum == 10) { sum = 0; }; isbn = isbnNr.toString(); isbn = isbn.concat(sum.toString()); }; if (isbn.length > 2) { return isbn; }; }; if ($('#catalog_results').length) { $('<label><input id="IMGchk" type="checkbox" style="margin:0 3px 0 5px;">Visa omslagsbilder</label>').appendTo('#selection_ops'); if ($('#IMGchk').length) { if (localStorage.getItem("showimages") === null) { document.getElementById("IMGchk").checked = true; localStorage.setItem('showimages', 'on'); }; if (localStorage.getItem('showimages') == "on") { document.getElementById("IMGchk").checked = true; }; if (localStorage.getItem('showimages') == "off") { document.getElementById("IMGchk").checked = false; }; }; $('#IMGchk').change(function() { if ($(this).is(':checked')) { localStorage.setItem('showimages', 'on'); $('.coverIMG, .coverIMGbig').css('display', 'unset'); }; if ($(this).is(':unchecked')) { localStorage.setItem('showimages', 'off'); $('.coverIMG, .coverIMGbig').css('display', 'none'); }; }); }; $(".results_summary.isbn").each(function() { var isbn = $(this).text().slice(5); isbn = isbn.replace(/x/g, 'X'); isbn = isbn.replace(/[^0-9X;]/g, ''); 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/storkund/search?phrase=' + 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>'); if (localStorage.getItem('showimages') == "on") { $('.coverIMG, .coverIMGbig').css('display', 'unset'); }; if (localStorage.getItem('showimages') == "off") { $('.coverIMG, .coverIMGbig').css('display', 'none'); }; var IMGisbn = getImageResult(isbn); var subfolder = IMGisbn.slice(0, 6); $(this).closest('td').prepend('<img class="coverIMG" src="http://bokinfo.se/Images/Products/Medium/' + subfolder + '/' + IMGisbn + '.jpg" style="">'); if ($('#catalog_detail').length) { $('<table id="imgtable"><td id="bookimg"></td><td id="details"></td></div>').insertBefore('#catalogue_detail_biblio'); $('#bookimg').append('<img class="coverIMGbig" src="http://bokinfo.se/Images/Products/Medium/' + subfolder + '/' + IMGisbn + '.jpg" style="">'); $('#catalogue_detail_biblio').appendTo('#details'); $(".coverIMG, .coverIMGbig").on("error", function() { $(this).remove(); $('#catalogue_detail_biblio').insertBefore('#imgtable'); $('#imgtable').remove(); }); }; $(".coverIMG, .coverIMGbig").on("error", function() { $(this).remove(); }); }); $('.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/storkund/search?phrase=' + isbn + '" 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.
// ************************************************************************************* // - Header / Search // // Spara senaste låntagare som lånat eller återlämnat med hjälp av cookies // ver 2.4 // ( Kompatibel med 20.11 ) 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); } } }); });
OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"
.timestamps { color:red; padding-right:10px; }
Cirkulation / Reservation
Snabbaccess till senaste låntagare vid reservation.
// ************************************************************************************* // - Cirkulation / Reservation // // Snabbaccess till senaste låntagare vid reservation // ver 2.2 // ( Kompatibel med 20.11 ) if ($.cookie('lastpatron')) { var name = $.cookie('lastpatron'); var link = $('#holds_patronsearch').attr('action'); var biblionumber = $('#holds_patronsearch input[name="biblionumber"').attr('value'); 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 + biblionumber + '&' + 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 + biblionumber + '&' + 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.
// ************************************************************************************* // - Cirkulation // // Ta bort tidsstämpeln på återlämnade böcker // ( Kompatibel med 20.11 ) $("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.
// ************************************************************************************* // - Cirkulation // // Markerar raden med det aktuella exemplaret efter sökt streckkod // ( Kompatibel med 20.11 ) $('#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); } }); }); if ($('#catalog_detail').length) { $('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.
// ************************************************************************************* // - Exemplar // // Lägger in taggen #additema så fokus hamnar på ememplarinläggningen vid Nytt exemplar // ( Kompatibel med 20.11 ) $('#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.
// ************************************************************************************* // - Katalog / Resultat / Listor // // Visa fler/färre på resultatsidan och på listor // Märker även tillgängligheten med grön/röd // ver 3.3 // ( Kompatibel med 20.11 ) if ($('#catalog_results').length) { 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>'); } }); $('#lists_shelves #searchresults td:nth-child(5)').each(function() { var LiN = $(this).find('li').length; if (LiN > 1) { $('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, #lists_shelves #searchresults td:nth-child(5)').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"); }); };
Övergripande / Genvägar
När man trycker på Pause-Break knappen laddas kohas startsida.
// ************************************************************************************* // - Övergripande // // When Pause-Break button is pressed it will return to main page // ( Kompatibel med 20.11 ) 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
// ************************************************************************************* // - Översättningar / Svenska // $('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'); });
Katalog / Sortering
Sortera biblioteken i träfflistan i alfabetisk ordning.
// ************************************************************************************* // - Katalog // // Sortera biblioteken i träfflistan i alfabetisk ordning // ver 1 // ( Kompatibel med 20.11 ) $(".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.
// ************************************************************************************* // - Katalog // // Markera "Tillgänglig" med grönt på detaljsidan // ver 1 // ( Kompatibel med 20.11 ) $('#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
// ************************************************************************************* // - Låntagare // // Göm Alternativ adress och Mer information som standard vid låntagaranmälan // ver 2.1 // ( Kompatibel med 20.11 ) $('#memberentry_address ol, #memberentry_patron_attributes ol').hide();
Katalog / Resultat
Satsraderingsknapp på resultatsidan
// ************************************************************************************* // - Katalog / Resultat // // Satsraderingsknapp på resultatsidan // ver 1 // 2019-05-13 // ( Kompatibel med 20.11 ) if ($('#catalog_results').length) { $('#selection_ops').append('<div class="btn-group"><button id="deleteposts" class="btn btn-default btn-xs" type="submit"><i class="fa fa-trash"></i> Radera</button></div>'); $('#deleteposts').on('click', function() { var selIDs = []; var link = 'https://' + window.location.hostname + '/cgi-bin/koha/tools/batch_delete_records.pl?recordnumber_list='; $('.selection').each(function() { if ($(this).is(':checked')) { selIDs.push($(this).attr('value')); }; }); for (i = 0; i < selIDs.length; i++) { link = link + selIDs[i] + '%0D%0A'; } link = link.substring(0, link.length - 6) + '&op=list'; if (selIDs.length > 0) { window.open(link); } else { alert('Välj vilka poster du vill radera först...'); }; }); };
Periodika / Spara
Spara exemplar när man drar streckkoden
// ************************************************************************************* // - Periodika // // Vid registrering av nytt exemplar så får man frågan om man vill spara ifall man drar streckkoden. // Man behöver alltså inte klicka på knappen "Spara" vid registrering av exemplar med streckkod. // ver 1.1 // 2019-12-09 // ( Kompatibel med 20.11 ) if ($('#ser_serials-edit').length) { $('input[id^="tag_952_subfield_p"]').each(function() { $(this).keypress(function(event) { var keycode = event.keyCode || event.which; if (keycode == '13') { if ($(this).val()) { var r = confirm('Vill du spara?'); if (r == true) { $('.action input[type="submit"]').trigger('click'); } } } }); }); }
Katalog / Exemplar
Knapp för uppdatera datum vid exemplarsredigering
// ************************************************************************************* // - Katalog / Exemplar // // Date acquired - Uppdatera-knapp // ver 1 // 2019-05-21 // ( Kompatibel med 20.11 ) if ($('#cat_additem').length) { $('#subfield952d .buttonDot').each(function() { $(this).html('<button type="button">Uppdatera</button>') }); };