diff options
author | ivan <ivan> | 2012-01-05 06:03:59 +0000 |
---|---|---|
committer | ivan <ivan> | 2012-01-05 06:03:59 +0000 |
commit | 0bfdd767de9c8758c5997beb72bfd8c22db25ab4 (patch) | |
tree | 19e6c81ac4c8796058789371ddeda17dd724cbaa | |
parent | c657e00138b4fb0ba8b4f583ee963e092eded5be (diff) |
add selfservice_access selection to part_svc, RT#15628
-rw-r--r-- | FS/FS/ClientAPI/MyAccount.pm | 7 | ||||
-rw-r--r-- | FS/FS/Schema.pm | 12 | ||||
-rw-r--r-- | FS/FS/part_svc.pm | 1 | ||||
-rwxr-xr-x | httemplate/browse/part_svc.cgi | 10 | ||||
-rwxr-xr-x | httemplate/edit/part_svc.cgi | 22 |
5 files changed, 44 insertions, 8 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 2e60eda3b..c2c295e27 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -1422,6 +1422,9 @@ sub list_svcs { next if $pkgnum && $cust_pkg->pkgnum != $pkgnum; push @cust_svc, @{[ $cust_pkg->cust_svc ]}; #@{[ ]} to force array context } + + @cust_svc = grep { $_->part_svc->selfservice_access ne 'hidden' } @cust_svc; + if ( $p->{'svcdb'} ) { my $svcdb = ref($p->{'svcdb'}) eq 'HASH' ? $p->{'svcdb'} @@ -1445,7 +1448,8 @@ sub list_svcs { map { my $svc_x = $_->svc_x; my($label, $value) = $_->label; - my $svcdb = $_->part_svc->svcdb; + my $part_svc = $_->part_svc; + my $svcdb = $part_svc->svcdb; my $cust_pkg = $_->cust_pkg; my $part_pkg = $cust_pkg->part_pkg; @@ -1455,6 +1459,7 @@ sub list_svcs { 'label' => $label, 'value' => $value, 'pkg_status' => $cust_pkg->status, + 'readonly' => ( $part_svc->selfservice_access eq 'readonly' ), ); if ( $svcdb eq 'svc_acct' ) { diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 78d88dd2b..d270dba41 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -1802,12 +1802,12 @@ sub tables_hashref { 'part_svc' => { 'columns' => [ - 'svcpart', 'serial', '', '', '', '', - 'svc', 'varchar', '', $char_d, '', '', - 'svcdb', 'varchar', '', $char_d, '', '', - 'disabled', 'char', 'NULL', 1, '', '', - 'preserve', 'char', 'NULL', 1, '', '', - #'no_selfservice', 'char', 'NULL', 1, '', '', + 'svcpart', 'serial', '', '', '', '', + 'svc', 'varchar', '', $char_d, '', '', + 'svcdb', 'varchar', '', $char_d, '', '', + 'disabled', 'char', 'NULL', 1, '', '', + 'preserve', 'char', 'NULL', 1, '', '', + 'selfservice_access', 'varchar', 'NULL', $char_d, '', '', ], 'primary_key' => 'svcpart', 'unique' => [], diff --git a/FS/FS/part_svc.pm b/FS/FS/part_svc.pm index dea115cac..c1554082d 100644 --- a/FS/FS/part_svc.pm +++ b/FS/FS/part_svc.pm @@ -386,6 +386,7 @@ sub check { || $self->ut_alpha('svcdb') || $self->ut_enum('disabled', [ '', 'Y' ] ) || $self->ut_enum('preserve', [ '', 'Y' ] ) + || $self->ut_enum('selfservice_access', [ '', 'hidden', 'readonly' ] ) ; return $error if $error; diff --git a/httemplate/browse/part_svc.cgi b/httemplate/browse/part_svc.cgi index 1cd0943bb..26d090a3d 100755 --- a/httemplate/browse/part_svc.cgi +++ b/httemplate/browse/part_svc.cgi @@ -51,6 +51,8 @@ function part_export_areyousure(href) { <TH CLASS="grid" BGCOLOR="#cccccc"><A HREF="<% do { $cgi->param('orderby', 'active'); $cgi->self_url; } %>"><FONT SIZE=-1>Customer<BR>Services</FONT></A></TH> + <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Customer<BR>Self-service</FONT></TH> + <TH CLASS="grid" BGCOLOR="#cccccc">Export</TH> <TH CLASS="grid" BGCOLOR="#cccccc">Field</TH> @@ -119,6 +121,14 @@ function part_export_areyousure(href) { </TD> +% tie my %selfservice_access, 'Tie::IxHash', #false laziness w/edit/part_svc.cgi +% '' => 'Yes', +% 'hidden' => 'Hidden', +% 'readonly' => 'Read-only', +% ; + <TD ROWSPAN=<% $rowspan %> CLASS="grid" BGCOLOR="<% $bgcolor %>" ALIGN="center"> + <% $selfservice_access{$part_svc->selfservice_access} %></TD> + <TD ROWSPAN=<% $rowspan %> CLASS="inv" BGCOLOR="<% $bgcolor %>"> <TABLE CLASS="inv"> % diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi index 10b4c77fb..fae896154 100755 --- a/httemplate/edit/part_svc.cgi +++ b/httemplate/edit/part_svc.cgi @@ -9,8 +9,26 @@ Service Part #<% $part_svc->svcpart ? $part_svc->svcpart : "(NEW)" %> <BR><BR> Service <INPUT TYPE="text" NAME="svc" VALUE="<% $hashref->{svc} %>"><BR> + +Self-service access: +<SELECT NAME="selfservice_access"> +% tie my %selfservice_access, 'Tie::IxHash', #false laziness w/browse/part_svc +% '' => 'Yes', +% 'hidden' => 'Hidden', +% 'readonly' => 'Read-only', +% ; +% for (keys %selfservice_access) { + <OPTION VALUE="<% $_ %>" + <% $_ eq $hashref->{'selfservice_access'} ? 'SELECTED' : '' %> + ><% $selfservice_access{$_} %> +% } +</SELECT><BR> + <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->{disabled} eq 'Y' ? ' CHECKED' : '' %>> Disable new orders<BR> + <INPUT TYPE="checkbox" NAME="preserve" VALUE="Y"<% $hashref->{'preserve'} eq 'Y' ? ' CHECKED' : '' %>> Preserve this service on package cancellation<BR> + + <INPUT TYPE="hidden" NAME="svcpart" VALUE="<% $hashref->{svcpart} %>"> <BR> @@ -67,6 +85,7 @@ Service <INPUT TYPE="text" NAME="svc" VALUE="<% $hashref->{svc} %>"><BR> % #'form_action' => 'process/part_svc.cgi', % 'form_action' => 'part_svc.cgi', #self % 'form_text' => [ qw( svc svcpart ) ], +% 'form_select' => [ 'selfservice_access' ], % 'form_checkbox' => [ 'disabled', 'preserve' ], % 'layer_callback' => sub { % my $layer = shift; @@ -363,7 +382,8 @@ Service <INPUT TYPE="text" NAME="svc" VALUE="<% $hashref->{svc} %>"><BR> % % $html .= include('/elements/progress-init.html', % $layer, #form name -% [ qw(svc svcpart disabled preserve exportnum), +% [ qw(svc svcpart selfservice_access disabled preserve +% exportnum), % @fields ], % 'process/part_svc.cgi', % $p.'browse/part_svc.cgi', |