Projekti

Yleinen

Profile

IntranetUserJS

Seuraavia koodinpätkiä voi laitella IntranetUserJS-järjestelmäasetukseen.

Lainaus

Alt+p tulostaa kuitin

/* When returning books, if there is an input with onclick handler that starts with "Dopop",
   allow pressing alt+p to click on that input. That should be a "print a slip" -type thing. */

$(document).ready(function () {
  $(document).bind('keypress', function(e) {
     var code = e.keyCode || e.which;
     if (code == 112 && e.altKey) { /* alt+p */
        e.preventDefault();
        $('body#circ_returns input.print[onclick^=Dopop]').trigger("click");
     }
  });

Palautus

"Maksuja ei peritä käsin peruutetuista varauksista" -täppä päälle

$(document).ready(function () {
  $("#forgivemanualholdsexpire").attr('checked', true);
});

Palautusosion siivousta (Tritonia)

$( document ).ready(function() {
  $( '#circ_returns #return_date_override_fields' ).hide();
  $( '#circ_returns' ).on( 'click', '.show_circ_options_button', function(){
  $( '#return_date_override_fields, .show_circ_options_button' ).toggle();
  });
  $( '#circ_returns #checkin-form #return_date_override_fields' ).before( '<div class="show_circ_options_button"><i class="fa fa-caret-right"></i> Check in options</div><div class="show_circ_options_button" style="display: none;"><i class="fa fa-times"></i> Close check in options</div>');
  $( '#circ_returns #return_date_override_fields' ).prepend( '<h3>Check in options</h3>' );
  $( '#circ_returns #return_date_override_fields' ).append( $( '#circ_returns #checkin_options' ).parents( '.yui-u' ).html() );
  $( '#circ_returns .yui-u > #checkin_options' ).remove();
if( ( $( '#circ_returns #exemptcheck' ).prop("checked") == true ) || ( $( '#circ_returns #return_date_override_remember' ).prop("checked") == true ) || ( $( '#circ_returns #dropboxcheck' ).prop("checked") == true ) || ( $( '#circ_returns #forgivemanualholdsexpire' ).prop("checked") == true ) ) {
  $( '#return_date_override_fields, .show_circ_options_button' ).toggle();
}
});

Kursorin kohdistus oikeaan paikkaan palautussivuilla

$( document ).ready(function() {
  $( '#circ_returns #checkin-form #barcode' ).focus();
});

Piilota Perheen lainat -välilehti

/* Piilota Perheen lainat -välilehti */
$(document).ready(function() { $("#relatives-issues-tab").parent().hide(); });

Asiakkaan muokkausnäyttö

Syntymäajan asettaminen automaattisesti henkilötunnuksesta

Asettaa automaattisesti syntymäajan kun sotu on laitettu, ja poistutaan sotu-kentästä. Tiketti #3796

/* Generoi syntymäaika henkilötunnuksesta */
$(document).ready(function() {
  $('body#pat_memberentrygen.pat input[name="ssn_ssn"]').blur(function() {
     var tmp = $(this).val().trim();
     var re = /^\d{6}[-A]\d{3}[0-9A-Z]$/i;
     if (re.test(tmp)) {
        var day = tmp.substr(0, 2);
        var month = tmp.substr(2, 2);
        var year = tmp.substr(4, 2);
        if (tmp.substr(6, 1) == "-") {
           year = "19" + year;
        } else {
           year = "20" + year;
        }
        $('#dateofbirth').datepicker('setDate', new Date(year+'-'+month+'-'+day));
     }
  });
});

Poista asiakkaan muokkausnäytöllä kentistä ylimääräiset välilyönnit

Näillä kahdella JS:llä voi poistaa asiakkaan muokkausnäytöllä ylimääräiset välilyönnit kentistä. Näytöllä on kahta eriä kenttätyyppiä, minkä vuoksi JS:kin on kaksi. Funktiot poistaa kentistä välilyönnit alusta ja lopusta sekä useammat peräkkäiset välilyönnit välistä.

/* poista asiakkaan muokkausnäytön kentistä välilyönnit alusta, lopusta ja useammat peräkkäiset välilyönnit välistä*/
$(document).ready(function() {
  $('body#pat_memberentrygen.pat input').blur(function() {
     var tmp = $(this).val();
     tmp = tmp.replace(/^ +/, '');
     tmp = tmp.replace(/ +$/, '');
     tmp = tmp.replace(/  */g, ' ');     
     $(this).val(tmp);
  });
});

/* poista asiakkaan muokkausnäytön kentistä välilyönnit alusta, lopusta ja useammat peräkkäiset välilyönnit välistä*/
$(document).ready(function() {
  $('body#pat_memberentrygen.pat textarea').blur(function() {
     var tmp = $(this).val();
     tmp = tmp.replace(/^ +/, '');
     tmp = tmp.replace(/ +$/, '');
     tmp = tmp.replace(/  */g, ' ');     
     $(this).val(tmp);
  });
});

Poista sukunimestä ja etunimestä välilyönnit alusta ja lopusta

Näiden asemesta on ehkä järkevämpää käyttää yläpuolella olevaa skriptiä.

/* poista sukunimestä ja etunimestä välilyönnit alusta ja lopusta */
$(document).ready(function() {
  $('body#pat_memberentrygen.pat input#surname').blur(function() {
     var tmp = $(this).val();
     tmp = tmp.replace(/^ +/, '');
     tmp = tmp.replace(/ +$/, '');
     $(this).val(tmp);
  });
});

$(document).ready(function() {
  $('body#pat_memberentrygen.pat input#firstname').blur(function() {
     var tmp = $(this).val();
     tmp = tmp.replace(/^ +/, '');
     tmp = tmp.replace(/ +$/, '');
     $(this).val(tmp);
  });
});

Aseta syntymäpäiväkalenterin alasvetovalikon vuodet

Raja on 50 edellistä vuotta

/* aseta syntymäpäivä-datepickerin dropdownin vuodet */
$(document).ready(function() {
  $("body#pat_memberentrygen.pat #dateofbirth").datepicker({yearRange: "c-50:c+1"});
});

Kopioi puhelinnumero SMS-tekstiviestinumerokenttään

$(document).ready(function() {
  $("body#pat_memberentrygen.pat input#phone").blur(function() {
    var v = $(this).val().trim();
    var e = $("input#SMSnumber");
    if (e) {
       e.val(v);
    }
  });
});

Siirretään Hetu ja tilastoryhmä toiseen paikkaan asiakkaan tietojen muokkaussivulla

$( document ).ready(function() {
  $( '#pat_memberentrygen #anonothernames' ).parents( 'ol' ).append( '<li>' + $( '#pat_memberentrygen #patron_attr_3' ).parents( 'li' ).html() + '</li>' );
  $( '#pat_memberentrygen #anonothernames' ).parents( 'ol' ).append( '<li>' + $( '#pat_memberentrygen #patron_attr_5' ).parents( 'li' ).html() + '</li>' );
  $( '#pat_memberentrygen #memberentry_patron_attributes #patron_attr_3, #pat_memberentrygen #memberentry_patron_attributes #patron_attr_5' ).parents( 'li' ).remove();
});

Kopioidaan kirjastokortin numero käyttäjätunnus-kenttään

Vaatii, että käyttäjän pitää klikata kirjastokortti-kentän ulkopuolelle (esim. tallentaa tiedot), jotta tieto kopioituu.

$(document).ready(function() {
  $("body#pat_memberentrygen.pat input#cardnumber").blur(function() {
    var v = $(this).val().trim();
    var e = $("input#userid");
    if (e) {
       e.val(v);
    }
  });
});

Tarkka haku

Aineistolajirajauksen tyhjennys

/* Aineistolajirajauksen tyhjennys tarkassa haussa */
function poista_itype_valinnat() {
 $('body#catalog_advsearch #advsearch-itemtypes input[id^="itypephr"]').each(function() { $(this).prop('checked', false)});
}
$(document).ready(function() {
  $('<a onclick="poista_itype_valinnat(); return false;" href="#">Tyhjennä</a>').insertAfter('body#catalog_advsearch #advsearch-itemtypes h4:first-of-type');
});

Aseta hakukenttien oletukseksi nimeke, tekijä, ja sanahaku

Tiketti #494. Valikkojen oletus on asiasana, joten kolmannen arvoa ei tarvitse erikseen asettaa.

$(document).ready(function() {
  var elems = $("body#catalog_advsearch select[name='idx']");
  elems.eq(0).val('ti');
  elems.eq(1).val('au');
});

Luettelointi, niteiden muokkaus ja kausijulkaisut

Luettelointinäkymässä highlight työstettävälle tagille (ja pois kun klikkaa taustaa)

$( document ).ready(function() {
  $( '#cat_addholding .tag, #cat_addbiblio .tag' ).on( 'click', function( event ){
  $( '.tag' ).removeClass( 'new_active_tag' );
  $( this ).addClass( 'new_active_tag' );
event.stopPropagation();
});
  $( '#cat_addholding #doc, #cat_addbiblio #doc' ).on( 'click', function(event){
  $( '.tag' ).removeClass( 'new_active_tag' );
});

Luettelointinäkymässä lisätään lukitulle tagi-inputille lukkoikoni

$( '#cat_addbiblio .tag .subfield_line .input_marceditor.readonly' ).after( '<i class="fa fa-lock"></i>' );

Lisätään holding id näkyville tietueen holdings-listaukseen

$( document ).ready(function() {
  $( '#catalog_detail .summaryholdings_table thead tr' ).append( '<th>Holding ID</th>' );
  $( '#catalog_detail .summaryholdings_table tbody tr' ).each(function(){
  $( this ).append( '<td>' + $( this ).children( '.actions' ).children( '.delete' ).attr( 'href' ).split("holding_id=").pop() + '</td>' );
});

Siirretään item-listaus sivun loppuun itemin muokkaussivulla

$( document ).ready(function() {
  $( '#cat_additem #cataloguing_additem_itemlist' ).prev( 'h1' ).hide();
  $( '#cat_additem #cataloguing_additem_itemlist' ).hide();
  $( '#cat_additem #yui-main' ).append( '<div id="jquery_added_itemlist" style="margin-top: 40px;border-top: 1px solid rgba(0, 0, 0, 0.1);padding-top: 40px;"><h1>' + $( '#cat_additem #cataloguing_additem_itemlist' ).prev( 'h1' ).html() + '</h1>' + $( '#cat_additem #cataloguing_additem_itemlist' ).html() + '</div>' );
});

Poistetaan turhat hakaset "Edit item" -napista

$( document ).ready(function() {
  $( '#catalog_moredetail #catalogue_detail_biblio .yui-g .listgroup h4 a' ).each( function() {
  $( this ).text( $( this ).text().replace('[', '') );
  $( this ).text( $( this ).text().replace(']', '') );
  });
});

Poistetaan ylimääräiset välilyönnit niteen muokkausnäytöllä

/* poista niteen muokkausnäytön kentistä välilyönnit alusta, lopusta ja useammat peräkkäiset välilyönnit välistä*/
$(document).ready(function() {
  $('body#cat_additem.cat input').blur(function() {
     var tmp = $(this).val();
     tmp = tmp.replace(/^ +/, '');
     tmp = tmp.replace(/ +$/, '');
     tmp = tmp.replace(/  */g, ' ');
     $(this).val(tmp);
  });
});

Poistetaan ylimääräiset välilyönnit kausijulkaisujen vastaantotossa

Skripti poistaa ylimääräiset välilyönnit sekä tarkistaa, että sarjanumero on muodossa "vuosi : numero". Jos vuoden jälkeen puuttuu välilyönti, käytännössä se lisätään sinne. Tarkistus tehdään kaikkiin nidekenttiin, mutta korjaus ei "tartu", jos kentän alussa ei ole vuosinumeroa.

/* poista kausijulkaisun vastaanottonäytön kentistä välilyönnit alusta, lopusta ja useammat peräkkäiset välilyönnit välistä*/
$(document).ready(function() {
  $('body#ser_serials-edit.ser input').blur(function() {
     var tmp = $(this).val();
     tmp = tmp.replace(/^ +/, '');
     tmp = tmp.replace(/ +$/, '');
     tmp = tmp.replace(/  */g, ' ');
     tmp = tmp.replace(/(^[1-2][0-9]{3}) *: */, '$1 : ');
     $(this).val(tmp);
  });
});

Yleiset

Piilota Uusinta-välilehti yläosan hakukentästä

$(document).ready(function () {
  $( "li[aria-controls='renew_search']" ).hide();
});

Koha logo ylävalikkoon

$( document ).ready(function() {
  $( '#header #toplevelmenu' ).before( '<a href="/cgi-bin/koha/mainpage.pl" class="new_koha_toplogo" alt="Koha home"><img src="https://www.tritonia.fi/img/koha_logo_2019.png" alt="Koha home"></a>' );
});

Kielivalinta ylävalikkoon ja piilotetaan apusivulinkki

$( document ).ready(function() {
  $( '#header .nav.navbar-nav.pull-right #helper' ).parents( 'li' ).hide();
  $( '#changelanguage' ).hide();
  var $langtext = 'Kieli';
  if( $( '.currentlanguage' ).text() == 'English' ) {
  $langtext = 'Language';
  } else if ( $( '.currentlanguage' ).text() == 'Svenska' ) {
  $langtext = 'Språk';
  }
  $( '#header .nav.navbar-nav.pull-right' ).append( '<li class="dropdown" id="new_lang_dropdown"><a href="#" id="drop99" role="button" class="dropdown-toggle" data-toggle="dropdown">' + $langtext + ' <b class="caret"></b></a><ul class="dropdown-menu" role="menu" aria-labelledby="drop99">' + $( '#changelanguage ul.navbar-nav' ).html() + '</ul>' );
  $( '#header .currentlanguage' ).append( ' <i class="fa fa-check"></i>' );
});

Etusivun ikonien parempi asettelu

$( document ).ready(function() {
  $( '#main_intranet-main #yui-main' ).append( '<div id="new_icon_container"></div>' );
  $( '#main_intranet-main #yui-main .yui-b:first-child .yui-g:first-child' ).hide();
  $( '#main_intranet-main .biglinks-list li' ).each(function(){
  $( '#main_intranet-main #new_icon_container' ).append( $( this ).html() );
});

TODO FIXME

/*
$(document).ready(function() {
var issues_table = $('#issues-table').dataTable();
issues_table.fnSort( [ [0,'asc'] ] );
} ); */

/*
$(document).ready(function() {
$('#issues-table').dataTable({
"aaSorting": []
});
}); */