[freeside-commits] branch FREESIDE_4_BRANCH updated. 8141f2f84a47320dde5be1ebb478f9d92da832e1

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


The branch, FREESIDE_4_BRANCH has been updated
       via  8141f2f84a47320dde5be1ebb478f9d92da832e1 (commit)
      from  31c48790731207e89a80d056dbd44e1ac6f6e453 (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 8141f2f84a47320dde5be1ebb478f9d92da832e1
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