Bug 1633 - Interface revisions for the staff client

This patch revises the image viewer page to match other
biblio detail pages: a toolbar, a sidebar menu, etc.

Additional data is now pulled by imageviewer.pl in order
to provide information necessary for the proper functioning
of the toolbar and menus: item counts, hold availability,
biblio view options.

Other changes have been made to match the changes in the
OPAC interface like styling of the images and no-javascript
compatibility

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Magnus Enger <magnus@enger.priv.no>

Patch failed to apply because of multiple Content-Type lines in the patch.
Corrected the same with this new patch.

http://bugs.koha-community.org/show_bug.cgi?id=6473
This commit is contained in:
Owen Leonard 2011-12-13 14:19:29 -05:00 committed by Paul Poulain
parent 57288e020d
commit e901c4f24c
6 changed files with 122 additions and 33 deletions

View File

@ -29,7 +29,7 @@ use C4::Images;
$|=1;
my $DEBUG = 1;
my $DEBUG = 0;
my $data = new CGI;
my $imagenumber;

View File

@ -23,8 +23,10 @@ use warnings;
use CGI;
use C4::Auth;
use C4::Biblio;
use C4::Items;
use C4::Output;
use C4::Images;
use C4::Search;
my $query = new CGI;
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
@ -38,14 +40,38 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
);
my $biblionumber = $query->param('biblionumber') || $query->param('bib');
my $imagenumber = $query ->param('imagenumber');
my ($count, $biblio) = GetBiblio($biblionumber);
my $itemcount = GetItemsCount($biblionumber);
my @items = GetItemsInfo( $biblionumber );
my $norequests = 1;
foreach my $item (@items) {
# can place holds defaults to yes
$norequests = 0 unless ( ( $item->{'notforloan_per_itemtype'} > 0 ) || ( $item->{'itemnotforloan'} > 0 ) );
}
if($query->cookie("holdfor")){
my $holdfor_patron = GetMember('borrowernumber' => $query->cookie("holdfor"));
$template->param(
holdfor => $query->cookie("holdfor"),
holdfor_surname => $holdfor_patron->{'surname'},
holdfor_firstname => $holdfor_patron->{'firstname'},
holdfor_cardnumber => $holdfor_patron->{'cardnumber'},
);
}
if (C4::Context->preference("LocalCoverImages")) {
my @images = ListImagesForBiblio($biblionumber);
$template->{VARS}->{'LocalCoverImages'} = 1;
$template->{VARS}->{'images'} = \@images;
$template->{VARS}->{'imagenumber'} = $imagenumber || $images[0] || '';
}
$template->{VARS}->{'biblio'} = $biblio;
$template->{VARS}->{'count'} = $itemcount;
$template->{VARS}->{'biblionumber'} = $biblionumber;
$template->{VARS}->{'norequests'} = $norequests;
$template->param( C4::Search::enabled_staff_search_views );
$template->{VARS}->{'biblio'} = $biblio;
output_html_with_http_headers $query, $cookie, $template->output;

View File

@ -2137,6 +2137,9 @@ div.pager input.pagedisplay {
font-weight: bold;
text-align : center;
}
.localimage {
padding: .3em;
}
a.localimage img {
border : 1px solid #0000CC;
margin : 0 .5em;
padding : .3em;
}

View File

