summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2014-01-23 14:27:40 -0800
committerMark Wells <mark@freeside.biz>2014-01-23 14:27:40 -0800
commit777a6997a004dc4ea99bccabe494f77f114db1a3 (patch)
treefc3df260f924ad02e355db197ef12d49628c8ba3 /httemplate
parent5985b40c4d8c5cd7b956589edf07b6fa0a4a3dd6 (diff)
make census tract UI behave more like other cust_location fields, #23497
Diffstat (limited to 'httemplate')
-rwxr-xr-xhttemplate/edit/cust_main.cgi2
-rw-r--r--httemplate/edit/cust_main/bottomfixup.js29
-rw-r--r--httemplate/elements/location.html6
-rw-r--r--httemplate/elements/standardize_locations.js33
-rw-r--r--httemplate/misc/confirm-censustract.html22
5 files changed, 48 insertions, 44 deletions
diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi
index 480047cae..629c8081d 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 ecfcb3cbc..5a8835f53 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 a820bf2a6..799531e01 100644
--- a/httemplate/elements/location.html
+++ b/httemplate/elements/location.html
@@ -213,7 +213,8 @@ Example:
<TD ALIGN="right">Census&nbsp;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 cea59b801..2d1fc7423 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 9e0af498f..880cade3a 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 )