From: Vincent Vanwaelscappel Date: Wed, 30 Jan 2019 14:01:22 +0000 (+0100) Subject: Merge remote-tracking branch 'origin/printing' X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=9fd97e0bbc17867978124e53b16b58576924bdf9;p=fluidbook-html5.git Merge remote-tracking branch 'origin/printing' # Conflicts: # js/libs/fluidbook/fluidbook.print.js # style/mixins.less --- 9fd97e0bbc17867978124e53b16b58576924bdf9 diff --cc js/libs/fluidbook/fluidbook.print.js index 53fe2ff5,a8ea9c25..e3606490 --- a/js/libs/fluidbook/fluidbook.print.js +++ b/js/libs/fluidbook/fluidbook.print.js @@@ -20,32 -20,52 +20,51 @@@ FluidbookPrint.prototype = element = $(this), mode = element.data('mode'), // Either 'print' or 'download' print = (mode == 'print'), - choice = $('input[name="pageChoice"]:checked').val(); + choice = $('input[name="pageChoice"]:checked').val(), + rangeStart = $this.fluidbook.virtualToPhysical($('#pageRangeStart').val()), + rangeEnd = $this.fluidbook.virtualToPhysical($('#pageRangeEnd').val()); switch (choice) { - case 'left': - $this.fluidbook._openFile(dynamicPDF + leftPageNumber, element, 'pdf', leftPageNumber + '.pdf', print); - break; - case 'right': - $this.fluidbook._openFile(dynamicPDF + rightPageNumber, element, 'pdf', rightPageNumber + '.pdf', print); - break; - case 'double': - var pageRange = leftPageNumber + '-' + rightPageNumber; - $this.fluidbook._openFile(dynamicPDF + pageRange, element, 'pdf', pageRange + '.pdf', print); - break; - case 'all': - $this.fluidbook.openPDF(element, print); - break; - case 'bookmarks': - $this.fluidbook.bookmarks.openPDF(element, print); - break; - case 'range': + case 'left': + $this.fluidbook._openFile(dynamicPDF + leftPageNumber, element, 'pdf', leftPageNumber + '.pdf', print); + break; + case 'right': + $this.fluidbook._openFile(dynamicPDF + rightPageNumber, element, 'pdf', rightPageNumber + '.pdf', print); + break; + case 'double': + var pageRange = leftPageNumber + '-' + rightPageNumber; + $this.fluidbook._openFile(dynamicPDF + pageRange, element, 'pdf', pageRange + '.pdf', print); + break; + case 'all': + $this.fluidbook.openPDF(element, print); + break; + case 'bookmarks': + $this.fluidbook.bookmarks.openPDF(element, print); + break; - default: ++ 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: - return false; ++ 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); + }); + // When there are no bookmarks a click on the bookmarks option will open the bookmarks help modal - $(document).on('click', '.bookmarks-option.disabled', function(event) { + $(document).on('click', '.bookmarks-option.disabled', function (event) { event.preventDefault(); $this.fluidbook.menu.quickCloseView(); @@@ -145,21 -167,42 +166,42 @@@ // Bookmarks if (this.fluidbook.datas.bookmark) { - var hasBookmarks = this.fluidbook.bookmarks.hasBookmarkedPages(), - bookmarksDisabled = hasBookmarks ? '' : 'disabled'; + var hasBookmarks = this.fluidbook.bookmarks.hasBookmarkedPages(), + bookmarksDisabled = hasBookmarks ? '' : 'disabled'; - view += ''; // .print-option + view += ''; // .print-option } - view += ''; // Extra empty div to ensure flexbox space-between works as expected + view += ''; // Extra empty div to ensure flexbox space-between works as expected + + // 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 += ''; // .print-option + } view += ''; // .print-dialogue diff --cc style/mixins.less index c0490178,e563fe2d..c0a2c9f7 --- a/style/mixins.less +++ b/style/mixins.less @@@ -63,7 -67,4 +67,7 @@@ &.hidden { opacity: 0; } + .ios & { + transition: none !important; + } - } + }