diff --git a/bookmarklet.js b/bookmarklet.js index afd9926..d7aa5b4 100644 --- a/bookmarklet.js +++ b/bookmarklet.js @@ -27,24 +27,21 @@ try { main(); } catch (err) { - console.log(err.message); - if (isProd) { - ga('send', 'exception', { - 'exDescription': err.message, - 'exFatal': true - }); - } + handleError(err); } }); - } catch (err) { - console.log(err.message); - if (isProd) { - ga('send', 'exception', { - 'exDescription': err.message, - 'exFatal': true - }); - } + handleError(err); + } + + function handleError(err){ + console.log("ERROR: " + err.stack); + if (isProd) { + ga('send', 'exception', { + 'exDescription': err.message, + 'exFatal': true + }); + } } function init() { @@ -93,10 +90,9 @@ jQuery("#rowCount").val(readCookie("card_printer_row_count",2)); jQuery("#columnCount").val(readCookie("card_printer_column_count",1)); jQuery("#card-scale-range").val(readCookie("card_printer_card_scale",1)); - jQuery("#multi-card-page-checkbox").attr('checked',readCookie("card_printer_multi_card_page",false) != 'false'); + jQuery("#single-card-page-checkbox").attr('checked',readCookie("card_printer_single_card_page",false) != 'false'); jQuery("#hide-description-checkbox").attr('checked',readCookie("card_printer_hide_description",false) != 'false'); - if (isProd) { ga('send', 'pageview'); } @@ -109,88 +105,59 @@ } function print() { - var rowCount = jQuery("#rowCount").val(); - var columnCount = jQuery("#columnCount").val(); - var scale = jQuery("#card-scale-range").val(); - var multiCard = jQuery("#multi-card-page-checkbox").is(':checked'); - var hideDescription = jQuery("#hide-description-checkbox").is(':checked'); + try { + var rowCount = jQuery("#rowCount").val(); + var columnCount = jQuery("#columnCount").val(); + var scale = jQuery("#card-scale-range").val(); + var singleCard = jQuery("#single-card-page-checkbox").is(':checked'); + var hideDescription = jQuery("#hide-description-checkbox").is(':checked'); - writeCookie("card_printer_row_count", rowCount); - writeCookie("card_printer_column_count",columnCount); - writeCookie("card_printer_card_scale",scale); - writeCookie("card_printer_multi_card_page",multiCard); - writeCookie("card_printer_hide_description",hideDescription); - - var printFrame = jQuery("#card-print-dialog-content-iframe"); - var printWindow = printFrame[0].contentWindow; - var printDocument = printWindow.document; - if (isProd) { - ga('send', 'event', 'button', 'click', 'print', jQuery(".card", printDocument).length); - } - var currentScale = jQuery("html", printDocument).css("font-size").replace("px", ""); - printWindow.matchMedia("print").addListener(function() { - - jQuery(".card", printDocument).css("height", "calc( 100% / " + rowCount + " )"); - jQuery(".card", printDocument).css("width", "calc( 100% / " + columnCount + " )"); - - var pageWidth = jQuery("body", printDocument).outerWidth(); - var cardWidth = jQuery(".card", printDocument).outerWidth(); - - var newScale = currentScale * pageWidth / cardWidth; - - //jQuery("html", printDocument).css("font-size",newScale +"px"); - }); - - ///////////////////////////////////////// - - printWindow.addEventListener("resize", refreshCard); - printWindow.matchMedia("print").addListener(refreshCard); - - function refreshCard() { - var cardElements = printDocument.querySelectorAll(".card"); - forEach(cardElements, function (cardElement) { - var cardContent = cardElement.querySelectorAll(".card-content")[0]; - if (cardContent.scrollHeight > cardContent.offsetHeight) { - cardContent.classList.add("zigzag"); - } else { - cardContent.classList.remove("zigzag"); - } - }); - } - - function forEach(array, callback) { - for (i = 0; i < array.length; i++) { - callback(array[i]); + var printFrame = jQuery("#card-print-dialog-content-iframe"); + var printWindow = printFrame[0].contentWindow; + var printDocument = printWindow.document; + if (isProd) { + ga('send', 'event', 'button', 'click', 'print', jQuery(".card", printDocument).length); } - } + var currentScale = jQuery("html", printDocument).css("font-size").replace("px", ""); + printWindow.matchMedia("print").addListener(function() { - ///////////////////////////////////////// + var pageWidth = jQuery("body", printDocument).outerWidth(); + var cardWidth = jQuery(".card", printDocument).outerWidth(); - printWindow.print(); - jQuery("html", printDocument).css("font-size",currentScale +"px"); - } + var newScale = currentScale * pageWidth / cardWidth; - function hideDescription(hide) { - var printFrame = jQuery("#card-print-dialog-content-iframe"); - var printWindow = printFrame[0].contentWindow; - var printDocument = printWindow.document; - if (hide) { - jQuery(".description", printDocument).hide(); - } else { - jQuery(".description", printDocument).show(); - } + //jQuery("html", printDocument).css("font-size",newScale +"px"); + }); - resizeIframe(printFrame); - } + ///////////////////////////////////////// - function endableMultiCardPage(enable) { - var printFrame = jQuery("#card-print-dialog-content-iframe"); - var printWindow = printFrame[0].contentWindow; - var printDocument = printWindow.document; - if (enable) { - jQuery(".page", printDocument).addClass("multiCardPage"); - } else { - jQuery(".page", printDocument).removeClass("multiCardPage"); + printWindow.addEventListener("resize", refreshCard); + printWindow.matchMedia("print").addListener(refreshCard); + + function refreshCard() { + var cardElements = printDocument.querySelectorAll(".card"); + forEach(cardElements, function (cardElement) { + var cardContent = cardElement.querySelectorAll(".card-body")[0]; + if (cardContent.scrollHeight > cardContent.offsetHeight) { + cardContent.classList.add("zigzag"); + } else { + cardContent.classList.remove("zigzag"); + } + }); + } + + function forEach(array, callback) { + for (i = 0; i < array.length; i++) { + callback(array[i]); + } + } + + ///////////////////////////////////////// + + printWindow.print(); + jQuery("html", printDocument).css("font-size",currentScale +"px"); + } catch (err) { + handleError(err); } } @@ -201,7 +168,7 @@ var printDocument = printWindow.document; printDocument.open(); - printDocument.write(""); + printDocument.write("
"); jQuery("head", printDocument).append(cardCss()); // jQuery("head", printDocument).append(cardJavaScript()); // NOT WORKING @@ -313,8 +280,6 @@ // http://www.cssdesk.com/T9hXg function printOverlayHTML() { - - var result = jQuery(document.createElement('div')) .attr("id", "card-print-overlay") .html(multilineString(function() { @@ -333,9 +298,9 @@