Bugzilla – Attachment 46520 Details for
Bug 14610
Add ability to place article requests in Koha
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 14610 - Add and update scripts
Bug-14610---Add-and-update-scripts.patch (text/plain), 178.38 KB, created by
Kyle M Hall (khall)
on 2016-01-12 12:10:17 UTC
(
hide
)
Description:
Bug 14610 - Add and update scripts
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2016-01-12 12:10:17 UTC
Size:
178.38 KB
patch
obsolete
>From e40d6cacc89f60d1ea3bfdb6eba700267b317ac5 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 7 Oct 2015 12:26:14 -0400 >Subject: [PATCH] Bug 14610 - Add and update scripts > >Signed-off-by: Jennifer Schmidt <jschmidt@switchinc.org> >--- > Koha/Item.pm | 2 +- > admin/smart-rules.pl | 2 + > circ/article-request-slip.pl | 67 ++++ > circ/article-requests.pl | 47 +++ > circ/request-article-do.pl | 70 ++++ > circ/request-article.pl | 53 +++ > .../prog/en/includes/biblio-view-menu.inc | 4 + > .../en/modules/admin/preferences/circulation.pref | 43 +++ > .../prog/en/modules/admin/smart-rules.tt | 21 ++ > .../prog/en/modules/catalogue/results.tt | 3 + > .../prog/en/modules/circ/article-requests.tt | 365 +++++++++++++++++++++ > .../prog/en/modules/circ/circulation-home.tt | 5 + > .../prog/en/modules/circ/request-article.tt | 336 +++++++++++++++++++ > .../intranet-tmpl/prog/en/modules/intranet-main.tt | 9 + > koha-tmpl/opac-tmpl/bootstrap/css/opac.css | 2 +- > .../bootstrap/en/includes/opac-detail-sidebar.inc | 10 + > .../bootstrap/en/modules/opac-request-article.tt | 214 ++++++++++++ > .../opac-tmpl/bootstrap/en/modules/opac-results.tt | 6 + > .../opac-tmpl/bootstrap/en/modules/opac-user.tt | 95 ++++++ > koha-tmpl/opac-tmpl/bootstrap/less/opac.less | 18 + > mainpage.pl | 11 +- > opac/opac-article-request-cancel.pl | 47 +++ > opac/opac-request-article-do.pl | 69 ++++ > opac/opac-request-article.pl | 52 +++ > opac/opac-user.pl | 3 +- > svc/article_request | 63 ++++ > 26 files changed, 1612 insertions(+), 5 deletions(-) > create mode 100755 circ/article-request-slip.pl > create mode 100755 circ/article-requests.pl > create mode 100755 circ/request-article-do.pl > create mode 100755 circ/request-article.pl > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/circ/article-requests.tt > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/circ/request-article.tt > create mode 100644 koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-request-article.tt > create mode 100755 opac/opac-article-request-cancel.pl > create mode 100755 opac/opac-request-article-do.pl > create mode 100755 opac/opac-request-article.pl > create mode 100755 svc/article_request > >diff --git a/Koha/Item.pm b/Koha/Item.pm >index 17526ea..6a69d37 100644 >--- a/Koha/Item.pm >+++ b/Koha/Item.pm >@@ -146,7 +146,7 @@ sub article_request_type { > : undef; > my $borrowertype = $borrower->categorycode; > my $itemtype = $self->effective_itemtype(); >- my $rules = GetIssuingRule( $borrowertype, $itemtype, $branchcode ); >+ my $rules = C4::Circulation::GetIssuingRule( $borrowertype, $itemtype, $branchcode ); > > return $rules->{article_requests} || q{}; > } >diff --git a/admin/smart-rules.pl b/admin/smart-rules.pl >index 9c903da..25b1507 100755 >--- a/admin/smart-rules.pl >+++ b/admin/smart-rules.pl >@@ -144,6 +144,7 @@ elsif ($op eq 'add') { > my $hardduedatecompare = $input->param('hardduedatecompare'); > my $rentaldiscount = $input->param('rentaldiscount'); > my $opacitemholds = $input->param('opacitemholds') || 0; >+ my $article_requests = $input->param('article_requests') || 'no'; > my $overduefinescap = $input->param('overduefinescap') || undef; > my $cap_fine_to_replacement_price = $input->param('cap_fine_to_replacement_price') eq 'on'; > $debug and warn "Adding $br, $bor, $itemtype, $fine, $maxissueqty, $maxonsiteissueqty, $cap_fine_to_replacement_price"; >@@ -174,6 +175,7 @@ elsif ($op eq 'add') { > opacitemholds => $opacitemholds, > overduefinescap => $overduefinescap, > cap_fine_to_replacement_price => $cap_fine_to_replacement_price, >+ article_requests => $article_requests, > }; > > my $issuingrule = Koha::IssuingRules->find({categorycode => $bor, itemtype => $itemtype, branchcode => $br}); >diff --git a/circ/article-request-slip.pl b/circ/article-request-slip.pl >new file mode 100755 >index 0000000..9d4008b >--- /dev/null >+++ b/circ/article-request-slip.pl >@@ -0,0 +1,67 @@ >+#!/usr/bin/perl >+ >+# Copyright 2015 ByWater Solutions >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use CGI qw( -utf8 ); >+ >+use C4::Context; >+use C4::Output; >+use C4::Auth; >+use Koha::ArticleRequests; >+ >+my $cgi = new CGI; >+ >+my $id = $cgi->param('id'); >+ >+my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >+ { >+ template_name => "circ/printslip.tt", >+ query => $cgi, >+ type => "intranet", >+ authnotrequired => 0, >+ flagsrequired => { circulate => "circulate_remaining_permissions" }, >+ } >+); >+ >+my $ar = Koha::ArticleRequests->find($id); >+ >+$template->param( article_request => $ar ); >+ >+my $slip = C4::Letters::GetPreparedLetter( >+ module => 'circulation', >+ letter_code => 'AR_PRINT', >+ message_transport_type => 'print', >+ tables => { >+ article_requests => $ar->id, >+ borrowers => $ar->borrowernumber, >+ biblio => $ar->biblionumber, >+ biblioitems => $ar->biblionumber, >+ items => $ar->itemnumber, >+ branches => $ar->branchcode, >+ }, >+); >+ >+$template->param( >+ slip => $slip->{content}, >+ caller => 'article-request', >+ plain => !$slip->{is_html}, >+); >+ >+output_html_with_http_headers $cgi, $cookie, $template->output; >diff --git a/circ/article-requests.pl b/circ/article-requests.pl >new file mode 100755 >index 0000000..f716f53 >--- /dev/null >+++ b/circ/article-requests.pl >@@ -0,0 +1,47 @@ >+#!/usr/bin/perl >+ >+# Copyright 2015 ByWater Solutions >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use CGI qw ( -utf8 ); >+ >+use C4::Auth; >+use C4::Output; >+use Koha::ArticleRequests; >+ >+my $query = new CGI; >+my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >+ { >+ template_name => "circ/article-requests.tt", >+ query => $query, >+ type => "intranet", >+ authnotrequired => 0, >+ flagsrequired => { circulate => "circulate_remaining_permissions" }, >+ } >+); >+ >+my $branchcode = $query->param('branchcode') || C4::Context->userenv->{'branch'}; >+ >+$template->param( >+ branchcode => $branchcode, >+ article_requests_open => scalar Koha::ArticleRequests->open($branchcode), >+ article_requests_processing => scalar Koha::ArticleRequests->processing($branchcode), >+); >+ >+output_html_with_http_headers $query, $cookie, $template->output; >diff --git a/circ/request-article-do.pl b/circ/request-article-do.pl >new file mode 100755 >index 0000000..f9a2693 >--- /dev/null >+++ b/circ/request-article-do.pl >@@ -0,0 +1,70 @@ >+#!/usr/bin/perl >+ >+# Copyright ByWater Solutions 2015 >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use CGI qw ( -utf8 ); >+ >+use C4::Auth; >+use C4::Output; >+ >+use Koha::ArticleRequest; >+ >+my $cgi = new CGI; >+ >+my ( $template, $librarian, $cookie, $flags ) = get_template_and_user( >+ { >+ template_name => "circ/request-article.tt", >+ query => $cgi, >+ type => "intranet", >+ authnotrequired => 0, >+ flagsrequired => { circulate => 'circulate_remaining_permissions' }, >+ } >+); >+ >+my $biblionumber = $cgi->param('biblionumber'); >+my $borrowernumber = $cgi->param('borrowernumber'); >+my $branchcode = $cgi->param('branchcode'); >+ >+my $itemnumber = $cgi->param('itemnumber') || undef; >+my $title = $cgi->param('title') || undef; >+my $author = $cgi->param('author') || undef; >+my $volume = $cgi->param('volume') || undef; >+my $issue = $cgi->param('issue') || undef; >+my $date = $cgi->param('date') || undef; >+my $pages = $cgi->param('pages') || undef; >+my $chapters = $cgi->param('chapters') || undef; >+ >+my $ar = Koha::ArticleRequest->new( >+ { >+ borrowernumber => $borrowernumber, >+ biblionumber => $biblionumber, >+ branchcode => $branchcode, >+ itemnumber => $itemnumber, >+ title => $title, >+ author => $author, >+ volume => $volume, >+ issue => $issue, >+ date => $date, >+ pages => $pages, >+ chapters => $chapters, >+ } >+)->store(); >+ >+print $cgi->redirect("/cgi-bin/koha/circ/request-article.pl?biblionumber=$biblionumber"); >diff --git a/circ/request-article.pl b/circ/request-article.pl >new file mode 100755 >index 0000000..dc84318 >--- /dev/null >+++ b/circ/request-article.pl >@@ -0,0 +1,53 @@ >+#!/usr/bin/perl >+ >+# Copyright 2015 ByWater Solutions >+# Copyright 2000-2002 Katipo Communications >+# Copyright 2011 Catalyst IT >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use C4::Output; >+use C4::Auth; >+use Koha::Biblios; >+use Koha::Borrowers; >+use Koha::ArticleRequests; >+ >+my $input = new CGI; >+ >+my ( $template, $borrowernumber, $cookie, $flags ) = get_template_and_user( >+ { >+ template_name => "circ/request-article.tt", >+ query => $input, >+ type => "intranet", >+ authnotrequired => 0, >+ flagsrequired => { circulate => 'circulate_remaining_permissions' }, >+ } >+); >+ >+my $biblionumber = $input->param('biblionumber'); >+my $patron_cardnumber = $input->param('patron_cardnumber'); >+ >+my $biblio = Koha::Biblios->find($biblionumber); >+my $patron = $patron_cardnumber ? Koha::Borrowers->find( { cardnumber => $patron_cardnumber } ) : undef; >+ >+$template->param( >+ biblio => $biblio, >+ patron => $patron, >+); >+ >+output_html_with_http_headers $input, $cookie, $template->output; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc >index 4258aa3..645ccd6 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/biblio-view-menu.inc >@@ -1,3 +1,4 @@ >+[% USE Koha %] > [% USE Biblio %] > [% SET biblio_object_id = object || biblionumber %] > <div id="menu"> >@@ -26,6 +27,9 @@ > [% IF ( holdsview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% biblio_object_id %]">Holds ([% Biblio.HoldsCount( biblio_object_id ) %])</a></li> > [% END %] > [% IF ( EasyAnalyticalRecords ) %][% IF ( analyze ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio_object_id %]&analyze=1">Analytics</a></li>[% END %] >+ [% IF Koha.Preference('ArticleRequests') %] >+ [% IF ( article_requests_view ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/circ/request-article.pl?biblionumber=[% IF ( object ) %][% object %][% ELSE %][% biblionumber %][% END %]">Article requests</a></li> >+ [% END %] > > [% IF ( subscriptionsnumber ) %]<li><a href="/cgi-bin/koha/serials/serials-search.pl?searched=1&biblionumber=[% biblio_object_id %]">Subscription(s)</a></li>[% END %] > </ul> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >index d9c7e25..24989a7 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref >@@ -722,3 +722,46 @@ Circulation: > - "Patron categories allowed to checkout in a batch" > - pref: BatchCheckoutsValidCategories > - "(list of patron categories separated with a pipe '|')" >+ Article Requests: >+ - >+ - pref: ArticleRequests >+ choices: >+ yes: Enable >+ no: "Don't enable" >+ - patrons to place article requests. >+ - >+ - For records that are record level or item level requestable, make the following fields mandatory >+ - pref: ArticleRequestsMandatoryFields >+ multiple: >+ title: Title >+ author: Author >+ volume: Volume >+ issue: Issue >+ date: Date >+ pages: Pages >+ chapters: Chapters >+ - >+ - >+ - For records that are only record level requestable, make the following fields mandatory >+ - pref: ArticleRequestsMandatoryFieldsRecordOnly >+ multiple: >+ title: Title >+ author: Author >+ volume: Volume >+ issue: Issue >+ date: Date >+ pages: Pages >+ chapters: Chapters >+ - >+ - >+ - For records that are only item level requestable, make the following fields mandatory >+ - pref: ArticleRequestsMandatoryFieldsItemOnly >+ multiple: >+ title: Title >+ author: Author >+ volume: Volume >+ issue: Issue >+ date: Date >+ pages: Pages >+ chapters: Chapters >+ - >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt >index e7cc158..d0976d4 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt >@@ -172,6 +172,7 @@ for="tobranch"><strong>Clone these rules to:</strong></label> <input type="hidde > <th>Holds allowed (count)</th> > <th>On shelf holds allowed</th> > <th>Item level holds</th> >+ <th>Article requests</th> > <th>Rental discount (%)</th> > <th colspan="2"> </th> > </tr> >@@ -250,6 +251,17 @@ for="tobranch"><strong>Clone these rules to:</strong></label> <input type="hidde > <td>[% rule.reservesallowed %]</td> > <td>[% IF rule.onshelfholds %]Yes[% ELSE %]No[% END %]</td> > <td>[% IF rule.opacitemholds == 'F'%]Force[% ELSIF rule.opacitemholds == 'Y'%]Allow[% ELSE %]Don't allow[% END %]</td> >+ <td> >+ [% IF rule.article_requests == 'no' %] >+ No >+ [% ELSIF rule.article_requests == 'yes' %] >+ Yes >+ [% ELSIF rule.article_requests == 'bib_only' %] >+ Record only >+ [% ELSIF rule.article_requests == 'item_only' %] >+ Item only >+ [% END %] >+ </td> > <td>[% rule.rentaldiscount %]</td> > <td><a href="#" class="editrule">Edit</a></td> > <td> >@@ -328,6 +340,14 @@ for="tobranch"><strong>Clone these rules to:</strong></label> <input type="hidde > <option value="F">Force</option> > </select> > </td> >+ <td> >+ <select id="article_requests" name="article_requests"> >+ <option value="no">No</option> >+ <option value="yes">Yes</option> >+ <option value="bib_only">Record only</option> >+ <option value="item_only">Item only</option> >+ </select> >+ </td> > <td><input type="text" name="rentaldiscount" id="rentaldiscount" size="2" /></td> > <td colspan="2"> > <input type="hidden" name="branch" value="[% current_branch %]"/> >@@ -359,6 +379,7 @@ for="tobranch"><strong>Clone these rules to:</strong></label> <input type="hidde > <th>Holds allowed (count)</th> > <th>On shelf holds allowed</th> > <th>Item level holds</th> >+ <th>Article requests</th> > <th>Rental discount (%)</th> > <th colspan="2"> </th> > </tr> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt >index 65f35f1..48527db 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt >@@ -567,6 +567,9 @@ var holdForPatron = function () { > <a id="reserve_[% SEARCH_RESULT.biblionumber %]" href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% SEARCH_RESULT.biblionumber %]">Holds</a> > [% IF ( holdfor ) %] <span class="holdforlink">| <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% SEARCH_RESULT.biblionumber %]&findborrower=[% holdfor_cardnumber %]">Place hold for [% holdfor_firstname %] [% holdfor_surname %] ([% holdfor_cardnumber %])</a></span>[% END %] > [% END %] >+ [% IF Koha.Preference('ArticleRequests') %] >+ | <a id="requst_article_[% SEARCH_RESULT.biblionumber %]" href="/cgi-bin/koha/circ/request-article.pl?biblionumber=[% SEARCH_RESULT.biblionumber %]">Request article</a> >+ [% END %] > [% IF ( CAN_user_editcatalogue_edit_catalogue ) %] > | <a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% SEARCH_RESULT.biblionumber %]">Edit record</a> > [% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/article-requests.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/article-requests.tt >new file mode 100644 >index 0000000..ed87948 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/article-requests.tt >@@ -0,0 +1,365 @@ >+[% USE KohaDates %] >+[% USE ItemTypes %] >+[% USE Branches %] >+[% USE AuthorisedValues %] >+ >+[% INCLUDE 'doc-head-open.inc' %] >+<title>Koha › Circulation › Article requests</title> >+[% INCLUDE 'doc-head-close.inc' %] >+<style type="text/css"> p { margin-top: 0; }</style> >+</head> >+ >+<body id="circ_view_holdsqueue" class="circ"> >+ [% INCLUDE 'header.inc' %] >+ [% INCLUDE 'cat-search.inc' %] >+ >+ <script type="text/javascript">//<![CDATA[ >+ $(document).ready(function() { >+ $('#article-request-tabs').tabs(); >+ }); >+ >+ function PrintSlip(link) { >+ window.open(link, 'popup', 'width=600,height=400,resizable=1,toolbar=0,scrollbars=1,top'); >+ } >+ >+ function Cancel( id, a ) { >+ notes = prompt("Reason for cancelation:"); >+ if ( notes == null ) { >+ return; >+ } >+ >+ a.closest('td').prepend('<img src="[% interface %]/[% theme %]/img/loading-small.gif"/>'); >+ a.closest('div').hide(); >+ $.ajax({ >+ type: "POST", >+ url: '/cgi-bin/koha/svc/article_request', >+ data: { >+ action: 'cancel', >+ id: id, >+ notes: notes >+ }, >+ success: function( data ) { >+ a.closest('tr').remove(); >+ }, >+ dataType: 'json' >+ }); >+ } >+ >+ function Process( id, a ) { >+ a.closest('td').prepend('<img src="[% interface %]/[% theme %]/img/loading-small.gif"/>'); >+ a.closest('div').hide(); >+ $.ajax({ >+ type: "POST", >+ url: '/cgi-bin/koha/svc/article_request', >+ data: { >+ action: 'process', >+ id: id, >+ }, >+ success: function( data ) { >+ a.closest('tr').remove(); >+ }, >+ dataType: 'json' >+ }); >+ } >+ >+ function Complete( id, a ) { >+ a.closest('td').prepend('<img src="[% interface %]/[% theme %]/img/loading-small.gif"/>'); >+ a.closest('div').hide(); >+ $.ajax({ >+ type: "POST", >+ url: '/cgi-bin/koha/svc/article_request', >+ data: { >+ action: 'complete', >+ id: id, >+ }, >+ success: function( data ) { >+ a.closest('tr').remove(); >+ }, >+ dataType: 'json' >+ }); >+ } >+ //]]></script> >+ >+ <div id="breadcrumbs"> >+ <a href="/cgi-bin/koha/mainpage.pl">Home</a> >+ › >+ <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> >+ › >+ <a href="/cgi-bin/koha/circ/article-requests.pl">Article requests</a> >+ </div> >+ >+<div id="doc" class="yui-t7"> >+ <div id="bd"> >+ <div id="yui-main"> >+ <div class="yui-g"> >+ >+ <h1>Article requests</h1> >+ >+ <form id="ar-branchcode-form" method="post"> >+ <select name="branchcode" id="branchcode"> >+ [% FOREACH b IN Branches.all %] >+ [% IF b.branchcode == branchcode %] >+ <option value="[% b.branchcode %]" selected="selected">[% b.branchname %]</option> >+ [% ELSE %] >+ <option value="[% b.branchcode %]">[% b.branchname %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ <input class="btn btn-small" type="submit" value="Update" /> >+ </form> >+ >+ <div id="article-request-tabs" class="toptabs"> >+ <ul> >+ <li><a href="#article-requests-open">Open ([% article_requests_open.count %])</a></li> >+ <li><a href="#article-requests-processing">Processing ([% article_requests_processing.count %])</a></li> >+ </ul> >+ >+ <div id="article-requests-open"> >+ [% IF article_requests_open.count %] >+ <table id="article-requests-processing-open-table"> >+ <thead> >+ <tr> >+ <th class="ar-title">Title</th> >+ <th class="ar-request">Requested article</th> >+ <th class="ar-collection">Collection</th> >+ <th class="ar-itemtype">Item type</th> >+ <th class="ar-callnumber">Call number</th> >+ <th class="ar-copynumber">Copy number</th> >+ <th class="ar-enumchron">Enumeration</th> >+ <th class="ar-barcode">Barcode</th> >+ <th class="ar-patron">Patron</th> >+ <th class="ar-date">Date</th> >+ <th class="ar-actions">Actions</th> >+ </tr> >+ </thead> >+ >+ <tbody> >+ [% FOREACH ar IN article_requests_open %] >+ <tr> >+ <td class="ar-title"> >+ <p> >+ <a href="/cgi-bin/koha/circ/request-article.pl?biblionumber=[% ar.biblionumber %]"> >+ <strong>[% ar.biblio.title | html %]</strong> >+ [% FOREACH s IN itemsloo.subtitle %] [% s %][% END %] >+ </a> >+ </p> >+ >+ <p> >+ <div class="ar-biblionumber content_hidden">[% ar.biblionumber %]</div> >+ <div class="ar-author">[% ar.biblio.author %]</div> >+ <div class="ar-pubdata"> >+ [% ar.biblio.biblioitem.publishercode %] >+ >+ [% IF ar.biblio.biblioitem.publicationyear %] >+ , [% ar.biblio.biblioitem.publicationyear %] >+ [% ELSIF ar.biblio.copyrightdate %] >+ , [% ar.biblio.copyrightdate %] >+ [% END %] >+ >+ [% IF ar.biblio.biblioitem.pages %] >+ : [% ar.biblio.biblioitem.pages %] >+ [% END %] >+ >+ [% r.biblio.biblioitem.size %] >+ >+ [% IF ar.biblio.biblioitem.isbn %] >+ ISBN: [% ar.biblio.biblioitem.isbn %] >+ [% END %] >+ </div> >+ </p> >+ </td> >+ <td class="ar-request"> >+ [% IF ar.title %] <p><strong>Title:</strong> [% ar.title %] </p> [% END %] >+ [% IF ar.author %] <p><strong>Author:</strong> [% ar.author %] </p> [% END %] >+ [% IF ar.volume %] <p><strong>Volume:</strong> [% ar.volume %] </p> [% END %] >+ [% IF ar.issue %] <p><strong>Issue:</strong> [% ar.issue %] </p> [% END %] >+ [% IF ar.date %] <p><strong>Date:</strong> [% ar.date %] </p> [% END %] >+ [% IF ar.pages %] <p><strong>Pages:</strong> [% ar.pages %] </p> [% END %] >+ [% IF ar.chapters %] <p><strong>Chapters:</strong> [% ar.chapters %] </p> [% END %] >+ </td> >+ <td class="ar-collection">[% AuthorisedValues.GetByCode( 'CCODE', ar.item.ccode ) %]</td> >+ <td class="ar-itemtype">[% ItemTypes.GetDescription( ar.item.effective_itemtype ) %]</td> >+ <td class="ar-callnumber"> >+ [% IF ar.item.location %] >+ <em>[% AuthorisedValues.GetByCode( 'LOC', ar.item.location ) %]</em> >+ [% END %] >+ >+ [% ar.item.itemcallnumber %] >+ </td> >+ <td class="ar-copynumber">[% ar.item.copynumber %]</td> >+ <td class="ar-enumchron">[% ar.item.enumchron %]</td> >+ <td class="ar-barcode">[% ar.item.barcode %]</td> >+ <td class="ar-patron"> >+ <p> >+ <a href="/cgi-bin/koha/circ/circulation.pl?findborrower=[% ar.borrower.cardnumber %]"> >+ [% ar.borrower.surname %], [% ar.borrower.firstname %] ([% ar.borrower.cardnumber %]) >+ </a> >+ </p> >+ >+ <p>[% ar.borrower.phone %]</p> >+ </td> >+ <td class="ar-date"><span title="[% ar.created_on %]">[% ar.created_on | $KohaDates %]</span></td> >+ <td class="ar-actions"> >+ <div class="dropdown"> >+ <a class="btn btn-mini dropdown-toggle" id="ar-actions" role="button" data-toggle="dropdown" href="#"> >+ Actions <b class="caret"></b> >+ </a> >+ >+ <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="ar-actions"> >+ <li> >+ <a href="#" onclick="Process( [% ar.id %], $(this) ); return false;"> >+ <i class="icon-ok-circle"></i> >+ Process request >+ </a> >+ >+ <a href="#" onclick="Complete( [% ar.id %], $(this) ); return false;"> >+ <i class="icon-ok-circle"></i> >+ Complete request >+ </a> >+ >+ <a href="#" onclick="Cancel( [% ar.id %], $(this) ); return false;"> >+ <i class="icon-remove-circle"></i> >+ Cancel request >+ </a> >+ >+ <a href="#" onclick="PrintSlip('article-request-slip.pl?id=[% ar.id %]'); return false;"> >+ <i class="icon-print"></i> >+ Print slip >+ </a> >+ </li> >+ </ul> >+ </div> >+ </td> >+ </tr> >+ [% END %] >+ </tbody> >+ </table> >+ [% ELSE %] >+ There are currently no open article requests. >+ [% END %] >+ </div> >+ >+ <div id="article-requests-processing"> >+ [% IF article_requests_processing.count %] >+ <table id="article-requests-processing-table"> >+ <thead> >+ <tr> >+ <th class="ar-title">Title</th> >+ <th class="ar-request">Requested article</th> >+ <th class="ar-collection">Collection</th> >+ <th class="ar-itemtype">Item type</th> >+ <th class="ar-callnumber">Call number</th> >+ <th class="ar-copynumber">Copy number</th> >+ <th class="ar-enumchron">Enumeration</th> >+ <th class="ar-barcode">Barcode</th> >+ <th class="ar-patron">Patron</th> >+ <th class="ar-date">Date</th> >+ <th class="ar-actions">Actions</th> >+ </tr> >+ </thead> >+ >+ <tbody> >+ [% FOREACH ar IN article_requests_processing %] >+ <tr> >+ <td class="ar-title"> >+ <p> >+ <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% ar.biblionumber %]"> >+ <strong>[% ar.biblio.title | html %]</strong> >+ [% FOREACH s IN itemsloo.subtitle %] [% s %][% END %] >+ </a> >+ </p> >+ >+ <p> >+ <div class="ar-biblionumber content_hidden">[% ar.biblionumber %]</div> >+ <div class="ar-author">[% ar.biblio.author %]</div> >+ <div class="ar-pubdata"> >+ [% ar.biblio.biblioitem.publishercode %] >+ >+ [% IF ar.biblio.biblioitem.publicationyear %] >+ , [% ar.biblio.biblioitem.publicationyear %] >+ [% ELSIF ar.biblio.copyrightdate %] >+ , [% ar.biblio.copyrightdate %] >+ [% END %] >+ >+ [% IF ar.biblio.biblioitem.pages %] >+ : [% ar.biblio.biblioitem.pages %] >+ [% END %] >+ >+ [% r.biblio.biblioitem.size %] >+ >+ [% IF ar.biblio.biblioitem.isbn %] >+ ISBN: [% ar.biblio.biblioitem.isbn %] >+ [% END %] >+ </div> >+ </p> >+ </td> >+ <td class="ar-request"> >+ [% IF ar.title %] <p><strong>Title:</strong> [% ar.title %] </p> [% END %] >+ [% IF ar.author %] <p><strong>Author:</strong> [% ar.author %] </p> [% END %] >+ [% IF ar.volume %] <p><strong>Volume:</strong> [% ar.volume %] </p> [% END %] >+ [% IF ar.issue %] <p><strong>Issue:</strong> [% ar.issue %] </p> [% END %] >+ [% IF ar.date %] <p><strong>Date:</strong> [% ar.date %] </p> [% END %] >+ [% IF ar.pages %] <p><strong>Pages:</strong> [% ar.pages %] </p> [% END %] >+ [% IF ar.chapters %] <p><strong>Chapters:</strong> [% ar.chapters %] </p> [% END %] >+ </td> >+ <td class="ar-collection">[% AuthorisedValues.GetByCode( 'CCODE', ar.item.ccode ) %]</td> >+ <td class="ar-itemtype">[% ItemTypes.GetDescription( ar.item.effective_itemtype ) %]</td> >+ <td class="ar-callnumber"> >+ [% IF ar.item.location %] >+ <em>[% AuthorisedValues.GetByCode( 'LOC', ar.item.location ) %]</em> >+ [% END %] >+ >+ [% ar.item.itemcallnumber %] >+ </td> >+ <td class="ar-copynumber">[% ar.item.copynumber %]</td> >+ <td class="ar-enumchron">[% ar.item.enumchron %]</td> >+ <td class="ar-barcode">[% ar.item.barcode %]</td> >+ <td class="ar-patron"> >+ <p> >+ <a href="/cgi-bin/koha/circ/circulation.pl?findborrower=[% ar.borrower.cardnumber %]"> >+ [% ar.borrower.surname %], [% ar.borrower.firstname %] ([% ar.borrower.cardnumber %]) >+ </a> >+ </p> >+ >+ <p>[% ar.borrower.phone %]</p> >+ </td> >+ <td class="ar-date"><span title="[% ar.created_on %]">[% ar.created_on | $KohaDates %]</span></td> >+ <td class="ar-actions"> >+ <div class="dropdown"> >+ <a class="btn btn-mini dropdown-toggle" id="ar-actions" role="button" data-toggle="dropdown" href="#"> >+ Actions <b class="caret"></b> >+ </a> >+ >+ <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="ar-actions"> >+ <li> >+ <a href="#" onclick="Complete( [% ar.id %], $(this) ); return false;"> >+ <i class="icon-ok-circle"></i> >+ Complete request >+ </a> >+ >+ <a href="#" onclick="Cancel( [% ar.id %], $(this) ); return false;"> >+ <i class="icon-remove-circle"></i> >+ Cancel request >+ </a> >+ >+ <a href="#" onclick="PrintSlip('article-request-slip.pl?id=[% ar.id %]'); return false;"> >+ <i class="icon-print"></i> >+ Print slip >+ </a> >+ </li> >+ </ul> >+ </div> >+ </td> >+ </tr> >+ [% END %] >+ </tbody> >+ </table> >+ [% ELSE %] >+ There are currently no article requests being processed. >+ [% END %] >+ </div> >+ </div> >+ </div> >+ </div> >+ </div> >+[% INCLUDE 'intranet-bottom.inc' %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation-home.tt >index 713c64f..9046cb4 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation-home.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation-home.tt >@@ -41,6 +41,11 @@ > <li> <a href="/cgi-bin/koha/circ/pendingreserves.pl" title="holds to retrieve off the shelf">Holds to pull</a></li> > <li> <a href="/cgi-bin/koha/circ/waitingreserves.pl" title="holds waiting for patron pickup">Holds awaiting pickup</a></li> > <li> <a href="/cgi-bin/koha/circ/reserveratios.pl">Hold ratios</a></li> >+ [% IF Koha.Preference('ArticleRequests') %] >+ <li> >+ <a href="/cgi-bin/koha/circ/article-requests.pl" title="Article requests">Article requests</a> >+ </li> >+ [% END %] > <li> <a href="/cgi-bin/koha/circ/transferstoreceive.pl" title="transfers to receive at your library">Transfers to receive</a></li> > [% IF ( CAN_user_circulate_overdues_report ) %]<li> <a href="/cgi-bin/koha/circ/overdue.pl">Overdues</a> > - <b>Warning:</b> This report is very resource intensive on >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/request-article.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/request-article.tt >new file mode 100644 >index 0000000..076cb1b >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/request-article.tt >@@ -0,0 +1,336 @@ >+[% USE KohaDates %] >+[% USE Branches %] >+[% SET article_requests_view = 1 %] >+[% SET biblionumber = biblio.biblionumber %] >+[% INCLUDE 'doc-head-open.inc' %] >+<title>Koha › Circulation › Request article</title> >+[% INCLUDE 'doc-head-close.inc' %] >+<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" /> >+[% INCLUDE 'datatables.inc' %] >+ >+<script type="text/javascript"> >+// <![CDATA[ >+$('#current-article-requests').ready(function() { >+ $(".hide").hide(); >+}); >+ >+$(document).ready(function() { >+ $( "#patron" ).autocomplete({ >+ source: "/cgi-bin/koha/circ/ysearch.pl", >+ minLength: 3, >+ select: function( event, ui ) { >+ $( "#patron" ).val( ui.item.cardnumber ); >+ $( "#holds_patronsearch" ).submit(); >+ return false; >+ } >+ }) >+ .data( "ui-autocomplete" )._renderItem = function( ul, item ) { >+ return $( "<li></li>" ) >+ .data( "ui-autocomplete-item", item ) >+ .append( "<a>" + item.surname + ", " + item.firstname + >+ " (" + item.cardnumber + ") <small>" + item.address + >+ " " + item.city + " " + item.zipcode + " " + >+ item.country + "</small></a>" ) >+ .appendTo( ul ); >+ }; >+ >+ $( ".ar-update-branchcode" ).on('focus', function(){ >+ previous_branchcode = this.value; >+ }).on('change', function(){ >+ var branchcode = this.value; >+ var c = confirm("Are you sure you want to change the pickup library from " + previous_branchcode + " to " + branchcode + " for this request?"); >+ >+ if ( c ) { >+ var id = this.id.split("branchcode-")[1]; >+ $("#update-processing-" + id ).css({opacity: 0, visibility: "visible"}).animate({opacity: 1.0}, 200); >+ >+ $.ajax({ >+ type: "POST", >+ url: '/cgi-bin/koha/svc/article_request', >+ data: { >+ action: 'update_branchcode', >+ id: id, >+ branchcode: branchcode, >+ }, >+ success: function( data ) { >+ $("#update-processing-" + id ).css({opacity: 1.0, visibility: "visible"}).animate({opacity: 0}, 200); >+ }, >+ dataType: 'json' >+ }); >+ >+ } else { >+ this.value = previous_branchcode; >+ } >+ }); >+ >+ $(".ar-cancel-request").on("click", function(){ >+ var a = $(this); >+ var notes = prompt(_("Reason for cancellation:")); >+ >+ if ( notes != null ) { >+ var id = this.id.split("cancel-")[1]; >+ $("#cancel-processing-" + id ).hide('slow'); >+ $("#cancel-processing-spinner-" + id ).show('slow'); >+ >+ $.ajax({ >+ type: "POST", >+ url: '/cgi-bin/koha/svc/article_request', >+ data: { >+ action: 'cancel', >+ id: id, >+ notes: notes >+ }, >+ success: function( data ) { >+ a.parents('tr').hide('slow'); >+ }, >+ dataType: 'json' >+ }); >+ } >+ }); >+}); >+// ]]> >+</script> >+</head> >+ >+<body id="circ_article_request" class="catalog"> >+ [% INCLUDE 'header.inc' %] >+ [% INCLUDE 'circ-search.inc' %] >+ >+ <div id="breadcrumbs"> >+ <a href="/cgi-bin/koha/mainpage.pl">Home</a> >+ › >+ <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> >+ › >+ <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber %]">[% biblio.title | html %]</a> >+ › >+ Request article >+ </div> >+ >+ <div id="doc3" class="yui-t2"> >+ <div id="bd"> >+ <div id="yui-main"> >+ <div class="yui-b"> >+ >+ <h1>Request article from <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblio.id %]">[% biblio.title | html %]</a></h1> >+ >+ [% UNLESS patron %] >+ <form id="article_requests_patronsearch" action="request-article.pl" method="post"> >+ <fieldset class="brief"> >+ <label for="patron">Patron: </label> >+ <div class="hint">Enter patron card number or partial name:</div> >+ <input type="text" size="40" id="patron" class="focus" name="patron_cardnumber" /> >+ <input type="submit" value="Search" /> >+ <input type="hidden" name="biblionumber" value="[% biblio.id %]" /> >+ </fieldset> >+ </form> >+ [% ELSE %] >+ [% IF biblio.can_article_request( patron ) %] >+ >+ <form id="place-article-request" method="post" action="/cgi-bin/koha/circ/request-article-do.pl"> >+ <input type="hidden" name="biblionumber" id="biblionumber" value="[% biblio.biblionumber %]" /> >+ <input type="hidden" name="borrowernumber" id="borrowernumber" value="[% patron.id %]" /> >+ >+ <fieldset class="rows"> >+ <legend>Place article request from [% biblio.title %] for [% patron.firstname %] [% patron.surname %] ( [% patron.cardnumber %] )</legend> >+ <p/> >+ <ul> >+ <li> >+ <label for="title">Title:</label> >+ <input type="text" name="title" id="title" size="50"/> >+ </li> >+ >+ <li> >+ <label for="author">Author:</label> >+ <input type="text" name="author" id="author" size="50"/> >+ </li> >+ >+ <li> >+ <label for="volume">Volume:</label> >+ <input type="text" name="volume" id="volume" size="50"/> >+ </li> >+ >+ <li> >+ <label for="issue">Issue:</label> >+ <input type="text" name="issue" id="issue" size="50"/> >+ </li> >+ >+ <li> >+ <label for="date">Date:</label> >+ <input type="text" name="date" id="date" size="50"/> >+ </li> >+ >+ <li> >+ <label for="pages">Pages:</label> >+ <input type="text" name="pages" id="pages" size="50"/> >+ </li> >+ >+ <li> >+ <label for="chapters">Chapters:</label> >+ <input type="text" name="chapters" id="chapters" size="50"/> >+ </li> >+ >+ <li> >+ <label for="branchcode">Pickup library:</label> >+ <select name="branchcode" id="branchcode"> >+ [% FOREACH b IN Branches.all %] >+ [% IF b.branchcode == Branches.GetLoggedInBranchcode %] >+ <option value="[% b.branchcode %]" selected="selected">[% b.branchname %]</option> >+ [% ELSE %] >+ <option value="[% b.branchcode %]">[% b.branchname %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ </ul> >+ </fieldset> >+ >+ [% SET article_request_type = biblio.article_request_type( patron ) %] >+ [% IF article_request_type != 'bib_only' %] >+ <table id="current-requests-table" class="ar-table table table-bordered table-striped"> >+ <caption>Select item:</caption> >+ <thead> >+ <tr> >+ <th> </th> >+ <th>Item type</th> >+ <th>Barcode</th> >+ <th>Home library</th> >+ <th>Call number</th> >+ <th>Enumeration</th> >+ </tr> >+ </thead> >+ >+ <tbody> >+ [% FOREACH item IN biblio.items %] >+ [% IF item.can_article_request( patron ) %] >+ <tr> >+ <td> >+ [% IF article_request_type == 'item_only' && !checked %] >+ [% SET checked = 1 %] >+ <input type="radio" name="itemnumber" value="[% item.itemnumber %]" checked="checked" /> >+ [% ELSE %] >+ <input type="radio" name="itemnumber" value="[% item.itemnumber %]" /> >+ [% END %] >+ </td> >+ <td> >+ [% item.itype %] >+ </td> >+ <td> >+ [% item.barcode %] >+ </td> >+ <td> >+ [% item.homebranch %] >+ </td> >+ <td> >+ [% item.itemcallnumber %] >+ </td> >+ <td> >+ [% item.enumchron %] >+ </td> >+ </tr> >+ [% END %] >+ [% END %] >+ >+ [% IF article_request_type != 'item_only' %] >+ <tr> >+ <td> >+ <input type="radio" name="itemnumber" value="" checked="checked"/> >+ </td> >+ <td colspan="5"> >+ Any item >+ </td> >+ </tr> >+ [% END %] >+ </tbody> >+ </table> >+ [% END %] >+ >+ <p> >+ <input type="submit" class="btn" value="Place request" /> >+ </p> >+ </form> >+ [% ELSE %] >+ No article requests can be made for this record. >+ [% END %] >+ >+ [% END %] >+ >+ [% IF biblio.article_requests_current && !patron %] >+ <fieldset class="rows left" id="current-article-requests-fieldset"> >+ <legend>Current article requests</legend> >+ >+ <table id="current-article-requests-table"> >+ <tr> >+ <th>Placed on</th> >+ <th>Patron</th> >+ <th>Title</th> >+ <th>Author</th> >+ <th>Volume</th> >+ <th>Issue</th> >+ <th>Date</th> >+ <th>Pages</th> >+ <th>Chapters</th> >+ <th>Item</th> >+ <th>Status</th> >+ <th>Pickup library</th> >+ <th> </th> >+ </tr> >+ >+ [% FOREACH ar IN biblio.article_requests_current %] >+ <tr> >+ <td>[% ar.created_on | $KohaDates %]</td> >+ <td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% ar.borrowernumber %]">[% ar.borrower.firstname %] [% ar.borrower.surname %]</a></td> >+ <td>[% ar.title %]</td> >+ <td>[% ar.author %]</td> >+ <td>[% ar.volume %]</td> >+ <td>[% ar.issue %]</td> >+ <td>[% ar.date %]</td> >+ <td>[% ar.pages %]</td> >+ <td>[% ar.chapters %]</td> >+ <td> >+ [% IF ar.item %] >+ <a href="/cgi-bin/koha/catalogue/moredetail.pl?itemnumber=[% ar.itemnumber %]&biblionumber=[% ar.biblionumber %]">[% ar.item.barcode %]</a> >+ [% END %] >+ </td> >+ <td> >+ [% IF ar.status == 'OPEN' %] >+ Open >+ [% ELSIF ar.status == 'PROCESSING' %] >+ Processing >+ [% ELSIF ar.status == 'COMPLETED' %] >+ Completed >+ [% ELSIF ar.status == 'CANCELED' %] >+ Canceled >+ [% END %] >+ </td> >+ <td> >+ <i id="update-processing-[% ar.id %]" class="fa fa-cog fa-spin hidden"></i> >+ <select name="branchcode" id="branchcode-[% ar.id %]" class="ar-update-branchcode"> >+ [% FOREACH b IN Branches.all %] >+ [% IF b.branchcode == ar.branchcode %] >+ <option value="[% b.branchcode %]" selected="selected">[% b.branchname %]</option> >+ [% ELSE %] >+ <option value="[% b.branchcode %]">[% b.branchname %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </td> >+ <td> >+ <a title="Cancel article request" href="#" id="cancel-[% ar.id %]" class="ar-cancel-request"> >+ <i id="cancel-processing-spinner-[% ar.id %]" class="fa fa-cog fa-spin hide"></i> >+ <i id="cancel-processing-[% ar.id %]" class="fa fa-times fa-lg" style="color:red"></i> >+ </a> >+ </td> >+ </tr> >+ [% END %] >+ </table> >+ </fieldset> >+ [% END %] >+ </div> >+ </div> >+ >+ <div class="yui-b"> >+ [% INCLUDE 'biblio-view-menu.inc' %] >+ </div> >+ </div> >+ </div> >+[% INCLUDE 'intranet-bottom.inc' %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt >index d0be0da..38dacc8 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt >@@ -114,8 +114,17 @@ > || ( CAN_user_borrowers && pending_borrower_modifications ) > || ( CAN_user_acquisition && pendingsuggestions ) > || ( CAN_user_borrowers && pending_discharge_requests ) >+ || pending_article_requests > ) %] > <div id="area-pending"> >+ [% IF pending_article_requests %] >+ <div class="pending-info" id="article_requests_pending"> >+ >+ <a href="/cgi-bin/koha/circ/article-requests.pl">Article requests</a>: >+ <span class="pending-number-link">[% pending_article_requests %]</span> >+ </div> >+ [% END %] >+ > [% IF ( CAN_user_acquisition && pendingsuggestions ) %] > <div class="pending-info" id="suggestions_pending"> > >diff --git a/koha-tmpl/opac-tmpl/bootstrap/css/opac.css b/koha-tmpl/opac-tmpl/bootstrap/css/opac.css >index 485db13..233e648 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/css/opac.css >+++ b/koha-tmpl/opac-tmpl/bootstrap/css/opac.css >@@ -1 +1 @@ >-.shadowed{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}body{background-color:#EAEAE6}html,body{height:100%}.no-js .dateformat{display:inline;white-space:nowrap}.no-js .modal-body{padding:0}.no-js .selections-toolbar{display:none}.js .dateformat{display:none}#wrap{min-height:100%;height:auto !important;height:100%}.popup{padding-left:0;padding-right:0}a{color:#0076B2}a.cancel{padding-left:1em}a:visited{color:#0076B2}a.title{font-weight:bold;font-size:108%}a.btn:visited{color:#333}a.btn-primary:visited{color:#FFF}.ui-widget-content a,.ui-widget-content a:visited{color:#0076B2}h1{font-size:140%;line-height:150%}h1#libraryname{background:transparent url(../images/logo-koha.png) no-repeat scroll 0;border:0;float:left !important;margin:0;padding:0;width:120px}h1#libraryname a{border:0;cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:40px 0 0;text-decoration:none;width:120px}h2{font-size:130%;line-height:150%}h3{font-size:120%;line-height:150%}h4{font-size:110%}h5{font-size:100%}caption{font-size:120%;font-weight:bold;margin:0;text-align:left}input,textarea{width:auto}.input-fluid{width:50%}legend{font-size:110%;font-weight:bold}table,td{background-color:#FFF}td .btn{white-space:nowrap}td .btn-link{padding:0}#advsearches label,#booleansearch label{display:inline}#basketcount{display:inline;margin:0;padding:0}#basketcount span{background-color:#FFC;color:#000;display:inline;font-size:80%;font-weight:normal;margin:0 0 0 .9em;padding:0 .3em 0 .3em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#members{display:block}#members p{color:#EEE}#members a{color:#A6D8ED;font-weight:bold}#members a.logout{color:#E8583C;padding:0 .3em 0 .3em}#koha_url p{color:#666666;float:right;margin:0}#moresearches{margin:.5em 0;padding:0 .8em}#moresearches li{display:inline;white-space:nowrap}#moresearches li:after{content:" | "}#moresearches ul{margin:0}#moresearches li:last-child:after{content:""}#news{margin:.5em 0}.newscontainer{border:1px solid #ddd;border-bottom-width:0;border-top-left-radius:5px;border-top-right-radius:5px}.newsheader{background-color:#ecede6;border-bottom:1px solid #ddd;margin:0;padding:8px}.newsbody{padding:8px}.newsfooter{border-bottom:1px solid #ddd;font-style:italic;padding:4px 8px}#opacheader{background-color:#DDD}#selections,.selections{font-weight:bold}.actions a{white-space:nowrap}.actions a.hold{background-image:url("../images/sprite.png");background-position:-5px -542px;background-repeat:no-repeat;margin-right:1em;padding-left:21px;text-decoration:none}.actions a.addtocart{background-image:url("../images/sprite.png");background-position:-5px -572px;background-repeat:no-repeat;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.addtoshelf{background-image:url("../images/sprite.png");background-position:-5px -27px;background-repeat:no-repeat;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.addtolist{background-position:-5px -27px;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.tag_add{background-position:-5px -1110px;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.removefromlist{background-position:-8px -690px;margin-right:1em;text-decoration:none;padding-left:15px}.alert{background:#fffbe5;background:-moz-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fffbe5), color-stop(9%, #fff0b2), color-stop(89%, #fff1a8), color-stop(100%, #f7e665));background:-webkit-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-o-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-ms-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:linear-gradient(to bottom, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbe5', endColorstr='#f7e665', GradientType=0);border-color:#D6C43B;color:#333}.alert-info{background:#f4f6fa;background:-moz-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f4f6fa), color-stop(4%, #eaeef5), color-stop(96%, #e8edf6), color-stop(100%, #cddbf2));background:-webkit-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-o-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-ms-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:linear-gradient(to bottom, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f6fa', endColorstr='#cddbf2', GradientType=0);border-color:#C5D1E5;color:#333}.alert-success{background:#f8ffe8;background:-moz-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f8ffe8), color-stop(4%, #e3f5ab), color-stop(98%, #dcf48d), color-stop(100%, #9ebf28));background:-webkit-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-o-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-ms-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:linear-gradient(to bottom, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8ffe8', endColorstr='#9ebf28', GradientType=0);border-color:#9FBA35;color:#333}.breadcrumb{background-color:#F2F2EF;font-size:85%;list-style:none outside none;margin:10px 20px;padding:5px 10px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.form-inline{display:inline;padding:0;margin:0}.form-inline fieldset{margin:.3em 0;padding:.3em}.main{background-color:#FFF;border:1px solid #D2D2CF;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);margin-top:.5em;margin-bottom:.5em}.mastheadsearch{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;padding:.8em;margin:.5em 0;background:#c7c7c1;background:-moz-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(38%, #c7c7c1), color-stop(100%, #a7a7a2));background:-webkit-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-o-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-ms-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:linear-gradient(to bottom, #c7c7c1 38%, #a7a7a2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#c7c7c1', endColorstr='#a7a7a2', GradientType=0)}.mastheadsearch label{font-size:115%;font-weight:bold}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#9FE1FF;font-weight:bold}.navbar-fixed-bottom.navbar-static-bottom{margin-top:.5em;position:static}#changelanguage .nav>.active>p{padding:0 15px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#F4F4F4}.ui-tabs-nav .ui-tabs-active a,.ui-tabs-nav a:hover,.ui-tabs-nav a:focus,.ui-tabs-nav a:active,.ui-tabs-nav span.a{background:none repeat scroll 0 0 transparent;outline:0 none}.ui-widget,.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:inherit;font-size:inherit}ul.ui-tabs-nav li{list-style:none}.ui-tabs.ui-widget-content{background:transparent none;border:0}.ui-tabs .ui-tabs-panel{border:1px solid #D8D8D8;margin-bottom:1em}.ui-tabs-nav.ui-widget-header{border:0;background:none}.ui-tabs .ui-tabs-nav li{background:#F3F3F3 none;border-color:#D8D8D8;margin-right:.4em}.ui-tabs .ui-tabs-nav li.ui-tabs-active{background-color:#FFF;border:1px solid #D8D8D8;border-bottom:0}.ui-tabs .ui-tabs-nav li.ui-tabs-active a{color:#000;font-weight:bold}.ui-tabs .ui-tabs-nav li.ui-state-default.ui-state-hover{background:#F3F3F3 none}.ui-tabs .ui-tabs-nav li.ui-tabs-active.ui-state-hover{background:#FFF none}.ui-tabs .ui-state-default a,.ui-tabs .ui-state-default a:link,.ui-tabs .ui-state-default a:visited{color:#006699}.ui-tabs .ui-state-hover a,.ui-tabs .ui-state-hover a:link,.ui-tabs .ui-state-hover a:visited{color:#990033}.statictabs ul{background:none repeat scroll 0 0 transparent;border:0 none;margin:0;padding:.2em .2em 0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:4px;border-top-left-radius:4px;color:#222222;font-weight:bold;font-size:100%;line-height:1.3;list-style:none outside none;outline:0 none;text-decoration:none}.statictabs ul:before{content:"";display:table}.statictabs ul:after{clear:both;content:"";display:table}.statictabs li{background:none repeat scroll 0 0 #E6F0F2;border:1px solid #B9D8D9;border-bottom:0 none !important;border-top-right-radius:4px;border-top-left-radius:4px;float:left;list-style:none outside none;margin-bottom:0;margin-right:.4em;padding:0;position:relative;white-space:nowrap;top:1px;color:#555555;font-weight:normal}.statictabs li.active{background-color:#FFFFFF;color:#212121;font-weight:normal;padding-bottom:1px}.statictabs li a{color:#004D99;cursor:pointer;float:left;padding:.5em 1em;text-decoration:none}.statictabs li a:hover{background-color:#EDF4F5;border-top-right-radius:4px;border-top-left-radius:4px;color:#538200}.statictabs li.active a{color:#000000;font-weight:bold;cursor:text;background:none repeat scroll 0 0 transparent;outline:0 none}.statictabs .tabs-container{border:1px solid #B9D8D9;background:none repeat scroll 0 0 transparent;display:block;padding:1em 1.4em;border-bottom-right-radius:4px;border-bottom-left-radius:4px;color:#222222}.ui-datepicker table{width:100%;font-size:.9em;border:0;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{background:transparent none;padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker-trigger{vertical-align:middle;margin:0 3px}.ui-datepicker{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}.ui-widget-content{border:1px solid #AAA;background:#ffffff none;color:#222222}.ui-widget-header{border:1px solid #AAA;background:#E6F0F2 none;color:#222222;font-weight:bold}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #AAA;background:#F4F8F9 none;font-weight:normal;color:#555555}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #AAA;background:#E6F0F2 none;font-weight:normal;color:#212121}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaaaaa;background:#ffffff none;font-weight:normal;color:#212121}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee;color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec;color:#cd0a0a}.ui-autocomplete{position:absolute;cursor:default;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}.ui-autocomplete.ui-widget-content .ui-state-hover{border:1px solid #AAA;background:#E6F0F2 none;font-weight:normal;color:#212121}.ui-autocomplete-loading{background:#FFF url("../../img/loading-small.gif") right center no-repeat}.ui-menu li{list-style:none}th{background-color:#ECEDE6}.item-thumbnail{max-width:none}.no-image{background-color:#FFF;border:1px solid #AAA;color:#979797;display:block;font-size:86%;font-weight:bold;text-align:center;width:75px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#bookcover .no-image{margin-right:10px;margin-bottom:10px}td.overdue{color:#cc3333}table{font-size:90%}th.sum{text-align:right}td.sum{background-color:#FFC;font-weight:bold}th[scope=row]{background-color:transparent;text-align:right}.required{color:#C00}.label{background-color:transparent;color:inherit;display:inline;font-weight:normal;padding:0;text-shadow:none}.blabel{background-color:#999999;border-radius:3px;color:#ffffff;display:inline-block;font-weight:bold;padding:2px 4px;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.label-important{background-color:#b94a48}.label-warning{background-color:#f89406}.label-success{background-color:#468847}.label-info{background-color:#3a87ad}.label-inverse{background-color:#333333}fieldset.rows{float:left;font-size:90%;clear:left;margin:.9em 0 0 0;padding:0;width:100%}fieldset.rows legend{font-weight:bold;font-size:130%}fieldset.rows label,fieldset.rows .label{float:left;font-weight:bold;width:9em;margin-right:1em;text-align:right}fieldset.rows label.lradio{float:none;margin:inherit;width:auto}fieldset.rows fieldset{margin:0;padding:.3em}fieldset.rows ol{padding:1em 1em 0 1em;list-style-type:none}fieldset.rows ol.lradio label{width:auto;float:none;margin-right:0}fieldset.rows ol.lradio label.lradio{float:left;width:12em;margin-right:1em}fieldset.rows li{float:left;clear:left;padding-bottom:1em;list-style-type:none;width:100%}fieldset.rows li.lradio{padding-left:8.5em;width:auto}fieldset.rows li.lradio label{float:none;width:auto;margin:0 0 0 1em}fieldset.rows .hint{display:block;margin-left:11em}fieldset.action{clear:both;float:none;border:none;margin:0;padding:1em 0 .3em 0;width:auto}fieldset.action p{margin-bottom:1em}fieldset table{font-size:100%}div.rows+div.rows{margin-top:.6em}div.rows{float:left;clear:left;margin:0 0 0 0;padding:0;width:100%}div.rows span.label{float:left;font-weight:bold;width:9em;margin-right:1em;text-align:left}div.rows ol{list-style-type:none;margin-left:0;padding:.5em 1em 0 0}div.rows li{border-bottom:1px solid #EEE;float:left;clear:left;padding-bottom:.2em;padding-top:.1em;list-style-type:none;width:100%}div.rows ul li{margin-left:7.3em}div.rows ul li:first-child{float:none;clear:none;margin-left:0}div.rows ol li li{border-bottom:0}.tagweight0{font-size:12px}.tagweight1{font-size:14px}.tagweight2{font-size:16px}.tagweight3{font-size:18px}.tagweight4{font-size:20px}.tagweight5{font-size:22px}.tagweight6{font-size:24px}.tagweight7{font-size:26px}.tagweight8{font-size:28px}.tagweight9{font-size:30px}.toolbar{background-color:#EEEEEE;border:1px solid #E8E8E8;font-size:85%;padding:3px 3px 5px 5px;vertical-align:middle}.toolbar a{white-space:nowrap}.toolbar label{display:inline;font-size:100%;font-weight:bold;margin-left:.5em}.toolbar select{font-size:97%;height:auto;line-height:inherit;padding:0;margin:0;width:auto;white-space:nowrap}.toolbar .hold,.toolbar #tagsel_tag{padding-left:28px;font-size:97%;font-weight:bold}.toolbar #tagsel_form{margin-top:.5em}.toolbar li{display:inline;list-style:none}.toolbar li a{border-left:1px solid #e8e8e8}.toolbar li:first-child a{border-left:0}.toolbar ul{padding-left:0}#basket .toolbar{padding:7px 5px 9px 9px}#selections-toolbar,.selections-toolbar{background:-moz-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #b2b2b2), color-stop(14%, #e0e0e0), color-stop(100%, #e8e8e8));background:-webkit-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-o-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-ms-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e0e0e0', endColorstr='#e8e8e8', GradientType=0);margin:0 0 1em 0;padding-top:.5em;padding-left:10px}.list-actions{display:inline}#tagsel_span input.submit,#tagsel_tag{border:0;background-color:transparent;font-size:100%;color:#0076B2;cursor:pointer;background-image:url("../images/sprite.png");background-position:1px -643px;background-repeat:no-repeat;padding-left:25px;text-decoration:none}#tagsel_tag.disabled{background-position:-1px -667px}#tagsel_span input:hover,#selections-toolbar input.hold:hover{color:#005580;text-decoration:underline}#tagsel_span input.disabled,#tagsel_span input.disabled:hover,#tagsel_span input.hold.disabled,#tagsel_span input.hold.disabled:hover,#selections-toolbar input.hold.disabled,#selections-toolbar input.hold.disabled:hover,#selections-toolbar a.disabled,#selections-toolbar a.disabled:hover,.selections-toolbar a.disabled,.selections-toolbar a.disabled:hover{color:#888888;text-decoration:none;padding-left:23px}.results_summary{display:block;font-size:85%;color:#707070;padding:0 0 .5em 0}.results_summary .results_summary{font-size:100%}.results_summary.actions{margin-top:.5em}.results_summary.tagstatus{display:inline}.results_summary .label{color:#202020}.results_summary a{font-weight:normal}#views{border-bottom:1px solid #D6D6D6;margin-bottom:.5em;padding:0 2em .2em .2em;white-space:nowrap}.view{padding:.2em .2em 2px .2em}#bibliodescriptions,#isbdcontents{clear:left;margin-top:.5em}.view a,.view span{background-image:url("../images/sprite.png");background-repeat:no-repeat;font-size:87%;font-weight:normal;padding:.4em .7em 5px 26px;text-decoration:none}span#MARCview,span#ISBDview,span#Normalview,span#Fullhistory,span#Briefhistory{font-weight:bold}a#MARCview,span#MARCview{background-position:-3px -23px}a#MARCviewPop,span#MARCviewPop{background-position:-3px -23px}a#ISBDview,span#ISBDview{background-position:-3px -52px}a#Normalview,span#Normalview{background-position:-1px 6px}.view a{background-color:#F3F3F3;border-left:1px solid #C9C9C9}#bookcover{float:left;margin:0;padding:0}#bookcover .no-image{margin-right:10px;margin-bottom:10px}#bookcover img{margin:0 1em 1em 0}.results-pagination{position:absolute;top:32px;left:-1px;width:100%;height:auto;border:1px solid #D0D0D0;display:none;background-color:#F3F3F3;padding-bottom:10px;z-index:100}.back{float:right}.back input{background:none !important;color:#999 !important}.pagination_list ul{padding-top:40px;padding-left:0}.pagination_list li{list-style:none;float:bottom;padding:4px;color:#999}.pagination_list li.highlight{background-color:#F3F3F3;border-top:1px solid #DDDDDD;border-bottom:1px solid #DDDDDD}.pagination_list li a{padding-left:0}.pagination_list .li_pag_index{color:#999999;float:left;font-size:15px;font-weight:bold;padding-right:10px;text-align:right;width:13px}.nav_results{background-color:#F3F3F3;border:1px solid #D0D0D0;font-size:95%;font-weight:bold;margin-top:.5em;position:relative}.nav_results .l_Results a{background:#E1E1E1 url("../images/sprite.png") no-repeat 0 -504px;color:#006699;display:block;padding:8px 28px;text-decoration:none}.nav_results .l_Results:hover{background-color:#D9D9D9}.pg_menu{margin:0;border-top:1px solid #D0D0D0;white-space:nowrap}.pg_menu li{color:#B2B2B2;display:inline;list-style:none;margin:0}.pg_menu li.back_results a{border-left:1px solid #D0D0D0;border-right:1px solid #D0D0D0}.pg_menu li a,.pg_menu li span{background-color:#F3F3F3;display:block;float:left;padding:.4em .5em;text-decoration:none;font-weight:normal;text-align:center}.pg_menu li span{color:#B2B2B2}#listResults li{background-color:#999999;color:#C5C5C5;font-weight:normal;display:block;margin-right:1px;font-size:80%;padding:0;text-align:center;min-width:18px}#listResults li:hover{background-color:#006699}#listResults li a{color:#FFFFFF;font-weight:normal}.nav_pages .close_pagination{padding-right:10px;position:absolute;right:3px;top:-25px}.nav_pages .close_pagination a{text-decoration:none !important}.nav_pages ul{padding-top:10px}.nav_pages li{list-style:none;float:left;padding:4px;color:#999}.nav_pages li a{text-decoration:none !important}.nav_pages li a:hover{text-decoration:underline}.nav_pages li ul{float:left}#action{margin:.5em 0 0 0;background-color:#F3F3F3;border:1px solid #E8E8E8;padding-bottom:3px}#action li{list-style:none;margin:.2em;padding:.3em 0}#action a{font-weight:bold;text-decoration:none}#export li,#moresearches_menu li{padding:0;margin:0}#export li a,#moresearches_menu li a{font-weight:normal}#export li a.menu-inactive,#moresearches_menu li a.menu-inactive{font-weight:bold}#format,#furthersearches{padding-left:35px}.highlight_controls{float:left}a.addtocart,a.addtoshelf,a.brief,a.deleteshelf,a.deleteshelf.disabled,a.detail,a.download,a.editshelf,a.empty,a.hide,a.highlight_toggle,a.hold,a.hold.disabled,a.incart,a.new,a.print-small,a.print-large,a.removeitems,a.removeitems.disabled,a.reserve,a.send,a.tag_add,a.removefromlist,input.hold,input.hold.disabled,input.editshelf,.newshelf,.newshelf.disabled,.deleteshelf{background-image:url("../images/sprite.png");background-repeat:no-repeat}a.addtocart{background-position:-5px -265px;padding-left:35px}a.addtoshelf{background-position:-5px -225px;padding-left:35px}a.brief{background-position:-2px -868px;text-decoration:none;padding-left:27px}a.cartRemove{color:#cc3333;font-size:90%;margin:0;padding:0}a.detail{background-position:-2px -898px;text-decoration:none;padding-left:27px}a.download{background-position:-5px -348px;padding-left:20px;text-decoration:none}a.editshelf{background-position:2px -348px;padding-left:26px;text-decoration:none}a.empty{background-position:2px -598px;text-decoration:none;padding-left:30px}a.hide{background-position:-3px -814px;text-decoration:none;padding-left:26px}a.highlight_toggle{background-position:-5px -841px;display:none;padding-left:35px}a.hold,input.hold{background-position:-2px -453px;text-decoration:none;padding-left:23px}a.hold.disabled,input.hold.disabled{background-position:-5px -621px}a.incart{background-position:-5px -265px;color:#666;padding-left:35px}a.new{background-image:url("../images/sprite.png");background-position:-4px -922px;padding-left:23px;text-decoration:none}a.print-small{background-position:0 -423px;text-decoration:none;padding-left:30px}a.print-large{background-position:-5px -186px;text-decoration:none;padding-left:35px}a.removeitems,a.deleteshelf{background-position:2px -690px;text-decoration:none;padding-left:25px}a.removeitems.disabled,a.deleteshelf.disabled{background-position:2px -712px}a.reserve{background-position:-6px -144px;padding-left:35px}a.send{background-position:2px -386px;text-decoration:none;padding-left:28px}a.tag_add{background-position:3px -1111px;padding-left:27px;text-decoration:none}input.hold{background-color:transparent;border:0;color:#0076B2;font-weight:bold}input.editshelf{background-color:transparent;background-position:2px -736px;border:0;color:#006699;cursor:pointer;filter:none;font-size:100%;padding-left:29px;text-decoration:none}.newshelf{background-position:2px -764px;border:0;color:#006699;cursor:pointer;filter:none;font-size:100%;padding-left:28px;text-decoration:none}.newshelf.disabled{background-position:-4px -791px}.deleteshelf{background-color:transparent;background-position:2px -690px;border:0;color:#006699;cursor:pointer;filter:none;font-size:100%;padding-left:25px;text-decoration:none}.links a{font-weight:bold}.deleteshelf:hover{color:#990033}.editshelf:active,.deleteshelf:active{border:0}#tagslist li{display:inline}#login4tags{background-image:url("../images/sprite.png");background-position:-6px -1130px;background-repeat:no-repeat;padding-left:20px;text-decoration:none}.tag_results_input{margin-left:1em;padding:.3em;font-size:12px}.tag_results_input input[type="text"]{font-size:inherit;margin:0;padding:0}.tag_results_input label{display:inline}.tagsinput input[type="text"]{font-size:inherit;margin:0;padding:0}.tagsinput label{display:inline}.branch-info-tooltip{display:none}.ui-tooltip-content p{margin:.3em 0}#social_networks a{background:transparent url("../images/social-sprite.png") no-repeat;display:block;height:20px !important;width:20px;text-indent:-999em}#social_networks span{color:#274D7F;display:block;float:left;font-size:85%;font-weight:bold;line-height:2em;margin:.5em 0 .5em .5em !important}#social_networks div{float:left !important;margin:.5em 0 .5em .2em !important}#social_networks #facebook{background-position:-7px -35px}#social_networks #twitter{background-position:-7px -5px}#social_networks #linkedin{background-position:-7px -95px}#social_networks #delicious{background-position:-7px -66px}#social_networks #email{background-position:-7px -126px}#marc td,#marc th{background-color:transparent;border:0;padding:3px 5px;text-align:left}#marc td:first-child{text-indent:2em}#marc p{padding-bottom:.6em}#marc p .label{font-weight:bold}#marc ul{padding-bottom:.6em}#marc .results_summary{clear:left}#marc .results_summary ul{display:inline;float:none;clear:none;margin:0;padding:0;list-style:none}#marc .results_summary li{display:inline}#items,#items td #items th{border:1px solid #EEE;font-size:90%}#plainmarc table{border:0;margin:.7em 0 0 0;font-family:monospace;font-size:95%}#plainmarc th{background-color:#FFF;border:0;white-space:nowrap;text-align:left;vertical-align:top;padding:2px}#plainmarc td{border:0;padding:2px;vertical-align:top}#renewcontrols{float:right;font-size:66%}#renewcontrols a{background-repeat:no-repeat;text-decoration:none;padding:.1em .4em;padding-left:18px}#renewselected_link{background-image:url("../images/sprite.png");background-position:-5px -986px;background-repeat:no-repeat}#renewall_link{background-image:url("../images/sprite.png");background-position:-8px -967px;background-repeat:no-repeat}.authref{text-indent:2em}.authref .label{font-style:italic}.authstanza{margin-top:1em}.authstanzaheading{font-weight:bold}.authorizedheading{font-weight:bold}.authstanza li{margin-left:.5em}.authres_notes,.authres_seealso,.authres_otherscript{padding-top:.5em}.authres_notes{font-style:italic}#didyoumean{background-color:#EEE;border:1px solid #E8E8E8;margin:0 0 .5em;text-align:left;padding:.5em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.suggestionlabel{font-weight:bold}.searchsuggestion{padding:.2em .5em;white-space:nowrap;display:inline-block}.authlink{padding-left:.25em}#hierarchies a{font-weight:normal;text-decoration:underline;color:#069}#hierarchies a:hover{color:#990033}#top-pages{margin:0 0 .5em}.dropdown-menu>li>a{font-size:90%}a.listmenulink:link,a.listmenulink:visited{color:#0076B2;font-weight:bold}a.listmenulink:hover,a.listmenulink:active{color:#FFF;font-weight:bold}#cartDetails,#cartUpdate,#holdDetails,#listsDetails{background-color:#FFF;border:1px solid rgba(0,0,0,0.2);border-radius:6px 6px 6px 6px;box-shadow:0 5px 10px rgba(0,0,0,0.2);color:black;display:none;font-size:90%;margin:0;padding:8px 20px;text-align:center;width:180px;z-index:2}#cartmenulink{white-space:nowrap}#search-facets,#menu{border:1px solid #D2D2CF;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}#search-facets ul,#menu ul{margin:0;padding:.3em}#search-facets form,#menu form{margin:0}#search-facets h4,#menu h4{font-size:90%;margin:0 0 .6em 0;text-align:center}#search-facets h4 a,#menu h4 a{background-color:#F2F2EF;border-radius:8px 8px 0 0;border-bottom:1px solid #D8D8D8;display:block;font-weight:bold;padding:.7em .2em;text-decoration:none}#search-facets li,#menu li{font-size:90%;font-weight:bold;list-style-type:none}#search-facets li li,#menu li li{font-weight:normal;font-size:95%;line-height:125%;margin-bottom:2px;padding:.1em .2em}#search-facets li.showmore a,#menu li.showmore a{font-weight:bold;text-indent:1em}#search-facets a,#menu a{font-weight:normal;text-decoration:underline}#search-facets .facet-count,#menu .facet-count{display:inline-block}#menu{font-size:94%}#menu li{list-style-type:none}#menu li a{background:#eeeeee;text-decoration:none;display:block;border:1px solid #D8D8D8;border-radius:5px 0 0 5px;border-bottom-color:#999;font-size:111%;padding:.4em .6em;margin:.4em 0;margin-right:-1px}#menu li a:hover{background:#eaeef5}#menu li.active a{background-color:#FFF;background-image:none;border-right-width:0;font-weight:bold}#menu li.active a:hover{background-color:#fff}#menu h4{display:none}#addto{max-width:10em}.addto a.addtocart{background-image:url("../images/sprite.png");background-position:-5px -266px;background-repeat:no-repeat;text-decoration:none;padding-left:33px}.searchresults p{margin:0;padding:0 0 .6em 0}.searchresults p.details{color:#979797}.searchresults a.highlight_toggle{background-image:url("../images/sprite.png");background-position:-11px -841px;background-repeat:no-repeat;display:none;font-weight:normal;padding:0 10px 0 21px}.searchresults .commentline{background-color:#ffc;background-color:rgba(255,255,204,0.4);border:1px solid #CCC;display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);margin:.3em;padding:.4em}.searchresults .commentline.yours{background-color:#effed5;background-color:rgba(239,254,213,0.4)}.commentline .avatar{float:right;padding-left:.5em}.term{color:#990000;background-color:#FFFFCC}.shelvingloc{display:block;font-style:italic}#CheckAll,#CheckNone,.CheckAll,.CheckNone{font-weight:normal;margin:0 .5em;text-decoration:underline}span.sep{color:#888;padding:0 .2em 0 .5em;text-shadow:1px 1px 0 #FFF}.pages span:first-child,.pages a:first-child{border-width:1px 1px 1px 1px;border-bottom-left-radius:3px;border-top-left-radius:3px}.pages span:last-child,.pages a:last-child{border-width:1px 1px 1px 0;border-bottom-right-radius:3px;border-top-right-radius:3px}.pages .inactive,.pages .currentPage,.pages a{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;background-color:#FFFFFF;border-color:#DDDDDD;border-image:none;border-style:solid;border-width:1px 1px 1px 0;float:left;font-size:11.9px;line-height:20px;padding:4px 12px;text-decoration:none}.pages .inactive{background-color:#F5F5F5}.pages a[rel='last']{border-bottom-right-radius:3px;border-top-right-radius:3px}.hold-message{background-color:#FFF0B1;display:inline-block;margin:.5em;padding:.2em .5em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.reserve_date,.expiration_date{white-space:nowrap}.close{color:#0088CC;position:inherit;top:auto;right:auto;filter:none;float:none;font-size:inherit;font-weight:normal;opacity:inherit;text-shadow:none}.close:hover{color:#538200;filter:inherit;font-size:inherit;opacity:inherit}.alert .closebtn{position:relative;top:-2px;right:-21px;line-height:20px}.modal-header .closebtn{margin-top:2px}.closebtn{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:.2;filter:alpha(opacity=20)}.closebtn:hover{color:#000000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.closebtn{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn-group label,.btn-group select{font-size:13px}.span2 select{width:100%}.popup .main{font-size:90%;padding:0 1em}.popup legend{line-height:1.5em;margin-bottom:.5em}.item-status{display:block;font-size:95%;margin-bottom:.5em}.available{color:#006600}.waiting,.intransit,.notforloan,.checkedout,.lost,.notonhold{display:block}.notforloan{color:#900}.lost{color:#666}.suggestion{background-color:#EEEEEB;border:1px solid #DDDED3;margin:1em auto;padding:.5em;width:35%;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.librarypulldown .transl1{width:auto}.nolibrarypulldown{width:68%}.nolibrarypulldown .transl1{width:87%}#opac-main-search select{width:auto;max-width:12em}#logo{background:transparent url("../images/koha-logo-navbar.png") no-repeat scroll 0;border:0;float:left !important;margin:0;padding:0;width:100px}#logo a{border:0;cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:40px 0 0;text-decoration:none;width:100px}#user-menu-trigger{display:none}#user-menu-trigger .icon-user{background:transparent url("../lib/bootstrap/img/glyphicons-halflings-white.png") no-repeat;background-position:-168px 0;background-repeat:no-repeat;height:14px;line-height:14px;margin:12px 0 0;vertical-align:text-top;width:14px}#user-menu-trigger .caret{border-bottom-color:#999999;border-top-color:#999999;margin-top:18px}.floating{-webkit-box-shadow:0 3px 2px 0 rgba(0,0,0,0.4);box-shadow:0 3px 2px 0 rgba(0,0,0,0.4);margin-top:0}.tdlabel{font-weight:bold;display:none}td img{max-width:none}#ulactioncontainer{min-width:16em}.notesrow label{font-weight:bold}.notesrow span{display:block}.thumbnail-shelfbrowser span{margin:0 auto}.dropdown-menu>li>a.menu-inactive:hover{background:#FFF none;color:#000}.table .sorting_asc{padding-right:19px;background:url("../images/asc.gif") no-repeat scroll right center #ECEDE6}.table .sorting_desc{padding-right:19px;background:url("../images/desc.gif") no-repeat scroll right center #ECEDE6}.table .sorting{padding-right:19px;background:url("../images/ascdesc.gif") no-repeat scroll right center #ECEDE6}.table .nosort,.table .nosort.sorting_asc,.table .nosort.sorting_desc,.table .nosort.sorting{padding-right:19px;background:#ECEDE6 none}.table th,.table td{line-height:135%}.tags ul{display:inline;list-style:none;margin-left:0}.tags ul li{display:inline}.coverimages{float:right}#i18nMenu{margin-left:1em}#i18nMenu li{font-size:85%}#i18nMenu li li{font-size:100%}#i18nMenu li li>a{font-size:100%}#i18nMenu li li>a:hover{color:#FFF}#i18nMenu li a{color:#0076B2}#i18nMenu .dropdown-menu li p{clear:both;display:block;font-weight:normal;line-height:20px;padding:3px 20px;white-space:nowrap}#subjectsList label,#authorSearch label{display:inline;vertical-align:middle}#subjectsList ul,#authorSearch ul{border-bottom:1px solid #EEE;list-style-type:none;margin:0;padding:.6em 0}#subjectsList li,#authorSearch li{list-style-type:none;margin:0;padding:0}#overdrive-results{font-weight:bold;padding-left:1em}.throbber{vertical-align:middle}#overdrive-results-list .star-rating-control{display:block;overflow:auto}#shelfbrowser table{margin:0}#shelfbrowser table,#shelfbrowser td,#shelfbrowser th{border:0;font-size:90%;text-align:center}#shelfbrowser td,#shelfbrowser th{padding:3px 5px;width:20%}#shelfbrowser a{display:block;font-size:110%;font-weight:bold;text-decoration:none}#shelfbrowser #browser_next,#shelfbrowser #browser_previous{background-image:url("../images/sprite.png");background-repeat:no-repeat;width:16px}#shelfbrowser #browser_next a,#shelfbrowser #browser_previous a{cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:50px 0 0;text-decoration:none;width:16px}#shelfbrowser #browser_previous{background-position:-9px -1007px}#shelfbrowser #browser_next{background-position:-9px -1057px}#holds{margin:0 auto;max-width:800px}.holdrow{clear:both;padding:0 1em 1em 1em;border-bottom:1px solid #CCC;margin-bottom:.5em}.holdrow fieldset{border:0;margin:0;float:none}.holdrow fieldset .label{font-size:14px}.holdrow label{display:inline}.hold-options{clear:both}.toggle-hold-options{background-color:#eee;clear:both;display:block;font-weight:bold;margin:1em 0;padding:.5em}.copiesrow{clear:both}#idreambooksreadometer{float:right}a.idreambooksrating{font-size:30px;color:#29ADE4;padding-left:85px;line-height:30px;text-decoration:none}.idreambookslegend{font-size:small}a.reviewlink,a.reviewlink:visited{text-decoration:none;color:black;font-weight:normal}.idreambookssummary a{color:#707070;text-decoration:none}.idreambookssummary img,.idbresult img{vertical-align:middle}.idbresult{color:#29ADE4;text-align:center;margin:.5em;padding:.5em}.idbresult a,.idbresult a:visited{text-decoration:none;color:#29ADE4}.idbresult img{padding-right:6px}.js-show{display:none}.modal-nojs .modal-header,.modal-nojs .modal-footer{display:none}.contents{width:75%}.contentblock{font-size:95%;line-height:135%;position:relative;margin-left:2em}.contents .t:first-child:before{content:"â "}.contents .t:before{content:"\A â ";white-space:pre}.contents .t{font-weight:bold;display:inline}.contents .r{display:inline}.m880{display:block;text-align:right;float:right;width:50%;padding-left:20px}#memberentry-form input.error{border-color:#c00;box-shadow:0 1px 1px #c00 inset,0 0 8px #c00;color:red;outline:0 none}#memberentry-form input.error:focus{border-color:#c00;box-shadow:0 1px 1px #c00 inset,0 0 8px #c00;color:red;outline:0 none}#memberentry-form label.error{color:#c00;float:none;font-size:90%}@media only screen and (min-width:0) and (max-width:304px){#oh:after{content:"(min-width: 0px) and (max-width: 304px)"}input,select,textarea{width:auto;max-width:11em}}@media only screen and (min-width:0) and (max-width:390px){#oh:after{content:"(min-width: 0px) and (max-width: 390px)"}.ui-tabs .ui-tabs-nav li a,.statictabs li a{padding:.1em .5em}#views{border:0;padding:0;margin:0}.view{padding:0}.view a,.view span{border:1px solid #C9C9C9;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;font-size:80%;padding:.3em .4em 4px 26px}.input-fluid{width:90%}}@media only screen and (min-width:305px) and (max-width:341px){#oh:after{content:"(min-width: 305px) and (max-width: 341px)"}}@media only screen and (min-width:342px) and (max-width:479px){#oh:after{content:"(min-width: 342px) and (max-width: 479px)"}.input-fluid{width:75%}}@media (max-width:979px){.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;margin-left:0;margin-right:0}}@media only screen and (max-width:608px){fieldset.rows label{display:block;float:none;text-align:left}fieldset.rows li{padding-bottom:.5em}fieldset.rows ol{margin-left:0}fieldset.rows .hint{margin-left:0}body{padding:0}.tdlabel{display:inline}.navbar-fixed-top,.navbar-static-top{margin:0}.navbar-inner{padding:0}.checkall,.clearall,.highlight_controls,#selections-toolbar,.selectcol,.list-actions,#remove-selected{display:none}.table td.bibliocol{padding-left:1.3em}.actions{display:block}.actions a,.actions #login4tags{background-color:#F2F2EF;border:1px solid #DDD;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;font-weight:bold;display:block;font-size:120%;margin:2px 0}.actions .label{display:block;font-weight:bold}.actions #login4tags{margin-right:1em}#opac-main-search button,#opac-main-search input,#opac-main-search select,#opac-main-search .librarypulldown .transl1,#opac-main-search .input-append{display:block;width:97%;max-width:100%;margin:.5em 0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#opac-main-search .input-append{margin:0;width:100%}#opac-main-search .librarypulldown .transl1{width:94.5%}#toolbar .resort{font-size:14px;max-width:100%;margin:.5em 0;padding:4px 6px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mastheadsearch{margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.main{margin:.5em 0;padding:15px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.breadcrumb{margin:10px 0}#moresearches{text-align:center}#searchsubmit{font-weight:bold}.ui-tabs-panel .item-thumbnail,.tabs-container .item-thumbnail,#topissues .item-thumbnail,#usertags .item-thumbnail,#usersuggestions .item-thumbnail{margin:.5em 0 0 .5em}.ui-tabs-panel .table-bordered,.tabs-container .table-bordered,#topissues .table-bordered,#usertags .table-bordered,#usersuggestions .table-bordered{border:none}.ui-tabs-panel .table th,.tabs-container .table th,#topissues .table th,#usertags .table th,#usersuggestions .table th,.ui-tabs-panel .table thead,.tabs-container .table thead,#topissues .table thead,#usertags .table thead,#usersuggestions .table thead{display:none}.ui-tabs-panel .table td,.tabs-container .table td,#topissues .table td,#usertags .table td,#usersuggestions .table td{border-right:1px solid #dddddd;border-left:1px solid #dddddd;border-top:0;display:block;padding:.2em}.ui-tabs-panel .table p,.tabs-container .table p,#topissues .table p,#usertags .table p,#usersuggestions .table p{margin-bottom:2px}.ui-tabs-panel tr,.tabs-container tr,#topissues tr,#usertags tr,#usersuggestions tr{display:block;margin-bottom:.6em}.ui-tabs-panel tr td:first-child,.tabs-container tr td:first-child,#topissues tr td:first-child,#usertags tr td:first-child,#usersuggestions tr td:first-child{border-top:1px solid #dddddd;border-radius:5px 5px 0 0}.ui-tabs-panel tr td:last-child,.tabs-container tr td:last-child,#topissues tr td:last-child,#usertags tr td:last-child,#usersuggestions tr td:last-child{border-radius:0 0 5px 5px;border-bottom:2px solid #CACACA}.no-image{display:none}}@media only screen and (max-width:700px){#opac-main-search label{display:none}#logo{background:transparent url("../lib/bootstrap/img/glyphicons-halflings-white.png") no-repeat;background-position:0 -24px;margin:14px 14px 0 14px;width:14px}#logo a{padding:14px 0 0;width:14px}#user-menu-trigger{display:inline;margin-right:12px}#members{display:none;clear:both}#members li{padding-right:20px;text-align:right;border-bottom:1px solid #555}#members li:first-child{border-top:1px solid #555}#members li:last-child{border-bottom:none}#members .nav{float:none}#members .nav.pull-right{float:none}#members .nav>li{float:none}#members .divider-vertical{border:0;height:0;margin:0}}@media only screen and (min-width:480px) and (max-width:608px){#oh:after{content:" Between 480 pixels and 608 pixels. "}.input-fluid{width:75%}}@media only screen and (min-width:608px) and (max-width:767px){#oh:after{content:" Between 608 pixels and 767 pixels. "}.main{padding:.8em 20px}.breadcrumb{margin:10px 0}.navbar-static-bottom{margin-left:-20px;margin-right:-20px}.row-fluid input.span6{width:48.9362%}}@media only screen and (max-width:767px){a.title{font-size:120%}#userresults{margin:0 -20px}.breadcrumb,#top-pages,.menu-collapse{display:none}#search-facets,#menu{margin-bottom:.5em}#search-facets h4,#menu h4{display:block;margin:0;padding:0}#search-facets h4 a,#menu h4 a{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;border-bottom:0;font-weight:normal;padding:.7em .2em}#search-facets ul,#menu ul{padding:0}#menu li a{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:0;display:block;font-size:120%;text-decoration:none;border-bottom:1px solid #D8D8D8;margin:0}#menu li.active a{border-top:1px solid #D8D8D8;border-right-width:1px}#menu li:last-child a{-webkit-border-radius:0 0 7px 7px;-moz-border-radius:0 0 7px 7px;border-radius:0 0 7px 7px}#search-facets li{padding:.4em}#search-facets h5{margin:.2em}#menu h4 a.menu-open,#search-facets h4 a.menu-open{-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0;border-bottom:1px solid #D8D8D8}}@media only screen and (max-width:800px){.cartlabel,.listslabel{display:none}.navbar .divider-vertical{margin:0 2px}.navbar #members .divider-vertical{margin:0 9px}}@media only screen and (min-width:768px){.main{margin-left:20px;margin-right:20px}#menu{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-right:1px solid #D8D8D8}#menu h4{display:none}#menu ul{padding:1em 0 1em 0}}@media only screen and (min-width:768px) and (max-width:984px){#oh:after{content:" Between 768 and 984 pixels. "}.librarypulldown .transl1{width:38%}}@media only screen and (min-width:984px){#oh:after{content:" Above 984 pixels. "}.librarypulldown .transl1{width:53%}}@media only screen and (max-width:1040px){.pg_menu li a{float:none;text-align:left}.pg_menu li.back_results a{border:1px solid #D0D0D0;border-width:1px 0 1px 0}#ulactioncontainer{min-width:0}} >\ No newline at end of file >+.shadowed{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}body{background-color:#eaeae6}html,body{height:100%}.no-js .dateformat{display:inline;white-space:nowrap}.no-js .modal-body{padding:0}.no-js .selections-toolbar{display:none}.js .dateformat{display:none}#wrap{min-height:100%;height:auto !important;height:100%}.popup{padding-left:0;padding-right:0}a{color:#0076b2}a.cancel{padding-left:1em}a:visited{color:#0076b2}a.title{font-weight:bold;font-size:108%}a.btn:visited{color:#333}a.btn-primary:visited{color:#fff}.ui-widget-content a,.ui-widget-content a:visited{color:#0076b2}h1{font-size:140%;line-height:150%}h1#libraryname{background:transparent url(../images/logo-koha.png) no-repeat scroll 0;border:0;float:left !important;margin:0;padding:0;width:120px}h1#libraryname a{border:0;cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:40px 0 0;text-decoration:none;width:120px}h2{font-size:130%;line-height:150%}h3{font-size:120%;line-height:150%}h4{font-size:110%}h5{font-size:100%}caption{font-size:120%;font-weight:bold;margin:0;text-align:left}input,textarea{width:auto}.input-fluid{width:50%}legend{font-size:110%;font-weight:bold}table,td{background-color:#fff}td .btn{white-space:nowrap}td .btn-link{padding:0}#advsearches label,#booleansearch label{display:inline}#basketcount{display:inline;margin:0;padding:0}#basketcount span{background-color:#ffc;color:#000;display:inline;font-size:80%;font-weight:normal;margin:0 0 0 .9em;padding:0 .3em 0 .3em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#members{display:block}#members p{color:#eee}#members a{color:#a6d8ed;font-weight:bold}#members a.logout{color:#e8583c;padding:0 .3em 0 .3em}#koha_url p{color:#666;float:right;margin:0}#moresearches{margin:.5em 0;padding:0 .8em}#moresearches li{display:inline;white-space:nowrap}#moresearches li:after{content:" | "}#moresearches ul{margin:0}#moresearches li:last-child:after{content:""}#news{margin:.5em 0}.newscontainer{border:1px solid #ddd;border-bottom-width:0;border-top-left-radius:5px;border-top-right-radius:5px}.newsheader{background-color:#ecede6;border-bottom:1px solid #ddd;margin:0;padding:8px}.newsbody{padding:8px}.newsfooter{border-bottom:1px solid #ddd;font-style:italic;padding:4px 8px}#opacheader{background-color:#ddd}#selections,.selections{font-weight:bold}.actions a{white-space:nowrap}.actions a.hold{background-image:url("../images/sprite.png");background-position:-5px -542px;background-repeat:no-repeat;margin-right:1em;padding-left:21px;text-decoration:none}.actions a.addtocart{background-image:url("../images/sprite.png");background-position:-5px -572px;background-repeat:no-repeat;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.addtoshelf{background-image:url("../images/sprite.png");background-position:-5px -27px;background-repeat:no-repeat;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.addtolist{background-position:-5px -27px;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.tag_add{background-position:-5px -1110px;margin-right:1em;padding-left:20px;text-decoration:none}.actions a.removefromlist{background-position:-8px -690px;margin-right:1em;text-decoration:none;padding-left:15px}.alert{background:#fffbe5;background:-moz-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fffbe5), color-stop(9%, #fff0b2), color-stop(89%, #fff1a8), color-stop(100%, #f7e665));background:-webkit-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-o-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:-ms-linear-gradient(top, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);background:linear-gradient(to bottom, #fffbe5 0, #fff0b2 9%, #fff1a8 89%, #f7e665 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbe5', endColorstr='#f7e665', GradientType=0);border-color:#d6c43b;color:#333}.alert-info{background:#f4f6fa;background:-moz-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f4f6fa), color-stop(4%, #eaeef5), color-stop(96%, #e8edf6), color-stop(100%, #cddbf2));background:-webkit-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-o-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:-ms-linear-gradient(top, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);background:linear-gradient(to bottom, #f4f6fa 0, #eaeef5 4%, #e8edf6 96%, #cddbf2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f6fa', endColorstr='#cddbf2', GradientType=0);border-color:#c5d1e5;color:#333}.alert-success{background:#f8ffe8;background:-moz-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f8ffe8), color-stop(4%, #e3f5ab), color-stop(98%, #dcf48d), color-stop(100%, #9ebf28));background:-webkit-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-o-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:-ms-linear-gradient(top, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);background:linear-gradient(to bottom, #f8ffe8 0, #e3f5ab 4%, #dcf48d 98%, #9ebf28 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f8ffe8', endColorstr='#9ebf28', GradientType=0);border-color:#9fba35;color:#333}.breadcrumb{background-color:#f2f2ef;font-size:85%;list-style:none outside none;margin:10px 20px;padding:5px 10px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.form-inline{display:inline;padding:0;margin:0}.form-inline fieldset{margin:.3em 0;padding:.3em}.main{background-color:#fff;border:1px solid #d2d2cf;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);margin-top:.5em;margin-bottom:.5em}.mastheadsearch{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;padding:.8em;margin:.5em 0;background:#c7c7c1;background:-moz-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(38%, #c7c7c1), color-stop(100%, #a7a7a2));background:-webkit-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-o-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:-ms-linear-gradient(top, #c7c7c1 38%, #a7a7a2 100%);background:linear-gradient(to bottom, #c7c7c1 38%, #a7a7a2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#c7c7c1', endColorstr='#a7a7a2', GradientType=0)}.mastheadsearch label{font-size:115%;font-weight:bold}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#9fe1ff;font-weight:bold}.navbar-fixed-bottom.navbar-static-bottom{margin-top:.5em;position:static}#changelanguage .nav>.active>p{padding:0 15px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f4f4f4}.ui-tabs-nav .ui-tabs-active a,.ui-tabs-nav a:hover,.ui-tabs-nav a:focus,.ui-tabs-nav a:active,.ui-tabs-nav span.a{background:none repeat scroll 0 0 transparent;outline:0 none}.ui-widget,.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:inherit;font-size:inherit}ul.ui-tabs-nav li{list-style:none}.ui-tabs.ui-widget-content{background:transparent none;border:0}.ui-tabs .ui-tabs-panel{border:1px solid #d8d8d8;margin-bottom:1em}.ui-tabs-nav.ui-widget-header{border:0;background:none}.ui-tabs .ui-tabs-nav li{background:#f3f3f3 none;border-color:#d8d8d8;margin-right:.4em}.ui-tabs .ui-tabs-nav li.ui-tabs-active{background-color:#fff;border:1px solid #d8d8d8;border-bottom:0}.ui-tabs .ui-tabs-nav li.ui-tabs-active a{color:#000;font-weight:bold}.ui-tabs .ui-tabs-nav li.ui-state-default.ui-state-hover{background:#f3f3f3 none}.ui-tabs .ui-tabs-nav li.ui-tabs-active.ui-state-hover{background:#fff none}.ui-tabs .ui-state-default a,.ui-tabs .ui-state-default a:link,.ui-tabs .ui-state-default a:visited{color:#069}.ui-tabs .ui-state-hover a,.ui-tabs .ui-state-hover a:link,.ui-tabs .ui-state-hover a:visited{color:#903}.statictabs ul{background:none repeat scroll 0 0 transparent;border:0 none;margin:0;padding:.2em .2em 0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:4px;border-top-left-radius:4px;color:#222;font-weight:bold;font-size:100%;line-height:1.3;list-style:none outside none;outline:0 none;text-decoration:none}.statictabs ul:before{content:"";display:table}.statictabs ul:after{clear:both;content:"";display:table}.statictabs li{background:none repeat scroll 0 0 #e6f0f2;border:1px solid #b9d8d9;border-bottom:0 none !important;border-top-right-radius:4px;border-top-left-radius:4px;float:left;list-style:none outside none;margin-bottom:0;margin-right:.4em;padding:0;position:relative;white-space:nowrap;top:1px;color:#555;font-weight:normal}.statictabs li.active{background-color:#fff;color:#212121;font-weight:normal;padding-bottom:1px}.statictabs li a{color:#004d99;cursor:pointer;float:left;padding:.5em 1em;text-decoration:none}.statictabs li a:hover{background-color:#edf4f5;border-top-right-radius:4px;border-top-left-radius:4px;color:#538200}.statictabs li.active a{color:#000;font-weight:bold;cursor:text;background:none repeat scroll 0 0 transparent;outline:0 none}.statictabs .tabs-container{border:1px solid #b9d8d9;background:none repeat scroll 0 0 transparent;display:block;padding:1em 1.4em;border-bottom-right-radius:4px;border-bottom-left-radius:4px;color:#222}.ui-datepicker table{width:100%;font-size:.9em;border:0;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{background:transparent none;padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker-trigger{vertical-align:middle;margin:0 3px}.ui-datepicker{-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}.ui-widget-content{border:1px solid #aaa;background:#fff none;color:#222}.ui-widget-header{border:1px solid #aaa;background:#e6f0f2 none;color:#222;font-weight:bold}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #aaa;background:#f4f8f9 none;font-weight:normal;color:#555}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #aaa;background:#e6f0f2 none;font-weight:normal;color:#212121}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff none;font-weight:normal;color:#212121}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee;color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec;color:#cd0a0a}.ui-autocomplete{position:absolute;cursor:default;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2)}.ui-autocomplete.ui-widget-content .ui-state-hover{border:1px solid #aaa;background:#e6f0f2 none;font-weight:normal;color:#212121}.ui-autocomplete-loading{background:#fff url("../../img/loading-small.gif") right center no-repeat}.ui-menu li{list-style:none}th{background-color:#ecede6}.item-thumbnail{max-width:none}.no-image{background-color:#fff;border:1px solid #aaa;color:#979797;display:block;font-size:86%;font-weight:bold;text-align:center;width:75px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}#bookcover .no-image{margin-right:10px;margin-bottom:10px}td.overdue{color:#c33}table{font-size:90%}th.sum{text-align:right}td.sum{background-color:#ffc;font-weight:bold}th[scope=row]{background-color:transparent;text-align:right}.required{color:#c00}.label{background-color:transparent;color:inherit;display:inline;font-weight:normal;padding:0;text-shadow:none}.blabel{background-color:#999;border-radius:3px;color:#fff;display:inline-block;font-weight:bold;padding:2px 4px;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.label-important{background-color:#b94a48}.label-warning{background-color:#f89406}.label-success{background-color:#468847}.label-info{background-color:#3a87ad}.label-inverse{background-color:#333}fieldset.rows{float:left;font-size:90%;clear:left;margin:.9em 0 0 0;padding:0;width:100%}fieldset.rows legend{font-weight:bold;font-size:130%}fieldset.rows label,fieldset.rows .label{float:left;font-weight:bold;width:9em;margin-right:1em;text-align:right}fieldset.rows label.lradio{float:none;margin:inherit;width:auto}fieldset.rows fieldset{margin:0;padding:.3em}fieldset.rows ol{padding:1em 1em 0 1em;list-style-type:none}fieldset.rows ol.lradio label{width:auto;float:none;margin-right:0}fieldset.rows ol.lradio label.lradio{float:left;width:12em;margin-right:1em}fieldset.rows li{float:left;clear:left;padding-bottom:1em;list-style-type:none;width:100%}fieldset.rows li.lradio{padding-left:8.5em;width:auto}fieldset.rows li.lradio label{float:none;width:auto;margin:0 0 0 1em}fieldset.rows .hint{display:block;margin-left:11em}fieldset.action{clear:both;float:none;border:none;margin:0;padding:1em 0 .3em 0;width:auto}fieldset.action p{margin-bottom:1em}fieldset table{font-size:100%}div.rows+div.rows{margin-top:.6em}div.rows{float:left;clear:left;margin:0 0 0 0;padding:0;width:100%}div.rows span.label{float:left;font-weight:bold;width:9em;margin-right:1em;text-align:left}div.rows ol{list-style-type:none;margin-left:0;padding:.5em 1em 0 0}div.rows li{border-bottom:1px solid #eee;float:left;clear:left;padding-bottom:.2em;padding-top:.1em;list-style-type:none;width:100%}div.rows ul li{margin-left:7.3em}div.rows ul li:first-child{float:none;clear:none;margin-left:0}div.rows ol li li{border-bottom:0}.tagweight0{font-size:12px}.tagweight1{font-size:14px}.tagweight2{font-size:16px}.tagweight3{font-size:18px}.tagweight4{font-size:20px}.tagweight5{font-size:22px}.tagweight6{font-size:24px}.tagweight7{font-size:26px}.tagweight8{font-size:28px}.tagweight9{font-size:30px}.toolbar{background-color:#eee;border:1px solid #e8e8e8;font-size:85%;padding:3px 3px 5px 5px;vertical-align:middle}.toolbar a{white-space:nowrap}.toolbar label{display:inline;font-size:100%;font-weight:bold;margin-left:.5em}.toolbar select{font-size:97%;height:auto;line-height:inherit;padding:0;margin:0;width:auto;white-space:nowrap}.toolbar .hold,.toolbar #tagsel_tag{padding-left:28px;font-size:97%;font-weight:bold}.toolbar #tagsel_form{margin-top:.5em}.toolbar li{display:inline;list-style:none}.toolbar li a{border-left:1px solid #e8e8e8}.toolbar li:first-child a{border-left:0}.toolbar ul{padding-left:0}#basket .toolbar{padding:7px 5px 9px 9px}#selections-toolbar,.selections-toolbar{background:-moz-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, #b2b2b2), color-stop(14%, #e0e0e0), color-stop(100%, #e8e8e8));background:-webkit-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-o-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:-ms-linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);background:linear-gradient(top, #b2b2b2 0, #e0e0e0 14%, #e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e0e0e0', endColorstr='#e8e8e8', GradientType=0);margin:0 0 1em 0;padding-top:.5em;padding-left:10px}.list-actions{display:inline}#tagsel_span input.submit,#tagsel_tag{border:0;background-color:transparent;font-size:100%;color:#0076b2;cursor:pointer;background-image:url("../images/sprite.png");background-position:1px -643px;background-repeat:no-repeat;padding-left:25px;text-decoration:none}#tagsel_tag.disabled{background-position:-1px -667px}#tagsel_span input:hover,#selections-toolbar input.hold:hover{color:#005580;text-decoration:underline}#tagsel_span input.disabled,#tagsel_span input.disabled:hover,#tagsel_span input.hold.disabled,#tagsel_span input.hold.disabled:hover,#selections-toolbar input.hold.disabled,#selections-toolbar input.hold.disabled:hover,#selections-toolbar a.disabled,#selections-toolbar a.disabled:hover,.selections-toolbar a.disabled,.selections-toolbar a.disabled:hover{color:#888;text-decoration:none;padding-left:23px}.results_summary{display:block;font-size:85%;color:#707070;padding:0 0 .5em 0}.results_summary .results_summary{font-size:100%}.results_summary.actions{margin-top:.5em}.results_summary.tagstatus{display:inline}.results_summary .label{color:#202020}.results_summary a{font-weight:normal}#views{border-bottom:1px solid #d6d6d6;margin-bottom:.5em;padding:0 2em .2em .2em;white-space:nowrap}.view{padding:.2em .2em 2px .2em}#bibliodescriptions,#isbdcontents{clear:left;margin-top:.5em}.view a,.view span{background-image:url("../images/sprite.png");background-repeat:no-repeat;font-size:87%;font-weight:normal;padding:.4em .7em 5px 26px;text-decoration:none}span#MARCview,span#ISBDview,span#Normalview,span#Fullhistory,span#Briefhistory{font-weight:bold}a#MARCview,span#MARCview{background-position:-3px -23px}a#MARCviewPop,span#MARCviewPop{background-position:-3px -23px}a#ISBDview,span#ISBDview{background-position:-3px -52px}a#Normalview,span#Normalview{background-position:-1px 6px}.view a{background-color:#f3f3f3;border-left:1px solid #c9c9c9}#bookcover{float:left;margin:0;padding:0}#bookcover .no-image{margin-right:10px;margin-bottom:10px}#bookcover img{margin:0 1em 1em 0}.results-pagination{position:absolute;top:32px;left:-1px;width:100%;height:auto;border:1px solid #d0d0d0;display:none;background-color:#f3f3f3;padding-bottom:10px;z-index:100}.back{float:right}.back input{background:none !important;color:#999 !important}.pagination_list ul{padding-top:40px;padding-left:0}.pagination_list li{list-style:none;float:bottom;padding:4px;color:#999}.pagination_list li.highlight{background-color:#f3f3f3;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.pagination_list li a{padding-left:0}.pagination_list .li_pag_index{color:#999;float:left;font-size:15px;font-weight:bold;padding-right:10px;text-align:right;width:13px}.nav_results{background-color:#f3f3f3;border:1px solid #d0d0d0;font-size:95%;font-weight:bold;margin-top:.5em;position:relative}.nav_results .l_Results a{background:#e1e1e1 url("../images/sprite.png") no-repeat 0 -504px;color:#069;display:block;padding:8px 28px;text-decoration:none}.nav_results .l_Results:hover{background-color:#d9d9d9}.pg_menu{margin:0;border-top:1px solid #d0d0d0;white-space:nowrap}.pg_menu li{color:#b2b2b2;display:inline;list-style:none;margin:0}.pg_menu li.back_results a{border-left:1px solid #d0d0d0;border-right:1px solid #d0d0d0}.pg_menu li a,.pg_menu li span{background-color:#f3f3f3;display:block;float:left;padding:.4em .5em;text-decoration:none;font-weight:normal;text-align:center}.pg_menu li span{color:#b2b2b2}#listResults li{background-color:#999;color:#c5c5c5;font-weight:normal;display:block;margin-right:1px;font-size:80%;padding:0;text-align:center;min-width:18px}#listResults li:hover{background-color:#069}#listResults li a{color:#fff;font-weight:normal}.nav_pages .close_pagination{padding-right:10px;position:absolute;right:3px;top:-25px}.nav_pages .close_pagination a{text-decoration:none !important}.nav_pages ul{padding-top:10px}.nav_pages li{list-style:none;float:left;padding:4px;color:#999}.nav_pages li a{text-decoration:none !important}.nav_pages li a:hover{text-decoration:underline}.nav_pages li ul{float:left}#action{margin:.5em 0 0 0;background-color:#f3f3f3;border:1px solid #e8e8e8;padding-bottom:3px}#action li{list-style:none;margin:.2em;padding:.3em 0}#action a{font-weight:bold;text-decoration:none}#export li,#moresearches_menu li{padding:0;margin:0}#export li a,#moresearches_menu li a{font-weight:normal}#export li a.menu-inactive,#moresearches_menu li a.menu-inactive{font-weight:bold}#format,#furthersearches{padding-left:35px}.highlight_controls{float:left}a.addtocart,a.addtoshelf,a.brief,a.deleteshelf,a.deleteshelf.disabled,a.detail,a.download,a.editshelf,a.empty,a.hide,a.highlight_toggle,a.hold,a.hold.disabled,a.incart,a.new,a.print-small,a.print-large,a.removeitems,a.removeitems.disabled,a.reserve,a.send,a.tag_add,a.removefromlist,input.hold,input.hold.disabled,input.editshelf,.newshelf,.newshelf.disabled,.deleteshelf{background-image:url("../images/sprite.png");background-repeat:no-repeat}a.addtocart{background-position:-5px -265px;padding-left:35px}a.addtoshelf{background-position:-5px -225px;padding-left:35px}a.brief{background-position:-2px -868px;text-decoration:none;padding-left:27px}a.cartRemove{color:#c33;font-size:90%;margin:0;padding:0}a.detail{background-position:-2px -898px;text-decoration:none;padding-left:27px}a.download{background-position:-5px -348px;padding-left:20px;text-decoration:none}a.editshelf{background-position:2px -348px;padding-left:26px;text-decoration:none}a.empty{background-position:2px -598px;text-decoration:none;padding-left:30px}a.hide{background-position:-3px -814px;text-decoration:none;padding-left:26px}a.highlight_toggle{background-position:-5px -841px;display:none;padding-left:35px}a.hold,input.hold{background-position:-2px -453px;text-decoration:none;padding-left:23px}a.hold.disabled,input.hold.disabled{background-position:-5px -621px}a.incart{background-position:-5px -265px;color:#666;padding-left:35px}a.new{background-image:url("../images/sprite.png");background-position:-4px -922px;padding-left:23px;text-decoration:none}a.print-small{background-position:0 -423px;text-decoration:none;padding-left:30px}a.print-large{background-position:-5px -186px;text-decoration:none;padding-left:35px}a.removeitems,a.deleteshelf{background-position:2px -690px;text-decoration:none;padding-left:25px}a.removeitems.disabled,a.deleteshelf.disabled{background-position:2px -712px}a.reserve{background-position:-6px -144px;padding-left:35px}a.send{background-position:2px -386px;text-decoration:none;padding-left:28px}a.tag_add{background-position:3px -1111px;padding-left:27px;text-decoration:none}input.hold{background-color:transparent;border:0;color:#0076b2;font-weight:bold}input.editshelf{background-color:transparent;background-position:2px -736px;border:0;color:#069;cursor:pointer;filter:none;font-size:100%;padding-left:29px;text-decoration:none}.newshelf{background-position:2px -764px;border:0;color:#069;cursor:pointer;filter:none;font-size:100%;padding-left:28px;text-decoration:none}.newshelf.disabled{background-position:-4px -791px}.deleteshelf{background-color:transparent;background-position:2px -690px;border:0;color:#069;cursor:pointer;filter:none;font-size:100%;padding-left:25px;text-decoration:none}.links a{font-weight:bold}.deleteshelf:hover{color:#903}.editshelf:active,.deleteshelf:active{border:0}#tagslist li{display:inline}#login4tags{background-image:url("../images/sprite.png");background-position:-6px -1130px;background-repeat:no-repeat;padding-left:20px;text-decoration:none}.tag_results_input{margin-left:1em;padding:.3em;font-size:12px}.tag_results_input input[type="text"]{font-size:inherit;margin:0;padding:0}.tag_results_input label{display:inline}.tagsinput input[type="text"]{font-size:inherit;margin:0;padding:0}.tagsinput label{display:inline}.branch-info-tooltip{display:none}.ui-tooltip-content p{margin:.3em 0}#social_networks a{background:transparent url("../images/social-sprite.png") no-repeat;display:block;height:20px !important;width:20px;text-indent:-999em}#social_networks span{color:#274d7f;display:block;float:left;font-size:85%;font-weight:bold;line-height:2em;margin:.5em 0 .5em .5em !important}#social_networks div{float:left !important;margin:.5em 0 .5em .2em !important}#social_networks #facebook{background-position:-7px -35px}#social_networks #twitter{background-position:-7px -5px}#social_networks #linkedin{background-position:-7px -95px}#social_networks #delicious{background-position:-7px -66px}#social_networks #email{background-position:-7px -126px}#marc td,#marc th{background-color:transparent;border:0;padding:3px 5px;text-align:left}#marc td:first-child{text-indent:2em}#marc p{padding-bottom:.6em}#marc p .label{font-weight:bold}#marc ul{padding-bottom:.6em}#marc .results_summary{clear:left}#marc .results_summary ul{display:inline;float:none;clear:none;margin:0;padding:0;list-style:none}#marc .results_summary li{display:inline}#items,#items td #items th{border:1px solid #eee;font-size:90%}#plainmarc table{border:0;margin:.7em 0 0 0;font-family:monospace;font-size:95%}#plainmarc th{background-color:#fff;border:0;white-space:nowrap;text-align:left;vertical-align:top;padding:2px}#plainmarc td{border:0;padding:2px;vertical-align:top}#renewcontrols{float:right;font-size:66%}#renewcontrols a{background-repeat:no-repeat;text-decoration:none;padding:.1em .4em;padding-left:18px}#renewselected_link{background-image:url("../images/sprite.png");background-position:-5px -986px;background-repeat:no-repeat}#renewall_link{background-image:url("../images/sprite.png");background-position:-8px -967px;background-repeat:no-repeat}.authref{text-indent:2em}.authref .label{font-style:italic}.authstanza{margin-top:1em}.authstanzaheading{font-weight:bold}.authorizedheading{font-weight:bold}.authstanza li{margin-left:.5em}.authres_notes,.authres_seealso,.authres_otherscript{padding-top:.5em}.authres_notes{font-style:italic}#didyoumean{background-color:#eee;border:1px solid #e8e8e8;margin:0 0 .5em;text-align:left;padding:.5em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.suggestionlabel{font-weight:bold}.searchsuggestion{padding:.2em .5em;white-space:nowrap;display:inline-block}.authlink{padding-left:.25em}#hierarchies a{font-weight:normal;text-decoration:underline;color:#069}#hierarchies a:hover{color:#903}#top-pages{margin:0 0 .5em}.dropdown-menu>li>a{font-size:90%}a.listmenulink:link,a.listmenulink:visited{color:#0076b2;font-weight:bold}a.listmenulink:hover,a.listmenulink:active{color:#fff;font-weight:bold}#cartDetails,#cartUpdate,#holdDetails,#listsDetails{background-color:#fff;border:1px solid rgba(0,0,0,0.2);border-radius:6px 6px 6px 6px;box-shadow:0 5px 10px rgba(0,0,0,0.2);color:black;display:none;font-size:90%;margin:0;padding:8px 20px;text-align:center;width:180px;z-index:2}#cartmenulink{white-space:nowrap}#search-facets,#menu{border:1px solid #d2d2cf;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}#search-facets ul,#menu ul{margin:0;padding:.3em}#search-facets form,#menu form{margin:0}#search-facets h4,#menu h4{font-size:90%;margin:0 0 .6em 0;text-align:center}#search-facets h4 a,#menu h4 a{background-color:#f2f2ef;border-radius:8px 8px 0 0;border-bottom:1px solid #d8d8d8;display:block;font-weight:bold;padding:.7em .2em;text-decoration:none}#search-facets li,#menu li{font-size:90%;font-weight:bold;list-style-type:none}#search-facets li li,#menu li li{font-weight:normal;font-size:95%;line-height:125%;margin-bottom:2px;padding:.1em .2em}#search-facets li.showmore a,#menu li.showmore a{font-weight:bold;text-indent:1em}#search-facets a,#menu a{font-weight:normal;text-decoration:underline}#search-facets .facet-count,#menu .facet-count{display:inline-block}#menu{font-size:94%}#menu li{list-style-type:none}#menu li a{background:#eee;text-decoration:none;display:block;border:1px solid #d8d8d8;border-radius:5px 0 0 5px;border-bottom-color:#999;font-size:111%;padding:.4em .6em;margin:.4em 0;margin-right:-1px}#menu li a:hover{background:#eaeef5}#menu li.active a{background-color:#fff;background-image:none;border-right-width:0;font-weight:bold}#menu li.active a:hover{background-color:#fff}#menu h4{display:none}#addto{max-width:10em}.addto a.addtocart{background-image:url("../images/sprite.png");background-position:-5px -266px;background-repeat:no-repeat;text-decoration:none;padding-left:33px}.searchresults p{margin:0;padding:0 0 .6em 0}.searchresults p.details{color:#979797}.searchresults a.highlight_toggle{background-image:url("../images/sprite.png");background-position:-11px -841px;background-repeat:no-repeat;display:none;font-weight:normal;padding:0 10px 0 21px}.searchresults .commentline{background-color:#ffc;background-color:rgba(255,255,204,0.4);border:1px solid #ccc;display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);box-shadow:0 1px 1px 0 rgba(0,0,0,0.2);margin:.3em;padding:.4em}.searchresults .commentline.yours{background-color:#effed5;background-color:rgba(239,254,213,0.4)}.commentline .avatar{float:right;padding-left:.5em}.term{color:#900;background-color:#ffc}.shelvingloc{display:block;font-style:italic}#CheckAll,#CheckNone,.CheckAll,.CheckNone{font-weight:normal;margin:0 .5em;text-decoration:underline}span.sep{color:#888;padding:0 .2em 0 .5em;text-shadow:1px 1px 0 #fff}.pages span:first-child,.pages a:first-child{border-width:1px 1px 1px 1px;border-bottom-left-radius:3px;border-top-left-radius:3px}.pages span:last-child,.pages a:last-child{border-width:1px 1px 1px 0;border-bottom-right-radius:3px;border-top-right-radius:3px}.pages .inactive,.pages .currentPage,.pages a{-moz-border-bottom-colors:none;-moz-border-left-colors:none;-moz-border-right-colors:none;-moz-border-top-colors:none;background-color:#fff;border-color:#ddd;border-image:none;border-style:solid;border-width:1px 1px 1px 0;float:left;font-size:11.9px;line-height:20px;padding:4px 12px;text-decoration:none}.pages .inactive{background-color:#f5f5f5}.pages a[rel='last']{border-bottom-right-radius:3px;border-top-right-radius:3px}.hold-message{background-color:#fff0b1;display:inline-block;margin:.5em;padding:.2em .5em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.reserve_date,.expiration_date{white-space:nowrap}.close{color:#08c;position:inherit;top:auto;right:auto;filter:none;float:none;font-size:inherit;font-weight:normal;opacity:inherit;text-shadow:none}.close:hover{color:#538200;filter:inherit;font-size:inherit;opacity:inherit}.alert .closebtn{position:relative;top:-2px;right:-21px;line-height:20px}.modal-header .closebtn{margin-top:2px}.closebtn{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.closebtn:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.closebtn{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn-group label,.btn-group select{font-size:13px}.span2 select{width:100%}.popup .main{font-size:90%;padding:0 1em}.popup legend{line-height:1.5em;margin-bottom:.5em}.item-status{display:block;font-size:95%;margin-bottom:.5em}.available{color:#060}.waiting,.intransit,.notforloan,.checkedout,.lost,.notonhold{display:block}.notforloan{color:#900}.lost{color:#666}.suggestion{background-color:#eeeeeb;border:1px solid #ddded3;margin:1em auto;padding:.5em;width:35%;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.librarypulldown .transl1{width:auto}.nolibrarypulldown{width:68%}.nolibrarypulldown .transl1{width:87%}#opac-main-search select{width:auto;max-width:12em}#logo{background:transparent url("../images/koha-logo-navbar.png") no-repeat scroll 0;border:0;float:left !important;margin:0;padding:0;width:100px}#logo a{border:0;cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:40px 0 0;text-decoration:none;width:100px}#user-menu-trigger{display:none}#user-menu-trigger .icon-user{background:transparent url("../lib/bootstrap/img/glyphicons-halflings-white.png") no-repeat;background-position:-168px 0;background-repeat:no-repeat;height:14px;line-height:14px;margin:12px 0 0;vertical-align:text-top;width:14px}#user-menu-trigger .caret{border-bottom-color:#999;border-top-color:#999;margin-top:18px}.floating{-webkit-box-shadow:0 3px 2px 0 rgba(0,0,0,0.4);box-shadow:0 3px 2px 0 rgba(0,0,0,0.4);margin-top:0}.tdlabel{font-weight:bold;display:none}td img{max-width:none}#ulactioncontainer{min-width:16em}.notesrow label{font-weight:bold}.notesrow span{display:block}.thumbnail-shelfbrowser span{margin:0 auto}.dropdown-menu>li>a.menu-inactive:hover{background:#fff none;color:#000}.table .sorting_asc{padding-right:19px;background:url("../images/asc.gif") no-repeat scroll right center #ecede6}.table .sorting_desc{padding-right:19px;background:url("../images/desc.gif") no-repeat scroll right center #ecede6}.table .sorting{padding-right:19px;background:url("../images/ascdesc.gif") no-repeat scroll right center #ecede6}.table .nosort,.table .nosort.sorting_asc,.table .nosort.sorting_desc,.table .nosort.sorting{padding-right:19px;background:#ecede6 none}.table th,.table td{line-height:135%}.tags ul{display:inline;list-style:none;margin-left:0}.tags ul li{display:inline}.coverimages{float:right}#i18nMenu{margin-left:1em}#i18nMenu li{font-size:85%}#i18nMenu li li{font-size:100%}#i18nMenu li li>a{font-size:100%}#i18nMenu li li>a:hover{color:#fff}#i18nMenu li a{color:#0076b2}#i18nMenu .dropdown-menu li p{clear:both;display:block;font-weight:normal;line-height:20px;padding:3px 20px;white-space:nowrap}#subjectsList label,#authorSearch label{display:inline;vertical-align:middle}#subjectsList ul,#authorSearch ul{border-bottom:1px solid #eee;list-style-type:none;margin:0;padding:.6em 0}#subjectsList li,#authorSearch li{list-style-type:none;margin:0;padding:0}#overdrive-results{font-weight:bold;padding-left:1em}.throbber{vertical-align:middle}#overdrive-results-list .star-rating-control{display:block;overflow:auto}#shelfbrowser table{margin:0}#shelfbrowser table,#shelfbrowser td,#shelfbrowser th{border:0;font-size:90%;text-align:center}#shelfbrowser td,#shelfbrowser th{padding:3px 5px;width:20%}#shelfbrowser a{display:block;font-size:110%;font-weight:bold;text-decoration:none}#shelfbrowser #browser_next,#shelfbrowser #browser_previous{background-image:url("../images/sprite.png");background-repeat:no-repeat;width:16px}#shelfbrowser #browser_next a,#shelfbrowser #browser_previous a{cursor:pointer;display:block;height:0 !important;margin:0;overflow:hidden;padding:50px 0 0;text-decoration:none;width:16px}#shelfbrowser #browser_previous{background-position:-9px -1007px}#shelfbrowser #browser_next{background-position:-9px -1057px}#holds{margin:0 auto;max-width:800px}.holdrow{clear:both;padding:0 1em 1em 1em;border-bottom:1px solid #ccc;margin-bottom:.5em}.holdrow fieldset{border:0;margin:0;float:none}.holdrow fieldset .label{font-size:14px}.holdrow label{display:inline}.hold-options{clear:both}.toggle-hold-options{background-color:#eee;clear:both;display:block;font-weight:bold;margin:1em 0;padding:.5em}.copiesrow{clear:both}#idreambooksreadometer{float:right}a.idreambooksrating{font-size:30px;color:#29ade4;padding-left:85px;line-height:30px;text-decoration:none}.idreambookslegend{font-size:small}a.reviewlink,a.reviewlink:visited{text-decoration:none;color:black;font-weight:normal}.idreambookssummary a{color:#707070;text-decoration:none}.idreambookssummary img,.idbresult img{vertical-align:middle}.idbresult{color:#29ade4;text-align:center;margin:.5em;padding:.5em}.idbresult a,.idbresult a:visited{text-decoration:none;color:#29ade4}.idbresult img{padding-right:6px}.js-show{display:none}.modal-nojs .modal-header,.modal-nojs .modal-footer{display:none}.contents{width:75%}.contentblock{font-size:95%;line-height:135%;position:relative;margin-left:2em}.contents .t:first-child:before{content:"â "}.contents .t:before{content:"\A â ";white-space:pre}.contents .t{font-weight:bold;display:inline}.contents .r{display:inline}.m880{display:block;text-align:right;float:right;width:50%;padding-left:20px}#memberentry-form input.error{border-color:#c00;box-shadow:0 1px 1px #c00 inset,0 0 8px #c00;color:red;outline:0 none}#memberentry-form input.error:focus{border-color:#c00;box-shadow:0 1px 1px #c00 inset,0 0 8px #c00;color:red;outline:0 none}#memberentry-form label.error{color:#c00;float:none;font-size:90%}@media only screen and (min-width:0) and (max-width:304px){#oh:after{content:"(min-width: 0px) and (max-width: 304px)"}input,select,textarea{width:auto;max-width:11em}}@media only screen and (min-width:0) and (max-width:390px){#oh:after{content:"(min-width: 0px) and (max-width: 390px)"}.ui-tabs .ui-tabs-nav li a,.statictabs li a{padding:.1em .5em}#views{border:0;padding:0;margin:0}.view{padding:0}.view a,.view span{border:1px solid #c9c9c9;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;font-size:80%;padding:.3em .4em 4px 26px}.input-fluid{width:90%}}@media only screen and (min-width:305px) and (max-width:341px){#oh:after{content:"(min-width: 305px) and (max-width: 341px)"}}@media only screen and (min-width:342px) and (max-width:479px){#oh:after{content:"(min-width: 342px) and (max-width: 479px)"}.input-fluid{width:75%}}@media (max-width:979px){.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;margin-left:0;margin-right:0}}@media only screen and (max-width:608px){fieldset.rows label{display:block;float:none;text-align:left}fieldset.rows li{padding-bottom:.5em}fieldset.rows ol{margin-left:0}fieldset.rows .hint{margin-left:0}body{padding:0}.tdlabel{display:inline}.navbar-fixed-top,.navbar-static-top{margin:0}.navbar-inner{padding:0}.checkall,.clearall,.highlight_controls,#selections-toolbar,.selectcol,.list-actions,#remove-selected{display:none}.table td.bibliocol{padding-left:1.3em}.actions{display:block}.actions a,.actions #login4tags{background-color:#f2f2ef;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;font-weight:bold;display:block;font-size:120%;margin:2px 0}.actions .label{display:block;font-weight:bold}.actions #login4tags{margin-right:1em}#opac-main-search button,#opac-main-search input,#opac-main-search select,#opac-main-search .librarypulldown .transl1,#opac-main-search .input-append{display:block;width:97%;max-width:100%;margin:.5em 0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}#opac-main-search .input-append{margin:0;width:100%}#opac-main-search .librarypulldown .transl1{width:94.5%}#toolbar .resort{font-size:14px;max-width:100%;margin:.5em 0;padding:4px 6px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mastheadsearch{margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.main{margin:.5em 0;padding:15px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.breadcrumb{margin:10px 0}#moresearches{text-align:center}#searchsubmit{font-weight:bold}.ui-tabs-panel .item-thumbnail,.tabs-container .item-thumbnail,#topissues .item-thumbnail,#usertags .item-thumbnail,#usersuggestions .item-thumbnail{margin:.5em 0 0 .5em}.ui-tabs-panel .table-bordered,.tabs-container .table-bordered,#topissues .table-bordered,#usertags .table-bordered,#usersuggestions .table-bordered{border:none}.ui-tabs-panel .table th,.tabs-container .table th,#topissues .table th,#usertags .table th,#usersuggestions .table th,.ui-tabs-panel .table thead,.tabs-container .table thead,#topissues .table thead,#usertags .table thead,#usersuggestions .table thead{display:none}.ui-tabs-panel .table td,.tabs-container .table td,#topissues .table td,#usertags .table td,#usersuggestions .table td{border-right:1px solid #ddd;border-left:1px solid #ddd;border-top:0;display:block;padding:.2em}.ui-tabs-panel .table p,.tabs-container .table p,#topissues .table p,#usertags .table p,#usersuggestions .table p{margin-bottom:2px}.ui-tabs-panel tr,.tabs-container tr,#topissues tr,#usertags tr,#usersuggestions tr{display:block;margin-bottom:.6em}.ui-tabs-panel tr td:first-child,.tabs-container tr td:first-child,#topissues tr td:first-child,#usertags tr td:first-child,#usersuggestions tr td:first-child{border-top:1px solid #ddd;border-radius:5px 5px 0 0}.ui-tabs-panel tr td:last-child,.tabs-container tr td:last-child,#topissues tr td:last-child,#usertags tr td:last-child,#usersuggestions tr td:last-child{border-radius:0 0 5px 5px;border-bottom:2px solid #cacaca}.no-image{display:none}}@media only screen and (max-width:700px){#opac-main-search label{display:none}#logo{background:transparent url("../lib/bootstrap/img/glyphicons-halflings-white.png") no-repeat;background-position:0 -24px;margin:14px 14px 0 14px;width:14px}#logo a{padding:14px 0 0;width:14px}#user-menu-trigger{display:inline;margin-right:12px}#members{display:none;clear:both}#members li{padding-right:20px;text-align:right;border-bottom:1px solid #555}#members li:first-child{border-top:1px solid #555}#members li:last-child{border-bottom:none}#members .nav{float:none}#members .nav.pull-right{float:none}#members .nav>li{float:none}#members .divider-vertical{border:0;height:0;margin:0}}@media only screen and (min-width:480px) and (max-width:608px){#oh:after{content:" Between 480 pixels and 608 pixels. "}.input-fluid{width:75%}}@media only screen and (min-width:608px) and (max-width:767px){#oh:after{content:" Between 608 pixels and 767 pixels. "}.main{padding:.8em 20px}.breadcrumb{margin:10px 0}.navbar-static-bottom{margin-left:-20px;margin-right:-20px}.row-fluid input.span6{width:48.9362%}}@media only screen and (max-width:767px){a.title{font-size:120%}#userresults{margin:0 -20px}.breadcrumb,#top-pages,.menu-collapse{display:none}#search-facets,#menu{margin-bottom:.5em}#search-facets h4,#menu h4{display:block;margin:0;padding:0}#search-facets h4 a,#menu h4 a{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;border-bottom:0;font-weight:normal;padding:.7em .2em}#search-facets ul,#menu ul{padding:0}#menu li a{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:0;display:block;font-size:120%;text-decoration:none;border-bottom:1px solid #d8d8d8;margin:0}#menu li.active a{border-top:1px solid #d8d8d8;border-right-width:1px}#menu li:last-child a{-webkit-border-radius:0 0 7px 7px;-moz-border-radius:0 0 7px 7px;border-radius:0 0 7px 7px}#search-facets li{padding:.4em}#search-facets h5{margin:.2em}#menu h4 a.menu-open,#search-facets h4 a.menu-open{-webkit-border-radius:7px 7px 0 0;-moz-border-radius:7px 7px 0 0;border-radius:7px 7px 0 0;border-bottom:1px solid #d8d8d8}}@media only screen and (max-width:800px){.cartlabel,.listslabel{display:none}.navbar .divider-vertical{margin:0 2px}.navbar #members .divider-vertical{margin:0 9px}}@media only screen and (min-width:768px){.main{margin-left:20px;margin-right:20px}#menu{border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-right:1px solid #d8d8d8}#menu h4{display:none}#menu ul{padding:1em 0 1em 0}}@media only screen and (min-width:768px) and (max-width:984px){#oh:after{content:" Between 768 and 984 pixels. "}.librarypulldown .transl1{width:38%}}@media only screen and (min-width:984px){#oh:after{content:" Above 984 pixels. "}.librarypulldown .transl1{width:53%}}@media only screen and (max-width:1040px){.pg_menu li a{float:none;text-align:left}.pg_menu li.back_results a{border:1px solid #d0d0d0;border-width:1px 0 1px 0}#ulactioncontainer{min-width:0}} >\ No newline at end of file >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc >index a4ef40e..45b1f47 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-detail-sidebar.inc >@@ -1,3 +1,4 @@ >+[% USE Biblio %] > <ul id="action"> > [% UNLESS ( norequests ) %] > [% IF Koha.Preference( 'opacuserlogin' ) == 1 %] >@@ -8,6 +9,15 @@ > [% END %] > [% END %] > [% END %] >+ >+ [% IF Koha.Preference( 'opacuserlogin' ) == 1 %] >+ [% IF Koha.Preference('ArticleRequests') %] >+ [% IF Biblio.CanArticleRequest( biblionumber, borrowernumber ) %] >+ <li><a class="article_request" href="/cgi-bin/koha/opac-request-article.pl?biblionumber=[% biblionumber %]">Request article</a></li> >+ [% END %] >+ [% END %] >+ [% END %] >+ > <li><a class="print-large" href="#" onclick="window.print();">Print</a></li> > [% IF Koha.Preference( 'virtualshelves' ) == 1 %] > [% IF ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) && loggedinusername ) %] >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-request-article.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-request-article.tt >new file mode 100644 >index 0000000..7937292 >--- /dev/null >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-request-article.tt >@@ -0,0 +1,214 @@ >+[% USE Koha %] >+[% USE Branches %] >+[% INCLUDE 'doc-head-open.inc' %] >+<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › Request article</title> >+[% INCLUDE 'doc-head-close.inc' %] >+[% BLOCK cssinclude %][% END %] >+</head> >+ >+[% INCLUDE 'bodytag.inc' bodyid='opac-holds' %] >+[% INCLUDE 'masthead.inc' %] >+ >+<div class="main"> >+ <ul class="breadcrumb"> >+ <li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">›</span></li> >+ <li><a href="#">Request article</a></li> >+ </ul> >+ >+ <div class="container"> >+ [% IF biblio.can_article_request( patron ) %] >+ [% SET article_request_type = biblio.article_request_type( patron ) %] >+ >+ [% IF article_request_type == 'yes' %] [% SET mandatory_fields = Koha.Preference('ArticleRequestsMandatoryFields') %] [% END %] >+ [% IF article_request_type == 'bib_only' %] [% SET mandatory_fields = Koha.Preference('ArticleRequestsMandatoryFieldsRecordOnly') %] [% END %] >+ [% IF article_request_type == 'item_only' %] [% SET mandatory_fields = Koha.Preference('ArticleRequestsMandatoryFieldsItemOnly') %] [% END %] >+ >+ <h3>Place article request for [% biblio.title %]</h3> >+ >+ <form id="place-article-request" method="post" action="/cgi-bin/koha/opac-request-article-do.pl"> >+ <input type="hidden" name="biblionumber" id="biblionumber" value="[% biblio.biblionumber %]" /> >+ >+ <fieldset class="rows"> >+ <ul> >+ <li> >+ [% IF mandatory_fields.search('title') %] >+ <label for="title" class="required">Title:</label> >+ [% ELSE %] >+ <label for="title">Title:</label> >+ [% END %] >+ <input type="text" name="title" id="title" size="50"/> >+ </li> >+ >+ <li> >+ [% IF mandatory_fields.search('author') %] >+ <label for="author" class="required">Author:</label> >+ [% ELSE %] >+ <label for="author">Author:</label> >+ [% END %] >+ <input type="text" name="author" id="author" size="50"/> >+ </li> >+ >+ <li> >+ [% IF mandatory_fields.search('volume') %] >+ <label for="volume" class="required">Volume:</label> >+ [% ELSE %] >+ <label for="volume">Volume:</label> >+ [% END %] >+ <input type="text" name="volume" id="volume" size="50"/> >+ </li> >+ >+ <li> >+ [% IF mandatory_fields.search('issue') %] >+ <label for="issue" class="required">Issue:</label> >+ [% ELSE %] >+ <label for="issue">Issue:</label> >+ [% END %] >+ <input type="text" name="issue" id="issue" size="50"/> >+ </li> >+ >+ <li> >+ [% IF mandatory_fields.search('date') %] >+ <label for="date" class="required">Date:</label> >+ [% ELSE %] >+ <label for="date">Date:</label> >+ [% END %] >+ <input type="text" name="date" id="date" size="50"/> >+ </li> >+ >+ <li> >+ [% IF mandatory_fields.search('pages') %] >+ <label for="pages" class="required">Pages:</label> >+ [% ELSE %] >+ <label for="pages">Pages:</label> >+ [% END %] >+ <input type="text" name="pages" id="pages" size="50"/> >+ </li> >+ >+ <li> >+ [% IF mandatory_fields.search('chapters') %] >+ <label for="chapters" class="required">Chapters:</label> >+ [% ELSE %] >+ <label for="chapters">Chapters:</label> >+ [% END %] >+ <input type="text" name="chapters" id="chapters" size="50"/> >+ </li> >+ >+ <li> >+ <label for="branchcode">Pickup library:</label> >+ <select name="branchcode" id="branchcode"> >+ [% FOREACH b IN Branches.all %] >+ [% IF b.branchcode == Branches.GetLoggedInBranchcode %] >+ <option value="[% b.branchcode %]" selected="selected">[% b.branchname %]</option> >+ [% ELSE %] >+ <option value="[% b.branchcode %]">[% b.branchname %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ </ul> >+ </fieldset> >+ >+ [% IF article_request_type != 'bib_only' %] >+ <table class="copiesrow table table-bordered table-striped"> >+ <caption>Select a specific item:</caption> >+ <thead> >+ <tr> >+ <th> </th> >+ <th>Item type</th> >+ <th>Barcode</th> >+ <th>Home library</th> >+ <th>Call number</th> >+ </tr> >+ </thead> >+ >+ <tbody> >+ [% FOREACH item IN biblio.items %] >+ [% IF item.can_article_request( patron ) %] >+ <tr> >+ <td> >+ [% IF article_request_type == 'item_only' && !checked %] >+ [% SET checked = 1 %] >+ <input type="radio" name="itemnumber" value="[% item.itemnumber %]" checked="checked" /> >+ [% ELSE %] >+ <input type="radio" name="itemnumber" value="[% item.itemnumber %]" /> >+ [% END %] >+ </td> >+ <td> >+ [% item.itype %] >+ </td> >+ <td> >+ [% item.barcode %] >+ </td> >+ <td> >+ [% item.homebranch %] >+ </td> >+ <td> >+ [% item.itemcallnumber %] >+ </td> >+ </tr> >+ [% END %] >+ [% END %] >+ >+ [% IF article_request_type != 'item_only' %] >+ <tr> >+ <td> >+ <input type="radio" name="itemnumber" value="" checked="checked"/> >+ </td> >+ <td colspan="4"> >+ Any item >+ </td> >+ </tr> >+ [% END %] >+ </tbody> >+ </table> >+ [% END %] >+ >+ <input type="submit" class="btn" value="Place request" /> >+ </form> >+ [% ELSE %] >+ No article requests can be made for this record. >+ [% END %] >+ >+ </div> <!-- / .container --> >+</div> <!-- / .main --> >+ >+[% INCLUDE 'opac-bottom.inc' %] >+ >+[% BLOCK jsinclude %] >+<script type="text/javascript"> >+// <![CDATA[ >+ allow_submit = false; >+ $('#place-article-request').on('submit', function( event ){ >+ if ( ! allow_submit ) { >+ event.preventDefault(); >+ >+ [% IF article_request_type == 'item_only' %] >+ if ( ! $("input:radio[name='itemnumber']").is(":checked") ) { >+ alert( _("Please select a specific item for this article request.") ); >+ return 0; >+ } >+ [% END %] >+ >+ var mandatory_fields = "[% mandatory_fields %]"; >+ var m = new Array(); >+ if ( mandatory_fields ) m = mandatory_fields.split(","); >+ var f = new Array(); >+ >+ for (i = 0; i < m.length; i++) { >+ if ( ! $("#" + m[i]).val() ) { >+ f.push( m[i] ); >+ } >+ } >+ >+ if ( f.length ) { >+ alert( _("The following fields are required and not filled in: ") + f.join(", ") ); >+ return 0; >+ } >+ >+ allow_submit = true; >+ $('#place-article-request').submit(); >+ } >+ }); >+// ]]> >+</script> >+[% END %] >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt >index 8a0ec89..f287362 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt >@@ -511,6 +511,12 @@ > [% END # UNLESS SEARCH_RESULT.norequests %] > [% END # IF RequestOnOpac %] > >+ [% IF ( Koha.Preference( 'opacuserlogin' ) == 1 ) %] >+ [% IF Koha.Preference('ArticleRequests') %] >+ <span class="actions"><a class="article_request" href="/cgi-bin/koha/opac-request-article.pl?biblionumber=[% SEARCH_RESULT.biblionumber %]">Request article</a></span> >+ [% END %] >+ [% END %] >+ > [% IF ( TagsInputEnabled ) %] > [% IF ( loggedinusername ) %] > <span class="actions"><a class="tag_add" id="tag_add[% SEARCH_RESULT.biblionumber %]" href="#">Add tag</a></span> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt >index 06cf7ab..81b72e1 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-user.tt >@@ -118,6 +118,7 @@ > [% IF ( BORROWER_INFO.amountlessthanzero ) %]<li><a href="#opac-user-fines">Credits ([% BORROWER_INFO.amountoutstanding %])</a></li>[% END %] > [% END %] > [% IF ( RESERVES.count ) %]<li><a href="#opac-user-holds">Holds ([% RESERVES.count %])</a></li>[% END %] >+ [% IF Koha.Preference('ArticleRequests') && borrower.article_requests_current %]<li><a href="#opac-user-article-requests">Article requests ([% borrower.article_requests_current.count %])</a></li>[% END %] > </ul> > > <div id="opac-user-checkouts"> >@@ -693,6 +694,100 @@ > [% END %] > </div> <!-- / #opac-user-holds --> > [% END # / #RESERVES.count %] >+ >+ [% IF Koha.Preference('ArticleRequests') && borrower.article_requests_current.count %] >+ <div id="opac-user-article-requests"> >+ <table id="article-requests-table" class="table table-bordered table-striped"> >+ <caption>Article requests <span class="count">([% borrower.article_requests_current.count %] total)</span></caption> >+ <!-- RESERVES TABLE ROWS --> >+ <thead> >+ <tr> >+ <th class="anti-the">Record title</th> >+ <th class="psort">Placed on</th> >+ <th class="anti-the">Title</th> >+ <th>Author</th> >+ <th>Volume</th> >+ <th>Issue</th> >+ <th>Date</th> >+ <th>Pages</th> >+ <th>Chapters</th> >+ <th>Status</th> >+ <th>Pickup library</th> >+ <th class="nosort"> </th> >+ </tr> >+ </thead> >+ >+ <tbody> >+ [% FOREACH ar IN borrower.article_requests_current %] >+ <td class="article-request-title"> >+ <a class="article-request-title" href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% ar.biblionumber %]"> >+ [% ar.biblio.title %] >+ [% ar.item.enumchron %] >+ </a> >+ [% ar.biblio.author %] >+ [% IF ar.itemnumber %] <i>(only [% ar.item.barcode %])</i>[% END %] >+ </td> >+ >+ <td class="article-request-created_on"> >+ [% ar.created_on | $KohaDates %] >+ </td> >+ >+ <td class="article-request-title"> >+ [% ar.title %] >+ </td> >+ >+ <td class="article-request-author"> >+ [% ar.author %] >+ </td> >+ >+ <td class="article-request-volume"> >+ [% ar.volume %] >+ </td> >+ >+ <td class="article-request-issue"> >+ [% ar.issue %] >+ </td> >+ >+ <td class="article-request-date"> >+ [% ar.date %] >+ </td> >+ >+ <td class="article-request-pages"> >+ [% ar.pages %] >+ </td> >+ >+ <td class="article-request-chapters"> >+ [% ar.chapters %] >+ </td> >+ >+ <td class="article-request-status"> >+ [% IF ar.status == 'OPEN' %] >+ Open >+ [% ELSIF ar.status == 'PROCESSING' %] >+ Processing >+ [% ELSIF ar.status == 'COMPLETED' %] >+ Completed >+ [% ELSIF ar.status == 'CANCELED' %] >+ Canceled >+ [% END %] >+ </td> >+ >+ <td class="article-request-branchcode"> >+ [% ar.branch.branchname %] >+ </td> >+ >+ <td class="article-request-cancel"> >+ <span class="tdlabel">Cancel:</span> >+ <a class="btn btn-mini btn-danger" href="opac-article-request-cancel.pl?id=[% ar.id %]" onclick="return confirmDelete(MSG_CONFIRM_DELETE_HOLD);"><i class="icon-remove icon-white"></i> Cancel</a> >+ <!-- TODO: replace MSG_CONFIRM_DELETE_HOLD with correct message --> >+ </td> >+ </tr> >+ [% END %] >+ </tbody> >+ </table> >+ </div> <!-- / #opac-user-article-requests --> >+ [% END %] >+ > </div> <!-- /#opac-user-views --> > </div> <!-- /#userdetails --> > </div> <!-- /.span10 --> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/less/opac.less b/koha-tmpl/opac-tmpl/bootstrap/less/opac.less >index 6da32e5..f1f2af7 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/less/opac.less >+++ b/koha-tmpl/opac-tmpl/bootstrap/less/opac.less >@@ -266,6 +266,14 @@ td { > padding-left : 21px; > text-decoration : none; > } >+ &.article_request { >+ background-image : url("../images/sprite.png"); /* Place hold small */ >+ background-position : -2px -26px; >+ background-repeat: no-repeat; >+ margin-right : 1em; >+ padding-left : 21px; >+ text-decoration : none; >+ } > &.addtocart { > background-image : url("../images/sprite.png"); /* Cart small */ > background-position : -5px -572px; >@@ -1345,6 +1353,7 @@ a.print-large, > a.removeitems, > a.removeitems.disabled, > a.reserve, >+a.article_request, > a.send, > a.tag_add, > a.removefromlist, >@@ -1473,6 +1482,11 @@ a.reserve { > padding-left : 35px; > } > >+a.article_request { >+ background-position: 0px -24px; /* Place article request */ >+ padding-left : 35px; >+} >+ > a.send { > background-position : 2px -386px; /* Email */ > text-decoration : none; >@@ -2490,4 +2504,8 @@ a.reviewlink:visited { > font-size: 90%; > } > >+.btn-danger { >+ color: white !important; >+} >+ > @import "responsive.less"; >diff --git a/mainpage.pl b/mainpage.pl >index e2651d8..55d9845 100755 >--- a/mainpage.pl >+++ b/mainpage.pl >@@ -30,6 +30,7 @@ use C4::Suggestions qw/CountSuggestion/; > use C4::Tags qw/get_count_by_tag_status/; > use Koha::Borrower::Modifications; > use Koha::Borrower::Discharge; >+use Koha::ArticleRequests; > > my $query = new CGI; > >@@ -65,9 +66,14 @@ my $branch = > my $pendingcomments = numberofreviews(0); > my $pendingtags = get_count_by_tag_status(0); > my $pendingsuggestions = CountSuggestion("ASKED"); >-my $pending_borrower_modifications = >- Koha::Borrower::Modifications->GetPendingModificationsCount( $branch ); >+my $pending_borrower_modifications = Koha::Borrower::Modifications->GetPendingModificationsCount( $branch ); > my $pending_discharge_requests = Koha::Borrower::Discharge::count({ pending => 1 }); >+my $pending_article_requests = Koha::ArticleRequests->count( >+ { >+ status => Koha::ArticleRequest::Status::Pending, >+ $branch ? ( branchcode => $branch ) : (), >+ } >+); > > $template->param( > pendingcomments => $pendingcomments, >@@ -75,6 +81,7 @@ $template->param( > pendingsuggestions => $pendingsuggestions, > pending_borrower_modifications => $pending_borrower_modifications, > pending_discharge_requests => $pending_discharge_requests, >+ pending_article_requests => $pending_article_requests, > ); > > # >diff --git a/opac/opac-article-request-cancel.pl b/opac/opac-article-request-cancel.pl >new file mode 100755 >index 0000000..baaa0ae >--- /dev/null >+++ b/opac/opac-article-request-cancel.pl >@@ -0,0 +1,47 @@ >+#!/usr/bin/perl >+ >+# Copyright 2015 >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use CGI qw ( -utf8 ); >+ >+use C4::Output; >+use C4::Auth; >+use Koha::ArticleRequests; >+ >+my $query = new CGI; >+ >+my ( $template, $borrowernumber, $cookie ) = get_template_and_user( >+ { >+ template_name => "opac-account.tt", >+ query => $query, >+ type => "opac", >+ authnotrequired => 0, >+ debug => 1, >+ } >+); >+ >+my $id = $query->param('id'); >+ >+if ( $id && $borrowernumber ) { >+ my $ar = Koha::ArticleRequests->find( $id ); >+ $ar->cancel() if $ar; >+} >+ >+print $query->redirect("/cgi-bin/koha/opac-user.pl#opac-user-article-requests"); >diff --git a/opac/opac-request-article-do.pl b/opac/opac-request-article-do.pl >new file mode 100755 >index 0000000..0060405 >--- /dev/null >+++ b/opac/opac-request-article-do.pl >@@ -0,0 +1,69 @@ >+#!/usr/bin/perl >+ >+# Copyright ByWater Solutions 2015 >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use CGI qw ( -utf8 ); >+ >+use C4::Auth; >+use C4::Output; >+ >+use Koha::ArticleRequest; >+ >+my $cgi = new CGI; >+ >+my ( $template, $borrowernumber, $cookie ) = get_template_and_user( >+ { >+ template_name => "opac-request-article.tt", >+ query => $cgi, >+ type => "opac", >+ authnotrequired => 0, >+ debug => 1, >+ } >+); >+ >+my $biblionumber = $cgi->param('biblionumber'); >+my $branchcode = $cgi->param('branchcode'); >+ >+my $itemnumber = $cgi->param('itemnumber') || undef; >+my $title = $cgi->param('title') || undef; >+my $author = $cgi->param('author') || undef; >+my $volume = $cgi->param('volume') || undef; >+my $issue = $cgi->param('issue') || undef; >+my $date = $cgi->param('date') || undef; >+my $pages = $cgi->param('pages') || undef; >+my $chapters = $cgi->param('chapters') || undef; >+ >+my $ar = Koha::ArticleRequest->new( >+ { >+ borrowernumber => $borrowernumber, >+ biblionumber => $biblionumber, >+ branchcode => $branchcode, >+ itemnumber => $itemnumber, >+ title => $title, >+ author => $author, >+ volume => $volume, >+ issue => $issue, >+ date => $date, >+ pages => $pages, >+ chapters => $chapters, >+ } >+)->store(); >+ >+print $cgi->redirect("/cgi-bin/koha/opac-user.pl#opac-user-article-requests"); >diff --git a/opac/opac-request-article.pl b/opac/opac-request-article.pl >new file mode 100755 >index 0000000..a5b1b83 >--- /dev/null >+++ b/opac/opac-request-article.pl >@@ -0,0 +1,52 @@ >+#!/usr/bin/perl >+ >+# Copyright ByWater Solutions 2015 >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use CGI qw ( -utf8 ); >+ >+use C4::Auth; >+use C4::Output; >+ >+use Koha::Biblios; >+use Koha::Borrowers; >+ >+my $cgi = new CGI; >+ >+my ( $template, $borrowernumber, $cookie ) = get_template_and_user( >+ { >+ template_name => "opac-request-article.tt", >+ query => $cgi, >+ type => "opac", >+ authnotrequired => 0, >+ debug => 1, >+ } >+); >+ >+my $biblionumber = $cgi->param('biblionumber'); >+ >+my $biblio = Koha::Biblios->find($biblionumber); >+my $patron = Koha::Borrowers->find($borrowernumber); >+ >+$template->param( >+ biblio => $biblio, >+ patron => $patron, >+); >+ >+output_html_with_http_headers $cgi, $cookie, $template->output; >diff --git a/opac/opac-user.pl b/opac/opac-user.pl >index 9d1f9b2..093f195 100755 >--- a/opac/opac-user.pl >+++ b/opac/opac-user.pl >@@ -38,6 +38,7 @@ use Koha::DateUtils; > use Koha::Borrower::Debarments qw(IsDebarred); > use Koha::Holds; > use Koha::Database; >+use Koha::Borrowers; > > use constant ATTRIBUTE_SHOW_BARCODE => 'SHOW_BCODE'; > >@@ -333,7 +334,7 @@ if ( C4::Context->preference('AllowPatronToSetCheckoutsVisibilityForGuarantor' > } > > $template->param( >- borrower => $borr, >+ borrower => Koha::Borrowers->find($borrowernumber), > bor_messages_loop => GetMessages( $borrowernumber, 'B', 'NONE' ), > patronupdate => $patronupdate, > OpacRenewalAllowed => C4::Context->preference("OpacRenewalAllowed"), >diff --git a/svc/article_request b/svc/article_request >new file mode 100755 >index 0000000..8db68ff >--- /dev/null >+++ b/svc/article_request >@@ -0,0 +1,63 @@ >+#!/usr/bin/perl >+ >+# Copyright 2015 ByWater Solutions >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it under the >+# terms of the GNU General Public License as published by the Free Software >+# Foundation; either version 2 of the License, or (at your option) any later >+# version. >+# >+# Koha is distributed in the hope that it will be useful, but WITHOUT ANY >+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR >+# A PARTICULAR PURPOSE. See the GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License along >+# with Koha; if not, write to the Free Software Foundation, Inc., >+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. >+# >+ >+use Modern::Perl; >+ >+use CGI; >+use JSON qw(to_json); >+ >+use C4::Auth qw(check_cookie_auth); >+use Koha::ArticleRequests; >+ >+my $cgi = new CGI; >+ >+my ( $auth_status, $sessionID ) = >+ check_cookie_auth( $cgi->cookie('CGISESSID'), { circulate => 'circulate_remaining_permissions' } ); >+if ( $auth_status ne "ok" ) { >+ exit 0; >+} >+ >+binmode STDOUT, ':encoding(UTF-8)'; >+print $cgi->header( -type => 'text/plain', -charset => 'UTF-8' ); >+ >+my $id = $cgi->param('id'); >+my $action = $cgi->param('action') || q{}; >+my $notes = $cgi->param('notes'); >+ >+my $ar = Koha::ArticleRequests->find($id); >+ >+if ($ar) { >+ if ( $action eq 'cancel' ) { >+ $ar = $ar->cancel( $notes ); >+ } >+ elsif ( $action eq 'process' ) { >+ $ar = $ar->process(); >+ } >+ elsif ( $action eq 'complete' ) { >+ $ar = $ar->complete(); >+ } >+ elsif ( $action eq 'update_branchcode' ) { >+ my $branchcode = $cgi->param('branchcode'); >+ $ar->branchcode( $branchcode ) if $branchcode; >+ $ar = $ar->store(); >+ } >+} >+ >+print to_json( { success => $ar ? 1 : 0 } ); >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 14610
:
42822
|
42823
|
42824
|
42825
|
42826
|
42827
|
42828
|
42829
|
43198
|
43199
|
43200
|
43201
|
43202
|
43264
|
43265
|
43266
|
43267
|
43268
|
43270
|
43271
|
43272
|
43273
|
43274
|
43278
|
43279
|
43280
|
43281
|
43282
|
43654
|
43655
|
43656
|
43657
|
43658
|
44219
|
44220
|
44221
|
44222
|
44223
|
44224
|
44225
|
44226
|
44227
|
44228
|
44229
|
44230
|
44231
|
44232
|
44233
|
44234
|
44235
|
44236
|
44237
|
44238
|
44239
|
44240
|
44241
|
44242
|
44916
|
44917
|
44918
|
44919
|
44920
|
44921
|
44922
|
44923
|
44924
|
44925
|
44926
|
45946
|
45947
|
45948
|
45949
|
45950
|
45951
|
45952
|
45953
|
45954
|
45955
|
45956
|
46518
|
46519
|
46520
|
46521
|
46522
|
46523
|
46524
|
46525
|
46526
|
46527
|
46528
|
46529
|
46530
|
46595
|
46596
|
46597
|
46598
|
46599
|
46600
|
46601
|
46602
|
46603
|
46604
|
46605
|
46606
|
46607
|
46608
|
46609
|
46610
|
46611
|
46612
|
47905
|
47906
|
47907
|
47908
|
47909
|
47910
|
47911
|
47912
|
47913
|
47914
|
47915
|
47916
|
47917
|
47918
|
47919
|
47920
|
47921
|
47922
|
48177
|
48178
|
48179
|
48180
|
48181
|
48182
|
48212
|
48213
|
48214
|
48215
|
48216
|
48217
|
48218
|
50348
|
50349
|
50350
|
50351
|
50352
|
50353
|
50354
|
51527
|
51528
|
51529
|
51530
|
51531
|
51532
|
51533
|
51534
|
51778
|
51779
|
51780
|
51781
|
51782
|
51783
|
52688
|
52689
|
52690
|
52691
|
52692
|
52693
|
55556
|
55557
|
55558
|
55559
|
55560
|
55561
|
55568
|
55569
|
56084
|
56085
|
56086
|
56087
|
56088
|
56089
|
56090
|
56318
|
56319
|
56320
|
56321
|
56322
|
56323
|
56324
|
56325
|
56326
|
56327
|
56328
|
56775
|
56776
|
56777
|
56778
|
56779
|
56780
|
56781
|
56782
|
56783
|
56784
|
56785
|
56816
|
56854
|
56855
|
56856
|
56857
|
56858
|
56859
|
56860
|
56861
|
56862
|
56863
|
56864
|
56865