]> _ Git - fluidbook-html5.git/commitdiff
fix #2574 @0.25
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 4 Feb 2019 17:29:54 +0000 (18:29 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 4 Feb 2019 17:29:54 +0000 (18:29 +0100)
js/libs/fluidbook/fluidbook.js
js/libs/fluidbook/fluidbook.print.js

index df24f730427ef57513e8ec2a8e431a53f997873a..4e06e0ee7a739aba62ebf44f535481212699104e 100644 (file)
@@ -647,6 +647,9 @@ Fluidbook.prototype = {
         return this.datas.numerotation[page - 1];
     },
     virtualToPhysical: function (page) {
+        if(page===undefined){
+            return false;
+        }
         var i = this.datas.numerotation.indexOf(page.toString());
         if (i == -1) {
             return false;
index e360649027d47895c19e86b7ff784ae3f948cec1..a1ed160dbec205038e22fe838685120eb0a348f5 100644 (file)
@@ -20,9 +20,8 @@ FluidbookPrint.prototype = {
                 element = $(this),
                 mode = element.data('mode'), // Either 'print' or 'download'
                 print = (mode == 'print'),
-                choice = $('input[name="pageChoice"]:checked').val(),
-                rangeStart = $this.fluidbook.virtualToPhysical($('#pageRangeStart').val()),
-                rangeEnd = $this.fluidbook.virtualToPhysical($('#pageRangeEnd').val());
+                choice = $('input[name="pageChoice"]:checked').val();
+
 
             switch (choice) {
                 case 'left':
@@ -42,25 +41,28 @@ FluidbookPrint.prototype = {
                     $this.fluidbook.bookmarks.openPDF(element, print);
                     break;
                 case 'range':
-                if (isNaN(rangeStart) ||
-                    isNaN(rangeEnd) ||
-                    (rangeStart < 1) ||
-                    (rangeEnd > $this.fluidbook.datas.pages) ||
-                    (rangeStart > rangeEnd)
-                ) {
-                  alert(__('Invalid page range. Please try again.'));
-                  return false;
-                }
-                var pageRange = rangeStart + '-' + rangeEnd;
-                $this.fluidbook._openFile(dynamicPDF + pageRange, element, 'pdf', pageRange + '.pdf', print);
-                break;default:
+                    var rangeStart = $this.fluidbook.virtualToPhysical($('#pageRangeStart').val());
+                    var rangeEnd = $this.fluidbook.virtualToPhysical($('#pageRangeEnd').val());
+                    if (isNaN(rangeStart) ||
+                        isNaN(rangeEnd) ||
+                        (rangeStart < 1) ||
+                        (rangeEnd > $this.fluidbook.datas.pages) ||
+                        (rangeStart > rangeEnd)
+                    ) {
+                        alert(__('Invalid page range. Please try again.'));
+                        return false;
+                    }
+                    var pageRange = rangeStart + '-' + rangeEnd;
+                    $this.fluidbook._openFile(dynamicPDF + pageRange, element, 'pdf', pageRange + '.pdf', print);
+                    break;
+                default:
                     return false;
             }
         });
 
         // Automatically select page range option when clicking in the input fields
-        $(document).on('focus', '.page-range-input', function() {
-          $('#pageRange').prop('checked', true);
+        $(document).on('focus', '.page-range-input', function () {
+            $('#pageRange').prop('checked', true);
         });
 
         // When there are no bookmarks a click on the bookmarks option will open the bookmarks help modal
@@ -151,17 +153,17 @@ FluidbookPrint.prototype = {
 
         // Full Brochure
         if (this.fluidbook.datas.printFullBrochure) {
-          view += '<div class="print-option">';
-          view += '<label for="allPages">';
-          view += '<div class="doubleThumb">';
-          view += '<div class="thumb left">';
-          view += this.fluidbook.loader.getThumbImage(1, null, true);
-          view += '</div>'; // .thumb
-          view += '</div>'; // .doubleThumb
-          view += '</label>';
-          view += '<input type="radio" name="pageChoice" value="all" id="allPages">'
-          view += '<label for="allPages" class="print-label-text">' + __('entire brochure') + '</label>';
-          view += '</div>'; // .print-option
+            view += '<div class="print-option">';
+            view += '<label for="allPages">';
+            view += '<div class="doubleThumb">';
+            view += '<div class="thumb left">';
+            view += this.fluidbook.loader.getThumbImage(1, null, true);
+            view += '</div>'; // .thumb
+            view += '</div>'; // .doubleThumb
+            view += '</label>';
+            view += '<input type="radio" name="pageChoice" value="all" id="allPages">'
+            view += '<label for="allPages" class="print-label-text">' + __('entire brochure') + '</label>';
+            view += '</div>'; // .print-option
         }
 
         // Bookmarks
@@ -185,22 +187,22 @@ FluidbookPrint.prototype = {
         // Page range inputs
         if (this.fluidbook.datas.printPageRange) {
 
-          // leftPageNumber may be false if on first page
-          var rangeStart = Math.max(leftPageNumber, 1);
-
-          // Current page + 1 unless we're out of range.
-          // It has to be calculated this way because sometimes there is no rightPageNumber
-          var rangeEnd = Math.min(rangeStart + 1, this.fluidbook.datas.pages);
-
-          view += '<div class="print-option page-range-option">';
-          view += '<input type="radio" name="pageChoice" value="range" id="pageRange">';
-          view += '<label for="pageRange">';
-          view += __('From page');
-          view += '<input class="page-range-input" type="text" id="pageRangeStart" value="' + this.fluidbook.physicalToVirtual(rangeStart) + '" autocomplete="off">';
-          view += __('to');
-          view += '<input class="page-range-input" type="text" id="pageRangeEnd" value="' + this.fluidbook.physicalToVirtual(rangeEnd) + '" autocomplete="off">';
-          view += '</label>';
-          view += '</div>'; // .print-option
+            // leftPageNumber may be false if on first page
+            var rangeStart = Math.max(leftPageNumber, 1);
+
+            // Current page + 1 unless we're out of range.
+            // It has to be calculated this way because sometimes there is no rightPageNumber
+            var rangeEnd = Math.min(rangeStart + 1, this.fluidbook.datas.pages);
+
+            view += '<div class="print-option page-range-option">';
+            view += '<input type="radio" name="pageChoice" value="range" id="pageRange">';
+            view += '<label for="pageRange">';
+            view += __('From page');
+            view += '<input class="page-range-input" type="text" id="pageRangeStart" value="' + this.fluidbook.physicalToVirtual(rangeStart) + '" autocomplete="off">';
+            view += __('to');
+            view += '<input class="page-range-input" type="text" id="pageRangeEnd" value="' + this.fluidbook.physicalToVirtual(rangeEnd) + '" autocomplete="off">';
+            view += '</label>';
+            view += '</div>'; // .print-option
         }
 
         view += '</div>'; // .print-dialogue