@ -23,7 +23,7 @@
[% IF ( CAN_user_reserveforothers ) %]
[% IF ( holdsview ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% IF ( object ) %][% object %][% ELSE %][% biblionumber %][% END %]">Holds</a></li>
[% END %]
[% IF ( EasyAnalyticalRecords ) %][% IF ( analyze ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% IF ( object ) %][% object %]&analyze=1[% ELSE %][% biblionumber %]&analyze=1[% END %]">Analytics</a></li>[% END %]
[% IF ( EasyAnalyticalRecords ) %][% IF ( analyze ) %]<li class="active">[% ELSE %]<li>[% END %]<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% IF ( object ) %][% object %]&amp;analyze=1[% ELSE %][% biblionumber %]&amp;analyze=1[% END %]">Analytics</a></li>[% END %]
[% IF ( subscriptionsnumber ) %]<li><a href="/cgi-bin/koha/serials/serials-home.pl?searched=1&amp;biblionumber=[% biblionumber %]">Subscription(s)</a></li>[% END %]
</ul>

View File

@ -518,7 +518,7 @@ function verify_images() {
<ul>
[% FOREACH AMAZON_SIMILAR_PRODUCT IN AMAZON_SIMILAR_PRODUCTS %]
[% FOREACH similar_biblionumber IN AMAZON_SIMILAR_PRODUCT.similar_biblionumbers %]
<li><img alt="img" src="http://images.amazon.com/images/P/[% similar_biblionumber.ASIN %].01._SS50_.jpg" /> <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% similar_biblionumber.biblionumber %]">[% similar_biblionumber.title |html %]</a> </li>
<li><img alt="" src="http://images.amazon.com/images/P/[% similar_biblionumber.ASIN %].01._SS50_.jpg" /> <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% similar_biblionumber.biblionumber %]">[% similar_biblionumber.title |html %]</a> </li>
[% END %]
[% END %]
</ul>
@ -527,16 +527,16 @@ function verify_images() {
[% IF ( LocalCoverImages ) %]
<div id="images">
[% IF ( localimages ) %]
<div>Click on an image to view it in the image viewer</div>
[% IF ( localimages.0 ) %]
<p>Click on an image to view it in the image viewer</p>
[% FOREACH image IN localimages %]
[% IF image %]
<span class="localimage"><a href="/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=[% biblionumber %]&imagenumber=[% image %]"><img alt="img" src="/cgi-bin/koha/catalogue/image.pl?thumbnail=1&imagenumber=[% image %]" /></a></span>
<a class="localimage" href="/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=[% biblionumber %]&amp;imagenumber=[% image %]"><img alt="" src="/cgi-bin/koha/catalogue/image.pl?thumbnail=1&amp;imagenumber=[% image %]" /></a>
[% END %]
[% END %]
[% ELSE %]
[% IF ( CAN_user_tools_upload_local_cover_images ) %]
<p>No images have been uploaded for this bibliographic record yet. Please <a href='/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber %]&filetype=image'>upload</a> one.</p>
<p>No images have been uploaded for this bibliographic record yet. Please <a href='/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber %]&amp;filetype=image'>upload</a> one.</p>
[% END %]
[% END %]
</div>

View File

@ -1,11 +1,12 @@
[% INCLUDE 'doc-head-open.inc' %]
[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha Online[% END %] Catalog &rsaquo; Images for: [% biblio.title |html %]
<title>Koha &rsaquo; Catalog &rsaquo; Details for [% biblio.title |html %] [% FOREACH subtitl IN subtitle %] [% subtitl.subfield %][% END %]</title>
[% INCLUDE 'doc-head-close.inc' %]
<script type="text/JavaScript" language="JavaScript">
[% IF ( LocalCoverImages == 1 ) %]
<script type="text/JavaScript">
//<![CDATA[
$(document).ready(function(){
showCover($('.thumbnail').attr('id'));
showCover([% imagenumber %]);
});
function showCover(img) {
@ -16,28 +17,87 @@ function showCover(img) {
//]]>
</script>
<style type="text/css">
#largeCoverImg {
border : 1px solid #CCCCCC;
display : block;
margin : auto;
padding : 1em;
}
#thumbnails {
text-align : center;
}
#thumbnails a img {
border : 1px solid #0000CC;
}
img.thumbnail {
border-style: solid;
border-width: 3px;
border-color: white;
display : block;
float : none;
margin: 0 5px 5px 0;
padding : .5em;
}
img.selected {
#thumbnails a img.selected {
border-color: black;
cursor : default;
opacity:0.4;
filter:alpha(opacity=40); /* For IE8 and earlier */
}
</style>
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
<body id="imageviewer">
<div id="largeCover"><img id="largeCoverImg" alt="Large view" /></div>
[% IF LocalCoverImages == 1 %]
[% FOREACH img IN images %]
[% IF img %]
<a href='#' onclick='showCover([% img %])'><img class='thumbnail' id='[% img %]' src='/cgi-bin/koha/catalogue/image.pl?imagenumber=[% img %]&thumbnail=1' alt='Image'/></a>
[% END %]
[% END %]
[% biblio.title %] [% biblio.author %]
</style>[% END %]
</head>
<body>
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/catalogue/search.pl">Catalog</a> &rsaquo; Images for <i>[% biblio.title |html %] [% FOREACH subtitl IN subtitle %] [% subtitl.subfield %][% END %]</i></div>
<div id="doc3" class="yui-t1">
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<div class="yui-ge">
[% INCLUDE 'cat-toolbar.inc' %]
<h3>Images for <i>[% biblio.title |html %]</i></h3>
<h4>[% biblio.author %]</h4>
[% IF ( LocalCoverImages == 1 ) %]
[% IF ( images.size > 0 ) %]
<div class="yui-u first">
<div id="largeCover">
<img id="largeCoverImg" alt="" src="/cgi-bin/koha/catalogue/image.pl?imagenumber=[% imagenumber %]" />
</div></div>
<div class="yui-u"><div id="thumbnails">
[% FOREACH img IN images %]
[% IF img %]
<a href="/cgi-bin/koha/catalogue/imageviewer.pl?biblionumber=[% biblionumber %]&amp;imagenumber=[% img %]" onclick="showCover([% img %]); return false;">
[% IF ( imagenumber == img ) %]
<img class="thumbnail selected" id="[% img %]" src="/cgi-bin/koha/catalogue/image.pl?imagenumber=[% img %]&amp;thumbnail=1" alt="Thumbnail" />
[% ELSE %]
<img class="thumbnail" id="[% img %]" src="/cgi-bin/koha/catalogue/image.pl?imagenumber=[% img %]&amp;thumbnail=1" alt="Thumbnail" />
[% END %]
</a>
[% END %]
[% END %]
</div></div>
[% ELSE %]
<div class="dialog message">There are no images for this record.</div>
[% END %]
[% ELSE %]
Unfortunately, images are not enabled for this catalog at this time.
<div class="dialog message">Local images have not been enabled by your system administrator.</div>
[% END %]
</body>
</html>
</div>
</div>
</div>
<div class="yui-b">
[% INCLUDE 'biblio-view-menu.inc' %]
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]