handle the preference sound_set

agranig/1_0_subfix
Gerhard Jungwirth 13 years ago
parent 7205cac8b2
commit 702aacda1d

@ -199,9 +199,7 @@ sub preferences_base :Chained('base') :PathPart('preferences') :CaptureArgs(1) {
->resultset('voip_preferences')
->single({id => $pref_id});
my $domain_name = $c->stash->{domain}->{domain};
my $provisioning_domain_id = $c->model('DB')
->resultset('voip_domains')
->single({domain => $domain_name})->id;
my $provisioning_domain_id = $c->stash->{provisioning_domain_result}->id;
$c->stash->{preference} = $c->model('DB')
->resultset('voip_dom_preferences')
@ -227,7 +225,7 @@ sub preferences_edit :Chained('preferences_base') :PathPart('edit') :Args(0) {
my $pref_rs = $c->model('DB')
->resultset('voip_dom_preferences')
->search({
domain_id => $c->stash->{provisioning_domain_id}
domain_id => $c->stash->{provisioning_domain_result}->id,
});
NGCP::Panel::Utils::create_preference_form( c => $c,
@ -267,6 +265,11 @@ sub load_preference_list :Private {
$c->stash(ncos_levels_rs => $ncos_levels_rs,
ncos_levels => [$ncos_levels_rs->all]);
my $sound_sets_rs = $c->model('DB')
->resultset('voip_sound_sets');
$c->stash(sound_sets_rs => $sound_sets_rs,
sound_sets => [$sound_sets_rs->all]);
NGCP::Panel::Utils::load_preference_list( c => $c,
pref_values => \%pref_values,
dom_pref => 1,

@ -302,6 +302,11 @@ sub load_preference_list :Private {
$c->stash(ncos_levels_rs => $ncos_levels_rs,
ncos_levels => [$ncos_levels_rs->all]);
my $sound_sets_rs = $c->model('DB')
->resultset('voip_sound_sets');
$c->stash(sound_sets_rs => $sound_sets_rs,
sound_sets => [$sound_sets_rs->all]);
NGCP::Panel::Utils::load_preference_list( c => $c,
pref_values => \%pref_values,
usr_pref => 1,

@ -33,6 +33,7 @@ sub field_list {
my $enums = $row->{enums};
my $rwrs_rs = $row->{rwrs_rs};
my $ncos_rs = $row->{ncos_rs};
my $sound_rs = $row->{sound_rs};
my $field;
if($meta->attribute eq "rewrite_rule_set") {
my @options = map {{label => $_->name, value => $_->id}}
@ -52,6 +53,15 @@ sub field_list {
type => 'Select',
options => \@options,
};
} elsif ($meta->attribute eq "sound_set") {
my @options = map {{label => $_->name, value => $_->id}}
defined $sound_rs ? $sound_rs->all : ();
unshift @options, {label => '', value => ''};
$field = {
name => $meta->attribute,
type => 'Select',
options => \@options,
};
} elsif($meta->data_type eq "enum") {
my @options = map {{label => $_->label, value => $_->value}} @{ $enums };
$field = {

@ -181,6 +181,7 @@ sub create_preference_form {
enums => $enums,
rwrs_rs => $c->stash->{rwr_sets_rs},
ncos_rs => $c->stash->{ncos_levels_rs},
sound_rs => $c->stash->{sound_sets_rs},
}],
});
$form->create_structure([$c->stash->{preference_meta}->attribute]);
@ -228,6 +229,24 @@ sub create_preference_form {
$preference->create({ value => $selected_level->id });
}
$c->flash(messages => [{type => 'success', text => "Preference $attribute successfully updated."}]);
$c->response->redirect($base_uri);
return;
} elsif ($attribute eq "sound_set") {
my $selected_set = $c->stash->{sound_sets_rs}->find(
$form->field($attribute)->value
);
my $preference = $pref_rs->search({
attribute_id => $c->stash->{preference_meta}->id });
if(!defined $selected_set) {
$preference->first->delete if $preference->first;
} elsif($preference->first) {
$preference->first->update({ value => $selected_set->id });
} else {
$preference->create({ value => $selected_set->id });
}
$c->flash(messages => [{type => 'success', text => "Preference $attribute successfully updated."}]);
$c->response->redirect($base_uri);
return;
@ -384,6 +403,14 @@ be set.
The updated preferences are called ncos_id and adm_ncos_id.
=head3 Special case sound_set
This is also similar to rewrite_rule_set and ncos. The stashed variables are
sound_sets_rs and sound_sets. In the template helper.sound_sets needs to
be set.
The preference with the attribute sound_set will contain the id of a sound_set.
=head2 _set_rewrite_preferences
See "Special case rewrite_rule_set".

@ -12,6 +12,7 @@
helper.base_uri = c.uri_for(domain.id,'preferences');
helper.rewrite_rule_sets = rwr_sets;
helper.ncos_levels = ncos_levels;
helper.sound_sets = sound_sets;
helper.top_buttons = [
{ name = 'Back', uri = c.uri_for(), icon = 'icon-arrow-left' },

@ -75,6 +75,13 @@
<option [% (r.adm_ncos_id.defined && r.adm_ncos_id == level.id) ? 'selected="selected"' : '' %]>[% level.level %]</option>
[% END -%]
</select>
[% ELSIF r.attribute == "sound_set" -%]
<select disabled="disabled">
<option>&nbsp;</option>
[% FOR set IN helper.sound_sets -%]
<option [% (r.value.defined && r.value == set.id) ? 'selected="selected"' : '' %]>[% set.name %]</option>
[% END -%]
</select>
[% ELSIF r.data_type == "boolean" %]
<input type="checkbox" disabled="disabled"

@ -12,6 +12,7 @@
helper.base_uri = c.uri_for(subscriber.id,'preferences');
helper.rewrite_rule_sets = rwr_sets;
helper.ncos_levels = ncos_levels;
helper.sound_sets = sound_sets;
helper.top_buttons = [
{ name = 'Back', uri = c.uri_for(), icon = 'icon-arrow-left' },

Loading…
Cancel
Save