diff --git a/amadeus/static/js/printThis.js b/amadeus/static/js/printThis.js new file mode 100644 index 0000000..9803d6b --- /dev/null +++ b/amadeus/static/js/printThis.js @@ -0,0 +1,304 @@ +/* + * printThis v1.10.0 + * @desc Printing plug-in for jQuery + * @author Jason Day + * + * Resources (based on) : + * jPrintArea: http://plugins.jquery.com/project/jPrintArea + * jqPrint: https://github.com/permanenttourist/jquery.jqprint + * Ben Nadal: http://www.bennadel.com/blog/1591-Ask-Ben-Print-Part-Of-A-Web-Page-With-jQuery.htm + * + * Licensed under the MIT licence: + * http://www.opensource.org/licenses/mit-license.php + * + * (c) Jason Day 2015 + * + * Usage: + * + * $("#mySelector").printThis({ + * debug: false, // show the iframe for debugging + * importCSS: true, // import page CSS + * importStyle: false, // import style tags + * printContainer: true, // grab outer container as well as the contents of the selector + * loadCSS: "path/to/my.css", // path to additional css file - us an array [] for multiple + * pageTitle: "", // add title to print page + * removeInline: false, // remove all inline styles from print elements + * printDelay: 333, // variable print delay + * header: null, // prefix to html + * footer: null, // postfix to html + * base: false, // preserve the BASE tag, or accept a string for the URL + * formValues: true, // preserve input/form values + * canvas: false, // copy canvas elements (experimental) + * doctypeString: '...', // enter a different doctype for older markup + * removeScripts: false // remove script tags from print content + * }); + * + * Notes: + * - the loadCSS will load additional css (with or without @media print) into the iframe, adjusting layout + */ +; +(function($) { + + function appendContent($el, content) { + if (!content) return; + + // Simple test for a jQuery element + $el.append(content.jquery ? content.clone() : content); + } + + function appendBody($body, $element, opt) { + // Clone for safety and convenience + var $content = $element.clone(); + + if (opt.removeScripts) { + $content.find('script').remove(); + } + + if (opt.printContainer) { + // grab $.selector as container + $body.append($("
").html($content).html()); + } else { + // otherwise just print interior elements of container + $content.each(function() { + $body.append($(this).html()); + }); + } + } + + var opt; + $.fn.printThis = function(options) { + opt = $.extend({}, $.fn.printThis.defaults, options); + var $element = this instanceof jQuery ? this : $(this); + + var strFrameName = "printThis-" + (new Date()).getTime(); + + if (window.location.hostname !== document.domain && navigator.userAgent.match(/msie/i)) { + // Ugly IE hacks due to IE not inheriting document.domain from parent + // checks if document.domain is set by comparing the host name against document.domain + var iframeSrc = "javascript:document.write(\"