IntranetUserJS

Från Svenska kohanätverkets wiki
Hoppa till: navigering, sök

Bibliotek Mellansjö

Bibliotek Mellansjös IntranetUserJS


Personnummer - visuell hjälp att se när det är i giltigt format. För bruk i personaldelen. 

Gör rutan för personnummer: 
* röd - om formatet på det som står i fältet inte stämmer med ett personnummer.
* grön - om formatet på det står i fältet stämmer med ett personnummer.
* ofärgad - om rutan är tom.

Klistra in i syspref IntranetUserJS för att använda.
OBS! Ändra alla förekomster av patron_attr_4 till det id som ert personnummer fält har i HTML-koden.
Gå till /cgi-bin/koha/admin/patron-attr-types.pl för att skapa personnummer-attribut om ni inte har det.
Aktivera sedan syspref för extendet patron attributes om ni inte redan har det på (Koha ger en varning isf).

// Koden ger en visuell hjälp att se att formatet stämmer men kontrollerar inte mot folkbokföringen att det är ett giltigt personnummer.

$(document).ready(function () {
    // Kör bara koden på sidan där låntagarna uppdaterar sina uppgifter
    if ($("body").is("#pat_memberentrygen")) {
        // Bevaka fältet för personnummer efter förändringar
        $("#patron_attr_4").on("input", function () {
            if ($(this).data("lastval") !== $(this).val()) {
                $(this).data("lastval", $(this).val());
                var VAL = $("#patron_attr_4").val();
                // Ett reguljärt uttryck för att matcha mönstret hos personnummer
                var personnummerPattern = /^(?:19|[2-9][0-9]){0,1}(?:[0-9]{2})(?!0229|0230|0231|0431|0631|0931|1131)(?:(?:0[1-9])|(?:1[0-2]))(?:(?:0[1-9])|(?:1[0-9])|(?:2[0-9])|(?:3[01]))[-+](?!0000)(?:[0-9]{4})$/;
        
                // Här logiken för kontroll av själva personnumret
                if (personnummerPattern.test(VAL)) {
                    // Visa någon indikator för att allt är ok.
                    $("#patron_attr_4").css("border-color", "green");
                    $("#patron_attr_4").css("background-color", "#d8ffe0");
                }
 
                else if ($("#patron_attr_4").val().length === 0) {
                    //alert("Inuti else if length 0");
                    $("#patron_attr_4").css("border-color", "initial");
                }
 
                else {
                    // Visa en indikator på att det finns problem med personnumret.
                    $("#patron_attr_4").css("border-color", "red");
                    $("#patron_attr_4").css("background-color", "#ffd8d8");                    
                }
            }
        });
    }
});
Tar bort sista kolumnen i reservationstabellen (#hold-table)

Koha version: 16.05.04.000
Av: Magnus Pettersson, LTU - magnus.pettersson@ltu.se

Problemet med det flesta tabeller i Koha är att de visas med hjälp av ajax. Det gör att vi inte kan använda oss enbart av "$(document).ready" funktionen för att ändra på sidan. Utan sidan måste först ladda färdigt innan vi kan ändra.

I mitt fall gick det utmärkt att ändra table header (th) men inte datan i tabellen (td) eftersom tabellen laddas vid två tillfällen. Lösningen blev att kolla efter DOMSubtreeModified event på table id. När tabellen är uppdaterad så fungerar det utmärkt att uppdatera sidan.

$(document).ready(function () {
  $('#holds-table').bind("DOMSubtreeModified", function() {
    $('#holds-table tr').find('td:eq(8),th:eq(8)').remove();
  });
});

Markerar raden med det aktuella exemplaret efter sökt streckkod

Koha-version: 17.11.04.000
Av: Johan Sahlberg, Bibliotek Mellansjö - johan.sahlberg@tidaholm.se


$(document).ready(function () {
  $('#cat-search-block .submit').on('click', function(){  // Vanlig katalogsökning
    $('input[type="text"]').each(function(){    
      var id = $(this).attr('id');
      var value = $(this).val();
      localStorage.setItem(id, value);
    });   
  });

  $('form[action="search.pl"] .btn').on('click', function(){ // Avancerad sökning
    $('input[type="text"]').each(function(){    
      var value = $(this).val();
      if (value !== '') {
        localStorage.setItem('search-form', value);}
    });   
  });

  $('td a[href^="/cgi-bin/koha/catalogue/moredetail.pl"]').text(function () {
    var storedsearch = localStorage.getItem('search-form');
    if ($(this).text() == storedsearch) {
      $(this).closest('tr').children().css('background-color','#d4efb7');
      localStorage.removeItem('search-form');}
  });
});


Knapp med "Senaste låntagare"

Koha-version: 17.11.04.000
Av: Johan Sahlberg, Bibliotek Mellansjö - johan.sahlberg@tidaholm.se

Sparar senast laddade låntagare i webbläsaren och skapar därefter en knapp för att man snabbt ska kunna ladda den senaste låntagaren.
När man kommer med muspekaren över knappen visas vilken låntagaren är till höger om knappen.
Även en rensa-knapp finns ifall man vill ta bort manuellt.

$(document).ready(function () {
  $('div.patroninfo h5').each(function(){  
    var value = $(this).text();
    var value2 = value.substring(value.lastIndexOf("(")+1,value.lastIndexOf(")"));
    sessionStorage.setItem('lastpatron', value);
    sessionStorage.setItem('cardnumber', value2);
  });   

  if (sessionStorage["cardnumber"]) { // Visa knappen ifall det finns en sparad låntagare
    var lpatron = sessionStorage.getItem('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
    var lpatronnr = sessionStorage.getItem('cardnumber');
    $('input[id="findborrower"]').attr("value", lpatronnr);
  });

  $('#clearlpatron').on('click', function(event){ // Rensa senaste låntagare
    sessionStorage.removeItem('cardnumber');
    sessionStorage.removeItem('lastpatron');
    $('#lastpatron').hide();
    $('#clearlpatron').hide();
  });
});


Musik- och teaterbiblioteket

Tillagt 2021-11-08 av Marie Hedbom, Musik- och teaterbiblioteket

Ändra namn på fält i redigering av exemplarpost. Obs, slår igenom oavsett om man byter språk till tex engelska.

//byter namn på fältets namn
$("#cataloguing_additem_newitem label:contains('0 - Withdrawn status')").text('0 - Begränsat material');
$("#cataloguing_additem_newitem label:contains('2 - Source of classification or shelving scheme')").text('2 - Klassifikationssystem');
$("#cataloguing_additem_newitem label:contains('3 - Materials specified (bound volume or other part')").text('3 - Material specificerat');
$("#cataloguing_additem_newitem label:contains('4 - Damaged status')").text('4 - Skadestatus');
$("#cataloguing_additem_newitem label:contains('5 - Use restrictions')").text('5 - Restriktioner');
$("#cataloguing_additem_newitem label:contains('7 - Not for loan')").text('7 - Inte för lån');
$("#cataloguing_additem_newitem label:contains('8 - Collection code')").text('8 - Samling');
$("#cataloguing_additem_newitem label:contains('c - Shelving location')").text('c - Placering');
$("#cataloguing_additem_newitem label:contains('h - Serial Enumeration / chronology')").text('h - Tidskriftsnummer');
$("#cataloguing_additem_newitem label:contains('j - Shelving control number')").text('j - Statistik stämmor');
$("#cataloguing_additem_newitem label:contains('o - Full call number')").text('o - Hyllplacering');
$("#cataloguing_additem_newitem label:contains('p - Barcode')").text('p - Streckkod');
$("#cataloguing_additem_newitem label:contains('t - Copy number')").text('t - Exemplarnummer');
$("#cataloguing_additem_newitem label:contains('x - Non-public note')").text('x - Intern anmärkning');
$("#cataloguing_additem_newitem label:contains('y - Koha item type')").text('y - Exemplartyp');
$("#cataloguing_additem_newitem label:contains('z - Public note')").text('z - Offentlig anmärkning');

Dölja fält som vi inte vill visa i exemplarredigeringen. Obs, ursprungligen från Mellansjö så de ska ha credden.

//döljer onödiga fält i exemplarredigeringen
if ($('#cat_additem').length) {

  var hiddenArr = ['a','b','d','e','f','g','i','v','w','2'];

  for (i = 0; i < hiddenArr.length; i++) {

    $('.subfield_line label').each(function() {
      if ($(this).text().charAt(0) == hiddenArr[i]) {
        $(this).closest('li').hide();
      };
    });
  };
}; 

Skriva ut funktionskoder så de blir läsliga/begripliga för användaren. Bara att kopiera och skriva in för varje funktionskod som används.

//Skriver ut funktionskoder i både resultatlistan och på detaljsidan
$(".relatorcode").text(function () {
    return $(this).text().replace(/\bedt(\.|\b)/, "redaktör"); 
});

Rödmarkera fält i tex låntagar- eller exemplarpost utan att det är obligatoriska fält.

//Rödmarkerar viktiga fält i exemplarposten
$("#cataloguing_additem_newitem label:contains('o - Hyllplacering')").addClass("required");

---

//Rödmarkerar statistikfälten Kön och Län även om det går att spara även utan att fylla i
$("#memberentry_patron_attributes label[for='patron_attr_1']").addClass("required");
  //style attribute in red since it's required
$("#memberentry_patron_attributes label[for='patron_attr_2']").addClass("required");
$("#memberentry_identity label:contains('Födelsedatum: ')").addClass("required");
$("#memberentry_mainaddress label:contains('Land: ')").text("Land (inte Sve): ");
//$("#memberentry_library_management label[for='branchcode']").hide();  
$("#memberentry_mainaddress label[for='address']").addClass("required");
$("#memberentry_mainaddress label[for='zipcode']").addClass("required");
$("#memberentry_mainaddress label[for='city']").addClass("required");
$("#memberentry_contact label[for='phone']").addClass("required");
$("#memberentry_contact label[for='email']").addClass("required");
$("#memberentry_library_management label[for='cardnumber']").addClass("required");
$("#memberentry_library_management label[for='sort2']").addClass("required");

Irriterande popup som kommer om låntagaren har kategorin NY och därmed inte är helt klar

//Ger popupmeddelande om låntagarkategorin är NY med uppmaning att uppgradera kontot
if ($('div.patroninfo > ul.patronbriefinfo > li.patroncategory:contains("NY")').length > 0) {
                alert('Uppgradera kontot innan du lånar ut material till låntagaren!');
            }