Admin-interface-part of matnis:841

The admin-interface uses the special value 'NOTSET' to indicate that
this preference will not be set for the user, thus will be deleted (and
probably some domain-lvl-default be used).
3.4
Christian Veigl 14 years ago
parent db8c38f093
commit db7f0337a0

@ -810,6 +810,18 @@ sub preferences : Local {
{
eval { @{$$preferences{$$pref{preference}}} = map { s/^([1-9])/+$1/; $_ } @{$$preferences{$$pref{preference}}} };
}
elsif ($$pref{data_type} eq 'enum') {
my $enum_options;
return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_enum_options',
{ preference_id => $$pref{id} },
\$enum_options );
$$preferences{$$pref{preference}} = {
selected => $$preferences{$$pref{preference}},
options => $enum_options,
} if eval { @$enum_options };
}
push @stashprefs,
{ key => $$pref{preference},
@ -933,6 +945,11 @@ 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}};
} else {
# wtf? ignoring invalid preference
}

@ -103,6 +103,24 @@
[% 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 %] />
<option value="NOTSET">Use domain default</option>
[% 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>

Loading…
Cancel
Save