diff --git a/bookmarklet.js b/bookmarklet.js index e386a01..ca504d3 100644 --- a/bookmarklet.js +++ b/bookmarklet.js @@ -1,5 +1,5 @@ (function() { - var version = "4.0.1"; + var version = "4.0.6"; console.log("Version: " + version); var global = {}; @@ -42,6 +42,9 @@ } else if (/.*trello.com\/.*/g.test(document.URL)) { console.log("App: " + "Trello"); global.appFunctions = trelloFunctions; + } else if (/.*\/youtrack\/.*/g.test(document.URL)) { + console.log("App: " + "YouTrack"); + global.appFunctions = youTrackFunctions; } else { alert("Unsupported app.Please create an issue at https://github.com/qoomon/Jira-Issue-Card-Printer"); return; @@ -66,8 +69,8 @@ var printFrame = jQuery("#card-print-dialog-content-iframe"); var printWindow = printFrame[0].contentWindow; - printWindow.addEventListener("resize", function(){redrawCards;}); - printWindow.matchMedia("print").addListener(function(){redrawCards;}); + printWindow.addEventListener("resize", function(){redrawCards();}); + printWindow.matchMedia("print").addListener(function(){redrawCards();}); jQuery("#rowCount").val(readCookie("card_printer_row_count",2)); jQuery("#columnCount").val(readCookie("card_printer_column_count",1)); @@ -103,12 +106,14 @@ } function print() { + var printFrame = jQuery("#card-print-dialog-content-iframe"); + var printWindow = printFrame[0].contentWindow; + var printDocument = printWindow.document; + if (global.isProd) { ga('send', 'event', 'button', 'click', 'print', jQuery(".card", printDocument).length); } - var printFrame = jQuery("#card-print-dialog-content-iframe"); - var printWindow = printFrame[0].contentWindow; printWindow.print(); } @@ -259,36 +264,15 @@ var printWindow = printFrame[0].contentWindow; var printDocument = printWindow.document; + var columnCount = jQuery("#columnCount").val(); var rowCount = jQuery("#rowCount").val(); - // scale + var cardCount = jQuery(".card", printDocument).length; + var pageCount = Math.ceil(cardCount / (columnCount * rowCount)) - jQuery("html", printDocument).css("font-size", "1cm"); - - // scale horizontal - // substract one pixel due to rounding problems - var cardMaxWidth = jQuery(".card", printDocument).outerWidth() / columnCount - 1; - var cardMinWidth = jQuery(".card", printDocument).css("min-width").replace("px", ""); - var scaleWidth = cardMaxWidth / cardMinWidth; - console.log("cardMaxWidth: "+cardMaxWidth); - console.log("cardMinWidth: "+cardMinWidth); - console.log("scaleWidth: "+scaleWidth); - - // scale vertical - // substract one pixel due to rounding problems - var cardMaxHeight = jQuery(".card", printDocument).outerHeight() / rowCount - 1; - var cardMinHeight = jQuery(".card", printDocument).css("min-height").replace("px", ""); - var scaleHeight = cardMaxHeight / cardMinHeight; - console.log("cardMaxHeight: "+cardMaxHeight); - console.log("cardMinHeight: "+cardMinHeight); - console.log("scaleHeight: "+scaleHeight); - scaleHeight = 1; - // scale min - var scale = Math.min(scaleWidth, scaleHeight); - if(scale < 1) { - jQuery("html", printDocument).css("font-size",scale +"cm"); - } + console.log("cardCount: "+cardCount); + console.log("pageCount: "+pageCount); // size @@ -297,7 +281,7 @@ var style= document.createElement('style'); style.id = 'styleColumnCount'; style.type ='text/css'; - style.innerHTML = ".card { width: calc( 100% / " + columnCount + "); }" + style.innerHTML = ".card { width: calc( 100% / " + columnCount + " - 0.0001px ); }" jQuery("head", printDocument).append(style); // size horizontal @@ -305,8 +289,36 @@ var style= document.createElement('style'); style.id = 'styleRowCount'; style.type ='text/css'; - style.innerHTML = ".card { height: calc( 100% / " + rowCount + "); }" + style.innerHTML = ".card { height: calc( 100% / " + rowCount + " - 0.0001px ); }" jQuery("head", printDocument).append(style); + + // scale + + jQuery("html", printDocument).css("font-size", "1cm"); + + // scale horizontal + // substract one pixel due to rounding problems + var cardMaxWidth = Math.floor(jQuery(".card", printDocument).outerWidth() / columnCount) ; + var cardMinWidth = jQuery(".card", printDocument).css("min-width").replace("px", "") ; + var scaleWidth = cardMaxWidth / cardMinWidth; + console.log("cardMaxWidth: "+cardMaxWidth); + console.log("cardMinWidth: "+cardMinWidth); + console.log("scaleWidth: "+scaleWidth); + + // scale vertical + // substract one pixel due to rounding problems + var cardMaxHeight = Math.floor(jQuery(".card", printDocument).outerHeight() * 2 / rowCount) ; + var cardMinHeight = jQuery(".card", printDocument).css("min-height").replace("px", "") ; + var scaleHeight = cardMaxHeight / cardMinHeight; + console.log("cardMaxHeight: "+cardMaxHeight); + console.log("cardMinHeight: "+cardMinHeight); + console.log("scaleHeight: "+scaleHeight); + + // scale min + var scale = Math.min(scaleWidth, scaleHeight, 1); + if(scale < 1) { + jQuery("html", printDocument).css("font-size",scale +"cm"); + } } function cropCards() { @@ -351,6 +363,7 @@