From 9708d249c292040eb2df018003667891b5053162 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 11 Jul 2014 15:35:27 -0300 Subject: [PATCH] Bug 12559: Wrong message if all cover images deleted If a record contains a (one or more) local cover image and it is deleted, a wrong message is presented in the UI. To reproduce: - Have LocalCoverImages set to "Display" and AllowMultipleCovers set to "Allow". - Go to the detail page of a record that has no images attached. - The 'Images' tab conveniently shows the following message: "No images have been uploaded..." - Use the "upload" link to add a local cover to the record - Complete the process, and "view final record". - The 'Images' tab shows the added cover. - Delete the cover image using the link below the cover. => FAIL: 'Click on an image...' message still shows instead of 'No images have been...' To test: - Apply the patch - Repeat the previous steps => SUCCESS : 'No images have been...' Bonus points: previous code didn't show a message at all if the user didn't have permissions to upload local cover images. I've split the message in two: - 'No images have been...' (for everyone) - 'Please upload (link)...' (for those with the right permissions :-D Regards To+ Edit: I used JavaScript to inject the 'No images...' message to aid localization. It can be improved once we fix some stuff in the translation scripts to better support placeholders/variables in the templates. Sponsored-by: Universidad Nacional de Cordoba --- .../prog/en/modules/catalogue/detail.tt | 28 ++++++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt index fe8d32e..8cae1b4 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt @@ -63,6 +63,9 @@ function verify_images() { if ( this.deleted == 1 ) { $('#imagenumber-' + this.imagenumber).remove(); } + if ( $('ul.thumbnails > li').length == 0 ) { + showNoImageMessage(); + } }); }, error: function(data) { @@ -72,6 +75,20 @@ function verify_images() { } + function showNoImageMessage() { + + var no_images_msg = _("No images have been uploaded for this bibliographic record yet."); + no_images_msg = '

' + no_images_msg + '

'; + [% IF ( CAN_user_tools_upload_local_cover_images ) %] + var please_upload = _("Please %supload%s one.").format( + "", + ""); + no_images_msg += "

" + please_upload + '

'; + [% END %] + + $('#images').html(no_images_msg); + } + [% IF StaffDetailItemSelection %] function selectAllItems(div) { $("input[name='itemnumber'][type='checkbox']", div).attr('checked', 'checked'); @@ -141,7 +158,7 @@ function verify_images() { }); [% END %] - $(document).ready(function() { + $(document).ready(function() { $('#bibliodetails').tabs(); $('#search-form').focus(); $('.thumbnails > li > a > span.remove').click(function() { @@ -154,6 +171,10 @@ function verify_images() { return false; }); + [%# inject no images message %] + [% IF ( LocalCoverImages && ! localimages.0 ) %] + showNoImageMessage(); + [% END %] }); [% IF ( AmazonCoverImages ) %]$(window).load(function() { @@ -931,10 +952,7 @@ function verify_images() { [% END %] [% END %] -[% ELSE %] -[% IF ( CAN_user_tools_upload_local_cover_images ) %] -

No images have been uploaded for this bibliographic record yet. Please upload one.

-[% END %] +[%# ELSE - No image passed JavaScript takes care %] [% END %] [% END %] -- 1.9.1