summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-02-19 13:07:54 -0800
committerIvan Kohler <ivan@freeside.biz>2013-02-19 13:07:54 -0800
commit19045b18ba6413064a82c5453ac62125b3bb73f4 (patch)
tree27c164343a65193d862b3a847c5a728be6acbf71
parentd400497171a162ed270922097adc382ce537de51 (diff)
config setting to disable menu entries in self-service, RT#14866
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm1
-rw-r--r--FS/FS/Conf.pm25
-rw-r--r--fs_selfservice/FS-SelfService/cgi/myaccount_menu.html8
3 files changed, 31 insertions, 3 deletions
diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm
index 789e370d7..faf377874 100644
--- a/FS/FS/ClientAPI/MyAccount.pm
+++ b/FS/FS/ClientAPI/MyAccount.pm
@@ -121,6 +121,7 @@ sub skin_info {
font title_color title_align title_size menu_bgcolor menu_fontsize
)
),
+ 'menu_disable' => [ $conf->config('selfservice-menu_disable',$agentnum) ],
( map { $_ => $conf->exists("selfservice-$_", $agentnum ) }
qw( menu_skipblanks menu_skipheadings menu_nounderline no_logo )
),
diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index af2fcf596..65da63100 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -4491,6 +4491,31 @@ and customer address. Include units.',
},
{
+ 'key' => 'selfservice-menu_disable',
+ 'section' => 'self-service',
+ 'description' => 'Disable the selected menu entries in the self-service menu',
+ 'type' => 'selectmultiple',
+ 'select_enum' => [ #false laziness w/myaccount_menu.html
+ 'Overview',
+ 'Purchase',
+ 'Purchase additional package',
+ 'Recharge my account with a credit card',
+ 'Recharge my account with a check',
+ 'Recharge my account with a prepaid card',
+ 'View my usage',
+ 'Create a ticket',
+ 'Setup my services',
+ 'Change my information',
+ 'Change billing address',
+ 'Change service address',
+ 'Change payment information',
+ 'Change password(s)',
+ 'Logout',
+ ],
+ 'per_agent' => 1,
+ },
+
+ {
'key' => 'selfservice-menu_skipblanks',
'section' => 'self-service',
'description' => 'Skip blank (spacer) entries in the self-service menu',
diff --git a/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html b/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html
index c7d2bb2aa..4a31b1258 100644
--- a/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html
+++ b/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html
@@ -88,11 +88,13 @@ push @menu,
{ title=>'Logout', url=>'logout', size=>'+1', },
;
+my %menu_disable = map { $_=>1 } @menu_disable;
foreach my $item ( @menu ) {
- next if $menu_skipblanks && $item->{'title'} =~ /^\s*$/;
- next if $menu_skipheadings && ! $item->{'url'};
-
+ next if ( $menu_skipblanks && $item->{'title'} =~ /^\s*$/ )
+ || ( $menu_skipheadings && ! $item->{'url'} )
+ || $menu_disable{$item->{'title'}};
+
$OUT .= '<TR><TD';
if ( $menu_body_image ) {
if ( exists $item->{'url'} && $action eq $item->{'url'} ) {