MT#6693 Handle pseudo-preferences for subprofs.

Certain preferences (speeddial, voicemail, faxserver etc) are not
really preferences, but are handled specially on the preferences
page. Introduce special preferences for them to be able to select
them when defining subscriber profiles, and filter them on the
preferences page of the csc.
gjungwirth/voicemail_number
Andreas Granig 12 years ago
parent 41416d2d10
commit b0491942f5

@ -706,20 +706,25 @@ sub preferences :Chained('base') :PathPart('preferences') :Args(0) {
$c->stash->{pref_groups} = \@newprefgroups;
my $special_prefs = { check => 1 };
foreach my $cf(qw/cfu cft cfna cfb/) {
my $cf_preference = $c->model('DB')->resultset('voip_preferences')->find({
attribute => $cf,
foreach my $pref(qw/cfu cft cfna cfb
speed_dial reminder auto_attendant
voice_mail fax_server/) {
my $preference = $c->model('DB')->resultset('voip_preferences')->find({
attribute => $pref,
});
next unless $cf_preference;
my $pref_id = $cf_preference->id;
if(grep { /^$pref_id$/ } @attribute_ids) {
next unless $preference;
my $pref_id = $preference->id;
if($pref =~ /^cf/ && $pref_id ~~ [@attribute_ids]) {
$special_prefs->{callforward}->{active} = 1;
$special_prefs->{callforward}->{$cf} = 1;
$special_prefs->{callforward}->{$pref} = 1;
} elsif($pref_id ~~ [@attribute_ids]) {
$special_prefs->{$pref}->{active} = 1;
}
}
$c->stash->{special_prefs} = $special_prefs;
}
}

@ -153,6 +153,10 @@
</div>
[% END -%]
[% IF
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && special_prefs.check && special_prefs.voice_mail.active) ||
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && !special_prefs.check) ||
c.user.roles == "admin" || c.user.roles == "reseller" -%]
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#preference_groups" href="#collapse_vm">[% c.loc('Voicemail and Voicebox') %]</a>
@ -232,8 +236,13 @@
</div>
</div>
</div>
[% END -%]
[% IF c.config.features.faxserver -%]
[% IF c.config.features.faxserver && (
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && special_prefs.check && special_prefs.fax_server.active) ||
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && !special_prefs.check) ||
c.user.roles == "admin" || c.user.roles == "reseller"
) -%]
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#preference_groups" href="#collapse_fax">[% c.loc('Fax2Mail and Sendfax') %]</a>
@ -359,7 +368,11 @@
</div>
[% END -%]
[% IF c.config.features.cloudpbx -%]
[% IF c.config.features.cloudpbx && (
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && special_prefs.check && special_prefs.auto_attendant.active) ||
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && !special_prefs.check) ||
c.user.roles == "admin" || c.user.roles == "reseller"
) -%]
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#preference_groups" href="#collapse_aa">[% c.loc('Auto Attendant Slots') %]</a>
@ -392,6 +405,10 @@
</div>
[% END -%]
[% IF
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && special_prefs.check && special_prefs.speed_dial.active) ||
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && !special_prefs.check) ||
c.user.roles == "admin" || c.user.roles == "reseller" -%]
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#preference_groups" href="#collapse_speed">[% c.loc('Speed Dial') %]</a>
@ -420,7 +437,12 @@
</div>
</div>
</div>
[% END -%]
[% IF
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && special_prefs.check && special_prefs.reminder.active) ||
((c.user.roles == "subscriber" || c.user.roles == "subscriberadmin") && !special_prefs.check) ||
c.user.roles == "admin" || c.user.roles == "reseller" -%]
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#preference_groups" href="#collapse_rm">[% c.loc('Reminder') %]</a>
@ -462,6 +484,7 @@
</div>
</div>
</div>
[% END -%]
[% UNLESS c.user.roles == 'subscriber' || c.user.roles == 'subscriberadmin' -%]
<div class="accordion-group">

Loading…
Cancel
Save