Admin-interface support for the further enhanced enum-type. See also r8889.

3.4
Christian Veigl 13 years ago
parent 377fe6ff27
commit 2e1498f38d

@ -126,6 +126,24 @@ sub preferences : Local {
undef, \$db_prefs
);
$db_prefs = [ grep { $$_{dom_pref} } @$db_prefs ] if eval { @$db_prefs };
foreach my $pref (@$db_prefs) {
# need to find and provide avaiable options for enum types
if ($$pref{data_type} eq 'enum') {
my $enum_options;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_enum_options',
{ preference_id => $$pref{id},
pref_type => 'dom',
},
\$enum_options );
$$preferences{$$pref{preference}} = {
selected => $$preferences{$$pref{preference}},
options => $enum_options,
} if eval { @$enum_options };
}
}
### restore data entered by the user ###

@ -545,6 +545,24 @@ sub preferences : Local {
undef, \$db_prefs
);
$db_prefs = [ grep { $$_{peer_pref} } @$db_prefs ] if eval { @$db_prefs };
foreach my $pref (@$db_prefs) {
# need to find and provide avaiable options for enum types
if ($$pref{data_type} eq 'enum') {
my $enum_options;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_enum_options',
{ preference_id => $$pref{id},
pref_type => 'peer',
},
\$enum_options );
$$preferences{$$pref{preference}} = {
selected => $$preferences{$$pref{preference}},
options => $enum_options,
} if eval { @$enum_options };
}
}
### restore data entered by the user ###

@ -814,7 +814,9 @@ sub preferences : Local {
my $enum_options;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_enum_options',
{ preference_id => $$pref{id} },
{ preference_id => $$pref{id},
pref_type => 'usr',
},
\$enum_options );
$$preferences{$$pref{preference}} = {
@ -946,10 +948,10 @@ sub update_preferences : Local {
} elsif($$db_pref{data_type} eq 'boolean') {
$$preferences{$$db_pref{preference}} = $c->request->params->{$$db_pref{preference}} ? 1 : undef;
} elsif($$db_pref{data_type} eq 'enum') {
# 'NOTSET' means, user chose to not set this property for that subscriber (hardcoded in database)
$$preferences{$$db_pref{preference}} = ($c->request->params->{$$db_pref{preference}} eq 'NOTSET')
? undef
: $c->request->params->{$$db_pref{preference}};
# zero length value means user chose to not set this preference
$$preferences{$$db_pref{preference}} = (length($c->request->params->{$$db_pref{preference}}) > 0 )
? $c->request->params->{$$db_pref{preference}}
: undef
} else {
# wtf? ignoring invalid preference
}

@ -402,6 +402,11 @@ sub prepare_db_prefs {
}
} elsif($$db_pref{data_type} eq 'boolean') {
$$preferences{$$db_pref{preference}} = $c->request->params->{$$db_pref{preference}} ? 1 : undef;
} elsif($$db_pref{data_type} eq 'enum') {
# zero length value means user chose to not set this preference
$$preferences{$$db_pref{preference}} = (length($c->request->params->{$$db_pref{preference}}) > 0 )
? $c->request->params->{$$db_pref{preference}}
: undef
} else {
# wtf? ignoring invalid preference
}

@ -155,6 +155,23 @@
[% IF preference.value %]checked="checked"[% END %] />
</div>
</li>
[% ELSIF preference.data_type == "enum" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
<div class="span-1"><span class="ui-icon ui-icon-help help" title="[% preference.description %]"></span></div>
<div class="span-10 last">
<select size="1" name="[% preference.key %]" [% IF !edit_preferences %]disabled="disabled"[% END %] />
[% FOREACH option IN preference.value.options %]
<option value="[% option.value %]"
[% IF option.value == preference.value.selected %]
selected="selected"
[% END %]>
[% option.label %]
</option>
[% END %]
</select>
</div>
</li>
[% ELSE %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>

@ -152,6 +152,23 @@
[% IF preference.value %]checked="checked"[% END %] />
</div>
</li>
[% ELSIF preference.data_type == "enum" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
<div class="span-1"><span class="ui-icon ui-icon-help help" title="[% preference.description %]"></span></div>
<div class="span-10 last">
<select size="1" name="[% preference.key %]" [% IF !edit_preferences %]disabled="disabled"[% END %] />
[% FOREACH option IN preference.value.options %]
<option value="[% option.value %]"
[% IF option.value == preference.value.selected %]
selected="selected"
[% END %]>
[% option.label %]
</option>
[% END %]
</select>
</div>
</li>
[% ELSE %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>

@ -109,7 +109,6 @@
<div class="span-1"><span class="ui-icon ui-icon-help help" title="[% preference.description %]"></span></div>
<div class="span-10 last">
<select size="1" name="[% preference.key %]" [% IF !edit_preferences %]disabled="disabled"[% END %] />
<option value="NOTSET">Use domain default</option>
[% FOREACH option IN preference.value.options %]
<option value="[% option.value %]"
[% IF option.value == preference.value.selected %]

Loading…
Cancel
Save