IntranetUserJS

Från Svenska kohanätverkets wiki
Hoppa till navigering Hoppa till sök
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();
  });
});