[freeside-commits] branch 3.x-pre updated. f2b32e2c9f07f3f52fa69e3c9364ec968ed11027

Mark Wells mark at 420.am
Thu Jun 25 13:37:43 PDT 2015


The branch, 3.x-pre has been updated
       via  f2b32e2c9f07f3f52fa69e3c9364ec968ed11027 (commit)
       via  10fa0d1209dd6ab8e7e7a6186a516304cafb433b (commit)
       via  33294bffcc4893da907eb2e85b3fca872b34790f (commit)
      from  45448513a7369dfa099e16d4592f295434f31328 (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 f2b32e2c9f07f3f52fa69e3c9364ec968ed11027
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Mon Jun 22 23:43:00 2015 -0500

    RT#24665: Changes on the Redirect Letter [fixed conf names]

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index ddbdc29..5ea3555 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -1381,7 +1381,7 @@ sub reason_type_options {
   },
 
   {
-    'key'         => 'invoicehtmlwatermark',
+    'key'         => 'invoice_htmlwatermark',
     'section'     => 'invoicing',
     'description' => 'Watermark for HTML invoices. Appears in a semitransparent positioned DIV overlaid on the main invoice container.',
     'type'        => 'textarea',
@@ -1577,7 +1577,7 @@ and customer address. Include units.',
   },
 
   {
-    'key'         => 'invoicelatexwatermark',
+    'key'         => 'invoice_latexwatermark',
     'section'     => 'invoicing',
     'description' => 'Watermark for LaTeX invoices. See "texdoc background" for information on what this can contain. The content itself should be enclosed in braces, optionally followed by a comma and any formatting options.',
     'type'        => 'textarea',

commit 10fa0d1209dd6ab8e7e7a6186a516304cafb433b
Author: Mark Wells <mark at freeside.biz>
Date:   Thu Jun 25 13:05:02 2015 -0700

    make invoice text mouse-accessible through watermark box, #24665

diff --git a/conf/invoice_html b/conf/invoice_html
index 7cadd7c..dfd87c7 100644
--- a/conf/invoice_html
+++ b/conf/invoice_html
@@ -34,6 +34,7 @@
   width: 100%;
   height: 100%;
   display: table;
+  pointer-events: none;
 }
 .watermark-content {
   display: table-cell;

commit 33294bffcc4893da907eb2e85b3fca872b34790f
Author: Mark Wells <mark at freeside.biz>
Date:   Mon Jun 22 13:26:02 2015 -0700

    invoice watermarks, #24665

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index d211361..ddbdc29 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -679,10 +679,12 @@ invoice_latexfooter
 invoice_latexsmallfooter
 invoice_latexnotes
 invoice_latexcoupon
+invoice_latexwatermark
 invoice_html
 invoice_htmlreturnaddress
 invoice_htmlfooter
 invoice_htmlnotes
+invoice_htmlwatermark
 logo.png
 logo.eps
 );
@@ -1379,6 +1381,15 @@ sub reason_type_options {
   },
 
   {
+    'key'         => 'invoicehtmlwatermark',
+    'section'     => 'invoicing',
+    'description' => 'Watermark for HTML invoices. Appears in a semitransparent positioned DIV overlaid on the main invoice container.',
+    'type'        => 'textarea',
+    'per_agent'   => 1,
+    'per_locale'  => 1,
+  },
+
+  {
     'key'         => 'invoice_latex',
     'section'     => 'invoicing',
     'description' => 'Optional LaTeX template for typeset PostScript invoices.  See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:2.1:Documentation:Administration#Typeset_.28LaTeX.29_invoice_templates">billing documentation</a> for details.',
@@ -1566,6 +1577,15 @@ and customer address. Include units.',
   },
 
   {
+    'key'         => 'invoicelatexwatermark',
+    'section'     => 'invoicing',
+    'description' => 'Watermark for LaTeX invoices. See "texdoc background" for information on what this can contain. The content itself should be enclosed in braces, optionally followed by a comma and any formatting options.',
+    'type'        => 'textarea',
+    'per_agent'   => 1,
+    'per_locale'  => 1,
+  },
+
+  {
     'key'         => 'invoice_email_pdf',
     'section'     => 'invoicing',
     'description' => 'Send PDF invoice as an attachment to emailed invoices.  By default, includes the HTML invoice as the email body, unless invoice_email_pdf_note is set.',
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index bab179f..fc6d301 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -4724,6 +4724,8 @@ sub tables_hashref {
         'latexsmallfooter',     'text',     'NULL', '', '', '',
         'latexreturnaddress',   'text',     'NULL', '', '', '',
         'with_latexcoupon',     'char',     'NULL', '1', '', '',
+        'htmlwatermark',        'text',     'NULL', '', '', '',
+        'latexwatermark',       'text',     'NULL', '', '', '',
         'lpr',                  'varchar',  'NULL', $char_d, '', '',
       ],
       'primary_key' => 'confnum',
diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm
index 44d44e1..0d7c1f1 100644
--- a/FS/FS/Template_Mixin.pm
+++ b/FS/FS/Template_Mixin.pm
@@ -818,35 +818,36 @@ sub print_generic {
   my @include = ( [ $tc,        'notes' ],
                   [ 'invoice_', 'footer' ],
                   [ 'invoice_', 'smallfooter', ],
+                  [ 'invoice_', 'watermark' ],
                 );
   push @include, [ $tc,        'coupon', ]
     unless $params{'no_coupon'};
 
   foreach my $i (@include) {
 
+    # load the configuration for this sub-template
+
     my($base, $include) = @$i;
 
     my $inc_file = $conf->key_orbase("$base$format$include", $template);
-    my @inc_src;
-
-    if ( $conf->exists($inc_file, $agentnum)
-         && length( $conf->config($inc_file, $agentnum) ) ) {
-
-      @inc_src = $conf->config($inc_file, $agentnum);
-
-    } else {
-
-      $inc_file = $conf->key_orbase("${base}latex$include", $template);
-
-      my $convert_map = $convert_maps{$format}{$include};
 
-      @inc_src = map { s/\[\@--/$delimiters{$format}[0]/g;
-                       s/--\@\]/$delimiters{$format}[1]/g;
-                       $_;
-                     } 
-                 &$convert_map( $conf->config($inc_file, $agentnum) );
+    my @inc_src = $conf->config($inc_file, $agentnum);
+    if (!@inc_src) {
+      my $converter = $convert_maps{$format}{$include};
+      if ( $converter ) {
+        # then attempt to convert LaTeX to the requested format
+        $inc_file = $conf->key_orbase($base.'latex'.$include, $template);
+        @inc_src = &$converter( $conf->config($inc_file, $agentnum) );
+        foreach (@inc_src) {
+          # this isn't included in the convert_maps
+          my ($open, $close) = @{ $delimiters{$format} };
+          s/\[\@--/$open/g;
+          s/--\@\]/$close/g;
+        }
+      }
+    } # else @inc_src is empty and that's fine
 
-    }
+    # make a Text::Template out of it
 
     my $inc_tt = new Text::Template (
       TYPE       => 'ARRAY',
@@ -860,6 +861,8 @@ sub print_generic {
       die $error;
     }
 
+    # fill in variables
+
     $invoice_data{$include} = $inc_tt->fill_in( HASH => \%invoice_data );
 
     $invoice_data{$include} =~ s/\n+$//
diff --git a/FS/FS/invoice_conf.pm b/FS/FS/invoice_conf.pm
index da448b8..d88c89a 100644
--- a/FS/FS/invoice_conf.pm
+++ b/FS/FS/invoice_conf.pm
@@ -49,6 +49,8 @@ and supports the FS::Conf interface.  The following fields are supported:
 
 =item htmlreturnaddress - return address (HTML)
 
+=item htmlwatermark - watermark to show in background (HTML)
+
 =item latexnotes - "notes" section (LaTeX)
 
 =item latexfooter - footer (LaTeX)
@@ -59,6 +61,8 @@ and supports the FS::Conf interface.  The following fields are supported:
 
 =item latexsmallfooter - footer for pages after the first (LaTeX)
 
+=item latexwatermark - watermark to show in background (LaTeX)
+
 =item with_latexcoupon - 'Y' to print the payment coupon (LaTeX)
 
 =item lpr - command to print the invoice (passed on stdin as a PDF)
@@ -185,11 +189,13 @@ sub check {
     || $self->ut_anything('htmlfooter')
     || $self->ut_anything('htmlsummary')
     || $self->ut_anything('htmlreturnaddress')
+    || $self->ut_anything('htmlwatermark')
     || $self->ut_anything('latexnotes')
     || $self->ut_anything('latexfooter')
     || $self->ut_anything('latexsummary')
     || $self->ut_anything('latexsmallfooter')
     || $self->ut_anything('latexreturnaddress')
+    || $self->ut_anything('latexwatermark')
     # flags
     || $self->ut_flag('with_latexcoupon')
   ;
diff --git a/conf/invoice_html b/conf/invoice_html
index 06ee775..7cadd7c 100644
--- a/conf/invoice_html
+++ b/conf/invoice_html
@@ -1,6 +1,18 @@
 <STYLE TYPE="text/css">
-.invoice { font-family: sans-serif; font-size: 10pt }
-.invoice_header { font-size: 10pt }
+.invoice {
+  font-family: sans-serif;
+  font-size: 10pt;
+  display: inline-block;
+  padding: 4pt;
+  border: 1px solid black;
+  background-color: white;
+  min-width: 625px;
+  position: relative;
+}
+.invoice_header {
+  font-size: 10pt;
+  border-spacing: 4pt;
+}
 .invoice_headerright TH { border-top: 2px solid #000000; border-bottom: 2px solid #000000 }
 .invoice_headerright TD { font-size: 10pt; empty-cells: show }
 .invoice_summary TH { border-bottom: 2px solid #000000 }
@@ -12,9 +24,29 @@
 .invoice_extdesc TD { font-size: 8pt }
 .invoice_totaldesc TD { font-size: 10pt; empty-cells: show }
 .allcaps { text-transform:uppercase; font-size: 12pt }
+.watermark-box {
+  z-index: 10;
+  position: absolute;
+  text-align: center;
+  padding: 0;
+  filter: alpha(opacity=25);
+  opacity: 0.25;
+  width: 100%;
+  height: 100%;
+  display: table;
+}
+.watermark-content {
+  display: table-cell;
+  vertical-align: middle;
+  font-size: 96pt;
+}
 </STYLE>
 
-<table class="invoice" bgcolor="#ffffff" WIDTH=625 CELLSPACING=8 STYLE="border:1px solid #000000"><tr><td>
+<div class="invoice">
+
+  <DIV CLASS="watermark-box"><DIV CLASS="watermark-content">
+      <%= $watermark %>
+  </DIV></DIV>
 
   <table class="invoice_header" width="100%">
     <tr>
@@ -279,4 +311,4 @@
   <hr NOSHADE SIZE=2 COLOR="#000000">
   <p align="center" <%= $smallerfooter ? 'STYLE="font-size:75%;"' : '' %>><%= $footer %>
 
-</td></tr></table>
+</div>
diff --git a/conf/invoice_latex b/conf/invoice_latex
index 40ec703..c7c696b 100644
--- a/conf/invoice_latex
+++ b/conf/invoice_latex
@@ -23,6 +23,19 @@
 \usepackage{graphicx}			% required for logo graphic
 \usepackage[utf8]{inputenc}             % multilanguage support
 \usepackage[T1]{fontenc}
+[@-- if ( length($watermark) ) {
+  $OUT .= '
+\usepackage{background}
+\backgroundsetup{
+  placement=center,
+  opacity=0.25,
+  color=black,
+  angle=0,
+  contents=' . $watermark . '
+}';
+}
+'';
+--@]
 
 \addtolength{\voffset}{-0.0cm}		% top margin to top of header
 \addtolength{\hoffset}{-0.6cm}		% left margin on page
diff --git a/httemplate/edit/invoice_conf.html b/httemplate/edit/invoice_conf.html
index 7122653..861114b 100644
--- a/httemplate/edit/invoice_conf.html
+++ b/httemplate/edit/invoice_conf.html
@@ -49,6 +49,7 @@ my @fields = (
         'Footer',
         'Summary header',
         'Return address',
+        'Watermark',
         'Small footer',
         'Enable coupon',
       ),
@@ -59,6 +60,7 @@ my @fields = (
       { field => 'latexfooter',         %textarea },
       { field => 'latexsummary',        %textarea },
       { field => 'latexreturnaddress',  %textarea },
+      { field => 'latexwatermark',      %textarea },
       { field => 'latexsmallfooter',    %textarea },
       { field => 'with_latexcoupon', type => 'checkbox', value => 'Y' },
 
@@ -68,6 +70,7 @@ my @fields = (
       { field => 'htmlfooter',          %textarea },
       { field => 'htmlsummary',         %textarea },
       { field => 'htmlreturnaddress',   %textarea },
+      { field => 'htmlwatermark',      %textarea },
       # logo
 
       { type  => 'columnend' },
@@ -87,12 +90,14 @@ my %labels = (
     latexfooter
     latexsummary
     latexreturnaddress
+    latexwatermark
     with_latexcoupon
     latexsmallfooter
     htmlnotes
     htmlfooter
     htmlsummary
     htmlreturnaddress
+    htmlwatermark
   ) ),
 
 ); 

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

Summary of changes:
 FS/FS/Conf.pm                     |   20 ++++++++++++++++++
 FS/FS/Schema.pm                   |    2 ++
 FS/FS/Template_Mixin.pm           |   39 +++++++++++++++++++----------------
 FS/FS/invoice_conf.pm             |    6 ++++++
 conf/invoice_html                 |   41 +++++++++++++++++++++++++++++++++----
 conf/invoice_latex                |   13 ++++++++++++
 httemplate/edit/invoice_conf.html |    5 +++++
 7 files changed, 104 insertions(+), 22 deletions(-)




More information about the freeside-commits mailing list