[freeside-commits] branch FREESIDE_3_BRANCH updated. 02ac576281eb3f74e5b75490517512de3ce5889c

Mark Wells mark at 420.am
Thu Jan 23 14:32:51 PST 2014


The branch, FREESIDE_3_BRANCH has been updated
       via  02ac576281eb3f74e5b75490517512de3ce5889c (commit)
      from  339f0d29184395a0342c4f3a3febba79cd76fb11 (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 02ac576281eb3f74e5b75490517512de3ce5889c
Author: Mark Wells <mark at freeside.biz>
Date:   Thu Jan 23 14:27:25 2014 -0800

    make census tract UI behave more like other cust_location fields, #23497

diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi
index 5552852..631f4b6 100755
--- a/httemplate/edit/cust_main.cgi
+++ b/httemplate/edit/cust_main.cgi
@@ -53,6 +53,8 @@
     <& /elements/location.html,
         object => $cust_main->bill_location,
         prefix => 'bill_',
+        enable_censustract => 1,
+        enable_district => 1,
         enable_coords => 1,
     &>
     <& cust_main/after_bill_location.html, $cust_main &>
diff --git a/httemplate/edit/cust_main/bottomfixup.js b/httemplate/edit/cust_main/bottomfixup.js
index ecfcb3c..5a8835f 100644
--- a/httemplate/edit/cust_main/bottomfixup.js
+++ b/httemplate/edit/cust_main/bottomfixup.js
@@ -7,7 +7,7 @@ my $company_longitude = $conf->config('company_longitude');
 
 my @fixups = ('copy_payby_fields', 'standardize_locations');
 
-push @fixups, 'confirm_censustract'
+push @fixups, 'confirm_censustract_bill', 'confirm_censustract_ship'
     if $conf->exists('cust_main-require_censustract');
 
 my $uniqueness = $conf->config('cust_main-check_unique');
@@ -101,14 +101,17 @@ function copyelement(from, to) {
 }
 
 % # the value in pre+'censustract' is the confirmed censustract; if it's set,
-% # do nothing here
-function confirm_censustract() {
+% # and the user hasn't changed it manually, skip this
+function confirm_censustract(pre) {
   var cf = document.CustomerForm;
-  var pre = cf.elements['same'].checked ? 'bill_' : 'ship_';
-  if ( cf.elements[pre+'censustract'].value == '' ) {
+  if ( cf.elements[pre+'censustract'].value == '' ||
+         cf.elements[pre+'enter_censustract'].value != 
+         cf.elements[pre+'censustract'].value )
+  {
     var address_info = form_address_info();
     address_info[pre+'latitude']  = cf.elements[pre+'latitude'].value;
     address_info[pre+'longitude'] = cf.elements[pre+'longitude'].value;
+    address_info['prefix'] = pre;
     OLpostAJAX(
         '<%$p%>/misc/confirm-censustract.html',
         'q=' + encodeURIComponent(JSON.stringify(address_info)),
@@ -121,14 +124,22 @@ function confirm_censustract() {
         0);
   } else submit_continue();
 }
+function confirm_censustract_bill() {
+  confirm_censustract('bill_');
+}
 
-%# called from confirm-censustract.html
-function set_censustract(tract, year) {
+function confirm_censustract_ship() {
   var cf = document.CustomerForm;
-  var pre = 'ship_';
   if ( cf.elements['same'].checked ) {
-    pre = 'bill_';
+    submit_continue();
+  } else {
+    confirm_censustract('ship_');
   }
+}
+
+%# called from confirm-censustract.html
+function set_censustract(tract, year, pre) {
+  var cf = document.CustomerForm;
   cf.elements[pre + 'censustract'].value = tract;
   cf.elements[pre + 'censusyear'].value = year;
   submit_continue();
diff --git a/httemplate/elements/location.html b/httemplate/elements/location.html
index a820bf2..799531e 100644
--- a/httemplate/elements/location.html
+++ b/httemplate/elements/location.html
@@ -213,7 +213,8 @@ Example:
   <TD ALIGN="right">Census tract</TD>
   <TD COLSPAN=8>
     <INPUT TYPE="text" SIZE=15
-           NAME="enter_censustract" 
+           ID="<% $pre %>enter_censustract" 
+           NAME="<% $pre %>enter_censustract" 
            VALUE="<% $object->censustract |h %>">
     <% '(automatic)' %>
   </TD>
@@ -250,7 +251,8 @@ Example:
   var clear_coords_ids = [
     '<%$pre%>latitude',
     '<%$pre%>longitude',
-    'enter_censustract',
+    '<%$pre%>enter_censustract',
+    '<%$pre%>censustract',
     '<%$pre%>district'
   ];
   function clear_coords() {
diff --git a/httemplate/elements/standardize_locations.js b/httemplate/elements/standardize_locations.js
index cea59b8..2d1fc74 100644
--- a/httemplate/elements/standardize_locations.js
+++ b/httemplate/elements/standardize_locations.js
@@ -11,26 +11,14 @@ function form_address_info() {
 % if ( $billship ) {
   returnobj['same'] = cf.elements['same'].checked;
 % }
-% if ( $withcensus ) {
-% # "entered" censustract always goes with the ship_ address if there is one
-%   if ( $billship ) {
-    returnobj['ship_censustract'] = cf.elements['enter_censustract'].value;
-%   } else { # there's only a package address, so it's just "censustract"
-    returnobj['censustract'] = cf.elements['enter_censustract'].value;
-%   }
-% }
 % for my $pre (@prefixes) {
-  if ( <% $pre eq 'ship_' ? 1 : 0 %> && returnobj['same'] ) {
-%   # special case: don't include any ship_ fields, and move the entered
-%   # censustract over to bill_.
-    returnobj['bill_censustract'] = returnobj['ship_censustract'];
-    delete returnobj['ship_censustract'];
-  } else {
 %   # normal case
 %   for my $field (qw(address1 address2 city state zip country)) {
     returnobj['<% $pre %><% $field %>'] = cf.elements['<% $pre %><% $field %>'].value;
 %   } #for $field
-  } // if returnobj['same']
+%   if ( $withcensus ) {
+    returnobj['<% $pre %>censustract'] = cf.elements['<% $pre %>enter_censustract'].value;
+%   }
 % } #foreach $pre
 
   return returnobj;
@@ -181,18 +169,11 @@ function confirm_manual_address() {
 %# not much to do in this case, just confirm the censustract
 % if ( $withcensus ) {
   var cf = document.<% $formname %>;
-%   if ( $billship ) {
-  if ( cf.elements['same'] && cf.elements['same'].checked ) {
-    cf.elements['bill_censustract'].value =
-      cf.elements['enter_censustract'].value;
-  } else {
-    cf.elements['ship_censustract'].value =
-      cf.elements['enter_censustract'].value;
-  }
-%   } else {
-  cf.elements['censustract'].value = cf.elements['enter_censustract'].value;
+%   foreach my $pre (@prefixes) {
+  cf.elements['<% $pre %>censustract'].value =
+    cf.elements['<% $pre %>enter_censustract'].value;
 %   }
-% }
+% } # $withcensus
   post_standardization();
 }
 
diff --git a/httemplate/misc/confirm-censustract.html b/httemplate/misc/confirm-censustract.html
index 9e0af49..880cade 100644
--- a/httemplate/misc/confirm-censustract.html
+++ b/httemplate/misc/confirm-censustract.html
@@ -6,6 +6,9 @@ Census tract error
 Confirm census tract
 % }
 </B><BR>
+<% $location{address1} %> <% $location{address2} %><BR>
+<% $location{city} %>, <% $location{state} %> <% $location{zip} %><BR>
+<BR>
 % my $querystring = "census_year=$year&latitude=".$cache->get('latitude').'&longitude='.$cache->get('longitude');
 <A HREF="http://maps.ffiec.gov/FFIECMapper/TGMapSrv.aspx?<% $querystring %>"
    TARGET="_blank">Map service module location</A><BR>
@@ -29,13 +32,14 @@ Confirm census tract
   <TR>
     <TD ALIGN="center">
       <BUTTON TYPE="button"
-              onclick="set_censustract('<% $old_tract %>', '<% $year %>')">
+              onclick="set_censustract('<% $old_tract %>', '<% $year %>', '<% $pre %>')">
       <IMG SRC="<%$p%>images/error.png" ALT=""> Use entered census tract
       </BUTTON>
     </TD>
+%   if ( !$error ) {
     <TD ALIGN="center">
       <BUTTON TYPE="button"
-              onclick="set_censustract('<% $new_tract %>', '<% $year %>')">
+              onclick="set_censustract('<% $new_tract %>', '<% $year %>', '<% $pre %>')">
       <IMG SRC="<%$p%>images/tick.png" ALT=""> Use calculated census tract
       </BUTTON>
     </TD>
@@ -47,6 +51,14 @@ Confirm census tract
       </BUTTON>
     </TD>
   </TR>
+%   } else { # don't show a button to use the calculated value
+    <TD COLSPAN=1 ALIGN="center">
+      <BUTTON TYPE="button" onclick="submit_abort()">
+      <IMG SRC="<%$p%>images/cross.png" ALT=""> Cancel submission
+      </BUTTON>
+    </TD>
+  </TR>
+%   }
 </TABLE></CENTER>
 <%init>
 
@@ -61,11 +73,7 @@ warn $cgi->param('q') if $DEBUG;
 my $q = decode_json($cgi->param('q'))
   or die "bad argument '".$cgi->param('q')."'";
 
-my $pre = '';
-if ($q->{billship}) {
-  # this still isn't quite correct
-  $pre = $q->{'same'} ? 'bill_' : 'ship_';
-}
+my $pre = $q->{prefix} || '';
 my %location = (
   map { $_ => $q->{$pre.$_} }
     qw( company address1 address2 city state zip country latitude longitude )

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

Summary of changes:
 httemplate/edit/cust_main.cgi                |    2 +
 httemplate/edit/cust_main/bottomfixup.js     |   29 +++++++++++++++-------
 httemplate/elements/location.html            |    6 +++-
 httemplate/elements/standardize_locations.js |   33 +++++--------------------
 httemplate/misc/confirm-censustract.html     |   22 +++++++++++-----
 5 files changed, 48 insertions(+), 44 deletions(-)




More information about the freeside-commits mailing list