Properly display domain preferences in full list.

agranig/1_0_subfix
Andreas Granig 12 years ago committed by Gerhard Jungwirth
parent 8ddff24cdc
commit 7f92d7f82c

@ -2,6 +2,7 @@ package NGCP::Panel::Controller::Domain;
use Moose;
use namespace::autoclean;
use Data::Dumper;
use Data::Printer;
BEGIN { extends 'Catalyst::Controller'; }
@ -157,10 +158,36 @@ sub ajax :Chained('list') :PathPart('ajax') :Args(0) {
sub preferences :Chained('base') :PathPart('preferences') :CaptureArgs(0) {
my ($self, $c) = @_;
my $rs = $c->model('provisioning')->resultset('voip_preferences');
my @pref_rows = $rs->all();
$c->stash(pref_rows => \@pref_rows);
my @dom_prefs = $c->model('provisioning')
->resultset('voip_preferences')
->search({ dom_pref => 1, internal => 0})
->all;
my $dom_pref_values = $c->model('provisioning')
->resultset('voip_domains')
->single({domain => $c->stash->{domain}->{domain}})
->voip_dom_preferences;
foreach my $pref(@dom_prefs) {
# TODO: do we do an unnecessary query again?
my $val = $dom_pref_values->search({attribute_id => $pref->id});
if($pref->data_type eq "enum") {
$pref->{enums} = [];
push @{ $pref->{enums} },
$pref->voip_preferences_enums->search({dom_pref => 1})->all;
}
next unless(defined $val);
if($pref->max_occur != 1) {
$pref->{value} = [];
while(my $v = $val->next) {
push @{ $pref->{value} }, $v->value;
}
} else {
$pref->{value} = defined $val->first ? $val->first->value : undef;
}
}
$c->stash(pref_rows => \@dom_prefs);
$c->stash(template => 'domain/preferences.tt');
}

@ -12,7 +12,27 @@
[% FOREACH r IN helper.rows %]
<tr class="sw_action_row">
<td>[% r.attribute %]</td>
<td>nothing yet[% %]</td>
<td>
[% IF r.data_type == "boolean" %]
<input type="checkbox" disabled="disabled"
[% IF r.value == "yes" %]selected="selected"[% END %]/>
[% ELSIF r.data_type == "string" || r.data_type == "int" %]
[% IF r.max_occur == 1 %]
[% r.value %]
[% ELSE %]
[% FOR value IN r.value %]
[% r.value %]<br/>
[% END %]
[% END %]
[% ELSIF r.data_type == "enum" %]
[% USE Dumper %]
<select>
[% FOREACH e IN r.enums %]
<option [% IF r.value == e.value || (!r.value.defined && e.default_val == 1) %]selected="selected"[% END %]>[% e.label %]</option>
[% END %]
</select>
[% END %]
</td>
<td>[% r.description %]</td>
<td><a href="[% c.uri_for(helper.domain_id,'preferences') %]/edit/[% r.attribute %]">Edit</a></td>
</tr>

Loading…
Cancel
Save