From b65b8096089410001dfbcd35f9a56f9405b9f5f1 Mon Sep 17 00:00:00 2001 From: mark Date: Fri, 1 Apr 2011 02:52:24 +0000 Subject: svc_hardware and svc_dish, #11454 --- httemplate/edit/elements/edit.html | 4 ++ httemplate/edit/elements/svc_Common.html | 6 +++ httemplate/edit/hardware_class.html | 16 ++++++++ httemplate/edit/hardware_status.html | 16 ++++++++ httemplate/edit/hardware_type.html | 28 ++++++++++++++ httemplate/edit/part_svc.cgi | 32 ++++++++++++---- httemplate/edit/process/elements/process.html | 6 ++- httemplate/edit/process/hardware_class.html | 11 ++++++ httemplate/edit/process/hardware_status.html | 11 ++++++ httemplate/edit/process/hardware_type.html | 11 ++++++ httemplate/edit/process/svc_dish.html | 10 +++++ httemplate/edit/process/svc_hardware.html | 10 +++++ httemplate/edit/svc_dish.cgi | 33 ++++++++++++++++ httemplate/edit/svc_hardware.cgi | 55 +++++++++++++++++++++++++++ 14 files changed, 240 insertions(+), 9 deletions(-) create mode 100644 httemplate/edit/hardware_class.html create mode 100644 httemplate/edit/hardware_status.html create mode 100644 httemplate/edit/hardware_type.html create mode 100644 httemplate/edit/process/hardware_class.html create mode 100644 httemplate/edit/process/hardware_status.html create mode 100644 httemplate/edit/process/hardware_type.html create mode 100644 httemplate/edit/process/svc_dish.html create mode 100644 httemplate/edit/process/svc_hardware.html create mode 100644 httemplate/edit/svc_dish.cgi create mode 100644 httemplate/edit/svc_hardware.cgi (limited to 'httemplate/edit') 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'); + + 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'); + + 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', +); + + 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)" %>

Service
-Disable new orders {disabled} eq 'Y' ? ' CHECKED' : '' %>>
+{disabled} eq 'Y' ? ' CHECKED' : '' %>> Disable new orders
+{'preserve'} eq 'Y' ? ' CHECKED' : '' %>> Preserve this service on package cancellation

@@ -56,6 +57,9 @@ Disable new orders % '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 % #'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 % my @part_export = % map { qsearch( 'part_export', {exporttype => $_ } ) } % keys %{FS::part_export::export_info($layer)}; -% $html .= '

'. table(). +% $html .= '

'. include('/elements/table.html') . % "Exports"; % foreach my $part_export ( @part_export ) { % $communigate++ if $part_export->exporttype =~ /^communigate/; @@ -179,7 +183,7 @@ Disable new orders % 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 % " 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 % % 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 % #doesn't work#'element_etc' => $disabled, % ); % +% } elsif ( $def->{type} eq 'select-hardware' ) { +% +% $html .= qq!!; +% $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 % % $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 = ' @@ -459,6 +476,7 @@ my $svcdb_info = ' 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'); + + 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'); + + 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'); + + 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? + + 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? + + 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', + }, + +); + + 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', + }, + +); + + -- cgit v1.2.1