Skillnad mellan versioner av "Bibliotek Mellansjös IntranetUserJS"
JohanS (diskussion | bidrag) |
|||
(47 mellanliggande sidversioner av 2 användare visas inte) | |||
Rad 33: | Rad 33: | ||
[[Fil:Periodika.png]] | [[Fil:Periodika.png]] | ||
<pre> | <pre> | ||
− | // ************************************************************************************* | + | |
− | + | // ************************************************************************************* | |
− | + | // - Periodika / Ta emot | |
− | + | // | |
− | + | // Som standard endast hembibliotekets prenumerationer | |
− | + | // Lättare att se hembibliotekets prenumerationer om sökning på alla | |
− | + | // ver 2.4 | |
− | + | // 2022-11-15 | |
+ | // ( Kompatibel med 23.05 ) | ||
− | + | if ($('#subscription_search').length) { | |
− | + | $('.form-extra-content').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) { | |
− | if ( | + | $('#subscription_search form').prepend('<input type="hidden" id="locSerCB" name="branch_filter" value="' + $('.logged-in-branch-code:first').text() + '">'); |
− | + | } else { | |
− | + | $('#locSerCB').remove(); | |
} | } | ||
− | |||
}); | }); | ||
− | + | ||
} | } | ||
− | |||
− | |||
</pre> | </pre> | ||
Rad 89: | Rad 74: | ||
// Välj språk vid sökning | // Välj språk vid sökning | ||
// ver 1.3 (uppdaterad med minoritetsspråken och Ukrainska) | // ver 1.3 (uppdaterad med minoritetsspråken och Ukrainska) | ||
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
if ($('#header_search').length || $('#catalog_advsearch').length) { | if ($('#header_search').length || $('#catalog_advsearch').length) { | ||
Rad 116: | Rad 101: | ||
// Meddelande om återlämnad Magasin-bok | // Meddelande om återlämnad Magasin-bok | ||
// ver 1.4 | // ver 1.4 | ||
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
if ($('#circ_returns').length) { | if ($('#circ_returns').length) { | ||
Rad 134: | Rad 119: | ||
<pre> | <pre> | ||
− | // ************************************************************************************* | + | // ************************************************************************************* |
− | + | // - Cirkulation | |
− | + | // | |
− | + | // Låna om-knapp för varje utlånat exemplar | |
− | + | // ver 1.4 | |
− | + | // 2022-05-02 | |
− | + | // ( Kompatibel med 23.05 ) | |
− | |||
− | + | function renewButtons() { | |
− | + | $('.renew:visible').each(function () { | |
− | + | var itemId = $(this).val(); | |
− | + | $(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).val(); | ||
+ | $(".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>'); | |
− | + | }); | |
+ | } | ||
− | + | if ($('#circ_circulation, #pat_moremember').length) { | |
− | + | issueT = $('#issues-table'); | |
+ | issueT.on('draw.dt', function () { | ||
+ | renewButtons(); | ||
+ | }); | ||
+ | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Rad 190: | Rad 165: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
− | + | // - Katalog / Detalj | |
− | + | // | |
− | + | // Hämta mer information om reservationer på detaljsidan | |
− | + | // ver 2.3 | |
− | + | // Hämtar information om reservationer via rest-API | |
− | + | // 2023-09-12 | |
− | + | // ( Kompatibel med 23.05 ) | |
− | + | if ($('#catalog_detail').length) { | |
− | + | var bibnr = $('input[name="bib"]').val(); | |
− | if ($('# | + | if ($('.number_box').length) { |
− | + | $.get('/api/v1/holds/?biblio_id=' + bibnr + '&_per_page=300&_match=exact').done(function (data) { | |
− | + | var inTransit = 0; | |
− | + | var waiting = 0; | |
− | + | var suspended = 0; | |
− | + | for (i = 0; i < data.length; i++) { | |
− | + | if (data[i].status == "T") { | |
− | + | inTransit++; | |
− | + | } | |
− | + | if (data[i].status == "W") { | |
− | + | waiting++; | |
− | + | } | |
+ | if (data[i].suspended == true) { | ||
+ | suspended++; | ||
+ | } | ||
+ | } | ||
+ | var leftRes = data.length - inTransit - waiting; | ||
− | + | if (leftRes > 0) { | |
− | + | $('.number_box').parent().append('<span class="resDetail">Antal i kö: ' + leftRes + '</span>'); | |
− | + | } | |
− | + | if (inTransit > 0) { | |
− | + | $('.number_box').parent().append('<span class="resDetail">Transport: ' + inTransit + '</span>'); | |
− | + | } | |
− | + | if (waiting > 0) { | |
− | + | $('.number_box').parent().append('<span class="resDetail">Aviserade: ' + waiting + '</span>'); | |
− | + | } | |
− | + | if (suspended > 0) { | |
− | + | $('.number_box').parent().append('<span class="resDetail">Pausade: ' + suspended + '</span>'); | |
+ | } | ||
+ | }); | ||
} | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | |||
− | |||
</pre> | </pre> | ||
Rad 288: | Rad 223: | ||
// Shelvinglocations på detaljsidan | // Shelvinglocations på detaljsidan | ||
// ver 1 | // ver 1 | ||
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
if ($('#bibliodetails').length) { | if ($('#bibliodetails').length) { | ||
Rad 322: | Rad 257: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
− | + | // - Katalog / Resultat | |
− | + | // | |
− | + | // Slå samman-knapp på resultatsidan | |
− | + | // ver 1.1 | |
− | + | // 2023-09-12 | |
+ | // ( Kompatibel med 23.05 ) | ||
− | + | 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 = '/cgi-bin/koha/cataloguing/merge.pl?'; | ||
− | + | $('.selection').each(function () { | |
− | + | if ($(this).is(':checked')) { | |
+ | selIDs.push($(this).val()); | ||
+ | } | ||
+ | }); | ||
− | + | 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...'); | ||
+ | } | ||
+ | }); | ||
+ | } | ||
</pre> | </pre> | ||
Rad 367: | Rad 301: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
− | + | // - Cirkulation | |
− | + | // | |
− | + | // Knappar Kopiera streckkod och Återlämna bredvid streckkod på utlåningssidan | |
− | + | // ver 1.6 | |
− | + | // 2023-09-12 | |
+ | // ( Kompatibel med 23.05 ) | ||
+ | |||
+ | |||
+ | if ($('#circ_circulation').length || $('#pat_moremember').length) { | ||
+ | var firstload = true; | ||
+ | $('#issues-table'); //.dataTable(); | ||
+ | $('#issues-table').on('draw.dt', function () { | ||
+ | if (firstload) { | ||
+ | $('#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 = '/cgi-bin/koha/circ/returns.pl?barcode=' + bc; | ||
+ | } | ||
− | + | }); | |
+ | } | ||
+ | }); | ||
+ | } | ||
− | |||
− | |||
− | |||
− | + | // ************************************************************************************* | |
− | + | // - Katalog / Detaljer | |
− | + | // | |
+ | // Knappar för Kopiera, Återlämna och Radera bredvid streckkod på detaljssidan | ||
+ | // ver 2.3 (2023-12-20) | ||
+ | // ( Kompatibel med 23.05 ) | ||
− | + | if ($('#catalog_detail').length) { | |
− | + | var cellnr = $('#holdings_barcode').index() + 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 = '/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 = $('input[name="bib"]').val(); | ||
+ | var link = '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1&itemnumber=' + itemnr + '&biblionumber=' + bibnr + '&src=CATALOGUING'; | ||
+ | if (confirm("Är du säker på att du vill radera detta exemplaret? \n\r\n\r" + bc)) { | ||
+ | window.location.href = link; | ||
+ | } | ||
+ | }); | ||
+ | } | ||
Rad 427: | Rad 424: | ||
'''OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"''' | '''OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"''' | ||
<pre> | <pre> | ||
− | // | + | |
+ | /* Knappar för kopiera och återlämna */ | ||
+ | .bcopy, .breturn, .btrash { | ||
+ | margin: 3px 5px 0 0; | ||
+ | background: #ffc32b none; | ||
+ | border: 1px solid #ffc32b; | ||
+ | } | ||
+ | |||
+ | .bcopy:hover, .breturn:hover, .btrash:hover { | ||
+ | background:#ffd15e none; | ||
+ | border: 1px solid #ffd15e; | ||
+ | } | ||
.bcSel { | .bcSel { | ||
− | background-color: | + | background-color: #ffc32b; |
+ | border-radius: 7px; | ||
+ | padding:0 5px; | ||
} | } | ||
+ | /* */ | ||
+ | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Rad 446: | Rad 454: | ||
<pre> | <pre> | ||
− | // ************************************************************************************* | + | // ************************************************************************************* |
− | + | // - Katalog / Detaljer | |
− | + | // | |
− | + | // Knappar för Kopiera, Återlämna och Radera bredvid streckkod på detaljssidan | |
− | + | // ver 2.3 (2023-12-20) | |
− | + | // ( Kompatibel med 23.05 ) | |
− | + | if ($('#catalog_detail').length) { | |
− | + | var cellnr = $('#holdings_barcode').index() + 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 = '/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 = $('input[name="bib"]').val(); | |
− | + | var link = '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1&itemnumber=' + itemnr + '&biblionumber=' + bibnr + '&src=CATALOGUING'; | |
− | + | if (confirm("Är du säker på att du vill radera detta exemplaret? \n\r\n\r" + bc)) { | |
− | + | window.location.href = link; | |
− | + | } | |
− | + | }); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
'''OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"''' | '''OBS. Detta stycke här under måste även läggas till i "IntranetUserCSS"''' | ||
<pre> | <pre> | ||
− | // | + | /* Knappar för kopiera och återlämna */ |
+ | .bcopy, .breturn, .btrash { | ||
+ | margin: 3px 5px 0 0; | ||
+ | background: #ffc32b none; | ||
+ | border: 1px solid #ffc32b; | ||
+ | } | ||
− | . | + | .bcopy:hover, .breturn:hover, .btrash:hover { |
− | background | + | background:#ffd15e none; |
+ | border: 1px solid #ffd15e; | ||
} | } | ||
− | . | + | .bcSel { |
− | + | background-color: #ffc32b; | |
− | + | border-radius: 7px; | |
+ | padding:0 5px; | ||
} | } | ||
+ | /* */ | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Katalog / Barnmedia == | == Katalog / Barnmedia == | ||
Rad 558: | Rad 542: | ||
<pre> | <pre> | ||
− | // ************************************************************************************* | + | // ************************************************************************************* |
// - Katalog / Exemplar | // - Katalog / Exemplar | ||
// | // | ||
// Ändrar automatiskt till itemtype "BARNBOK" om man skriver in Hcf, Hcg eller något med litet u | // Ä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. | // i Full call number vid exemplarinläggning eller redigering. | ||
− | // ver 1. | + | // ver 1.3 |
− | // ( Kompatibel med | + | // 2022-05-18 |
+ | // ( Kompatibel med 23.05 ) | ||
− | $('#subfield952o input:first').change(function() { | + | if ($('#cat_additem').length) { |
+ | var oldVal = $('select[id^="tag_952_subfield_y"]').val(); | ||
+ | $('#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').trigger('change'); | ||
+ | } else { | ||
+ | $('select[id^="tag_952_subfield_y"]').val(oldVal).trigger('change'); | ||
+ | } | ||
+ | }); | ||
+ | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Rad 584: | Rad 573: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
// - Periodika / Exemplar | // - Periodika / Exemplar | ||
// | // | ||
// Döljer onödiga fält vid exemplarredigering/registrering | // Döljer onödiga fält vid exemplarredigering/registrering | ||
− | // ver 1 | + | // ver 1.1 |
− | // | + | // 2022-05-02 |
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
if ($('#ser_serials-edit').length) { | if ($('#ser_serials-edit').length) { | ||
− | var hiddenArr = ['0', '1', '2 | + | var hiddenArr = ['0','1','2','4','5','6','e','f','g','j','t','u','w']; |
− | |||
− | |||
− | + | $('.subfield_line label').each(function() { | |
− | + | for (i = 0; i < hiddenArr.length; i++) { | |
+ | if ($(this).text().charAt(0) == hiddenArr[i]) { | ||
$(this).closest('li').hide(); | $(this).closest('li').hide(); | ||
− | } | + | } |
− | } | + | } |
− | }; | + | }); |
− | } | + | } |
Rad 620: | Rad 608: | ||
// Stor bokstav i början på alla namn och adresser på låntagaranmälan och redigering | // Stor bokstav i början på alla namn och adresser på låntagaranmälan och redigering | ||
// ver 1.1 | // ver 1.1 | ||
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
jQuery.fn.capitalize = function() { | jQuery.fn.capitalize = function() { | ||
Rad 671: | Rad 659: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
// Endast småbokstäver i e-postfält | // Endast småbokstäver i e-postfält | ||
− | // ver 1 | + | // ver 1.1 |
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
jQuery.fn.decapitalize = function() { | jQuery.fn.decapitalize = function() { | ||
− | $(this | + | $(this).keyup(function(event) { |
var box = event.target; | var box = event.target; | ||
var txt = $(this).val(); | var txt = $(this).val(); | ||
Rad 683: | Rad 671: | ||
var stringEnd = box.selectionEnd; | var stringEnd = box.selectionEnd; | ||
$(this).val(txt.replace(/^(.)|(\s|\-)(.)/g, function($word) { | $(this).val(txt.replace(/^(.)|(\s|\-)(.)/g, function($word) { | ||
− | return $word | + | return $word; |
})); | })); | ||
− | box.setSelectionRange(stringStart, stringEnd); | + | $(this).val(txt.toLowerCase()); |
+ | box.setSelectionRange(stringStart , stringEnd); | ||
}); | }); | ||
− | |||
return this; | return this; | ||
− | } | + | }; |
$('#email').addClass('decapitalizer'); | $('#email').addClass('decapitalizer'); | ||
Rad 701: | Rad 689: | ||
== Cirkulation / Utlåning och detaljer för låntagare == | == 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.''' | + | '''Meddelanden på låntagarsidan går nu redigera så man slipper skriva en nya varje gång. |
+ | |||
+ | OBS! Onödigt efter version 22.05 då denna funktion är inbyggd. | ||
+ | ''' | ||
[[Fil:Meddelande.png]] | [[Fil:Meddelande.png]] | ||
<pre> | <pre> | ||
− | // ************************************************************************************* | + | // ************************************************************************************* |
// - Cirkulation / Utlåning o detalj för låntagare | // - 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. | // Meddelanden på låntagarsidan går nu redigera så man slipper skriva en nya varje gång. | ||
− | // ver 1. | + | // ver 1.3 |
− | // ( Kompatibel med | + | // ( Kompatibel med 22.05 ) |
− | $('<a class="editmsg btn btn-link btn-sm" href="#"><i class="fa fa-edit"></i>Ändra</a>').insertAfter('#messages span'); | + | if ($('#pat_moremember, #circ_circulation').length) { |
+ | $('<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); | |
− | + | $(this).siblings('span').hasClass('circ-hlt') ? $('#message_type').val('L') : $('#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); | |
+ | }); | ||
}); | }); | ||
− | } | + | } |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Rad 776: | Rad 742: | ||
<pre> | <pre> | ||
− | // ************************************************************************************* | + | // ************************************************************************************* |
// Exemplar | // Exemplar | ||
// | // | ||
// Markera innehållet i Streckkodsrutan när man klickar i rutan. | // 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. | // Förenklar så man kan dra streckkoden direkt när man ställer sig i rutan. | ||
− | // ver 1 | + | // ver 1.1 |
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
$('input[id^="tag_952_subfield_p"]').each(function() { | $('input[id^="tag_952_subfield_p"]').each(function() { | ||
Rad 788: | Rad 754: | ||
}); | }); | ||
− | $('.bcselect').on('focus', function() { | + | $('.bcselect').on('focus', function(){ |
$(this).select(); | $(this).select(); | ||
}); | }); | ||
$('input[id^="tag_952_subfield_p"]').on('click', function() { | $('input[id^="tag_952_subfield_p"]').on('click', function() { | ||
− | if ( | + | if ($('input[id^="tag_952_subfield_p"]').val()) { |
$(this).select(); | $(this).select(); | ||
− | } | + | } |
}); | }); | ||
Rad 809: | Rad 775: | ||
<pre> | <pre> | ||
+ | // ************************************************************************************* | ||
+ | // - Cirkulation | ||
+ | // | ||
+ | // Antal reservationer i kö vid utlån (REST-api) | ||
+ | // ver 3.4 | ||
+ | // 2024-06-05 | ||
+ | // ( Kompatibel med 23.05 ) | ||
− | + | if ($('#circ_needsconfirmation').length) { | |
− | + | var barcode = $('#circ_needsconfirmation input[name="barcode"]').val(); | |
− | + | if ($('#circ_needsconfirmation ul li').text().includes('Efterfrågat') || $('#circ_needsconfirmation ul li').text().includes('High demand')) { | |
− | + | $('#circ_needsconfirmation ul').append('<li style="padding:15px 0">Antal reservationer i kö:\t <span id="antal"><i>Hämtar...</i><div class="loader"></div></span></li>'); | |
− | + | $.ajax({ | |
− | + | url: '/api/v1/items/?external_id=' + barcode + '&_match=exact', | |
− | + | cache: true, | |
− | + | success: function (bibnr) { | |
− | + | bibnr = bibnr[0].biblio_id; | |
− | + | $.ajax({ | |
− | + | url: '/api/v1/holds/?biblio_id=' + bibnr + '&_per_page=500&_match=exact', | |
− | + | cache: true, | |
− | + | success: function (data) { | |
− | + | var inTransit = 0; | |
− | + | var waiting = 0; | |
− | + | var suspended = 0; | |
− | + | for (i = 0; i < data.length; i++) { | |
− | + | if (data[i].status == "T") { | |
− | + | inTransit++; | |
− | + | } | |
− | + | if (data[i].status == "W") { | |
− | + | waiting++; | |
− | + | } | |
− | + | if (data[i].suspended == true) { | |
− | + | suspended++; | |
− | + | } | |
− | + | } | |
− | + | var leftRes = data.length - inTransit - waiting - suspended; | |
− | + | if (leftRes < 2) { | |
− | + | if (document.getElementById("override_high_holds_tmp").checked == false) { | |
− | + | console.log('CHECKED!'); | |
+ | $('#override_high_holds_tmp').trigger('click'); | ||
+ | } | ||
+ | } | ||
+ | var link = '/cgi-bin/koha/reserve/request.pl?biblionumber=' + bibnr; | ||
+ | $('#antal').html('<b>' + leftRes + '</b><a href="' + link + '" target="_blank"> (Öppna kön i ny flik)</a>'); | ||
+ | $('<li>I transport: <b>' + inTransit + '</b> - Aviserade: <b>' + waiting + '</b> - Pausade: <b>' + suspended + '</b></li>').appendTo('#circ_needsconfirmation ul'); | ||
+ | } | ||
+ | }); | ||
+ | }, | ||
+ | error: function () { | ||
+ | $('#antal').html('<b>Okänt</b> (Något blev fel...)'); | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | } | ||
</pre> | </pre> | ||
Rad 851: | Rad 839: | ||
<pre> | <pre> | ||
+ | // ************************************************************************************* | ||
+ | // - 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 4.4 | ||
+ | // Hämtar via REST-api | ||
+ | // 2023-09-12 | ||
+ | // ( Kompatibel med 23.05 ) | ||
− | + | $('#circ_needsconfirmation').each(function () { // Bekräfta lån-rutan | |
− | + | 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... <div class="loader"></div></h4>'); | |
− | + | var lastdate = 0; | |
− | + | var borrower = $('#circ_needsconfirmation input[name="borrowernumber"]').val(); | |
− | + | var barcode = $('#circ_needsconfirmation input[name="barcode"]').val(); | |
− | + | $.ajax({ | |
− | + | url: '/api/v1/items/?external_id=' + barcode + '&_match=exact', | |
− | + | cache: true, | |
− | + | success: function (item) { | |
− | + | $.ajax({ | |
− | + | url: '/api/v1/checkouts?patron_id=' + borrower + '&checked_in=true&_match=exact&q={"item_id":"' + item[0].item_id + '"}', | |
− | + | cache: true, | |
− | + | success: function (data) { | |
− | + | lastdate = data.length ? data[0].checkout_date.slice(0, 10) : null; | |
− | + | $('#circ_needsconfirmation #lastdateloading').remove(); | |
− | + | var retMessage = lastdate ? '<b>' + lastdate + '</b>' : '<b>Okänt</b> <i>(före övergång till koha)</i>'; | |
− | + | $('#circ_needsconfirmation ul').append('<li style="padding-top:10px" id="lastdate">Senast lånad:\t ' + retMessage + '</li>'); | |
− | + | }, | |
− | + | error: function () { | |
− | + | $('#circ_needsconfirmation #lastdateloading').remove(); | |
− | + | $('#circ_needsconfirmation ul').append('<li style="padding-top:10px" id="lastdate">Senast lånad:\t <b>Okänt</b> <i>(före övergång till koha)</i></li>'); | |
− | + | } | |
− | + | }); | |
− | + | } | |
− | + | }); | |
− | + | } | |
− | + | }); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ''' | ||
− | < | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Rad 940: | Rad 885: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
// - Exemplar | // - Exemplar | ||
// | // | ||
// Vid redigering av exemplar så sparas exemplaret automatisk ifall man drar streckkoden | // 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. | // man behöver alltså inte klicka på knappen "Spara" vid redigering av exemplar. | ||
− | // ver 1 | + | // ver 1.1 |
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
− | $('#cataloguing_additem_newitem #f').has('#edititem').each(function() { | + | if ($('#cat_additem').length) { |
− | + | $('#cataloguing_additem_newitem #f').has('#edititem').each(function() { | |
− | + | if ($('select[id^="tag_952_subfield_y"]').val() != "FJARRLAN") { | |
− | + | $('#subfield952p input').keypress(function(event) { | |
− | + | var keycode = event.keyCode || event.which; | |
− | + | if(keycode == '13') { | |
− | + | if ($(this).val()) { | |
− | } | + | //console.log('Klick!'); |
+ | $('input[onclick="return Check(this.form)"]').trigger('click'); | ||
+ | } | ||
+ | } | ||
+ | }); | ||
} | } | ||
}); | }); | ||
− | } | + | } |
Rad 969: | Rad 918: | ||
<pre> | <pre> | ||
− | // ************************************************************************************* | + | // ************************************************************************************* |
// - Låntagare | // - Låntagare | ||
// | // | ||
Rad 976: | Rad 925: | ||
// Kontrollerar även nu oxå att inte personnumret finns sedan innan registrerat i katalogen. | // Kontrollerar även nu oxå att inte personnumret finns sedan innan registrerat i katalogen. | ||
// Fyller även i automatiskt om det är en kvinna eller man. | // Fyller även i automatiskt om det är en kvinna eller man. | ||
− | // ver 3. | + | // ver 3.4 |
− | // | + | // 2023-05-11 |
− | // | + | // Kompatibel med 22.05 |
var validatePersonalNumber = function(input) { // Valideringsscript för svenskt personnummer | var validatePersonalNumber = function(input) { // Valideringsscript för svenskt personnummer | ||
Rad 985: | Rad 934: | ||
if (input.indexOf('-') == -1) { | if (input.indexOf('-') == -1) { | ||
+ | input.length === 10 ? input = input.slice(0, 6) + "-" + input.slice(6) : input = input.slice(0, 8) + "-" + input.slice(8); | ||
+ | /* | ||
if (input.length === 10) { | if (input.length === 10) { | ||
input = input.slice(0, 6) + "-" + input.slice(6); | input = input.slice(0, 6) + "-" + input.slice(6); | ||
Rad 990: | Rad 941: | ||
input = input.slice(0, 8) + "-" + input.slice(8); | 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; | if (!input.match(/^(\d{2})(\d{2})(\d{2})\-(\d{4})|(\d{4})(\d{2})(\d{2})\-(\d{4})$/)) return false; | ||
Rad 1 020: | Rad 972: | ||
}; | }; | ||
+ | var patron_attr_personnr = $('input[value="PERSNUMMER"]').siblings('textarea'); | ||
− | $( | + | $(patron_attr_personnr).parent().insertBefore('li label[for="dateofbirth"]'); // Flyttar personnrfältet till innan födelsedagsdatumfältet |
− | $(' | + | $(patron_attr_personnr).attr('maxlength', '10').attr('placeholder', '10 siffror (ÅÅMMDDNNNN)').attr('style', 'width: 174px; height: 22px;'); // Ge fältet rätt attribut |
− | $( | + | $(patron_attr_personnr).change(function() { // Känner av ändring i personnrfältet och uppdaterar födelsedagsdatumfältet och OPAC användarnamnet |
if (validatePersonalNumber($(this).val())) { | if (validatePersonalNumber($(this).val())) { | ||
Rad 1 034: | Rad 987: | ||
var patronyear = $(this).val().slice(0, 2); // Kollar personnummrets två första siffror och sparar det till variable | var patronyear = $(this).val().slice(0, 2); // Kollar personnummrets två första siffror och sparar det till variable | ||
− | + | var millenium = patronyear > year ? '19' : '20'; | |
− | + | $('input#dateofbirth').val(millenium + $(this).val().slice(0, 2) + '-' + $(this).val().slice(2, 4) + '-' + $(this).val().slice(4, 6)).trigger('change'); | |
− | |||
− | |||
− | |||
− | |||
$('input#userid').val($(this).val()); // Kopierar även personnr till OPAC Användarnamnet | $('input#userid').val($(this).val()); // Kopierar även personnr till OPAC Användarnamnet | ||
Rad 1 045: | Rad 994: | ||
chkpnr = $(this).val(); | chkpnr = $(this).val(); | ||
− | $.get('https://' + window.location.hostname + '/cgi-bin/koha/ | + | $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=1017&sql_params=' + chkpnr).done(function(datan) { |
− | + | console.log(datan); | |
− | |||
− | |||
− | |||
+ | if (datan.length != 0) { | ||
alert('Personnumret finns redan registrerat!'); | alert('Personnumret finns redan registrerat!'); | ||
− | $( | + | $(patron_attr_personnr).css('background', 'red').focus().select(); |
− | |||
} else { | } else { | ||
− | + | $(patron_attr_personnr).css('background', '#d4efb7'); | |
− | $( | + | } |
− | |||
− | } | ||
}); | }); | ||
var gender = $(this).val().charAt(8); // Kontrollera om det är en man eller kvinna och fyll i kön automatiskt | var gender = $(this).val().charAt(8); // Kontrollera om det är en man eller kvinna och fyll i kön automatiskt | ||
gender = parseInt(gender, 10); | gender = parseInt(gender, 10); | ||
− | + | if ($('#sex-female').length) { | |
− | if (gender % 2 == 0 | + | gender % 2 == 0 ? document.getElementById("sex-female").checked = true : document.getElementById("sex-male").checked = true; |
− | + | } | |
− | |||
− | |||
− | } | ||
− | |||
} else { | } else { | ||
− | $( | + | $(patron_attr_personnr).val(null); // Rensa fältet |
alert("Personnummret är felaktigt, var god ändra."); // Varna för fel personnr | alert("Personnummret är felaktigt, var god ändra."); // Varna för fel personnr | ||
setTimeout(function() { | setTimeout(function() { | ||
− | $( | + | $(patron_attr_personnr).focus(); |
}, 1); // Ställ markören i fältet igen | }, 1); // Ställ markören i fältet igen | ||
}; | }; | ||
Rad 1 081: | Rad 1 021: | ||
$('#dateofbirth').focus(function() { | $('#dateofbirth').focus(function() { | ||
− | console.log(validatePersonalNumber($( | + | console.log(validatePersonalNumber($(patron_attr_personnr).val())); |
− | if (validatePersonalNumber($( | + | if (validatePersonalNumber($(patron_attr_personnr).val())) { |
var d = new Date(); // Kollar det aktuella datumet | var d = new Date(); // Kollar det aktuella datumet | ||
var year = d.getFullYear(); // Sorterar ut vilket år det är | 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 | 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 = $( | + | var patronyear = $(patron_attr_personnr).val().slice(0, 2); // Kollar personnummrets två första siffror och sparar det till variable |
− | + | var millenium = patronyear > year ? '19' : '20'; | |
− | + | $('input#dateofbirth').val(millenium + $(patron_attr_personnr).val().slice(0, 2) + '-' + $(patron_attr_personnr).val().slice(2, 4) + '-' + $(patron_attr_personnr).val().slice(4, 6)); | |
− | + | } | |
− | |||
− | |||
− | |||
− | } | ||
}); | }); | ||
Rad 1 107: | Rad 1 043: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
// - Låntagare | // - Låntagare | ||
// | // | ||
// Lägger automatiskt in samma nummer som fylls i mobilnummer till SMSnummer, | // Lägger automatiskt in samma nummer som fylls i mobilnummer till SMSnummer, | ||
// samt kopiera mobilnr till hemtelefon om inget nummer finns där innan. | // samt kopiera mobilnr till hemtelefon om inget nummer finns där innan. | ||
− | // ver 1. | + | // ver 1.4 |
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
if ($('#pat_memberentrygen').length) { | if ($('#pat_memberentrygen').length) { | ||
Rad 1 121: | Rad 1 057: | ||
telnr = telnr.slice(1); | telnr = telnr.slice(1); | ||
$('input#SMSnumber').val('+46' + telnr); | $('input#SMSnumber').val('+46' + telnr); | ||
− | + | $('input#phone').val() == "" ? $('input#phone').val('0' + telnr) : null; | |
− | |||
− | |||
− | |||
}); | }); | ||
if ($('input#SMSnumber').val().length > 0) { | if ($('input#SMSnumber').val().length > 0) { | ||
− | |||
if ($('input#SMSnumber').val().slice(0, 2).indexOf('46') > -1) { | if ($('input#SMSnumber').val().slice(0, 2).indexOf('46') > -1) { | ||
− | |||
var telnr = $('input#SMSnumber').val(); | var telnr = $('input#SMSnumber').val(); | ||
telnr = telnr.slice(2); | telnr = telnr.slice(2); | ||
$('input#SMSnumber').val('+46' + telnr); | $('input#SMSnumber').val('+46' + telnr); | ||
} else { | } else { | ||
− | |||
if ($('input#SMSnumber').val().slice(0, 1).indexOf('+') == -1) { | if ($('input#SMSnumber').val().slice(0, 1).indexOf('+') == -1) { | ||
var telnr = $('input#SMSnumber').val(); | var telnr = $('input#SMSnumber').val(); | ||
telnr = telnr.slice(1); | telnr = telnr.slice(1); | ||
$('input#SMSnumber').val('+46' + telnr); | $('input#SMSnumber').val('+46' + telnr); | ||
− | } | + | } |
− | } | + | } |
− | } | + | } |
− | } | + | } |
− | } | + | } |
+ | |||
</pre> | </pre> | ||
Rad 1 154: | Rad 1 085: | ||
<pre> | <pre> | ||
− | // ************************************************************************************* | + | // ************************************************************************************* |
// - Låntagare | // - Låntagare | ||
// | // | ||
// Tillåt endast siffror i personnummer och mobiltelefonnummer (med förklaring om endast svenska nummer) | // Tillåt endast siffror i personnummer och mobiltelefonnummer (med förklaring om endast svenska nummer) | ||
− | // ver 1. | + | // ver 1.2 |
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
− | $("input#mobile | + | $("input#mobile" || patron_attr_personnr).keydown(function(e) { |
var isModifierkeyPressed = (e.metaKey || e.ctrlKey || e.shiftKey); | var isModifierkeyPressed = (e.metaKey || e.ctrlKey || e.shiftKey); | ||
var isCursorMoveOrDeleteAction = ([46, 8, 9, 35, 36, 37, 38, 39, 40].indexOf(e.keyCode) != -1); | var isCursorMoveOrDeleteAction = ([46, 8, 9, 35, 36, 37, 38, 39, 40].indexOf(e.keyCode) != -1); | ||
Rad 1 179: | Rad 1 110: | ||
}); | }); | ||
− | $('< | + | $('<span class="hint"> Endast svenska mobilnummer</span>').insertAfter("input#mobile"); |
− | |||
− | |||
</pre> | </pre> | ||
Rad 1 199: | Rad 1 128: | ||
// Markering av senast inlagt exemplar i listan med grönt | // Markering av senast inlagt exemplar i listan med grönt | ||
// ver 1.2 | // ver 1.2 | ||
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
if (!$('#cat_additem').length) { | if (!$('#cat_additem').length) { | ||
Rad 1 248: | Rad 1 177: | ||
// | // | ||
// Gömmer redigeringsknapparna för nyheterna | // Gömmer redigeringsknapparna för nyheterna | ||
− | // ( Kompatibel med | + | // ( Kompatibel med 23.05 ) |
$("p.newsfooter a").hide(); | $("p.newsfooter a").hide(); | ||
Rad 1 268: | Rad 1 197: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
− | + | // - 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.5 | |
− | + | // 2023-09-07 | |
+ | // ( Kompatibel med 23.05 ) | ||
+ | |||
+ | if ($('#pat_member').length) { | ||
+ | const params = new Proxy(new URLSearchParams(window.location.search), { | ||
+ | get: (searchParams, prop) => searchParams.get(prop), | ||
+ | }); | ||
+ | let string = params.searchmember; | ||
+ | var location = window.location.hostname; | ||
+ | |||
+ | if (string != null) { | ||
+ | $('<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" style="margin-bottom:10px">Sök i katalogen</button>').insertAfter('#toolbar'); | ||
+ | $('#searchcat').focus(); | ||
− | + | $('#searchcat').on('click', function (event) { | |
− | |||
− | |||
− | |||
− | |||
− | + | localStorage.setItem('lastsearch', string); | |
− | + | window.location.assign("/cgi-bin/koha/catalogue/search.pl?idx=kw&q=" + string); | |
− | + | }); | |
− | + | } | |
} | } | ||
− | |||
− | + | $('#patronsearch').bind('submit', function (event) { | |
− | + | if ($('#findborrower').val() == '') { | |
− | + | event.preventDefault(); | |
− | + | $('#searchcat').trigger('click'); | |
− | + | } | |
− | + | }); | |
− | + | $('#catalog_results #search-form, #catalog_detail #search-form').val(localStorage.getItem('lastsearch')).select(); | |
− | + | $('#main_intranet-main').ready(function () { | |
− | + | localStorage.removeItem('lastsearch'); | |
− | + | }); | |
− | |||
− | |||
− | |||
− | |||
− | |||
+ | $('#cat-search-block').bind('submit', function () { | ||
+ | var string = $('#search-form').val(); | ||
+ | localStorage.setItem('lastsearch', string); | ||
+ | }); | ||
</pre> | </pre> | ||
Rad 1 315: | Rad 1 250: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
− | + | // - Katalog / Resultat | |
− | + | // | |
− | + | // Klickbara hyllsignaturer | |
− | + | // ver 1.1 | |
− | + | // 2023-09-07 | |
− | + | // ( Kompatibel med 23.05 ) | |
− | |||
− | |||
− | |||
− | |||
− | |||
+ | $('td.itemcallnumber').each(function () { | ||
+ | var itemcallnr = $(this).text().slice(1); | ||
+ | var location = window.location.hostname; | ||
+ | $(this).html('<a href="/cgi-bin/koha/catalogue/search.pl?idx=callnum&q=' + itemcallnr + '">' + itemcallnr + '</a>'); | ||
+ | }); | ||
</pre> | </pre> | ||
Rad 1 336: | Rad 1 271: | ||
<pre> | <pre> | ||
+ | // ************************************************************************************* | ||
+ | // - Katalog | ||
+ | // | ||
+ | // Gör klassifikationer i katalogposten klickbara | ||
+ | // ver 2.3 | ||
+ | // 2023-09-07 | ||
+ | // ( Kompatibel med 23.05 ) | ||
− | + | $(".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="/cgi-bin/koha/catalogue/search.pl?idx=kw&q=lcn%3A' + ocarr[i] + '">' + ocarr[i] + '</a>'); | |
− | + | if (i < (ocarr.length - 1)) { | |
− | + | $(this).append(' | '); | |
− | + | } | |
− | + | }; | |
− | + | }); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Rad 1 372: | Rad 1 306: | ||
// | // | ||
// Gör ISBN i katalogposten klickbara för att komma till Adlibris, Btj, Legimus och LIBRIS | // Gör ISBN i katalogposten klickbara för att komma till Adlibris, Btj, Legimus och LIBRIS | ||
+ | // Knapp i toolbar för länk till LibrisXL | ||
// Samt förhandsvisning av post hos Adlibris när man har muspekaren över Adlibris-länken. | // 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. | // Omslagsbilder på resultat- och detaljsidan, valbart om man vill visa eller inte. | ||
− | // ver 2. | + | // ver 2.4 |
− | // | + | // 2022-10-14 |
− | // ( Kompatibel med | + | // ( Kompatibel med 22.05 ) |
− | // Omslagbild på sökresultat | + | // Omslagbild från Bokinfo samt från Overdrives E-böcker på sökresultat |
function getImageResult(isbn) { | function getImageResult(isbn) { | ||
if (isbn.slice(0, 3) == '978') { | if (isbn.slice(0, 3) == '978') { | ||
+ | isbn = isbn.slice(0, 13); | ||
var subfolder = isbn.slice(0, 6); | var subfolder = isbn.slice(0, 6); | ||
} else { | } else { | ||
Rad 1 403: | Rad 1 339: | ||
isbn = isbnNr.toString(); | isbn = isbnNr.toString(); | ||
isbn = isbn.concat(sum.toString()); | isbn = isbn.concat(sum.toString()); | ||
− | } | + | } |
if (isbn.length > 2) { | if (isbn.length > 2) { | ||
return isbn; | return isbn; | ||
− | } | + | } |
}; | }; | ||
Rad 1 418: | Rad 1 354: | ||
document.getElementById("IMGchk").checked = true; | document.getElementById("IMGchk").checked = true; | ||
localStorage.setItem('showimages', 'on'); | localStorage.setItem('showimages', 'on'); | ||
− | } | + | } |
− | + | localStorage.getItem('showimages') == "on" ? document.getElementById("IMGchk").checked = true : document.getElementById("IMGchk").checked = false; | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | } | ||
$('#IMGchk').change(function() { | $('#IMGchk').change(function() { | ||
Rad 1 432: | Rad 1 362: | ||
localStorage.setItem('showimages', 'on'); | localStorage.setItem('showimages', 'on'); | ||
$('.coverIMG, .coverIMGbig').css('display', 'unset'); | $('.coverIMG, .coverIMGbig').css('display', 'unset'); | ||
− | } | + | } |
if ($(this).is(':unchecked')) { | if ($(this).is(':unchecked')) { | ||
localStorage.setItem('showimages', 'off'); | localStorage.setItem('showimages', 'off'); | ||
$('.coverIMG, .coverIMGbig').css('display', 'none'); | $('.coverIMG, .coverIMGbig').css('display', 'none'); | ||
− | } | + | } |
}); | }); | ||
− | } | + | } |
$(".results_summary.isbn").each(function() { | $(".results_summary.isbn").each(function() { | ||
Rad 1 448: | Rad 1 378: | ||
isbnarr = isbn.split(' '); | isbnarr = isbn.split(' '); | ||
isbn = isbnarr[0].toString(); | isbn = isbnarr[0].toString(); | ||
− | }; | + | } |
+ | if (isbn.slice(0,3) == '978') { | ||
+ | //console.log('978'); | ||
+ | isbn = isbn.slice(0,13); | ||
+ | } else { | ||
+ | //console.log(isbn); | ||
+ | isbn = isbn.slice(0,10); | ||
+ | } | ||
+ | |||
//isbn = isbn.replace(/\D/g,''); | //isbn = isbn.replace(/\D/g,''); | ||
$(this).append('<span class="isbncont"></span>'); | $(this).append('<span class="isbncont"></span>'); | ||
Rad 1 460: | Rad 1 398: | ||
// Libris | // 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>'); | $('.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>'); | ||
+ | // LibrisXL | ||
+ | //$('.isbncont', this).append('<a href="https://libris.kb.se/katalogisering/search/libris?identifiedBy.value=' + isbn +'&identifiedBy.%40type=ISBN&_limit=20&%40type=Instance&_sort=" target="_blank">LibrisXL</a>'); | ||
+ | |||
+ | //var thisisbn = $(this); | ||
+ | |||
+ | localStorage.getItem('showimages') == "on" ? $('.coverIMG, .coverIMGbig').css('display', 'unset') : $('.coverIMG, .coverIMGbig').css('display', 'none'); | ||
− | if ( | + | var imgISBN = getImageResult(isbn); |
− | $('. | + | var subfolder = imgISBN.slice(0, 6); |
− | } | + | |
− | + | //testImage('http://bokinfo.se/Images/Products/Medium/' + subfolder + '/' + imgISBN + '.jpg'); | |
− | + | ||
− | + | ||
+ | if ($(this).closest('td').find('.result-biblio-itemtype').text().trim() == 'E-bok' || $(this).closest('td').find('.result-biblio-itemtype').text().trim() == 'E-ljudbok') { | ||
+ | odCoverLink = $(this).closest('td').find('.results_summary.online_access a:last').attr('href'); | ||
+ | $(this).closest('td').prepend('<img class="coverIMG" alt="" src="' + odCoverLink + '" style="">'); | ||
+ | } else { | ||
+ | |||
+ | $(this).closest('td').prepend('<img class="coverIMG" id="img_' + imgISBN + '"alt="" src="https://bokinfo.se/Images/Products/Medium/' + subfolder + '/' + imgISBN + '.jpg" onerror="javascript: console.log(\'Cover not loaded\')">'); | ||
+ | |||
+ | //document.getElementById('img_' + imgISBN).addEventListener('error', function() {console.log('No cover loaded for' + imgISBN);}); | ||
− | + | 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" alt="" src="https://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() { | $(".coverIMG, .coverIMGbig").on("error", function() { | ||
$(this).remove(); | $(this).remove(); | ||
− | |||
− | |||
}); | }); | ||
− | } | + | } |
− | |||
− | |||
− | |||
}); | }); | ||
+ | |||
+ | if ($('#catalog_detail').length) { | ||
+ | var bibnr = $('input[name="bib"]').val(); | ||
+ | if (bibnr) { | ||
+ | $.ajax({ | ||
+ | url: 'https://' + window.location.hostname + '/api/v1/biblios/' + bibnr, | ||
+ | type: "GET", | ||
+ | accepts: { | ||
+ | "*": "application/marc-in-json" | ||
+ | }, | ||
+ | contentType: "application/marc-in-json;charset=ISO-8859-15", | ||
+ | complete: function(data) { | ||
+ | //console.log(data.responseJSON.fields); | ||
+ | data.responseJSON.fields.forEach(function(item) { | ||
+ | if (Object.keys(item)[0] == '003') { | ||
+ | if (Object.values(item)[0] == 'SE-LIBR') { | ||
+ | data.responseJSON.fields.forEach(function(item) { | ||
+ | if (Object.keys(item)[0] == '001') { | ||
+ | //console.log(Object.values(item)[0]); | ||
+ | librisnr = Object.values(item)[0]; | ||
+ | $('<div class="btn-group"><a id="librisxl" class="btn btn-default" href="https://libris.kb.se/katalogisering/search/libris?q=' + librisnr + '&%40type=Instance" target="_blank"><i class="fa fa-edit"></i> LibrisXL</a></div>').insertBefore($('#placehold').parent()); | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | } | ||
Rad 1 505: | Rad 1 485: | ||
<pre> | <pre> | ||
+ | /* Förhandsvisningsfönstret för Adlibrislänk */ | ||
− | .previewbox { | + | .previewbox { |
display:none; | display:none; | ||
background: #fff; | background: #fff; | ||
Rad 1 519: | Rad 1 500: | ||
a.pvframelink:hover + .previewbox { /* Visa förhandsvisningsfönstret */ | a.pvframelink:hover + .previewbox { /* Visa förhandsvisningsfönstret */ | ||
− | display:block; | + | display:block; |
} | } | ||
Rad 1 541: | Rad 1 522: | ||
// | // | ||
// Spara senaste låntagare som lånat eller återlämnat med hjälp av cookies | // Spara senaste låntagare som lånat eller återlämnat med hjälp av cookies | ||
− | // ver 2 | + | // ver 3.2 |
− | // ( Kompatibel med | + | // 2022-10-20 |
+ | // ( Kompatibel med 22.05 ) | ||
var midnight = new Date(); | var midnight = new Date(); | ||
− | midnight.setHours(23, 59, 59, 0); | + | 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 | + | $('#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 checkedinpatron = $(this).attr('href'); | ||
− | + | checkedinpatron = checkedinpatron.slice(checkedinpatron.indexOf('=') + 1); | |
− | + | var patronname; | |
− | + | var patronlink = $(this).attr('href'); | |
− | |||
− | |||
− | + | $.ajax({ | |
+ | url: 'https://' + window.location.hostname + '/api/v1/patrons/', | ||
+ | data: {"patron_id" : checkedinpatron }, | ||
+ | cache: true | ||
+ | }).done(function(data) { | ||
+ | patronname = data[0].firstname + ' ' + data[0].surname + ' (' + data[0].cardnumber + ')'; | ||
− | + | var checkedin = $('#circ_returns').length ? ' [ Återlämnat ]' : ''; | |
− | var | + | document.cookie = "lastpatron=" + patronname + checkedin + "; expires=" + midnight + "; path=/; Samesite=Strict" ; |
− | document.cookie = "lastpatron=" + patronname + "; expires=" + midnight + "; path=/ " | ||
− | |||
− | + | patronlink = patronlink.slice(patronlink.indexOf('?') + 1); | |
− | + | document.cookie = "patronlink=" + patronlink + "; expires=" + midnight + "; path=/; Samesite=Strict" ; | |
− | + | savePatron(); | |
+ | }); | ||
}); | }); | ||
− | $('div.patroninfo h5').each(function() { // Spara senaste låntagaren som laddats | + | $('div.patroninfo h5').each(function(){ // Spara senaste låntagaren som laddats |
var name = $(this).text().replace(/\s+/g, " "); | var name = $(this).text().replace(/\s+/g, " "); | ||
var borrowernumber = $('.patronborrowernumber').text(); | var borrowernumber = $('.patronborrowernumber').text(); | ||
Rad 1 577: | Rad 1 561: | ||
var patronlink = 'borrowernumber=' + borrowernumber; | var patronlink = 'borrowernumber=' + borrowernumber; | ||
− | document.cookie = "lastpatron=" + name + "; expires=" + midnight + "; path=/ "; | + | document.cookie = "lastpatron=" + name + "; expires=" + midnight + "; path=/; SameSite=Strict" ; |
− | document.cookie = "patronlink=" + patronlink + "; expires=" + midnight + "; path=/ "; | + | document.cookie = "patronlink=" + patronlink + "; expires=" + midnight + "; path=/; SameSite=Strict" ; |
savePatron(); | savePatron(); | ||
Rad 1 585: | Rad 1 569: | ||
− | function savePatron() { // Spara ner låntagare i listan ifall hen inte finns med förut | + | function savePatron() { // Spara ner låntagare i listan ifall hen inte finns med förut |
var d = new Date(); | var d = new Date(); | ||
Rad 1 591: | Rad 1 575: | ||
time = time.split(' ')[0]; | time = time.split(' ')[0]; | ||
− | document.cookie = "timestamp=" + time + "; expires=" + midnight + "; path=/ "; | + | document.cookie = "timestamp=" + time + "; expires=" + midnight + "; path=/; Samesite=Strict" ; |
− | var name = | + | var name = Cookies.get('lastpatron'); |
− | var link = | + | var link = Cookies.get('patronlink'); |
− | var time = | + | var time = Cookies.get('timestamp'); |
− | if ( | + | if (Cookies.get('lastpatrons')) { |
− | var theString = | + | var theString = Cookies.get('lastpatrons'); |
var lastpatrons = theString.split(","); | var lastpatrons = theString.split(","); | ||
− | var theString2 = | + | var theString2 = Cookies.get('patronlinks'); |
var patronlinks = theString2.split(","); | var patronlinks = theString2.split(","); | ||
− | var theString3 = | + | var theString3 = Cookies.get('timestamps'); |
var timestamps = theString3.split(","); | var timestamps = theString3.split(","); | ||
Rad 1 612: | Rad 1 596: | ||
lastpatrons.splice(indexnr, 1); | lastpatrons.splice(indexnr, 1); | ||
timestamps.splice(indexnr, 1); | timestamps.splice(indexnr, 1); | ||
− | } | + | } |
− | } else { | + | } |
+ | else { | ||
var lastpatrons = []; | var lastpatrons = []; | ||
var patronlinks = []; | var patronlinks = []; | ||
var timestamps = []; | var timestamps = []; | ||
− | } | + | } |
lastpatrons.unshift(name); | lastpatrons.unshift(name); | ||
Rad 1 627: | Rad 1 612: | ||
patronlinks.pop(); | patronlinks.pop(); | ||
timestamps.pop(); | timestamps.pop(); | ||
− | } | + | } |
− | document.cookie = "lastpatrons=" + lastpatrons + "; expires=" + midnight + "; path=/ "; | + | document.cookie = "lastpatrons=" + lastpatrons + "; expires=" + midnight + "; path=/; Samesite=Strict"; |
− | document.cookie = "patronlinks=" + patronlinks + "; expires=" + midnight + "; path=/ "; | + | document.cookie = "patronlinks=" + patronlinks + "; expires=" + midnight + "; path=/; Samesite=Strict" ; |
− | document.cookie = "timestamps=" + timestamps + "; expires=" + midnight + "; path=/ "; | + | document.cookie = "timestamps=" + timestamps + "; expires=" + midnight + "; path=/; Samesite=Strict" ; |
}; | }; | ||
− | if ( | + | if (Cookies.get('lastpatron')) { // Visa knappen ifall det finns en sparad låntagare |
− | var lpatron = | + | var lpatron = Cookies.get('lastpatron'); |
$('<span> </span><button id="lastpatron">Senaste låntagare</button>').insertAfter('input[id="autocsubmit"]'); | $('<span> </span><button id="lastpatron">Senaste låntagare</button>').insertAfter('input[id="autocsubmit"]'); | ||
$('<a href="#" id="clearlpatron"> Rensa</a>').insertAfter('#lastpatron'); | $('<a href="#" id="clearlpatron"> Rensa</a>').insertAfter('#lastpatron'); | ||
− | } | + | } |
− | $("<a href='#' id='patronspan'> " + lpatron + "</a>").insertBefore('#clearlpatron').hide(); | + | $("<a href='#' id='patronspan'> "+lpatron+"</a>").insertBefore('#clearlpatron').hide(); |
− | $('#lastpatron').mouseover(function(event) { | + | $('#lastpatron').mouseover(function(event){ |
event.preventDefault(); | event.preventDefault(); | ||
$("#clearlpatron").hide(); | $("#clearlpatron").hide(); | ||
Rad 1 650: | Rad 1 635: | ||
}); | }); | ||
− | $('#lastpatron').mouseout(function(event) { | + | $('#lastpatron').mouseout(function(event){ |
event.preventDefault(); | event.preventDefault(); | ||
$("#clearlpatron").show(); | $("#clearlpatron").show(); | ||
Rad 1 656: | Rad 1 641: | ||
}); | }); | ||
− | $('#lastpatron').on('click', function(event) { // Öppna senaste låntagare | + | $('#lastpatron').on('click', function(event){ // Öppna senaste låntagare |
− | if ( | + | if (Cookies.get('lastpatron')) { |
event.preventDefault(); | event.preventDefault(); | ||
− | var patronlink = | + | var patronlink = Cookies.get('patronlink'); |
var location = window.location.hostname; | var location = window.location.hostname; | ||
window.location.assign("https://" + location + "/cgi-bin/koha/circ/circulation.pl?" + patronlink); | window.location.assign("https://" + location + "/cgi-bin/koha/circ/circulation.pl?" + patronlink); | ||
− | } | + | } |
}); | }); | ||
− | $('#clearlpatron').on('click', function(event) { // Rensa senaste låntagare | + | $('#clearlpatron').on('click', function(event){ // Rensa senaste låntagare |
− | + | Cookies.remove('patronlink', { path: '/' }); | |
− | + | Cookies.remove('lastpatron', { path: '/' }); | |
− | + | Cookies.remove('lastpatrons', { path: '/' }); | |
− | + | Cookies.remove('patronlinks', { path: '/' }); | |
− | + | Cookies.remove('timestamp', { path: '/' }); | |
− | + | Cookies.remove('timestamps', { path: '/' }); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
$('#lastpatron').hide(); | $('#lastpatron').hide(); | ||
Rad 1 697: | Rad 1 670: | ||
− | $('#lastpatrons').on('click', function(event) { // Öppna listan med senaste låntagare | + | $('#lastpatrons').on('click', function(event){ // Öppna listan med senaste låntagare |
− | var lp = | + | var lp = Cookies.get('lastpatrons'); |
var names = lp.split(","); | var names = lp.split(","); | ||
− | var pl = | + | var pl = Cookies.get('patronlinks'); |
var links = pl.split(","); | var links = pl.split(","); | ||
− | var ts = | + | var ts = Cookies.get('timestamps'); |
var times = ts.split(","); | var times = ts.split(","); | ||
var list = $("#patron-dropdown"); | var list = $("#patron-dropdown"); | ||
Rad 1 709: | Rad 1 682: | ||
var location = window.location.hostname; | var location = window.location.hostname; | ||
− | list.detach().empty().each(function(i) { | + | list.detach().empty().each(function(i){ |
− | for (var x = 0; x < names.length; x++) { | + | 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>'); | + | $(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) { | + | if (x == names.length - 1){ |
$(this).appendTo(parent); | $(this).appendTo(parent); | ||
} | } | ||
Rad 1 718: | Rad 1 691: | ||
}); | }); | ||
}); | }); | ||
+ | |||
</pre> | </pre> | ||
Rad 1 737: | Rad 1 711: | ||
<pre> | <pre> | ||
− | + | // ************************************************************************************* | |
// - Cirkulation / Reservation | // - Cirkulation / Reservation | ||
// | // | ||
// Snabbaccess till senaste låntagare vid reservation | // Snabbaccess till senaste låntagare vid reservation | ||
− | // ver 2. | + | // ver 2.3 |
− | // ( Kompatibel med | + | // ( Kompatibel med 22.05 ) |
+ | |||
+ | if ($('#circ_request').length) { | ||
+ | const queryString = window.location.search; | ||
+ | const urlParams = new URLSearchParams(queryString); | ||
+ | var biblionumber = urlParams.get('biblionumber'); | ||
− | + | if (Cookies.get('lastpatron')) { | |
− | + | var name = Cookies.get('lastpatron'); | |
− | + | var link = $('#holds_patronsearch').attr('action'); | |
− | + | //var biblionumber = $('input[name="biblionumber"').val(); | |
− | + | var location = window.location.hostname; | |
− | + | var patronlink = Cookies.get('patronlink'); | |
− | + | $('<br /><br /><span>Reservera för senaste låntagaren: </span><a href="https://' + location + '/cgi-bin/koha/reserve/request.pl?biblionumber=' + biblionumber + '&' + patronlink + '" id="hold">' + name + '</a>').appendTo('#holds_patronsearch_pane'); | |
− | + | $('<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>').appendTo('#holds_patronsearch_pane'); | |
− | + | $('#lastpatrons_res').on('click', function(event) { // Öppna listan med senaste låntagare | |
− | + | var reslp = Cookies.get('lastpatrons'); | |
− | + | var resnames = reslp.split(","); | |
− | + | var respl = Cookies.get('patronlinks'); | |
− | + | var reslinks = respl.split(","); | |
− | + | var rests = Cookies.get('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); | |
+ | } | ||
} | } | ||
− | } | + | }); |
}); | }); | ||
− | } | + | } |
− | } | + | } |
Rad 1 808: | Rad 1 788: | ||
<pre> | <pre> | ||
− | // ************************************************************************************* | + | // ************************************************************************************* |
// - Cirkulation | // - Cirkulation | ||
// | // | ||
// Markerar raden med det aktuella exemplaret efter sökt streckkod | // Markerar raden med det aktuella exemplaret efter sökt streckkod | ||
− | // ( Kompatibel med | + | // ( Kompatibel med 21.11 ) |
$('#cat-search-block .submit').on('click', function() { // Vanlig katalogsökning | $('#cat-search-block .submit').on('click', function() { // Vanlig katalogsökning | ||
− | + | localStorage.setItem('search-form', $('#search-form').val()); | |
− | |||
− | |||
− | |||
− | |||
}); | }); | ||
Rad 1 832: | Rad 1 808: | ||
if ($('#catalog_detail').length) { | if ($('#catalog_detail').length) { | ||
− | $(' | + | var storedsearch = localStorage.getItem('search-form'); |
− | + | if (storedsearch != null) { | |
− | if ($(this).text() == storedsearch) { | + | $('#holdings a[href^="/cgi-bin/koha/catalogue/moredetail.pl"]').each(function() { |
− | + | if ($(this).text() == storedsearch) { | |
− | + | $(this).closest('tr').children().css('background-color', '#d4efb7'); | |
− | } | + | localStorage.removeItem('search-form'); |
− | } | + | } |
− | } | + | }); |
+ | $('#otherholdings a[href^="/cgi-bin/koha/catalogue/moredetail.pl"]').each(function() { | ||
+ | if ($(this).text() == storedsearch) { | ||
+ | $(this).closest('tr').children().css('background-color', '#d4efb7'); | ||
+ | localStorage.removeItem('search-form'); | ||
+ | waitForEl('li[aria-controls="holdings"]', function() { | ||
+ | return $('a[href="#otherholdings"]').trigger('click'); | ||
+ | }); | ||
+ | } | ||
+ | }); | ||
+ | } | ||
+ | } | ||
Rad 1 873: | Rad 1 860: | ||
// Visa fler/färre på resultatsidan och på listor | // Visa fler/färre på resultatsidan och på listor | ||
// Märker även tillgängligheten med grön/röd | // Märker även tillgängligheten med grön/röd | ||
− | // ver 3. | + | // ver 3.4 |
− | // ( Kompatibel med | + | // ( Kompatibel med 22.05 ) |
if ($('#catalog_results').length) { | if ($('#catalog_results').length) { | ||
− | if ($('.logged-in-branch-name:first()').text().length > 0) { | + | //if ($('.logged-in-branch-name:first()').text().length > 0) { |
var loggedinbranch = $('.logged-in-branch-name:first()').text(); | var loggedinbranch = $('.logged-in-branch-name:first()').text(); | ||
localStorage.setItem('loggedinbranch', loggedinbranch); | localStorage.setItem('loggedinbranch', loggedinbranch); | ||
− | } | + | //} |
$('.availability').each(function() { | $('.availability').each(function() { | ||
− | var | + | var lin = $(this).find('li').length; |
− | if ( | + | if (lin > 0) { |
$('li', this).hide().addClass('toggleable'); | $('li', this).hide().addClass('toggleable'); | ||
$(this).append('<span class="more">Visa fler...</span>'); | $(this).append('<span class="more">Visa fler...</span>'); | ||
Rad 1 892: | Rad 1 879: | ||
$('#lists_shelves #searchresults td:nth-child(5)').each(function() { | $('#lists_shelves #searchresults td:nth-child(5)').each(function() { | ||
− | var | + | var lin = $(this).find('li').length; |
− | if ( | + | if (lin > 1) { |
$('li', this).hide().addClass('toggleable'); | $('li', this).hide().addClass('toggleable'); | ||
$(this).append('<span class="more">Visa fler...</span>'); | $(this).append('<span class="more">Visa fler...</span>'); | ||
Rad 1 901: | Rad 1 888: | ||
$('.availability li').each(function() { | $('.availability li').each(function() { | ||
− | var loggedinbranch = $('.logged-in-branch-name:first()').text(); | + | //var loggedinbranch = $('.logged-in-branch-name:first()').text(); |
if ($(this).text().indexOf(loggedinbranch) > -1) { | if ($(this).text().indexOf(loggedinbranch) > -1) { | ||
$(this).removeClass('toggleable').show(); | $(this).removeClass('toggleable').show(); | ||
− | + | $(this).parent().hasClass('onloan_items_loop_items') || $(this).parent().hasClass('other_items_loop_items') ? $(this).css('background','#ffe7e7') : $(this).css('background','#d4efb7'); | |
− | $(this).css('background', '#ffe7e7'); | + | |
+ | /* | ||
+ | if ($(this).parent().hasClass('onloan_items_loop_items') || $(this).parent().hasClass('other_items_loop_items')) { | ||
+ | $(this).css('background','#ffe7e7'); | ||
} else { | } else { | ||
− | $(this).css('background', '#d4efb7'); | + | $(this).css('background','#d4efb7'); |
− | } | + | } |
+ | */ | ||
// Karlsborg - Undenäs - Mölltorp | // Karlsborg - Undenäs - Mölltorp | ||
− | if (loggedinbranch.indexOf('Karlsborg') > -1 | loggedinbranch.indexOf('Undenäs') > -1 | loggedinbranch.indexOf('Mölltorp') > -1) { | + | if (loggedinbranch.indexOf('Karlsborg') > -1 || loggedinbranch.indexOf('Undenäs') > -1 || loggedinbranch.indexOf('Mölltorp') > -1) { |
$('.availability li').each(function() { | $('.availability li').each(function() { | ||
− | if ($(this).text().indexOf('Karlsborg') > -1 | $(this).text().indexOf('Undenäs') > -1 | $(this).text().indexOf('Mölltorp') > -1) { | + | if ($(this).text().indexOf('Karlsborg') > -1 || $(this).text().indexOf('Undenäs') > -1 || $(this).text().indexOf('Mölltorp') > -1) { |
$(this).removeClass('toggleable').show(); | $(this).removeClass('toggleable').show(); | ||
− | + | $(this).parent().hasClass('onloan_items_loop_items') || $(this).parent().hasClass('other_items_loop_items') ? $(this).css('background','#ffe7e7') : $(this).css('background','#d4efb7'); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | } | ||
}); | }); | ||
− | } | + | } |
// Tidaholm - KVA | // Tidaholm - KVA | ||
Rad 1 934: | Rad 1 920: | ||
if ($(this).text().indexOf('Tidaholm') > -1) { | if ($(this).text().indexOf('Tidaholm') > -1) { | ||
$(this).removeClass('toggleable').show(); | $(this).removeClass('toggleable').show(); | ||
− | + | $(this).parent().hasClass('onloan_items_loop_items') || $(this).parent().hasClass('other_items_loop_items') ? $(this).css('background','#ffe7e7') : $(this).css('background','#d4efb7'); | |
− | + | } | |
− | |||
− | |||
− | |||
− | |||
− | } | ||
}); | }); | ||
− | } | + | } |
− | } | + | } |
}); | }); | ||
$('.availability, #lists_shelves #searchresults td:nth-child(5)').on('click', '.more', function() { | $('.availability, #lists_shelves #searchresults td:nth-child(5)').on('click', '.more', function() { | ||
− | + | $(this).hasClass('less') ? $(this).text('Visa fler...').removeClass('less') : $(this).text('Visa färre...').addClass('less'); | |
− | |||
− | |||
− | |||
− | |||
$(this).parent().children('ul').children('li.toggleable').slideToggle("fast"); | $(this).parent().children('ul').children('li.toggleable').slideToggle("fast"); | ||
}); | }); | ||
− | } | + | } |
− | |||
</pre> | </pre> |
Nuvarande version från 6 september 2024 kl. 07.53
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.4 // 2022-11-15 // ( Kompatibel med 23.05 ) if ($('#subscription_search').length) { $('.form-extra-content').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(); } }); }
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.3 (uppdaterad med minoritetsspråken och Ukrainska) // ( Kompatibel med 23.05 ) 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:ukr">Ukrainska</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:ukr">Ukrainska</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.4 // ( Kompatibel med 23.05 ) if ($('#circ_returns').length) { if ($('#checkedintable tbody tr:first .ci-collection').text().includes('Magasin')) { //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.4 // 2022-05-02 // ( Kompatibel med 23.05 ) function renewButtons() { $('.renew:visible').each(function () { var itemId = $(this).val(); $(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).val(); $(".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>'); }); } if ($('#circ_circulation, #pat_moremember').length) { issueT = $('#issues-table'); issueT.on('draw.dt', function () { renewButtons(); }); }
Katalog / Reservationer
Hämta mer information om reservationer på detaljsidan.
// ************************************************************************************* // - Katalog / Detalj // // Hämta mer information om reservationer på detaljsidan // ver 2.3 // Hämtar information om reservationer via rest-API // 2023-09-12 // ( Kompatibel med 23.05 ) if ($('#catalog_detail').length) { var bibnr = $('input[name="bib"]').val(); if ($('.number_box').length) { $.get('/api/v1/holds/?biblio_id=' + bibnr + '&_per_page=300&_match=exact').done(function (data) { var inTransit = 0; var waiting = 0; var suspended = 0; for (i = 0; i < data.length; i++) { if (data[i].status == "T") { inTransit++; } if (data[i].status == "W") { waiting++; } if (data[i].suspended == true) { suspended++; } } var leftRes = data.length - inTransit - waiting; if (leftRes > 0) { $('.number_box').parent().append('<span class="resDetail">Antal i kö: ' + leftRes + '</span>'); } if (inTransit > 0) { $('.number_box').parent().append('<span class="resDetail">Transport: ' + inTransit + '</span>'); } if (waiting > 0) { $('.number_box').parent().append('<span class="resDetail">Aviserade: ' + waiting + '</span>'); } if (suspended > 0) { $('.number_box').parent().append('<span class="resDetail">Pausade: ' + suspended + '</span>'); } }); } }
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 23.05 ) 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.1 // 2023-09-12 // ( Kompatibel med 23.05 ) 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 = '/cgi-bin/koha/cataloguing/merge.pl?'; $('.selection').each(function () { if ($(this).is(':checked')) { selIDs.push($(this).val()); } }); 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.6 // 2023-09-12 // ( Kompatibel med 23.05 ) if ($('#circ_circulation').length || $('#pat_moremember').length) { var firstload = true; $('#issues-table'); //.dataTable(); $('#issues-table').on('draw.dt', function () { if (firstload) { $('#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 = '/cgi-bin/koha/circ/returns.pl?barcode=' + bc; } }); } }); } // ************************************************************************************* // - Katalog / Detaljer // // Knappar för Kopiera, Återlämna och Radera bredvid streckkod på detaljssidan // ver 2.3 (2023-12-20) // ( Kompatibel med 23.05 ) if ($('#catalog_detail').length) { var cellnr = $('#holdings_barcode').index() + 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 = '/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 = $('input[name="bib"]').val(); var link = '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1&itemnumber=' + itemnr + '&biblionumber=' + bibnr + '&src=CATALOGUING'; 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"
/* Knappar för kopiera och återlämna */ .bcopy, .breturn, .btrash { margin: 3px 5px 0 0; background: #ffc32b none; border: 1px solid #ffc32b; } .bcopy:hover, .breturn:hover, .btrash:hover { background:#ffd15e none; border: 1px solid #ffd15e; } .bcSel { background-color: #ffc32b; border-radius: 7px; padding:0 5px; } /* */
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.3 (2023-12-20) // ( Kompatibel med 23.05 ) if ($('#catalog_detail').length) { var cellnr = $('#holdings_barcode').index() + 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 = '/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 = $('input[name="bib"]').val(); var link = '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1&itemnumber=' + itemnr + '&biblionumber=' + bibnr + '&src=CATALOGUING'; 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"
/* Knappar för kopiera och återlämna */ .bcopy, .breturn, .btrash { margin: 3px 5px 0 0; background: #ffc32b none; border: 1px solid #ffc32b; } .bcopy:hover, .breturn:hover, .btrash:hover { background:#ffd15e none; border: 1px solid #ffd15e; } .bcSel { background-color: #ffc32b; border-radius: 7px; padding:0 5px; } /* */
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.3 // 2022-05-18 // ( Kompatibel med 23.05 ) if ($('#cat_additem').length) { var oldVal = $('select[id^="tag_952_subfield_y"]').val(); $('#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').trigger('change'); } else { $('select[id^="tag_952_subfield_y"]').val(oldVal).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.1 // 2022-05-02 // ( Kompatibel med 23.05 ) if ($('#ser_serials-edit').length) { var hiddenArr = ['0','1','2','4','5','6','e','f','g','j','t','u','w']; $('.subfield_line label').each(function() { for (i = 0; i < hiddenArr.length; i++) { 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 23.05 ) 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.1 // ( Kompatibel med 23.05 ) jQuery.fn.decapitalize = function() { $(this).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; })); $(this).val(txt.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.
OBS! Onödigt efter version 22.05 då denna funktion är inbyggd.
// ************************************************************************************* // - 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.3 // ( Kompatibel med 22.05 ) if ($('#pat_moremember, #circ_circulation').length) { $('<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); $(this).siblings('span').hasClass('circ-hlt') ? $('#message_type').val('L') : $('#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); }); }); }
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.1 // ( Kompatibel med 23.05 ) $('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()) { $(this).select(); } });
Cirkulation / Reservationer
Visar antal reservationer i kö vid utlån.
// ************************************************************************************* // - Cirkulation // // Antal reservationer i kö vid utlån (REST-api) // ver 3.4 // 2024-06-05 // ( Kompatibel med 23.05 ) if ($('#circ_needsconfirmation').length) { var barcode = $('#circ_needsconfirmation input[name="barcode"]').val(); if ($('#circ_needsconfirmation ul li').text().includes('Efterfrågat') || $('#circ_needsconfirmation ul li').text().includes('High demand')) { $('#circ_needsconfirmation ul').append('<li style="padding:15px 0">Antal reservationer i kö:\t <span id="antal"><i>Hämtar...</i><div class="loader"></div></span></li>'); $.ajax({ url: '/api/v1/items/?external_id=' + barcode + '&_match=exact', cache: true, success: function (bibnr) { bibnr = bibnr[0].biblio_id; $.ajax({ url: '/api/v1/holds/?biblio_id=' + bibnr + '&_per_page=500&_match=exact', cache: true, success: function (data) { var inTransit = 0; var waiting = 0; var suspended = 0; for (i = 0; i < data.length; i++) { if (data[i].status == "T") { inTransit++; } if (data[i].status == "W") { waiting++; } if (data[i].suspended == true) { suspended++; } } var leftRes = data.length - inTransit - waiting - suspended; if (leftRes < 2) { if (document.getElementById("override_high_holds_tmp").checked == false) { console.log('CHECKED!'); $('#override_high_holds_tmp').trigger('click'); } } var link = '/cgi-bin/koha/reserve/request.pl?biblionumber=' + bibnr; $('#antal').html('<b>' + leftRes + '</b><a href="' + link + '" target="_blank"> (Öppna kön i ny flik)</a>'); $('<li>I transport: <b>' + inTransit + '</b> - Aviserade: <b>' + waiting + '</b> - Pausade: <b>' + suspended + '</b></li>').appendTo('#circ_needsconfirmation ul'); } }); }, error: function () { $('#antal').html('<b>Okänt</b> (Något blev fel...)'); } }); } }
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 4.4 // Hämtar via REST-api // 2023-09-12 // ( Kompatibel med 23.05 ) $('#circ_needsconfirmation').each(function () { // Bekräfta lån-rutan 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... <div class="loader"></div></h4>'); var lastdate = 0; var borrower = $('#circ_needsconfirmation input[name="borrowernumber"]').val(); var barcode = $('#circ_needsconfirmation input[name="barcode"]').val(); $.ajax({ url: '/api/v1/items/?external_id=' + barcode + '&_match=exact', cache: true, success: function (item) { $.ajax({ url: '/api/v1/checkouts?patron_id=' + borrower + '&checked_in=true&_match=exact&q={"item_id":"' + item[0].item_id + '"}', cache: true, success: function (data) { lastdate = data.length ? data[0].checkout_date.slice(0, 10) : null; $('#circ_needsconfirmation #lastdateloading').remove(); var retMessage = lastdate ? '<b>' + lastdate + '</b>' : '<b>Okänt</b> <i>(före övergång till koha)</i>'; $('#circ_needsconfirmation ul').append('<li style="padding-top:10px" id="lastdate">Senast lånad:\t ' + retMessage + '</li>'); }, error: function () { $('#circ_needsconfirmation #lastdateloading').remove(); $('#circ_needsconfirmation ul').append('<li style="padding-top:10px" id="lastdate">Senast lånad:\t <b>Okänt</b> <i>(före övergång till koha)</i></li>'); } }); } }); } });
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.1 // ( Kompatibel med 23.05 ) if ($('#cat_additem').length) { $('#cataloguing_additem_newitem #f').has('#edititem').each(function() { if ($('select[id^="tag_952_subfield_y"]').val() != "FJARRLAN") { $('#subfield952p input').keypress(function(event) { var keycode = event.keyCode || event.which; if(keycode == '13') { if ($(this).val()) { //console.log('Klick!'); $('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.4 // 2023-05-11 // Kompatibel med 22.05 var validatePersonalNumber = function(input) { // Valideringsscript för svenskt personnummer // Kontrollera godkänd längd och form if (!input) return false; if (input.indexOf('-') == -1) { input.length === 10 ? input = input.slice(0, 6) + "-" + input.slice(6) : input = input.slice(0, 8) + "-" + input.slice(8); /* 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; }; var patron_attr_personnr = $('input[value="PERSNUMMER"]').siblings('textarea'); $(patron_attr_personnr).parent().insertBefore('li label[for="dateofbirth"]'); // Flyttar personnrfältet till innan födelsedagsdatumfältet $(patron_attr_personnr).attr('maxlength', '10').attr('placeholder', '10 siffror (ÅÅMMDDNNNN)').attr('style', 'width: 174px; height: 22px;'); // Ge fältet rätt attribut $(patron_attr_personnr).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 var millenium = patronyear > year ? '19' : '20'; $('input#dateofbirth').val(millenium + $(this).val().slice(0, 2) + '-' + $(this).val().slice(2, 4) + '-' + $(this).val().slice(4, 6)).trigger('change'); $('input#userid').val($(this).val()); // Kopierar även personnr till OPAC Användarnamnet chkpnr = $(this).val(); $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=1017&sql_params=' + chkpnr).done(function(datan) { console.log(datan); if (datan.length != 0) { alert('Personnumret finns redan registrerat!'); $(patron_attr_personnr).css('background', 'red').focus().select(); } else { $(patron_attr_personnr).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 ($('#sex-female').length) { gender % 2 == 0 ? document.getElementById("sex-female").checked = true : document.getElementById("sex-male").checked = true; } } else { $(patron_attr_personnr).val(null); // Rensa fältet alert("Personnummret är felaktigt, var god ändra."); // Varna för fel personnr setTimeout(function() { $(patron_attr_personnr).focus(); }, 1); // Ställ markören i fältet igen }; }); $('#dateofbirth').focus(function() { console.log(validatePersonalNumber($(patron_attr_personnr).val())); if (validatePersonalNumber($(patron_attr_personnr).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_personnr).val().slice(0, 2); // Kollar personnummrets två första siffror och sparar det till variable var millenium = patronyear > year ? '19' : '20'; $('input#dateofbirth').val(millenium + $(patron_attr_personnr).val().slice(0, 2) + '-' + $(patron_attr_personnr).val().slice(2, 4) + '-' + $(patron_attr_personnr).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.4 // ( Kompatibel med 23.05 ) 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); $('input#phone').val() == "" ? $('input#phone').val('0' + telnr) : null; }); if ($('input#SMSnumber').val().length > 0) { if ($('input#SMSnumber').val().slice(0, 2).indexOf('46') > -1) { var telnr = $('input#SMSnumber').val(); telnr = telnr.slice(2); $('input#SMSnumber').val('+46' + telnr); } else { 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.2 // ( Kompatibel med 23.05 ) $("input#mobile" || patron_attr_personnr).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(); } }); $('<span class="hint"> Endast svenska mobilnummer</span>').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 23.05 ) 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 23.05 ) $("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.5 // 2023-09-07 // ( Kompatibel med 23.05 ) if ($('#pat_member').length) { const params = new Proxy(new URLSearchParams(window.location.search), { get: (searchParams, prop) => searchParams.get(prop), }); let string = params.searchmember; var location = window.location.hostname; if (string != null) { $('<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" style="margin-bottom:10px">Sök i katalogen</button>').insertAfter('#toolbar'); $('#searchcat').focus(); $('#searchcat').on('click', function (event) { localStorage.setItem('lastsearch', string); window.location.assign("/cgi-bin/koha/catalogue/search.pl?idx=kw&q=" + string); }); } } $('#patronsearch').bind('submit', function (event) { if ($('#findborrower').val() == '') { event.preventDefault(); $('#searchcat').trigger('click'); } }); $('#catalog_results #search-form, #catalog_detail #search-form').val(localStorage.getItem('lastsearch')).select(); $('#main_intranet-main').ready(function () { localStorage.removeItem('lastsearch'); }); $('#cat-search-block').bind('submit', function () { var string = $('#search-form').val(); localStorage.setItem('lastsearch', string); });
Katalog / Resultat
Klickbara hyllsignaturer.
// ************************************************************************************* // - Katalog / Resultat // // Klickbara hyllsignaturer // ver 1.1 // 2023-09-07 // ( Kompatibel med 23.05 ) $('td.itemcallnumber').each(function () { var itemcallnr = $(this).text().slice(1); var location = window.location.hostname; $(this).html('<a href="/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.3 // 2023-09-07 // ( Kompatibel med 23.05 ) $(".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="/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 // Knapp i toolbar för länk till LibrisXL // 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.4 // 2022-10-14 // ( Kompatibel med 22.05 ) // Omslagbild från Bokinfo samt från Overdrives E-böcker på sökresultat function getImageResult(isbn) { if (isbn.slice(0, 3) == '978') { isbn = isbn.slice(0, 13); 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'); } localStorage.getItem('showimages') == "on" ? document.getElementById("IMGchk").checked = true : 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(); } if (isbn.slice(0,3) == '978') { //console.log('978'); isbn = isbn.slice(0,13); } else { //console.log(isbn); isbn = isbn.slice(0,10); } //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>'); // LibrisXL //$('.isbncont', this).append('<a href="https://libris.kb.se/katalogisering/search/libris?identifiedBy.value=' + isbn +'&identifiedBy.%40type=ISBN&_limit=20&%40type=Instance&_sort=" target="_blank">LibrisXL</a>'); //var thisisbn = $(this); localStorage.getItem('showimages') == "on" ? $('.coverIMG, .coverIMGbig').css('display', 'unset') : $('.coverIMG, .coverIMGbig').css('display', 'none'); var imgISBN = getImageResult(isbn); var subfolder = imgISBN.slice(0, 6); //testImage('http://bokinfo.se/Images/Products/Medium/' + subfolder + '/' + imgISBN + '.jpg'); if ($(this).closest('td').find('.result-biblio-itemtype').text().trim() == 'E-bok' || $(this).closest('td').find('.result-biblio-itemtype').text().trim() == 'E-ljudbok') { odCoverLink = $(this).closest('td').find('.results_summary.online_access a:last').attr('href'); $(this).closest('td').prepend('<img class="coverIMG" alt="" src="' + odCoverLink + '" style="">'); } else { $(this).closest('td').prepend('<img class="coverIMG" id="img_' + imgISBN + '"alt="" src="https://bokinfo.se/Images/Products/Medium/' + subfolder + '/' + imgISBN + '.jpg" onerror="javascript: console.log(\'Cover not loaded\')">'); //document.getElementById('img_' + imgISBN).addEventListener('error', function() {console.log('No cover loaded for' + imgISBN);}); 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" alt="" src="https://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(); }); } }); if ($('#catalog_detail').length) { var bibnr = $('input[name="bib"]').val(); if (bibnr) { $.ajax({ url: 'https://' + window.location.hostname + '/api/v1/biblios/' + bibnr, type: "GET", accepts: { "*": "application/marc-in-json" }, contentType: "application/marc-in-json;charset=ISO-8859-15", complete: function(data) { //console.log(data.responseJSON.fields); data.responseJSON.fields.forEach(function(item) { if (Object.keys(item)[0] == '003') { if (Object.values(item)[0] == 'SE-LIBR') { data.responseJSON.fields.forEach(function(item) { if (Object.keys(item)[0] == '001') { //console.log(Object.values(item)[0]); librisnr = Object.values(item)[0]; $('<div class="btn-group"><a id="librisxl" class="btn btn-default" href="https://libris.kb.se/katalogisering/search/libris?q=' + librisnr + '&%40type=Instance" target="_blank"><i class="fa fa-edit"></i> LibrisXL</a></div>').insertBefore($('#placehold').parent()); } }); } } }); } }); } } $('.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(); });
OBS Denna kod behöver klistras in i IntranetUserCSS för att det ska fungera
/* Förhandsvisningsfönstret för Adlibrislänk */ .previewbox { display:none; background: #fff; z-index: +100; -webkit-box-shadow: 10px 10px 5px 0px rgba(160,160,160,1); -moz-box-shadow: 10px 10px 5px 0px rgba(160,160,160,1); box-shadow: 10px 10px 5px 0px rgba(160,160,160,1); position: fixed; right: 50px; bottom: 50px; } a.pvframelink:hover + .previewbox { /* Visa förhandsvisningsfönstret */ display:block; } .pvframe { /* Padding och border för förhandsvisningsfönstret */ padding: 20px; border: 1px solid #d0d0d0; }
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 3.2 // 2022-10-20 // ( Kompatibel med 22.05 ) 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'); checkedinpatron = checkedinpatron.slice(checkedinpatron.indexOf('=') + 1); var patronname; var patronlink = $(this).attr('href'); $.ajax({ url: 'https://' + window.location.hostname + '/api/v1/patrons/', data: {"patron_id" : checkedinpatron }, cache: true }).done(function(data) { patronname = data[0].firstname + ' ' + data[0].surname + ' (' + data[0].cardnumber + ')'; var checkedin = $('#circ_returns').length ? ' [ Återlämnat ]' : ''; document.cookie = "lastpatron=" + patronname + checkedin + "; expires=" + midnight + "; path=/; Samesite=Strict" ; patronlink = patronlink.slice(patronlink.indexOf('?') + 1); document.cookie = "patronlink=" + patronlink + "; expires=" + midnight + "; path=/; Samesite=Strict" ; 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=/; SameSite=Strict" ; document.cookie = "patronlink=" + patronlink + "; expires=" + midnight + "; path=/; SameSite=Strict" ; 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=/; Samesite=Strict" ; var name = Cookies.get('lastpatron'); var link = Cookies.get('patronlink'); var time = Cookies.get('timestamp'); if (Cookies.get('lastpatrons')) { var theString = Cookies.get('lastpatrons'); var lastpatrons = theString.split(","); var theString2 = Cookies.get('patronlinks'); var patronlinks = theString2.split(","); var theString3 = Cookies.get('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=/; Samesite=Strict"; document.cookie = "patronlinks=" + patronlinks + "; expires=" + midnight + "; path=/; Samesite=Strict" ; document.cookie = "timestamps=" + timestamps + "; expires=" + midnight + "; path=/; Samesite=Strict" ; }; if (Cookies.get('lastpatron')) { // Visa knappen ifall det finns en sparad låntagare var lpatron = Cookies.get('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 (Cookies.get('lastpatron')) { event.preventDefault(); var patronlink = Cookies.get('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 Cookies.remove('patronlink', { path: '/' }); Cookies.remove('lastpatron', { path: '/' }); Cookies.remove('lastpatrons', { path: '/' }); Cookies.remove('patronlinks', { path: '/' }); Cookies.remove('timestamp', { path: '/' }); Cookies.remove('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 = Cookies.get('lastpatrons'); var names = lp.split(","); var pl = Cookies.get('patronlinks'); var links = pl.split(","); var ts = Cookies.get('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.3 // ( Kompatibel med 22.05 ) if ($('#circ_request').length) { const queryString = window.location.search; const urlParams = new URLSearchParams(queryString); var biblionumber = urlParams.get('biblionumber'); if (Cookies.get('lastpatron')) { var name = Cookies.get('lastpatron'); var link = $('#holds_patronsearch').attr('action'); //var biblionumber = $('input[name="biblionumber"').val(); var location = window.location.hostname; var patronlink = Cookies.get('patronlink'); $('<br /><br /><span>Reservera för senaste låntagaren: </span><a href="https://' + location + '/cgi-bin/koha/reserve/request.pl?biblionumber=' + biblionumber + '&' + patronlink + '" id="hold">' + name + '</a>').appendTo('#holds_patronsearch_pane'); $('<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>').appendTo('#holds_patronsearch_pane'); $('#lastpatrons_res').on('click', function(event) { // Öppna listan med senaste låntagare var reslp = Cookies.get('lastpatrons'); var resnames = reslp.split(","); var respl = Cookies.get('patronlinks'); var reslinks = respl.split(","); var rests = Cookies.get('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 21.11 ) $('#cat-search-block .submit').on('click', function() { // Vanlig katalogsökning localStorage.setItem('search-form', $('#search-form').val()); }); $('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) { var storedsearch = localStorage.getItem('search-form'); if (storedsearch != null) { $('#holdings a[href^="/cgi-bin/koha/catalogue/moredetail.pl"]').each(function() { if ($(this).text() == storedsearch) { $(this).closest('tr').children().css('background-color', '#d4efb7'); localStorage.removeItem('search-form'); } }); $('#otherholdings a[href^="/cgi-bin/koha/catalogue/moredetail.pl"]').each(function() { if ($(this).text() == storedsearch) { $(this).closest('tr').children().css('background-color', '#d4efb7'); localStorage.removeItem('search-form'); waitForEl('li[aria-controls="holdings"]', function() { return $('a[href="#otherholdings"]').trigger('click'); }); } }); } }
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.4 // ( Kompatibel med 22.05 ) 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(); $(this).parent().hasClass('onloan_items_loop_items') || $(this).parent().hasClass('other_items_loop_items') ? $(this).css('background','#ffe7e7') : $(this).css('background','#d4efb7'); /* if ($(this).parent().hasClass('onloan_items_loop_items') || $(this).parent().hasClass('other_items_loop_items')) { $(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(); $(this).parent().hasClass('onloan_items_loop_items') || $(this).parent().hasClass('other_items_loop_items') ? $(this).css('background','#ffe7e7') : $(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(); $(this).parent().hasClass('onloan_items_loop_items') || $(this).parent().hasClass('other_items_loop_items') ? $(this).css('background','#ffe7e7') : $(this).css('background','#d4efb7'); } }); } } }); $('.availability, #lists_shelves #searchresults td:nth-child(5)').on('click', '.more', function() { $(this).hasClass('less') ? $(this).text('Visa fler...').removeClass('less') : $(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>') }); };
Övergripande / Katalog
Klickbar lista över senaste besökta katalogposter
// ************************************************************************************* // - Låntagare / Registrering // // Bekräfta E-postadress vid registrering // ver 1.4 // 2022-10-12 // Kompatibelt med 22.05 function emailVal() { $('<br /><input type="text" id="email_2" name="email_2" size="45" style="margin-top:6px" value="" placeholder="Ange e-postadress igen..." class="decapitalizer noEnterSubmit" onselectstart="return false" onpaste="return false;" onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false" autocomplete=off>').insertAfter('#email'); if ($('#email').val().length && $('#email_2').val().length) { document.getElementById("saverecord").disabled = true; } if ($('#email').val().length) { $('#email_2').val($('#email').val()); $('#email_2').css('background','lightgreen'); if ($('#email').val() != $('#email_2').val()) { document.getElementById("saverecord").disabled = true; } else { document.getElementById("saverecord").disabled = false; $('#email').keyup(function() { $('#email_2').attr('value',''); document.getElementById("saverecord").disabled = true; $('#email_2').css('background','#f8b7b7'); $('#email_2').attr('value',''); }); /* $('#email_2').remove(); $('<span id="emailOK" style="color:green;font-size:120%;"> OK! </span>').insertAfter('#email'); */ } } $('#email_2').keyup(function() { var email1 = $('#email').val(); var email2 = $('#email_2').val(); if (email1 == email2) { $('#email_2').css('background','lightgreen'); document.getElementById("saverecord").disabled = false; $('<span id="emailOK" style="color:green;font-size:120%;"> OK! </span>').insertAfter('#email'); $('#email_2').remove(); } else { $('#email_2').css('background','#f8b7b7'); document.getElementById("saverecord").disabled = true; } }); } if ($('#pat_memberentrygen').length) { var queryString = window.location.search; var qstring = new URLSearchParams(queryString); var add = qstring.get('op'); if (add == 'add') { $('#email').attr('autocomplete','off'); $('#email').val('').change(); } $('#email').val().length == -1 ? emailVal() : $('<span id="emailOK" style="color:green;font-size:120%;"> OK! </span>').insertAfter('#email'); /* if ($('#email').val().length == -1) { emailVal(); } else { $('<span id="emailOK" style="color:green;font-size:120%;"> OK! </span>').insertAfter('#email'); } */ $('#email').keyup(function() { $('#email_2').attr('value',''); if ($('#emailOK').length) { $('#emailOK').remove(); emailVal(); } }); }
OBS detta stycker behöver läggas in under IntranetUserCSS
/* Stilmall för Senaste poster-funktion */ #lastposts { font: 13px/1.22 arial,helvetica,clean,sans-serif; padding: 5px 40px; } #posts-dropdown li { background: unset; border: unset; width: 100%; } #posts-dropdown li a { padding: 5px 20px; } .bType { color: crimson; } .bIsbn { padding-left: 43px; font-size: smaller; width: 150px !important; display: inline-block; } .bPub { font-size: smaller; padding-left: 15px; } /* */ .more { color:red; cursor:pointer; } .timestamps { color:red; padding-right:10px; } #entryform legend { cursor:pointer; } #circ_needsconfirmation li{ padding: 10px; } #circ_needsconfirmation #lastdate, #circ_needsconfirmation #lastdateloading { padding: 20px 0px; } #circ_needsconfirmation #lastdateloading { color: #d00; } #oppettider { max-width: 400px; margin: auto; } #searchresults .status, #searchresults .unavailable { padding: 10px 0 0; font-weight: bold; } .editmsg { padding: 5px 0px 5px 10px; } .bcopy, .breturn { margin: 0 5px 0 0; } #hold-found2 .print { background-image: linear-gradient(to bottom, #00dd00 0, #009900 100%); color: #fff; text-shadow: none; } #hold-found2 .print:hover, #hold-found2 .print:focus { background-color: #006000; } .hiddenbutton { float: inline-end; } .fjpostbox { background-color: gold; padding: 6px 20px 10px 10px; margin-left: 5px; border-radius: 5px; float:left; } .bcSel { background-color: gold; } .shelvingloc { color: olive; white-space: nowrap; display: block; } .datelastseen { white-space: nowrap; }
Låntagare / Registrering
Extra fält för att bekräfta e-post adress och undvika felstavningar
// ************************************************************************************* // - Låntagare / Registrering // // Bekräfta E-postadress vid registrering // ver 1.4 // 2022-10-12 // Kompatibelt med 22.05 function emailVal() { $('<br /><input type="text" id="email_2" name="email_2" size="45" style="margin-top:6px" value="" placeholder="Ange e-postadress igen..." class="decapitalizer noEnterSubmit" onselectstart="return false" onpaste="return false;" onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false" autocomplete=off>').insertAfter('#email'); if ($('#email').val().length && $('#email_2').val().length) { document.getElementById("saverecord").disabled = true; } if ($('#email').val().length) { $('#email_2').val($('#email').val()); $('#email_2').css('background','lightgreen'); if ($('#email').val() != $('#email_2').val()) { document.getElementById("saverecord").disabled = true; } else { document.getElementById("saverecord").disabled = false; $('#email').keyup(function() { $('#email_2').attr('value',''); document.getElementById("saverecord").disabled = true; $('#email_2').css('background','#f8b7b7'); $('#email_2').attr('value',''); }); /* $('#email_2').remove(); $('<span id="emailOK" style="color:green;font-size:120%;"> OK! </span>').insertAfter('#email'); */ } } $('#email_2').keyup(function() { var email1 = $('#email').val(); var email2 = $('#email_2').val(); if (email1 == email2) { $('#email_2').css('background','lightgreen'); document.getElementById("saverecord").disabled = false; $('<span id="emailOK" style="color:green;font-size:120%;"> OK! </span>').insertAfter('#email'); $('#email_2').remove(); } else { $('#email_2').css('background','#f8b7b7'); document.getElementById("saverecord").disabled = true; } }); } if ($('#pat_memberentrygen').length) { var queryString = window.location.search; var qstring = new URLSearchParams(queryString); var add = qstring.get('op'); if (add == 'add') { $('#email').attr('autocomplete','off'); $('#email').val('').change(); } $('#email').val().length == -1 ? emailVal() : $('<span id="emailOK" style="color:green;font-size:120%;"> OK! </span>').insertAfter('#email'); /* if ($('#email').val().length == -1) { emailVal(); } else { $('<span id="emailOK" style="color:green;font-size:120%;"> OK! </span>').insertAfter('#email'); } */ $('#email').keyup(function() { $('#email_2').attr('value',''); if ($('#emailOK').length) { $('#emailOK').remove(); emailVal(); } }); }
Plocklista
Plocklista med omslagsbilder
// ************************************************************************************* // - Plocklista // // Plocklista med omslagsbilder // ver 1.1 // 2021-06-07 // Kompatibelt med 20.11 function getImagePlocklista() { $('.hq-pubdata').each(function() { if ($(this).text().indexOf('ISBN:') > 0) { var isbn = $(this).text(); isbn = isbn.slice(isbn.indexOf('ISBN:') + 6); isbn = isbn.slice(0, isbn.indexOf('|')).replace(/\D/g, ''); //console.log(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) { $(this).closest('tr').children('.hq-notes').append('<img class="coverIMG" src="http://bokinfo.se/Images/Products/Small/' + subfolder + '/' + isbn + '.jpg" style="max-height:120px;max-width:100px;">'); } $(".coverIMG").on("error", function() { // $(this).append('<span class="no-image">Ingen omslagsbild finns tillgänglig</span>'); $(this).remove(); }); } }); } if ($('#circ_view_holdsqueue').length) { waitForEl('#holdst tbody', function() { // $('#holdst').css('max-width','1000px'); getImagePlocklista(); }); }
Övergripande / Plocklista
Skriv ut knapp med omslagsbilder och checkbox för att exkludera egna reservationer
// - Plocklista // // 1. "Skriv ut"-knapp som får med omslagsbilderna // 2. Checkbox för att exkludera egna reservationer på hembiblioteket // ver 1.3 // 2023-02-24 // Kompatibelt med 22.05 if ($('#circ_view_holdsqueue').length) { waitForEl('.dt-buttons', function() { $('#holdst_wrapper .dt-buttons').append('<button id="printqueue" class="dt-button buttons-collection buttons-print" tabindex="0" type="button" aria-controls="holdst" href="#" title="" data-original-title="Skriv ut sidan"><span><i class="fa fa-lg fa-print"></i> <span class="dt-button-text">Skriv ut</span></span></button><label><input id="remOwnRes" type="checkbox" style="margin-left:10px;"> Exkludera lokala reservationer</label>'); $('#printqueue').on('click', function() { $('aside').hide(); var width = $('#holdst').css('width'); $('#holdst').css('width','unset'); $('.hq-patroncategory').hide(); window.print(); $('aside').show(); $('#holdst').css('width', width); $('.hq-patroncategory').show(); }); var origText = $('.results').text(); $('#remOwnRes').on('click', function() { var resCount = 0; if ($('#remOwnRes').is(':checked')) { $('#holdst tbody .hq-sendto').each(function() { if ($(this).text() == $('.logged-in-branch-name:first').text()) { $(this).parent('tr').hide(); resCount = resCount + 1; } }); $('.results').text($('.results').text() + ' (Varav ' + resCount + ' exemplar är dolda lokala reservationer)'); } if ($('#remOwnRes').is(':unchecked')) { $('#holdst tbody .hq-sendto').each(function() { if ($(this).text() == $('.logged-in-branch-name:first').text()) { $(this).parent('tr').show(); } }); $('.results').text(origText); } }); }); }
Övergripande / Plocklista
Plocklista för inloggat bibliotek
// - Plocklista // // 1. "Skriv ut"-knapp som får med omslagsbilderna // 2. Checkbox för att exkludera egna reservationer på hembiblioteket // ver 1.3 // 2023-02-24 // Kompatibelt med 22.05 if ($('#circ_view_holdsqueue').length) { waitForEl('.dt-buttons', function() { $('#holdst_wrapper .dt-buttons').append('<button id="printqueue" class="dt-button buttons-collection buttons-print" tabindex="0" type="button" aria-controls="holdst" href="#" title="" data-original-title="Skriv ut sidan"><span><i class="fa fa-lg fa-print"></i> <span class="dt-button-text">Skriv ut</span></span></button><label><input id="remOwnRes" type="checkbox" style="margin-left:10px;"> Exkludera lokala reservationer</label>'); $('#printqueue').on('click', function() { $('aside').hide(); var width = $('#holdst').css('width'); $('#holdst').css('width','unset'); $('.hq-patroncategory').hide(); window.print(); $('aside').show(); $('#holdst').css('width', width); $('.hq-patroncategory').show(); }); var origText = $('.results').text(); $('#remOwnRes').on('click', function() { var resCount = 0; if ($('#remOwnRes').is(':checked')) { $('#holdst tbody .hq-sendto').each(function() { if ($(this).text() == $('.logged-in-branch-name:first').text()) { $(this).parent('tr').hide(); resCount = resCount + 1; } }); $('.results').text($('.results').text() + ' (Varav ' + resCount + ' exemplar är dolda lokala reservationer)'); } if ($('#remOwnRes').is(':unchecked')) { $('#holdst tbody .hq-sendto').each(function() { if ($(this).text() == $('.logged-in-branch-name:first').text()) { $(this).parent('tr').show(); } }); $('.results').text(origText); } }); }); }
Periodika
Automatiskt fokus och markering på sökrutan/titel samt uppdateraknapp av datumet till dagens datum vid inleverans av exemplar
// - Periodika // // Automatiskt fokus och markering på sökrutan/titel, // samt uppdateraknapp av datumet till dagens datum vid inleverans av exemplar." // Vid "klicka för lägga till exemplar" ställs markören automatiskt på streckkod // ver 1.3 // 2023-02-04 // Kompatibelt med 22.05 if ($('#ser_serials-home, #ser_serials-search, #ser_subscription-detail, #ser_serials-edit, #ser_serials-collection').length) { $('#title_filter').focus(); $('#title_filter').select(); } if ($('#ser_serials-edit').length) { $('#serials_edit tbody tr td:nth-child(2)').each(function() { $(this).append('<a class="upDate"><i class="fa fa-refresh" aria-hidden="true"></i></a>'); $('.upDate').on('click', function() { var today = new Date(); var dd = String(today.getDate()).padStart(2, '0'); var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0! var yyyy = today.getFullYear(); today = yyyy + '-' + mm + '-' + dd; //$(this).siblings('input').val(today); //$(this).parent('td').siblings('td:nth-child(4)').children('input').val(today); $(this).closest('tr').find('input[name="publisheddate"]').val(today).change(); $(this).closest('tr').find('input[name="planneddate"]').val(today).change(); }); }); } if ($('#ser_serials-edit').length) { $('a[id^=label]').on('click', function() { $(this).parent().find('input[id^="tag_952_subfield_p"]').focus(); $(this).parent().find('input[id^="tag_952_subfield_p"]').select(); }); }
Katalog / Katalogisering
Automatisk ändring av frameworkcode vid vald itemtype
// - Katalog / Katalogisering // // Automatiskt ändring av Framworkcode vid vald itemtype // ver 1.1 // 2020-01-23 // Kompatibelt med 22.05 if ($('#cat_addbiblio').length) { function cfwk(frameworkcode) { $("#frameworkcode").val(frameworkcode); Changefwk(); } function chkFwc() { var fwcArray = [ ['BARNBOK', 'BKS'], ['BOK', 'BKS'], ['FILM', 'VR'], ['BARN LJUD', 'SR'], ['BARNMP3', 'SR'], ['MUSCDBARN', 'SR'], ['BARN TIDSK', 'SER'], ['BLURAY', 'VR'], ['LJUDBOK', 'SR'], ['MP3', 'SR'], ['DAISY', 'DAIS'], ['TIDSKRIFT', 'SER'], ['VHS', 'VR'], ['BARNTAL', 'DAIS'] ]; for (i = 0; i < fwcArray.length; i++) { if ($('select[id^="tag_942_subfield_c"]').find('option:selected').val() == fwcArray[i][0]) { if ($('#frameworkcode').attr('value') == fwcArray[i][1]) { console.log('Redan ändrad frameworkcode'); } else { if ($("#frameworkcode").val() != 'FA') { cfwk(fwcArray[i][1]); } } } } } chkFwc(); $('select[id^="tag_942_subfield_c"]').change(function() { if ($("#frameworkcode").val() != 'FA') { chkFwc(); } }); }
Katalog / Exemplar
Kloning av exemplar
// - Katalog / Exemplar // // Kloning av exemplar // ver 2 // 2022-05-12 // Kompatibelt med 22.05 if ($('#catalog_detail').length) { $('.itemselection_actions').append('<a class="itemselection_action_clone" href="' + $('#newitem').attr('href') + '"><i class="fa fa-copy"></i> Klona valt exemplar</a>'); $('#bibliodetails input').change(function() { $('#bibliodetails input:checkbox:checked').length > 1 ? $('.itemselection_action_clone').hide() : $('.itemselection_action_clone').show(); }); $('.itemselection_action_clone').on('click', function(event) { event.preventDefault(); var itype = $('#bibliodetails input:checkbox:checked').parent().siblings('.itype').text().trim(); var homebranch = $('#bibliodetails input:checkbox:checked').parent().siblings('.homebranch').text().trim(); var shelvingloc = homebranch.slice(homebranch.indexOf('↳') + 1).trim(); homebranch = homebranch.slice(0, homebranch.indexOf('↳')).trim(); var collection = $('#bibliodetails input:checkbox:checked').parent().siblings('.homebranch').next('td').text().trim(); var itemcallnumber = $('#bibliodetails input:checkbox:checked').parent().siblings('.itemcallnumber').text().trim(); var iteminfo = {itype:itype, homebranch: homebranch, shelvingloc: shelvingloc, collection: collection, itemcallnumber: itemcallnumber}; var iteminfo = JSON.stringify(iteminfo); sessionStorage.setItem('iteminfo', iteminfo); window.location = $('#newitem').attr('href'); }); } if ($('#cat_additem').length) { if (sessionStorage.getItem("iteminfo") !== null) { var iteminfo = JSON.parse(sessionStorage.getItem('iteminfo')); $('#subfield952o input').val(iteminfo.itemcallnumber); setTimeout(function() { $('select[id^="tag_952_subfield_8"]').children('option').each(function() { if ($(this).text() == iteminfo.collection) { $('select[id^="tag_952_subfield_8"]').val($(this).val()).trigger('change'); } }); $('select[id^="tag_952_subfield_c"]').children('option').each(function() { if ($(this).text() == iteminfo.shelvingloc) { $('select[id^="tag_952_subfield_c"]').val($(this).val()).trigger('change'); } }); $('select[id^="tag_952_subfield_y"]').children('option').each(function() { if ($(this).text() == iteminfo.itype) { $('select[id^="tag_952_subfield_y"]').val($(this).val()).trigger('change'); } }); $('input[id^="tag_952_subfield_d"]').focus(); $('input[id^="tag_952_subfield_p"]').focus().select(); }, 1000); sessionStorage.removeItem("iteminfo"); } }
Låntagare / Ny låntagare
Flytta fältet för mobiltelefon till överst
// - Låntagare / Ny låntagare // // Flytta fältet för mobiltelefon till överst // ver 1 // 2020-01-21 // Kompatibelt med 20.11 if ($('#pat_memberentrygen').length) { $('#memberentry_contact ol li:nth-child(3)').prependTo('#memberentry_contact ol'); }
Övergripande / Sökning
Känner av om det är ISBN i sökfältet och ändrar automatiskt till ISBN-sökning
// ************************************************************************************* // Övergripande - Sökning // // Känner av om det är ett ISBN i sökfältet // ver 1.4 // ( Kompatibel med 22.05 ) $('#search-form').keydown(function(e) { var eventhandler = function(e) { e.preventDefault(); } var keycode = e.keyCode || e.which; var isbn = $(this).val(); isbn = isbn.replace(/[^X-Xx-x0-9]+/g,''); if (keycode == '13') { $("#myform").bind('submit', eventhandler); } switch(isbn.length) { case 10: if (keycode == '13') { if (confirm('Är detta ett ISBN-nummer?')) { $('.advsearch').val('nb'); } $("#myform").unbind('submit', eventhandler); } break; case 13: if ($(this).val().slice(0,3).indexOf('978') > -1 || $(this).val().slice(0,3).indexOf('979') > -1) { $('.advsearch').val('nb'); } break; default: if ($('.advsearch').val() == 'nb') { $('.advsearch').val('kw'); } } });
Katalogisering / Sökning
Tar bort bindestreck i ISBN-fältet vid sökning i z3950
// ************************************************************************************* // Katalogisering - Sökning // // Ta bort bindestreck i ISBN-fältet vid sökning i z3950 // ver 1.2 // ( Kompatibel med 22.05 ) function fixISBN() { isbn = $('#isbn').val(); isbn = isbn.replace(/[^X-Xx-x0-9]+/g,''); $('#isbn').val(isbn); } if ($('#cat_z3950_search').length) { fixISBN(); $('#isbn').focusout(function() { fixISBN(); }); if ($('#isbn').val().length >= 10) { $('.submit').trigger('click'); } $(document).on("keydown", "form", function(event) { if (event && event.which == 13) { event.preventDefault(); fixISBN(); $('.submit').trigger('click'); } }); }
Katalog Detaljsidan / Alex
Alex-integrering som visar författarinformation på detaljsidan
// ************************************************************************************* // Katalog - Detaljsidan // // Alex-integrering som visar författarinformation på detaljsidan. // ver 1.0 // OBS! Kräver speciellt perl-script på serversidan! // ( Kompatibel med 22.05 ) jQuery.fn.justtext = function() { return $(this).clone() .children() .remove() .end() .text(); }; function getAlex(writer, title) { var alexpw = 'zryyn05wNN'; var alexWriter = writer; var alexTitle = title; var cardnumber = '90055991498A7'; $.ajaxSetup({ error: function(xhr, status, error) { console.log("An AJAX error occured: " + status + "\nError: " + error); } }); var jsondata; $.get('/cgi-bin/alex-link?&writer=' + alexWriter + '&title=' + alexTitle).done(function(data) { jsondata = data; // console.log(data); try { alexFound = jsondata.response.writers.found.toString(); } catch { alexFound = '0'; } if (alexFound == '1') { alexArticle = jsondata.response.writers.writer.article.toString().trim(); if (alexArticle.slice(-2).indexOf('.') == -1) { alexArticle = alexArticle.concat('...'); } alexImageUrl = jsondata.response.writers.writer.imageUrl.toString(); if (alexImageUrl.indexOf('noimage') > -1) { alexImageUrl = ''; alexImageText = ''; } else { alexImageText = jsondata.response.writers.writer.imageText.toString(); if (alexImageText.indexOf('[object]') > -1) { alexImageText = ''; } } alexName = jsondata.response.writers.writer.name.toString(); alexBornDeadText = jsondata.response.writers.writer.bornDeadText.toString(); alexLogotype = jsondata.response.writers.writer.alexLogotype.toString(); alexLinkUrl = jsondata.response.writers.writer.alexLinkUrl.toString(); } $('<div id="alexdone" style="display:none"></div>').appendTo('body'); }); }; function alexDiv(element) { $('<div class="previewbox" style="position:absolute;display:inline;border:solid 1px #d0d0d0;right:unset;bottom:unset;"><div id="alexwindow" style="width:600px;height:160px;margin:20px;"><div style="float:left;"><img src="' + alexImageUrl + '" height="190px" style="display:block;padding-right:10px"><span style="font-size:smaller;">' + alexImageText + '</span></div><h3 class="author">' + alexName + '</h3><h5>' + alexBornDeadText + '</h5><br /><span><span>' + alexArticle + '</span><br /><span style="display:block;float:right;padding-top:5px;">(Mer information finns på Alex.se)</span></div><div style="float:right;padding:0 10px 10px 0"><img src="' + alexLogotype + '" style="float:right;width:80px;"></div></div>').insertAfter(element); }; function alexDivDetail() { $('<div id="alextd" style="max-width:400px;float:right;position:absolute;display:inline;right:18px;background-color:#fff"></div>').insertBefore('#catalogue_detail_biblio'); $('#alextd').append('<div id="alexwindow"></div>'); //$('#alexwindow').append('<span id="closeAlex">X</span>'); $('#alextd').append('<span id="openAlex">Visa Alex</span>'); $('#openAlex').hide(); $('#alexwindow').append('<table id="alexTable"><tbody><tr></tr></tbody></table>'); $('#alextd').on('click', function() { $('#alexwindow').toggle(); $('#openAlex').toggle(); }); $('#alexwindow tr').append('<td id="alexInfo"></td>'); $('#alexInfo').append('<h5 class="author">' + alexName + '</h5>'); $('#alexInfo').append('<h5 style="font-size:85%">' + alexBornDeadText + '</h5>'); $('#alexInfo').append('<span id="alexArticle" class="results_summary" style="font-size:85%">' + alexArticle + '</span>'); $('#alexInfo').append('<span class="results_summary"><a href="' + alexLinkUrl + '" target="_blank">Läs mer på Alex.se</a></span>'); $('#alexInfo').append('<div style="display:block;float:right"><img src="' + alexLogotype + '" style="width:80px;"></div>'); $('#alexwindow tr').append('<td id="alexImg"><img src="' + alexImageUrl + '" style="display:block;max-width:160px;padding:5px 3px 0 5px;"></td>'); $('#alexImg').append('<span class="results_summary" style="font-size:80%;padding-left:5px;">' + alexImageText + '</span>'); setTimeout(function() { $('#alexwindow').hide(500); $('#openAlex').show(200); }, 2000); }; var alexFound; var alexArticle; var alexImageUrl; var alexImageText; var alexName; var alexBornDeadText; var alexLogotype; var alexLinkUrl; if ($('#catalog_detail').length) { var title = $('#catalogue_detail_biblio .title').justtext().replace(/\//g, ''); var author = $('#catalogue_detail_biblio .author:first a').justtext().replace(/-/g, " "); getAlex(author, title); waitForEl('#alexdone', function() { if (alexFound == '1') { alexDivDetail(); } $('#alexdone').remove(); }); }
OBS detta behöver läggas till i IntranetUserCSS
/* ALEX */ #alextd { /* max-width: 200px; */ float: right; border: 1px solid #e58a37; border-radius: 3px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); padding: 10px; z-index: 1; cursor: pointer; } #alextd table, #alextd td { border: none; background-color: #fff; } #closeAlex { position: absolute; display: inline; right: 2px; top: 0px; font-size: large; color: #999; cursor: pointer; padding: 0 0 30px 30px; } #closeAlex:hover { color: #d00; } #openAlex { color: #666; cursor: pointer; }
OBS detta perlscript behövs för att Alexintegrationen ska fungera
Det behöver även ändras lite i koden för att få in bibliotekets lösenord.
#!/usr/bin/perl -w # Alex implementering # av Johan Sahlberg (johan.sahlberg@tidaholm.se), 2019 # Search string example: # ./alex-test.pl password=[password] writer=Guillou,%20Jan title= librarycard=900559914987A use Modern::Perl; use CGI qw ( -utf8 ); use HTML::Entities; use strict; use warnings; my $query = CGI->new(); my $password = ''; # Fyll i bibliotekets lösenord för Alex my $writer = $query->param('writer'); my $title = $query->param('title'); my $librarycard = $query->param('librarycard'); use LWP::UserAgent; use HTTP::Request; my $ua = new LWP::UserAgent; $ua->agent("Perl API Client/1.0"); # Setup variables my $string="partnerintegration/Writer"; my $host="www.alex.se"; my $protocol="https"; #build the url my $url = "$protocol://$host/$string/" . "?Password=$password&Writer=$writer&Title=%title&LibraryCard=%librarycard"; #my $url = "https://www.alex.se/partnerintegration/Writer/?Password=zryyn05wNN&Writer=Guillou,%20Jan&Title=&LibraryCard=900559914987A"; #Fetch the actual data from the query my $request = HTTP::Request->new("GET" => $url); $request->content_type('application/json'); my $response = $ua->request($request); my $cgi = CGI->new; print $cgi->header(-type => "application/json", -charset => "utf-8"); use JSON; use XML::Simple; # Create the object of XML Simple my $xmlSimple = new XML::Simple(KeepRoot => 1); # Load the xml file in object my $dataXML = $xmlSimple->XMLin($response->content); # use encode json function to convert xml object in json. my $jsonString = encode_json($dataXML); # finally print json print $url; print $jsonString;
Exemplar / Radering
Förikryssad checkbox för att "Radera poster om inga exemplar kvarstår
// ************************************************************************************* // Exemplar - Radering // // Förikryssad checkbox för "Radera poster om inga exemplar kvarstår." // ver 1.0 // ( Kompatibel med 22.05 ) if ($('#tools_batchMod-del').length) { if ($('#del_records').length) { document.getElementById("del_records").checked = true; } }
Låntagare - Ny/Redigera
Generera lånekortsnummer och pin-kod beroende på kommuntillhörighet
// ************************************************************************************* // Låntagare - Ny/redigera // // Generera lånekortsnummer och PIN-kod // // ver 1.1 (2022-10-10) // ( Kompatibel med 22.05 ) if ($('#pat_memberentrygen').length) { $('<span><button id="genCardNo">Generera lånekortsnummer</button></span>').insertAfter('#cardnumber'); $('<span><button id="genPIN">Generera PIN-kod</button></span>').insertAfter('#password'); $('#genCardNo').on('click', function(e) { e.preventDefault(); var patron_attr_personnr = $('input[value="PERSNUMMER"]').siblings('textarea'); var persNr = $(patron_attr_personnr).val(); var y = new Date().getFullYear().toString().slice(2); var m = new Date().getMonth(); if (m < 10) { m = m.toString(10); m = '0' + m; } else { m = m.toString(10); } var d = new Date().getDate().toString(); if (d < 10) { d = d.toString(10); d = '0' + d; } else { d = d.toString(10); } var h = new Date().getHours(); if (h > 9) { h = h.toString(25).toUpperCase(); } else { h = h.toString(10); } var min = new Date().getTime().toString(); min = min.slice(-2); var lib = $('#libraries').find('option:selected').val(); var libcode; switch (lib) { case '8BYO': case '8REG': case 'FGBS': case 'GULL': case 'HOVA': libcode = '1447'; break; case 'HJO': libcode = '1684'; break; case '8BYL': case '8BYM': case 'KABO': case 'KSTR': libcode = '1446'; break; case 'KBRO': case 'LKAV': libcode = '1496'; break; case '8BYQ': case 'MARI': case 'MKRI': case 'MVAN': libcode = '1493'; break; case '8BXQ': case '8BXZ': case '8BYA': case '8BYB': case '8BYC': case '8BYR': case 'SKBO': case 'SKKO': case 'SKPO': case 'SKSB': libcode = '1496'; break; case '8NYB': case 'TIBOALDRE': case 'TIKF': libcode = '1472'; break; case 'TIDA': case 'TKRI': case 'TEKE': case 'TFOR': case 'THOK': case 'TRBG': case 'TVAL': libcode = '1498'; break; case '8BYI': case '8BYS': case 'TORE': libcode = '1473'; break; case 'VAGY': libcode = '1493'; break; case 'SKGY': case 'SKGZ': libcode = '1496'; break; }; if (persNr.length > 0) { var date = persNr.slice(0, 6) + h + libcode + d; } else { var date = y + m + d + h + libcode + min; } //console.log(date); $('#cardnumber').val(date); if ($('#userid').length < 1) { $('#userid').val(date); } // PIN-kod var pin = Math.floor((Math.random() * (9999 - 1000) + 1000)); $('#password, #password2').val(pin); }); $('#genPIN').on('click', function(e) { e.preventDefault(); var pin = Math.floor((Math.random() * (9999 - 1000) + 1000)); $('#password, #password2').val(pin); }); }
Katalog / Reservationer
Dialogruta om man klickar på pilen ned för att lägga personen sist i listan
// ************************************************************************************* // Katalog - Reservationer // // Dialogruta om man klickar på pilen ned för att lägga personen sist i listan // // ver 1.1 (2022-10-13) // ( Kompatibel med 22.05 ) if ($('#circ_request').length) { //var holdstable = $('.holds_table').dataTable(); //holdstable.on('draw.dt', function() { $('#existing_holds td:nth-child(3) a:nth-child(3)').each(function() { $(this).on('click', function(e) { var question = confirm('Är du säker?'); if (question == false) { e.preventDefault(); } }); }); } == Katalog / Reservationer == '''Markerade pausade reservationer''' [[Fil:suspend.JPG]] <pre> // ************************************************************************************* // Katalog - Reservationer // // Markera suspenderade reservationer // // ver 1.2 (2022-10-10) // ( Kompatibel med 22.05 ) if ($('#circ_request').length) { $('form[action="modrequest.pl"] tbody td button').each(function() { $(this).mouseover(function() { $(this).siblings().show(); }); var susStatus = $(this).text(); //console.log(susStatus); if (susStatus.includes('Återuppta')) { $(this).parent().parent().children('td').css('opacity', '0.3'); $(this).parent().parent().children('td:nth-child(5)').append('<span>På paus...</span>'); $(this).parent('td').css('opacity', '1'); $(this).css('border', '2px outset #f00'); } }); }
Katalog / Lokal placering
Tar bort skapandet av lokala placeringar vid katalogsökning
// ************************************************************************************* // Ta bort skapande av Lokala placeringar vid sökning // ver 1.0 (2021-09-16) // Kompatibelt med 20.11 // if ($('#cat_additem').length) { if ($('.is_superlibrarian').length) { waitForEl('.select2-search__field', function() { $(this).on('keydown', function() { $(document).on('DOMNodeInserted', function(e) { if(e.target.localName == "li"){ $('.select2-results li:first').hide(); } }); }); }); } }
Plocklista / Reservationer
Lägger till fältet senast sedd under streckkod i plocklistan
// ************************************************************************************* // Plocklista // // Senast sedd för exemplaret som föreslagits // ver 1.1 // 2022-10-22 // Kompatibel med 22.05 function controlDate(date, today) { var returndate = date.replace(/\D/g, ''); //var thisday = today.replace(/\D/g, ''); var rYear = returndate.slice(0,4); var rMonth = returndate.slice(4,6); var rDay = returndate.slice(6,8); returndate = new Date(); returndate.setFullYear(rYear,rMonth -1,rDay); var diffTime = Math.abs(today - returndate); var diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); if (diffDays < 3) { //console.log('Mindre än 3 dagar'); return true; } else { return false; } } if ($('#circ_view_holdsqueue').length) { var today = new Date(); $('.hq-barcode strong').each(function() { var barcode = $(this).text(); var thisbarcode = $(this).parent(); $.ajax({ url: 'https://' + window.location.hostname + '/api/v1/items/?external_id=' + barcode + '&_match=exact', cache: true, success: function(data) { if(data[0] != null) { var lastseen = data[0].last_seen_date; if (controlDate(lastseen, today)) { $('<div style="margin-top:10px;color:#900">Senast sedd: ' + lastseen + '</div>').appendTo(thisbarcode); } else { $('<div style="margin-top:10px">Senast sedd: ' + lastseen + '</div>').appendTo(thisbarcode); } } } }); }); }