X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Flocation.html;h=214a7d5f2a2319114f784ed59c1475122a963bbc;hb=b79d815338e1895fce025aef5dcb5f9f42028562;hp=41a67a0cbb9f852e507f7f2590b20bd0cbded0b0;hpb=b8144cab2a804b964d1a97164780e2ddc6ae60ec;p=freeside.git diff --git a/httemplate/elements/location.html b/httemplate/elements/location.html index 41a67a0cb..214a7d5f2 100644 --- a/httemplate/elements/location.html +++ b/httemplate/elements/location.html @@ -41,6 +41,28 @@ Example: % } +% if ( $label_prefix eq '_location' ) { + + <TR> + <TD ALIGN="right" ><% $opt{'locationname_label'} || emt('Location ID') %></TD> + <TD COLSPAN=7> + <INPUT TYPE = "text" + NAME = "<%$pre%>locationname" + ID = "<%$pre%>locationname" + VALUE = "<% $object->get('locationname') |h %>" + SIZE = 24 + onChange = "<% $onchange %>" + <% $disabled %> + <% $style %> + > + </TD> + </TR> + +% } else { + <& hidden.html, field => $pre.'locationname', value => $object->get('locationname') &> + +% } + <TR> <<%$th%> STYLE="width:16ex" ALIGN="right"><%$r%><% $opt{'address1_label'} || emt('Address') %></<%$th%>> <TD COLSPAN=7> @@ -75,10 +97,7 @@ Example: % } else { # alternate format - <INPUT TYPE = "hidden" - NAME = "<%$pre%>address2" - VALUE = "<% $object->get('address2') |h %>" - > +<& hidden.html, field => $pre.'address2', value => $object->get('address2') &> <TR> <<%$th%> ALIGN="right">Unit type and #</<%$th%>> @@ -200,20 +219,21 @@ Example: </TR> % } else { % foreach (qw(latitude longitude)) { -<INPUT TYPE="hidden" NAME="<% $_ %>" ID="<% $_ %>" VALUE="<% $object->get($_) |h%>"> +<& hidden.html, field => $pre.$_, value => $object->get($_) &> % } % } -<INPUT TYPE="hidden" NAME="<%$pre%>coord_auto" VALUE="<% $object->coord_auto %>"> - -<INPUT TYPE="hidden" NAME="<%$pre%>geocode" VALUE="<% $object->geocode %>"> -<INPUT TYPE="hidden" NAME="<%$pre%>censustract" VALUE="<% $object->censustract %>"> -<INPUT TYPE="hidden" NAME="<%$pre%>censusyear" VALUE="<% $object->censusyear %>"> +% +% foreach (qw(coord_auto geocode censustract censusyear)) { + <& hidden.html, field => $pre.$_, value => $object->get($_) &> +% } +% % if ( $opt{enable_censustract} ) { <TR> <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> @@ -231,7 +251,7 @@ Example: </TD> </TR> % } else { - <INPUT TYPE="hidden" ID="<%$pre%>" NAME="<%$pre%>district" VALUE="<% $object->district %>"> + <& hidden.html, field => $pre.'district', value => $object->get('district') &> % } %# For address standardization: @@ -239,11 +259,68 @@ Example: %# to re-standardize % foreach (qw(address1 city state country zip latitude % longitude censustract district addr_clean) ) { -<INPUT TYPE="hidden" NAME="old_<%$pre.$_%>" ID="old_<%$pre.$_%>" VALUE="<% $object->get($_) |h%>"> +<& hidden.html, field => 'old_'.$pre.$_, value => $object->get($_) &> % } %# Placeholders -<INPUT TYPE="hidden" NAME="<%$pre%>cachenum" VALUE=""> -<INPUT TYPE="hidden" NAME="<%$pre%>addr_clean" VALUE=""> +<& hidden.html, field => $pre.'cachenum', value => '' &> +<& hidden.html, field => $pre.'addr_clean', value => '' &> + +<SCRIPT TYPE="text/javascript"> +<&| /elements/onload.js &> + var clear_coords_ids = [ + '<%$pre%>latitude', + '<%$pre%>longitude', + '<%$pre%>enter_censustract', + '<%$pre%>censustract', + '<%$pre%>district' + ]; + function clear_coords() { + for (var i=0; i < clear_coords_ids.length; i++) { + var el = document.getElementById(clear_coords_ids[i]); + if ( el ) { + el.value = ''; + } + } + } + var clear_coords_on_change = [ + '<%$pre%>address1', + '<%$pre%>address2', + '<%$pre%>city', + '<%$pre%>state', + '<%$pre%>zip', + '<%$pre%>country' + ]; + for (var i=0; i < clear_coords_on_change.length; i++) { + var el = document.getElementById(clear_coords_on_change[i]); + if ( el.addEventListener ) { + el.addEventListener('change', clear_coords); + } else if ( el.attachEvent ) { + el.attachEvent('onchange', clear_coords); + } + } + function clear_censustract() { + // if the user manually edits the census tract, clear the 'hard' census + // tract field so that we can re-verify and present a confirmation popup + + // get the ID of the hidden censustract field + var censustract_id = this.id.replace('enter_', ''); + var el = document.getElementById(censustract_id); + if (el) { + el.value = ''; + } + } + var el = document.getElementById('<%$pre%>enter_censustract'); + if (el) { + if ( el.addEventListener ) { + el.addEventListener('change', clear_censustract); + } else if ( el.attachEvent ) { + el.attachEvent('onchange', clear_censustract); + } + } + +</&> +</SCRIPT> + <%init> my %opt = @_; @@ -253,13 +330,14 @@ my $object = $opt{'object'}; my $onchange = $opt{'onchange'}; my $disabled = $opt{'disabled'}; -my $conf = new FS::Conf; - my $r = $opt{'no_asterisks'} ? '' : qq!<font color="#ff0000">*</font> !; +my $conf = new FS::Conf; my $countrydefault = $conf->config('countrydefault') || 'US'; -my $statedefault = $conf->config('statedefault') - || ($countrydefault eq 'US' ? 'CA' : ''); +my $statedefault = $conf->config('statedefault') + || ($countrydefault eq 'US' ? 'CA' : ''); +my $label_prefix = $conf->config('cust_location-label_prefix'); + $object ||= FS::cust_location->new({ 'country' => $countrydefault, 'state' => $statedefault,