[freeside-commits] branch master updated. e215fc213a1eb9a3365cecf5ce82f1a58f154cd6

Mark Wells mark at 420.am
Sat Jul 9 10:40:18 PDT 2016


The branch, master has been updated
       via  e215fc213a1eb9a3365cecf5ce82f1a58f154cd6 (commit)
      from  bf79875847923d0f33a2136d703dd7d9fb8c188a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e215fc213a1eb9a3365cecf5ce82f1a58f154cd6
Author: Mark Wells <mark at freeside.biz>
Date:   Sat Jul 9 10:32:46 2016 -0700

    optionally scale to the page width when printing, #71301

diff --git a/httemplate/elements/header-full.html b/httemplate/elements/header-full.html
index db38eaf..07595a5 100644
--- a/httemplate/elements/header-full.html
+++ b/httemplate/elements/header-full.html
@@ -47,6 +47,9 @@ Example:
       <link rel="stylesheet" href="<% $fsurl %>elements/jquery-ui.min.css">
       <SCRIPT SRC="<% $fsurl %>elements/jquery.js"></SCRIPT>
       <SCRIPT SRC="<% $fsurl %>elements/jquery-ui.min.js"></SCRIPT>
+%     if ( $FS::CurrentUser::CurrentUser->option('printtofit') ) {
+      <SCRIPT SRC="<% $fsurl %>elements/printtofit.js"></SCRIPT>
+%     }
 %   }
     <% include('init_overlib.html') |n %>
     <% include('rs_init_object.html') |n %>
diff --git a/httemplate/elements/header-popup.html b/httemplate/elements/header-popup.html
index 1759369..6c0f80b 100644
--- a/httemplate/elements/header-popup.html
+++ b/httemplate/elements/header-popup.html
@@ -30,6 +30,9 @@ Example:
     <META HTTP-Equiv="Expires" Content="0"> 
 %   unless ( $no_jquery ) {
       <SCRIPT SRC="<% $fsurl %>elements/jquery.js"></SCRIPT>
+%     if ( $FS::CurrentUser::CurrentUser->option('printtofit') ) {
+      <SCRIPT SRC="<% $fsurl %>elements/printtofit.js"></SCRIPT>
+%     }
 %   }
     <% $head |n %>
   </HEAD>
diff --git a/httemplate/elements/printtofit.js b/httemplate/elements/printtofit.js
new file mode 100644
index 0000000..66257fc
--- /dev/null
+++ b/httemplate/elements/printtofit.js
@@ -0,0 +1,26 @@
+$().ready(function() {
+  var beforePrint = function() {
+    if ($('body').width() > 0) {
+      // 7.5 inches * 96 DPI; maybe make the width a user pref?
+      var maxwidth = 7.5 * 96;
+      $('body').css('zoom', maxwidth / $('body').width());
+    }
+  };
+  var afterPrint = function() {
+    $('body').css('zoom', 1);
+  }
+
+  if (window.matchMedia) { // chrome, most importantly; also IE10?
+    window.matchMedia('print').addListener(
+      function(mq) {
+        mq.matches ?  beforePrint() : afterPrint();
+      }
+    );
+  } else { // other IE
+    $(window).on('beforeprint', beforePrint);
+    $(window).on('afterprint', afterPrint);
+  }
+  // got nothing for firefox
+  // https://bugzilla.mozilla.org/show_bug.cgi?id=774398
+  // but firefox already has "shrink to fit"
+});
diff --git a/httemplate/pref/pref-process.html b/httemplate/pref/pref-process.html
index f03a8df..b622efc 100644
--- a/httemplate/pref/pref-process.html
+++ b/httemplate/pref/pref-process.html
@@ -55,6 +55,7 @@ unless ( $error ) { # if ($access_user) {
                       disable_html_editor disable_enter_submit_onetimecharge
                       enable_mask_clipboard_hack dashboard_customers
                       customer_view_emails
+                      printtofit
                       email_address
                       snom-ip snom-username snom-password
                       vonage-fromnumber vonage-username vonage-password
diff --git a/httemplate/pref/pref.html b/httemplate/pref/pref.html
index 50d6e8d..c6bcf6f 100644
--- a/httemplate/pref/pref.html
+++ b/httemplate/pref/pref.html
@@ -130,6 +130,13 @@ Interface
   </TR>
 
   <TR>
+    <TH ALIGN="right">Scale documents to fit on a letter-size page</TH>
+    <TD ALIGN="left">
+      <INPUT TYPE="checkbox" NAME="printtofit" VALUE="Y" <% $curuser->option('printtofit') ? 'CHECKED' : '' %>>
+    </TD>
+  </TR>
+
+  <TR>
     <TH ALIGN="right">How many recently-modified customers displayed on dashboard</TH>
     <TD ALIGN="left" COLSPAN=2>
       <INPUT TYPE="text" NAME="dashboard_customers" VALUE="<% $curuser->option('dashboard_customers') %>"></TD>
@@ -143,8 +150,6 @@ Interface
     </TD>
   </TR>
 
-
-
 </TABLE>
 <BR>
 

-----------------------------------------------------------------------

Summary of changes:
 httemplate/elements/header-full.html  |    3 +++
 httemplate/elements/header-popup.html |    3 +++
 httemplate/elements/printtofit.js     |   26 ++++++++++++++++++++++++++
 httemplate/pref/pref-process.html     |    1 +
 httemplate/pref/pref.html             |    9 +++++++--
 5 files changed, 40 insertions(+), 2 deletions(-)
 create mode 100644 httemplate/elements/printtofit.js




More information about the freeside-commits mailing list