IntranetUserJS/mellansjo

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

Väntfunktionen

Lägg denna högst upp i intranetuserjs under $(document).ready(function() {, Viktig funktion för att scripten ska fungera.

// Vänt-funktion
var waitForEl = function(selector, callback) {
  if (jQuery(selector).length) {
    callback();
  } else {
    setTimeout(function() {
      waitForEl(selector, callback);
    }, 100);
  }
};


Periodika / Ta emot

Lättare att se hembibliotekets prenumeration genom att markera den grön och förstora rutan vid sökning. ver 1 2019-03-22 Periodika.png

if ($('#ser_serials-home').length) {
  waitForEl('.dataTables_wrapper', function() {
    var logbib = localStorage.getItem('loggedinbranch');
    $('.dataTables_wrapper td:nth-child(5)').each(function() {
      if ($(this).text().indexOf(logbib) > -1) {
        $(this).closest('tr').children().css('background-color','#d4efb7');
        $(this).closest('tr').children().css('padding','30px 4px');
      };
    });
  });
};

Katalog / Sökning

Skapar språkfält vid enkel sökning i katalogen. Språk hämtas från 008 och 040 fler språk går att lägga till.

Sprakfalt.png

if ($('#header_search').length) {

  $('<select id="language-limit" name="limit" style="margin-left:3px;"><option value="">Alla språk</option><option value="ln,rtrn:alb">Albanska</option><option value="ln,rtrn:ara">Arabiska</option><option value="ln,rtrn:bos">Bosniska</option><option value="ln,rtrn:dan">Danska</option><option value="ln,rtrn:eng">Engelska</option><option value="ln,rtrn:fin">Finska</option><option value="ln,rtrn:fre">Franska</option><option value="ln,rtrn:heb">Hebreiska</option><option value="ln,rtrn:ita">Italienska</option><option value="ln,rtrn:hrv">Kroatiska</option><option value="ln,rtrn:chi">Kinesiska</option><option value="ln,rtrn:nob">Norskt bokmål</option><option value="ln,rtrn:nno">Nynorsk</option><option value="ln,rtrn:per">Persiska</option><option value="ln,rtrn:pol">Polska</option><option value="ln,rtrn:prs">Dari</option><option value="ln,rtrn:por">Portugisiska</option><option value="ln,rtrn:rum">Romani</option><option value="ln,rtrn:rus">Ryska</option><option value="ln,rtrn:srp">Serbiska</option><option value="ln,rtrn:slo">Slovakiska</option><option value="ln,rtrn:slv">Slovenska</option><option value="ln,rtrn:som">Somaliska</option><option value="ln,rtrn:spa">Spanska</option><option value="ln,rtrn:swe">Svenska</option><option value="ln,rtrn:tha">Thailändska</option><option value="ln,rtrn:tgl">Tagalog </option><option value="ln,rtrn:tir">Tigriska</option><option value="ln,rtrn:tur">Turkiska</option><option value="ln,rtrn:ger">Tyska</option><option value="ln,rtrn:urd">Urdu</option></select>').insertAfter('#header_search #search-form');

};


Cirkulation / Återlämning

Meddelande om återlämnad Magasin-bok.

Magasinsmeddelande.png

if ($('#circ_returns').length) {

  if ($('#checkedintable tbody tr:first .ci-type').text().indexOf('Magasin') > -1) {
    $('#bd .yui-g:first').append('<div class="dialog message"><h3 class="problem" style="margin:25px;color:#990000">Detta exemplar tillhör Magasin</hr></div>');
  };
};


Cirkulation / Omlån

Skapar en egen låna om-knapp för varje utlånat exemplar.

Omlanknapp.PNG

// IntranetUserJS

if ($('#circ_circulation').length) {

  waitForEl('.renew', function() {
    $('.renew:visible').each(function() {
      var itemId = $(this).attr('value');
      $(this).parent().parent().append('<button class="btn btn-default btn-xs renewlink" value="' + itemId + '">Låna om</a>');
    });
    $('.renewlink').on('click', function(event) {
      event.preventDefault();
      var id = $(this).attr('value');
      console.log('Button pressed! - ' + id);
      $(".renew:visible").prop("checked", false);
      $(this).siblings().find('.renew').prop('checked', true);
      $('#RenewCheckinChecked').trigger('click');
      $(".renew:visible").prop("checked", true);
    });

    $('.renewals-disabled:visible').each(function() {
       $(this).parent().append('<i class="fa fa-frown-o" style="float:right;font-size:x-large;color:#d0d0d0;"></i>');
    });

  });
};

// IntranetUserCSS

/* Lånaom-knapp */
.renewlink {
  font-size: smaller !important;
}

.renewals-disabled {
  color: #c00;
}

Katalog / Reservationer

Hämta mer information om reservationer på detaljsidan.

Reservationsinfo.PNG


if ($('#catalog_detail').length) {
  var bibnr = $('input[name="bib"]').attr('value');
  if ($('.number_box').length) {
    $.get('https://' + window.location.hostname + '/cgi-bin/koha/svc/report?id=463&sql_params=' + bibnr, "json").done(function(data) {

      function countResStat(type) { 
        val = 0;
        for (i = 0;i < data.length;i++) {
          if (data[i][2] === type) {
            val = val + 1;
          };
        };
        return val;
      };
       
      var res = data[data.length - 1][3];
      var trans = countResStat('T');
      var waiting = countResStat('W');

      if (res > 0) {
        $('.number_box').parent().append('<span class="resDetail">Antal i kö: ' + res + '</span>');
      };
      if (trans > 0) {
        $('.number_box').parent().append('<span class="resDetail">På väg: ' + trans + '</span>');
      };
      if (waiting > 0) {
        $('.number_box').parent().append('<span class="resDetail">Aviserade: ' + waiting + '</span>');
      };
    });
  };
};


Katalog / Shelving location

Lägg till en pil och ändra färg på shelving locations på detaljsidan.

Shelvinglocationpil.PNG


if ($('#bibliodetails').length) {
  $('.shelvingloc').each(function() {
    if ($(this).text().length) {
      var loc = $(this).text();
      $(this).html('<span class="pil">↳ </span>' + loc);
    };
  });
};


Katalog / postsammanslagning

Skapar en sammanslagningsknapp på resultatsidan för enklare hantering av dublettposter.

Sammanslagning.PNG


if ($('#catalog_results').length) {

  $('#selection_ops').append('<div class="btn-group"><button id="mergeposts" class="btn btn-default btn-xs" type="submit"><i class="fa fa-compress"></i> Slå samman</button></div>');

  $('#mergeposts').on('click', function() {

    var selIDs = [];
    var link = 'https://' + window.location.hostname + '/cgi-bin/koha/cataloguing/merge.pl?';

    $('.selection').each(function() {
      if ($(this).is(':checked')) {
        selIDs.push($(this).attr('value'));
      };
    });

    for (i = 0; i < selIDs.length; i++) {
      link = link + 'biblionumber=' + selIDs[i] + '&';
    }

    link = link.substring(0, link.length -1);

    if (selIDs.length > 1) {
      window.open(link);
    } else {
      alert('Välj vilka poster du vill slå samman först...');
    };
  });
};


Katalog / Knappar

Skapar knappar för Kopiera streckkod, Återlämna exemplar och Radera exemplar bredvid streckkoden i katalogen.

Knapparstreckkod.PNG


if ($('#catalog_detail').length) {

  $('#holdings_table tbody tr td:nth-child(9), #otherholdings_table tbody tr td:nth-child(9)').each(function() {

  $(this).append('<br /><a href="#" class="btn btn-default btn-xs bcopy" data-toggle="tooltip" title="Kopiera"><i class="fa fa-copy"></i></a><a href="#" class="btn btn-default btn-xs breturn" data-toggle="tooltip" title="Återlämna"><i class="fa fa-sign-in"></i></a><a href="#" class="btn btn-default btn-xs btrash" data-toggle="tooltip" title="Radera"><i class="fa fa-trash"></i></a>');

  });

// Kopiera

  $('.bcopy').on('click', function(event) {
    event.preventDefault();

    $('a').removeClass('bcSel');
    $(this).siblings('a:first').addClass('bcSel');

    var bcLink = document.querySelector('.bcSel');
    var range = document.createRange();
    range.selectNode(bcLink);
    window.getSelection().addRange(range);

    try {
      document.execCommand('copy');
    } catch(e) {
      alert(e);
    };

    window.getSelection().removeAllRanges();
  });

// Återlämna

  $('.breturn').on('click', function(event) {
    event.preventDefault();
    var bc = $(this).siblings('a:first').text();
     if(confirm("Är du säker på att du vill återlämna detta exemplaret? \n\r\n\r" + bc)){
      window.location.href = 'https://' + window.location.hostname + '/cgi-bin/koha/circ/returns.pl?barcode=' + bc;
    };
  });

// Radera

  $('.btrash').on('click', function(event) {
    event.preventDefault();
    var bc = $(this).siblings('a:first').text();
    var itemnr = $(this).siblings('a:first').attr('href');
    itemnr = itemnr.slice(itemnr.indexOf('itemnumber=') + 11, itemnr.indexOf('&biblionumber'));
    var bibnr = $('.yui-b #menu li:first a').attr('href');
    bibnr = bibnr.slice(bibnr.indexOf('biblionumber') + 13);
    var link = 'https://' + window.location.hostname + '/cgi-bin/koha/tools/batchMod.pl?op=show&del=1&itemnumber=' + itemnr + '&src=%2Fcgi-bin%2Fkoha%2Fcatalogue%2Fdetail.pl%3Fbiblionumber%3D' + bibnr;

    if (confirm("Är du säker på att du vill radera detta exemplaret? \n\r\n\r" + bc)) {
      window.location.href = link;
    };
  });
};


Cirkulation / Knappar

Skapar knappar för Kopiera streckkod och Återlämna bredvid streckkod på utlåningssidan.

Knapparutlaning.PNG


if ($('#circ_circulation').length | $('#pat_moremember').length) {

  waitForEl('#issues-table tbody tr td:nth-child(2)', function() {

    $('#issues-table tbody tr td:nth-child(2)').each(function() {
      $(this).append('</br><a href="#" class="btn btn-default btn-xs bcopy" data-toggle="tooltip" title="Kopiera"><i class="fa fa-copy"></i><a href="#" class="btn btn-default btn-xs breturn" data-toggle="tooltip" title="Återlämna"><i class="fa fa-sign-in"></i></a>');
    });

// Kopiera

    $('.bcopy').on('click', function(event) {
      event.preventDefault();

      var isSupported = document.queryCommandSupported('copy');
      console.log('Går kopiera? = ' + isSupported);

      $('td a').removeClass('bcSel');
      $(this).siblings('a:first').addClass('bcSel');

      var bcLink = document.querySelector('.bcSel');
      var range = document.createRange();
      range.selectNode(bcLink);
      window.getSelection().addRange(range);

      try {
        document.execCommand('copy');
      } catch(e) {
        alert(e);
      };

      window.getSelection().removeAllRanges();

    });

// Återlämna
  
    $('.breturn').on('click', function(event) {
      event.preventDefault();
      var bc = $(this).siblings('a:first').text();

      if(confirm("Är du säker på att du vill återlämna detta exemplaret? \n\r\n\r" + bc)){
        window.location.href = 'https://' + window.location.hostname + '/cgi-bin/koha/circ/returns.pl?barcode=' + bc;
      };

    });
  });
};



Katalog / Visning

Visa antal exemplar på flikarna för både egna och andra bibliotek.

Flikexemplar.PNG


$('#holdings').each(function() {

  var nrex = $('#holdings tbody tr').length;
  var nroex = $('#otherholdings tbody tr').length;  

  $('a[href="#holdings"]').append('<span> (' + nrex + ')</span>');

  $('a[href="#otherholdings"]').append('<span> (' + nroex + ')</span>');
  
});



Katalog / 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.


$('#subfield952o input:first').change(function() {

  if ($(this).val().indexOf('Hcf') > -1 | $(this).val().indexOf('Hcg') > -1 | ($(this).val().startsWith('u',0) && $(this).val().charAt(1) === $(this).val().charAt(1).toUpperCase()) | $(this).val().indexOf(',u') > -1 ) {

    $('select[id^="tag_952_subfield_y"]').select2('val','BARNBOK');

  };

});