X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Flocation.html;h=b50509aeaef22236a1ea3a4aeb84b8ca63a11bfb;hb=622c72770c971ae44d37dfb59a0f25972051a25a;hp=df5106cb0b7f4de6cf5aaf7d0a5476baacd4a398;hpb=5a6c740c8152b1e8fa61d449808a50cdd7de07ab;p=freeside.git diff --git a/httemplate/elements/location.html b/httemplate/elements/location.html index df5106cb0..b50509aea 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%>> @@ -150,7 +169,11 @@ Example: <TR> - <<%$th%> ALIGN="right"><%$r%><% mt('City') |h %></<%$th%>> + <<%$th%> ALIGN="right"> +% unless ($conf->exists('cust_main-no_city_in_address')) { + <% $r %><% mt('City') |h %> +% } + </<%$th%>> <TD WIDTH="1"><% include('/elements/city.html', %select_hash, 'text_style' => \@style ) %></TD> <<%$th%> ALIGN="right" WIDTH="1" ID="<%$pre%>countylabel" <%$county_style%>><%$r%>County</<%$th%>> <TD WIDTH="1"><% include('/elements/select-county.html', %select_hash ) %></TD> @@ -200,20 +223,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 +255,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,19 +263,19 @@ 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"> -// the strictly correct way to append something to window.onload -window.addEventListener('load', function() { +<&| /elements/onload.js &> var clear_coords_ids = [ '<%$pre%>latitude', '<%$pre%>longitude', - 'enter_censustract', + '<%$pre%>enter_censustract', + '<%$pre%>censustract', '<%$pre%>district' ]; function clear_coords() { @@ -265,19 +289,40 @@ window.addEventListener('load', function() { var clear_coords_on_change = [ '<%$pre%>address1', '<%$pre%>address2', - '<%$pre%>city', + <% $conf->exists('cust_main-no_city_in_address') ? '' : qq('${pre}city',) %> '<%$pre%>state', '<%$pre%>zip', - '<%$pre%>country', + '<%$pre%>country' ]; for (var i=0; i < clear_coords_on_change.length; i++) { var el = document.getElementById(clear_coords_on_change[i]); - if ( el ) { - // because some of these already have onchange triggers + 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> @@ -289,13 +334,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,