Bug 12559: Wrong message if all cover images deleted
authorTomas Cohen Arazi <tomascohen@gmail.com>
Fri, 11 Jul 2014 18:35:27 +0000 (15:35 -0300)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Fri, 18 Jul 2014 13:41:27 +0000 (10:41 -0300)
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
Signed-off-by: Aleisha <aleishaamohia@hotmail.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt

index 9e17a40..e10d95f 100644 (file)
@@ -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 = '<p>' + no_images_msg + '</p>';
+    [% IF ( CAN_user_tools_upload_local_cover_images ) %]
+        var please_upload = _("Please %supload%s one.").format(
+            "<a href='/cgi-bin/koha/tools/upload-cover-image.pl?biblionumber=[% biblionumber %]&amp;filetype=image'>",
+            "</a>");
+        no_images_msg += "<p>" + please_upload + '</p>';
+    [% 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() {
@@ -940,10 +961,7 @@ function verify_images() {
     [% END %]
 [% END %]
     </ul>
-[% 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 %]&amp;filetype=image'>upload</a> one.</p>
-[% END %]
+[%# ELSE - No image passed JavaScript takes care %]
 [% END %]
 </div>
 [% END %]