summaryrefslogtreecommitdiff
path: root/httemplate/edit
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate/edit')
-rw-r--r--httemplate/edit/elements/edit.html4
-rw-r--r--httemplate/edit/elements/svc_Common.html6
-rw-r--r--httemplate/edit/hardware_class.html16
-rw-r--r--httemplate/edit/hardware_status.html16
-rw-r--r--httemplate/edit/hardware_type.html28
-rwxr-xr-xhttemplate/edit/part_svc.cgi32
-rw-r--r--httemplate/edit/process/elements/process.html6
-rw-r--r--httemplate/edit/process/hardware_class.html11
-rw-r--r--httemplate/edit/process/hardware_status.html11
-rw-r--r--httemplate/edit/process/hardware_type.html11
-rw-r--r--httemplate/edit/process/svc_dish.html10
-rw-r--r--httemplate/edit/process/svc_hardware.html10
-rw-r--r--httemplate/edit/svc_dish.cgi33
-rw-r--r--httemplate/edit/svc_hardware.cgi55
14 files changed, 240 insertions, 9 deletions
diff --git a/httemplate/edit/elements/edit.html b/httemplate/edit/elements/edit.html
index 1ed75c3ef..295ad8567 100644
--- a/httemplate/edit/elements/edit.html
+++ b/httemplate/edit/elements/edit.html
@@ -260,6 +260,10 @@ Example:
% 'maxlength' => $f->{'maxlength'},
% 'postfix' => $f->{'postfix'},
%
+% #textarea
+% 'rows' => $f->{'rows'},
+% 'cols' => $f->{'cols'},
+%
% #checkbox, title, fixed, hidden
% #& deprecated weird value hashref used only by reason.html
% 'value' => $f->{'value'},
diff --git a/httemplate/edit/elements/svc_Common.html b/httemplate/edit/elements/svc_Common.html
index aa7699555..0955d49c6 100644
--- a/httemplate/edit/elements/svc_Common.html
+++ b/httemplate/edit/elements/svc_Common.html
@@ -104,6 +104,12 @@
if $object->svcnum;
$f->{'extra_sql'} .= ' ) ';
$f->{'disable_empty'} = $object->svcnum ? 1 : 0,
+ } elsif ( $flag eq 'H' ) {
+ $f->{'type'} = 'select-hardware_type';
+ $f->{'hashref'} = {
+ 'classnum'=>$columndef->columnvalue
+ };
+ $f->{'empty_label'} = 'Select hardware type';
}
if ( $f->{'type'} eq 'select-svc_pbx'
diff --git a/httemplate/edit/hardware_class.html b/httemplate/edit/hardware_class.html
new file mode 100644
index 000000000..8760dd86c
--- /dev/null
+++ b/httemplate/edit/hardware_class.html
@@ -0,0 +1,16 @@
+<% include( 'elements/edit.html',
+ 'name' => 'Hardware Class',
+ 'table' => 'hardware_class',
+ 'labels' => {
+ 'classnum' => 'Class number',
+ 'classname' => 'Class name',
+ },
+ 'viewall_dir' => 'browse',
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+</%init>
diff --git a/httemplate/edit/hardware_status.html b/httemplate/edit/hardware_status.html
new file mode 100644
index 000000000..ee5f25db8
--- /dev/null
+++ b/httemplate/edit/hardware_status.html
@@ -0,0 +1,16 @@
+<% include( 'elements/edit.html',
+ 'name' => 'Hardware Status',
+ 'table' => 'hardware_status',
+ 'labels' => {
+ 'statusnum' => 'Status number',
+ 'label' => 'Description' ,
+ },
+ 'viewall_dir' => 'browse',
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+</%init>
diff --git a/httemplate/edit/hardware_type.html b/httemplate/edit/hardware_type.html
new file mode 100644
index 000000000..09a272402
--- /dev/null
+++ b/httemplate/edit/hardware_type.html
@@ -0,0 +1,28 @@
+<% include( 'elements/edit.html',
+ 'name' => 'Device Type',
+ 'table' => 'hardware_type',
+ 'fields' => \@fields,
+ 'labels' => {
+ 'typenum' => 'Type number',
+ 'model' => 'Device model',
+ 'classnum' => 'Hardware class',
+ },
+ 'viewall_url' => $p.'browse/hardware_class.html',
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my @fields = (
+ { field => 'classnum',
+ type => 'select-table',
+ table => 'hardware_class',
+ disable_empty => 1,
+ name_col => 'classname',
+ },
+ 'model',
+);
+
+</%init>
diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi
index d608657dc..97e2d9694 100755
--- a/httemplate/edit/part_svc.cgi
+++ b/httemplate/edit/part_svc.cgi
@@ -9,7 +9,8 @@
Service Part #<% $part_svc->svcpart ? $part_svc->svcpart : "(NEW)" %>
<BR><BR>
Service <INPUT TYPE="text" NAME="svc" VALUE="<% $hashref->{svc} %>"><BR>
-Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->{disabled} eq 'Y' ? ' CHECKED' : '' %>><BR>
+<INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->{disabled} eq 'Y' ? ' CHECKED' : '' %>>&nbsp;Disable new orders<BR>
+<INPUT TYPE="checkbox" NAME="preserve" VALUE="Y"<% $hashref->{'preserve'} eq 'Y' ? ' CHECKED' : '' %>>&nbsp;Preserve this service on package cancellation<BR>
<INPUT TYPE="hidden" NAME="svcpart" VALUE="<% $hashref->{svcpart} %>">
<BR>
@@ -56,6 +57,9 @@ Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->
% 'A' => { 'desc' => 'Automatically fill in from inventory',
% 'condition' => $inv_sub,
% },
+% 'H' => { 'desc' => 'Select from hardware class',
+% 'condition' => sub { $_[0]->{type} ne 'select-hardware' },
+% },
% 'X' => { 'desc' => 'Excluded',
% 'condition' =>
% sub { ! $vfields{$_[1]}->{$_[2]} },
@@ -76,7 +80,7 @@ Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->
% #'form_action' => 'process/part_svc.cgi',
% 'form_action' => 'part_svc.cgi', #self
% 'form_text' => [ qw( svc svcpart ) ],
-% 'form_checkbox' => [ 'disabled' ],
+% 'form_checkbox' => [ 'disabled', 'preserve' ],
% 'layer_callback' => sub {
% my $layer = shift;
%
@@ -90,7 +94,7 @@ Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->
% my @part_export =
% map { qsearch( 'part_export', {exporttype => $_ } ) }
% keys %{FS::part_export::export_info($layer)};
-% $html .= '<BR><BR>'. table().
+% $html .= '<BR><BR>'. include('/elements/table.html') .
% "<TR><TH COLSPAN=$columns>Exports</TH></TR><TR>";
% foreach my $part_export ( @part_export ) {
% $communigate++ if $part_export->exporttype =~ /^communigate/;
@@ -179,7 +183,7 @@ Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->
% foreach my $f ( keys %flag ) {
%
% # need to template-ize more httemplate/edit/svc_* first
-% next if $f eq 'M' and $layer !~ /^svc_(broadband|external|phone)$/;
+% next if $f eq 'M' and $layer !~ /^svc_(broadband|external|phone|dish)$/;
%
% #here is where the SUB from above is called, to skip some choices
% next if $flag{$f}->{condition}
@@ -218,7 +222,8 @@ Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->
% " what.form.${layer}__${field}_classnum.style.backgroundColor = '#ffffff';".
% " what.form.${layer}__${field}_classnum.style.display = 'none';".
% " }".
-% ' } else if ( f == "M" || f == "A" ) { //enable, inventory',
+% ' } else if ( f == "M" || f == "A" || f == "H" ) { '.
+% '//enable, inventory',
% " what.form.${layer}__${field}.disabled = false;".
% " what.form.${layer}__${field}.style.backgroundColor = '#ffffff';".
% " what.form.${layer}__${field}.style.display = 'none';".
@@ -238,10 +243,10 @@ Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->
%
% my $disabled = $flag ? ''
% : 'DISABLED STYLE="background-color: #dddddd"';
+% my $nodisplay = ' STYLE="display:none"';
%
% if ( !$def->{type} || $def->{type} eq 'text' ) {
%
-% my $nodisplay = ' STYLE="display:none"';
% my $is_inv = ( $flag =~ /^[MA]$/ );
%
% $html .=
@@ -343,6 +348,16 @@ Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->
% #doesn't work#'element_etc' => $disabled,
% );
%
+% } elsif ( $def->{type} eq 'select-hardware' ) {
+%
+% $html .= qq!<INPUT TYPE="text" NAME="${layer}__${field}" $disabled>!;
+% $html .= include('/elements/select-hardware_class.html',
+% 'curr_value' => $value,
+% 'element_name' => "${layer}__${field}_classnum",
+% 'element_etc' => $flag ne 'H' && $nodisplay,
+% 'empty_label' => 'Select hardware class',
+% );
+%
% } elsif ( $def->{type} eq 'disabled' ) {
%
% $html .=
@@ -372,7 +387,8 @@ Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->
%
% $html .= include('/elements/progress-init.html',
% $layer, #form name
-% [ qw(svc svcpart disabled exportnum), @fields ],
+% [ qw(svc svcpart disabled preserve exportnum),
+% @fields ],
% 'process/part_svc.cgi',
% $p.'browse/part_svc.cgi',
% $layer,
@@ -452,6 +468,7 @@ my $svcdb_info = '
<TD VALIGN="top">
<UL STYLE="margin:0">
<LI><B>svc_acct</B>: Accounts - anything with a username (mailbox, shell, RADIUS, etc.)
+ <LI><B>svc_hardware</B>: Equipment supplied to customers
<LI><B>svc_external</B>: Externally-tracked service
</UL>
</TD>
@@ -459,6 +476,7 @@ my $svcdb_info = '
<UL STYLE="margin:0">
<LI><B>svc_dsl</B>: DSL
<LI><B>svc_broadband</B>: Wireless broadband
+ <LI><B>svc_dish</B>: DISH Network
</UL>
</TD>
<TD VALIGN="top">
diff --git a/httemplate/edit/process/elements/process.html b/httemplate/edit/process/elements/process.html
index 53419cde0..107b3f298 100644
--- a/httemplate/edit/process/elements/process.html
+++ b/httemplate/edit/process/elements/process.html
@@ -133,9 +133,11 @@ Example:
% } else {
%
% my $ext = $opt{'viewall_ext'} || 'html';
+% my $viewall_dir = $opt{'viewall_dir'} || 'search';
+% my $viewall_url = $opt{'viewall_url'} || ($viewall_dir . "/$table.$ext");
%
-<% $cgi->redirect( popurl(3). ($opt{viewall_dir}||'search'). "/$table.$ext" ) %>
-%
+%#<% $cgi->redirect( popurl(3). ($opt{viewall_dir}||'search'). "/$table.$ext" ) %>
+<% $cgi->redirect( popurl(3) . $viewall_url ) %>
% }
%
%}
diff --git a/httemplate/edit/process/hardware_class.html b/httemplate/edit/process/hardware_class.html
new file mode 100644
index 000000000..64bc72efe
--- /dev/null
+++ b/httemplate/edit/process/hardware_class.html
@@ -0,0 +1,11 @@
+<% include( 'elements/process.html',
+ 'table' => 'hardware_class',
+ 'viewall_dir' => 'browse',
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+</%init>
diff --git a/httemplate/edit/process/hardware_status.html b/httemplate/edit/process/hardware_status.html
new file mode 100644
index 000000000..61f02e215
--- /dev/null
+++ b/httemplate/edit/process/hardware_status.html
@@ -0,0 +1,11 @@
+<% include( 'elements/process.html',
+ 'table' => 'hardware_status',
+ 'viewall_dir' => 'browse',
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+</%init>
diff --git a/httemplate/edit/process/hardware_type.html b/httemplate/edit/process/hardware_type.html
new file mode 100644
index 000000000..52787011c
--- /dev/null
+++ b/httemplate/edit/process/hardware_type.html
@@ -0,0 +1,11 @@
+<% include( 'elements/process.html',
+ 'table' => 'hardware_type',
+ 'viewall_url' => 'browse/hardware_class.html',
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+</%init>
diff --git a/httemplate/edit/process/svc_dish.html b/httemplate/edit/process/svc_dish.html
new file mode 100644
index 000000000..6c8851e77
--- /dev/null
+++ b/httemplate/edit/process/svc_dish.html
@@ -0,0 +1,10 @@
+<% include( 'elements/svc_Common.html',
+ 'table' => 'svc_dish',
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
+
+</%init>
diff --git a/httemplate/edit/process/svc_hardware.html b/httemplate/edit/process/svc_hardware.html
new file mode 100644
index 000000000..5abf16c4b
--- /dev/null
+++ b/httemplate/edit/process/svc_hardware.html
@@ -0,0 +1,10 @@
+<% include( 'elements/svc_Common.html',
+ 'table' => 'svc_hardware',
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
+
+</%init>
diff --git a/httemplate/edit/svc_dish.cgi b/httemplate/edit/svc_dish.cgi
new file mode 100644
index 000000000..77a223933
--- /dev/null
+++ b/httemplate/edit/svc_dish.cgi
@@ -0,0 +1,33 @@
+<% include( 'elements/svc_Common.html',
+ 'table' => 'svc_dish',
+ 'html_foot' => $html_foot,
+ 'fields' => \@fields,
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
+
+my $conf = new FS::Conf;
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
+
+my $html_foot = sub { };
+
+my @fields = (
+ {
+ field => 'acctnum',
+ type => 'text',
+ label => 'DISH Account #',
+ },
+ {
+ field => 'note',
+ type => 'textarea',
+ rows => 4,
+ cols => 30,
+ label => 'Installation notes',
+ },
+
+);
+
+</%init>
diff --git a/httemplate/edit/svc_hardware.cgi b/httemplate/edit/svc_hardware.cgi
new file mode 100644
index 000000000..e6cb22bcb
--- /dev/null
+++ b/httemplate/edit/svc_hardware.cgi
@@ -0,0 +1,55 @@
+<% include( 'elements/svc_Common.html',
+ 'table' => 'svc_hardware',
+ 'html_foot' => $html_foot,
+ 'fields' => \@fields,
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
+
+my $conf = new FS::Conf;
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
+
+my $html_foot = sub { };
+
+my @fields = (
+ {
+ field => 'typenum',
+ type => 'select-hardware_type',
+ },
+ {
+ field => 'serial',
+ type => 'text',
+ label => 'Device serial #',
+ },
+ {
+ field => 'hw_addr',
+ type => 'text',
+ label => 'Hardware address',
+ },
+ {
+ field => 'ip_addr',
+ type => 'text',
+ label => 'IP address',
+ },
+ {
+ field => 'statusnum',
+ type => 'select-table',
+ table => 'hardware_status',
+ label => 'Service status',
+ name_col => 'label',
+ disable_empty => 1,
+ },
+ {
+ field => 'note',
+ type => 'textarea',
+ rows => 4,
+ cols => 30,
+ label => 'Installation notes',
+ },
+
+);
+
+</%init>