summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
authorlevinse <levinse>2010-12-06 06:36:02 +0000
committerlevinse <levinse>2010-12-06 06:36:02 +0000
commit663b89d06a2c97fb0e7915ba409310fbefefea98 (patch)
treeaad540155dcd88062267857ff195858ad7f506f1 /httemplate/elements
parentd4f1051cbd26721f4106df86cd423240315748e5 (diff)
-tr-select-cust_location.html and elements/location.html: optionally support alternate address format and
optional address -nearly finished qualifications, RT7111
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/location.html66
-rw-r--r--httemplate/elements/tr-select-cust_location.html36
2 files changed, 78 insertions, 24 deletions
diff --git a/httemplate/elements/location.html b/httemplate/elements/location.html
index 0d2fa38c3..b5f76409b 100644
--- a/httemplate/elements/location.html
+++ b/httemplate/elements/location.html
@@ -31,21 +31,60 @@ Example:
>
</TD>
</TR>
+<TR>
+ <TD ALIGN="right"><FONT ID="<% $pre %>address2_required" color="#ff0000" <% $address2_label_style %>>*</FONT>&nbsp;<FONT ID="<% $pre %>address2_label" <% $address2_label_style %>><B>Unit&nbsp;#</B></FONT></TD>
+ <TD COLSPAN=7>
+ <INPUT TYPE = "text"
+ NAME = "<%$pre%>address2"
+ ID = "<%$pre%>address2"
+ VALUE = "<% $object->get($pre.'address2') |h %>"
+ SIZE = 54
+ onChange = "<% $onchange %>"
+ <% $disabled %>
+ <% $style %>
+ >
+ </TD>
+</TR>
+
+% if ( $opt{'alt_format'} ) {
<TR>
- <TD ALIGN="right"><FONT ID="<% $pre %>address2_required" color="#ff0000" <% $address2_label_style %>>*</FONT>&nbsp;<FONT ID="<% $pre %>address2_label" <% $address2_label_style %>><B>Unit&nbsp;#</B></FONT></TD>
- <TD COLSPAN=7>
- <INPUT TYPE = "text"
- NAME = "<%$pre%>address2"
- ID = "<%$pre%>address2"
- VALUE = "<% $object->get($pre.'address2') |h %>"
- SIZE = 54
- onChange = "<% $onchange %>"
- <% $disabled %>
- <% $style %>
- >
- </TD>
+ <<%$th%> ALIGN="right">Location Type</<%$th%>>
+ <TD><INPUT TYPE="text"
+ NAME="location_type"
+ ID="location_type"
+ VALUE="<% $object->get('location_type') |h %>"
+ SIZE="10"
+ <% $disabled %>
+ <% $style %>
+ >
+ </TD>
+ <TD></TD>
+ <<%$th%> ALIGN="right">Number</<%$th%>>
+ <TD><INPUT TYPE="text"
+ NAME="location_number"
+ ID="location_number"
+ VALUE="<% $object->get('location_number') |h %>"
+ SIZE="5"
+ <% $disabled %>
+ <% $style %>
+ >
+ </TD>
+ <<%$th%> ALIGN="right">Kind</<%$th%>>
+ <TD>
+ <% include('/elements/select.html',
+ 'cgi' => $cgi,
+ 'field' => 'location_kind',
+ 'disabled' => $disabled,
+ 'style' => $style,
+ 'options' => \@location_kind_options,
+ 'labels' => $location_kind_labels,
+ 'curr_value' => $cgi->param('location_kind'),
+ )
+ %>
+ </TD>
</TR>
+% }
<TR>
<<%$th%> ALIGN="right"><%$r%>City</<%$th%>>
@@ -155,4 +194,7 @@ my %select_hash = (
my $th = $opt{'no_bold'} ? 'TD' : 'TH';
+my @location_kind_options = ( '', 'R', 'B' );
+my $location_kind_labels = { '' => '', 'R' => 'Residential', 'B' => 'Business' };
+
</%init>
diff --git a/httemplate/elements/tr-select-cust_location.html b/httemplate/elements/tr-select-cust_location.html
index f2b267a8b..78252ba1d 100644
--- a/httemplate/elements/tr-select-cust_location.html
+++ b/httemplate/elements/tr-select-cust_location.html
@@ -25,18 +25,26 @@ Example:
function locationnum_changed(what) {
var locationnum = what.options[what.selectedIndex].value;
+ if ( locationnum == -2 ) {
+% for (@location_fields, 'city_select') {
+ what.form.<%$_%>.disabled = true;
+ var ftype = what.form.<%$_%>.tagName;
+ if( ftype == 'SELECT') changeSelect(what.form.<%$_%>, '');
+ else what.form.<%$_%>.value = '';
+ what.form.<%$_%>.style.backgroundColor = '#dddddd';
+% }
+ return;
+ }
+
if ( locationnum == -1 ) {
% for (@location_fields, 'city_select') {
what.form.<%$_%>.disabled = false;
what.form.<%$_%>.style.backgroundColor = '#ffffff';
+ var ftype = what.form.<%$_%>.tagName;
+ if( ftype == 'INPUT' ) what.form.<%$_%>.value = '';
% }
- what.form.address1.value = '';
- what.form.address2.value = '';
- what.form.city.value = '';
- what.form.zip.value = '';
-
changeSelect(what.form.country, <% $countrydefault |js_string %>);
country_changed( what.form.country,
@@ -147,6 +155,9 @@ Example:
<TD COLSPAN=7>
<SELECT NAME="locationnum" onChange="locationnum_changed(this);">
<OPTION VALUE=""><% $opt{'empty_label'} || '(default service address)' |h %>
+% if ( $opt{'is_optional'} ) {
+ <OPTION VALUE="-2" <% $locationnum == -2 ? 'SELECTED' : ''%>><% $opt{'optional_label'} || '(not required)' |h %>
+% }
% my @locations = $cust_main ? $cust_main->cust_location : ();
% push @locations, $cust_location
% if !$cust_main && $cust_location && $cust_location->locationnum>0;
@@ -170,14 +181,10 @@ Example:
'disabled' => $disabled,
'no_asterisks' => 1,
'no_bold' => $opt{'no_bold'},
+ 'alt_format' => $opt{'alt_format'},
)
%>
-<%once>
-
-my @location_fields = qw( address1 address2 city county state zip country );
-
-</%once>
<%init>
my $conf = new FS::Conf;
@@ -206,8 +213,13 @@ if ( length($opt{'curr_value'}) ) {
my $editable = $cust_main ? 0 : 1; #could use explicit control
my $addnew = $cust_main ? 1 : ( $locationnum>0 ? 0 : 1 );
+my @location_fields = qw( address1 address2 city county state zip country );
+if ( $opt{'alt_format'} ) {
+ push @location_fields, qw( location_type location_number location_kind );
+}
+
my $cust_location;
-if ( $locationnum && $locationnum != -1 ) {
+if ( $locationnum && $locationnum > 0 ) {
$cust_location = qsearchs('cust_location', { 'locationnum' => $locationnum } )
or die "unknown locationnum";
} else {
@@ -230,7 +242,7 @@ my $location_sort = sub {
or lc($a->address2) cmp lc($b->address2)
};
-my $disabled = ( $locationnum == -1 || ($editable && $locationnum) )
+my $disabled = ( $locationnum < 0 || ($editable && $locationnum) )
? ''
: 'DISABLED';