merged r10418:10453 from trunk:

Remove audiofile_feature config option.
  Fix IP ban handling and add delete function.
  Fix syntax error.
  Cosmetical fixes.
  use same locklevel texts as for subscriber lock
  hide active lock level in subscriber lock drop-down
  add some space between top buttons and notifications
  revert r10446, modify existing CSS styles instead
  use <li> instead of <div> for errors in lists
  add changelog for 3.4.1
3.4
Daniel Tiefnig 14 years ago
commit d7921be0d6

16
debian/changelog vendored

@ -1,3 +1,19 @@
ngcp-www-admin (3.4.1) unstable; urgency=low
[ dtiefnig ]
* bilprof_edit.tt: use same locklevel texts as for subscriber lock
* subscriber.pm,subscriber_detail.tt: hide active lock level in subscriber lock drop-down
* admin.css: add some space above notifications
* admin.css,tt/: use <li> instead of <div> for errors in lists
[ agranig ]
* admin.conf,menu,tt/: Remove audiofile_feature config option.
* bans.pm,bans_ips.tt,bans_users.tt: Fix IP ban handling and add delete function.
* bans.pm: Fix syntax error.
* bans_ips.tt,bans_users.tt: Cosmetical fixes.
-- Daniel Tiefnig <dtiefnig@sipwise.com> Tue, 21 Aug 2012 17:14:08 +0200
ngcp-www-admin (3.4.0) unstable; urgency=low
* added trusted peers frontend

@ -40,12 +40,10 @@
[- END -]
<dashboard enabled="[% www_admin.dashboard.enabled %]" />
<subscriber extension_features="[% www_admin.subscriber.extension_features %]"
audiofile_features="[% www_admin.subscriber.audiofile_features %]"
auto_allow_cli="[% www_admin.subscriber.auto_allow_cli %]"
/>
<domain rewrite_features="[% www_admin.domain.rewrite_features %]"
preference_features="[% www_admin.domain.preference_features %]"
audiofile_features="[% www_admin.domain.audiofile_features %]"
vsc_features="[% www_admin.domain.vsc_features %]"
/>
<peer preference_features="[% www_admin.peer.preference_features %]"

@ -41,6 +41,22 @@ sub users : Chained('base') PathPart('users') Args(0) {
$c->stash->{banned_users} = $banned_users;
}
sub unban_user : Chained('base') PathPart('unban_user') Args(0) {
my ($self, $c) = @_;
my $user = $c->request->params->{'user'} || '';
$c->model('Provisioning')->call_prov(
$c,
'voip',
'unban_user',
{ user => $user },
undef,
);
$c->response->redirect("/bans/users");
}
sub ips : Chained('base') PathPart('ips') Args(0) {
my ($self, $c) = @_;
@ -58,5 +74,21 @@ sub ips : Chained('base') PathPart('ips') Args(0) {
$c->stash->{banned_ips} = $banned_ips;
}
sub unban_ip : Chained('base') PathPart('unban_ip') Args(0) {
my ($self, $c) = @_;
my $ip = $c->request->params->{'ip'} || '';
$c->model('Provisioning')->call_prov(
$c,
'voip',
'unban_ip',
{ ip => $ip },
undef,
);
$c->response->redirect("/bans/ips");
}
# Ends, some people will rob their mothers for the ends ...
1

@ -169,6 +169,7 @@ sub detail : Local {
config->{VARIABLES}{site_config}{language},
'Web.Subscriber.Lock'.$$preferences{lock})
if $$preferences{lock};
$c->stash->{subscriber}{lock} = $$preferences{lock} or 'none';
} else {
$c->stash->{account_id} = $c->request->params->{account_id};

@ -369,8 +369,14 @@ display:none;
color:#fff;
}
.success {
margin-top: 20px;
.error, .alert, .notice, .success, .info {
margin-top: 1em;
}
/* this is just here to overrule "ul.cleanlist li" */
ul li.error, ul li.alert, ul li.notice, ul li.success, ul li.info {
margin-top: 0.9em;
margin-bottom: 1em;
}
.content li.ui-state-quad {

@ -39,10 +39,8 @@
<li [% 'class="active_menu"' IF menu.active == "peering" %]><a href="/peering">SIP Peerings</a></li>
[% END %]
<li [% 'class="active_menu"' IF menu.active == "rewrite" %]><a href="/rewrite">Rewrite Rule Sets</a></li>
[% IF Catalyst.config.domain.audiofile_features %]
<li [% 'class="active_menu"' IF menu.active == "sound" %]><a href="/sound">Sound sets</a></li>
[% END %]
<li [% 'class="active_menu"' IF menu.active == "bans" %]><a href="/bans/users">Bans</a></li>
<li [% 'class="active_menu"' IF menu.active == "sound" %]><a href="/sound">Sound Sets</a></li>
<li [% 'class="active_menu"' IF menu.active == "bans" %]><a href="/bans/users">Security Bans</a></li>
</ul>
</div>

@ -159,7 +159,7 @@
[% END %]
</div>
</li>
[% IF messages.addcash %]<div class="error">[% messages.addcash %]</div>[% END %]
[% IF messages.addcash %]<li class="error">[% messages.addcash %]</li>[% END %]
<li class="ui-state-default">
<div class="prepend-1 span-3">Free time:</div>
<div class="span-3">[% account.balance.free_time_balance %] s</div>
@ -172,7 +172,7 @@
[% END %]
</div>
</li>
[% IF messages.addtime %]<div class="error">[% messages.addtime %]</div>[% END %]
[% IF messages.addtime %]<li class="error">[% messages.addtime %]</li>[% END %]
</ul>
[% IF edit_balance %]
<div class="hspace-20"></div>

@ -19,7 +19,7 @@
</div>
</li>
[% IF messages.elogin %]
<div class="error">[% messages.elogin %]</div>
<li class="error">[% messages.elogin %]</li>
[% END %]
<li class="ui-state-default">
<div class="span-3">Password:</div>
@ -27,14 +27,14 @@
</li>
</li>
[% IF messages.epass %]
<div class="error">[% messages.epass %]</div>
<li class="error">[% messages.epass %]</li>
[% END %]
<li class="ui-state-default">
<div class="span-3">Repeat Password:</div>
<div class="span-10 last"><input type="password" name="password2" value="" /></div>
</li>
[% IF messages.epass2 %]
<div class="error">[% messages.epass2 %]</div>
<li class="error">[% messages.epass2 %]</li>
[% END %]
<li class="ui-state-default">
<div class="span-3">Master:</div>

@ -1,4 +1,4 @@
<h2> Bans </h2>
<h2>Banned IP Addresses</h2>
[% IF messages.ban_err %]<div class="error">[% messages.ban_err %]</div>[% END %]
[% IF messages.ban_msg %]<div class="success">[% messages.ban_msg %]</div>[% END %]
@ -14,10 +14,20 @@
<ul class="cleanlist">
<li class="ui-state-default">
<div class="span-3">IP</div>
<div class="span-3">IP Address</div>
</li>
[% FOREACH ip IN banned_ips %]
<li class="ui-state-default">[% ip.ip %]</li>
<li class="ui-state-default">
<div class="span-3">[% ip %]</div>
[% UNLESS Catalyst.session.admin.read_only %]
<div class="prepend-12 span-1 last">
<form action="/bans/unban_ip" method="POST">
<input type="hidden" name="ip" value="[% ip %]"/>
<button class="button-delete">Delete</button>
</form>
</div>
[% END %]
</li>
[% END %]
</ul>

@ -1,6 +1,6 @@
[% USE date %]
<h2> Bans </h2>
<h2>Banned Users</h2>
[% IF messages.ban_err %]<div class="error">[% messages.ban_err %]</div>[% END %]
[% IF messages.ban_msg %]<div class="success">[% messages.ban_msg %]</div>[% END %]
@ -17,15 +17,23 @@
<li class="ui-state-default">
<div class="span-6">Subscriber</div>
<div class="prepend-1 span-5 last">Last auth</div>
<div class="prepend-1 span-2">Auth count</div>
<div class="span-5">Last Authentication</div>
<div class="span-2 last">Attempts</div>
</li>
[% FOREACH user IN banned_users %]
<li class="ui-state-default">
<div class="span-6">[% user.username %]</div>
<div class="prepend-1 span-5">[% date.format (user.last_auth) %]</div>
<div class="prepend-1 span-2">[% user.auth_count %]</div>
<div class="span-5">[% date.format (user.last_auth) %]</div>
<div class="span-2">[% user.auth_count %]</div>
[% UNLESS Catalyst.session.admin.read_only %]
<div class="prepend-2 span-1 last">
<form action="/bans/unban_user" method="POST">
<input type="hidden" name="user" value="[% user.username %]"/>
<button class="button-delete">Delete</button>
</form>
</div>
[% END %]
</li>
[% END %]

@ -36,8 +36,8 @@
title="CSV field order: [% field_order %]" /> <br />
</div>
</li>
[% IF messages.feefileerr %]<li class="error">[% messages.feefileerr %]</li>[% END %]
<li class="ui-state-default">
[% IF messages.feefileerr %]<div class="error">[% messages.feefileerr %]</div>[% END %]
<div class="span-5">
<input type="checkbox" class="checkbox" id="purge_existing" name="purge_existing"
title="remove all existing fees before creating new ones"

@ -21,7 +21,7 @@
</div><div class="span-6 last">unique identifier string</div>
[% END %]
</li>
[% IF messages.handle %]<div class="error">[% messages.handle %]</div>[% END %]
[% IF messages.handle %]<li class="error">[% messages.handle %]</li>[% END %]
<li class="ui-state-default">
<div class="span-3">Name:</div>
<div class="span-6">
@ -32,7 +32,7 @@
human readable profile name
</div>
</li>
[% IF messages.name %]<div class="error">[% messages.name %]</div>[% END %]
[% IF messages.name %]<li class="error">[% messages.name %]</li>[% END %]
[% IF Catalyst.config.prepaid_features %]
<li class="ui-state-default">
<div class="span-3">prepaid:</div>
@ -53,7 +53,7 @@
base fee charged per billing interval
</div>
</li>
[% IF messages.charge %]<div class="error">[% messages.charge %]</div>[% END %]
[% IF messages.charge %]<li class="error">[% messages.charge %]</li>[% END %]
<li class="ui-state-default">
<div class="span-3">Interval Free Time:</div>
<div class="span-6">
@ -64,7 +64,7 @@
included time per billing interval
</div>
</li>
[% IF messages.free_time %]<div class="error">[% messages.free_time %]</div>[% END %]
[% IF messages.free_time %]<li class="error">[% messages.free_time %]</li>[% END %]
<li class="ui-state-default">
<div class="span-3">Interval Free Cash:</div>
<div class="span-6">
@ -75,7 +75,7 @@
included money per billing interval
</div>
</li>
[% IF messages.free_cash %]<div class="error">[% messages.free_cash %]</div>[% END %]
[% IF messages.free_cash %]<li class="error">[% messages.free_cash %]</li>[% END %]
<li class="ui-state-default">
<div class="span-3">Fraud Limit:</div>
@ -87,23 +87,23 @@
fraud detection threshold, per month
</div>
</li>
[% IF messages.fraud_interval_limit %]<div class="error">[% messages.fraud_interval_limit %]</div>[% END %]
[% IF messages.fraud_interval_limit %]<li class="error">[% messages.fraud_interval_limit %]</li>[% END %]
<li class="ui-state-default">
<div class="span-3">Fraud Lock:</div>
<div class="span-6">
<select size="1" name="fraud_interval_lock" title="the lock level">
<option value="none" [% IF bilprof.data.fraud_interval_lock == 'none' %]selected="selected"[% END %]>none</option>
<option value="foreign" [% IF bilprof.data.fraud_interval_lock == 'foreign' %]selected="selected"[% END %]>foreign</option>
<option value="outgoing" [% IF bilprof.data.fraud_interval_lock == 'outgoing' %]selected="selected"[% END %]>outgoing</option>
<option value="incoming" [% IF bilprof.data.fraud_interval_lock == 'incoming' %]selected="selected"[% END %]>incoming</option>
<option value="global" [% IF bilprof.data.fraud_interval_lock == 'global' %]selected="selected"[% END %]>global</option>
<option value="foreign" [% IF bilprof.data.fraud_interval_lock == 'foreign' %]selected="selected"[% END %]>foreign calls</option>
<option value="outgoing" [% IF bilprof.data.fraud_interval_lock == 'outgoing' %]selected="selected"[% END %]>all outgoing calls</option>
<option value="incoming" [% IF bilprof.data.fraud_interval_lock == 'incoming' %]selected="selected"[% END %]>incoming and outgoing</option>
<option value="global" [% IF bilprof.data.fraud_interval_lock == 'global' %]selected="selected"[% END %]>global (including CSC)</option>
</select>
</div>
<div class="span-6 last">
lock accounts if the limit is exceeded
</div>
</li>
[% IF messages.fraud_interval_lock %]<div class="error">[% messages.fraud_interval_lock %]</div>[% END %]
[% IF messages.fraud_interval_lock %]<li class="error">[% messages.fraud_interval_lock %]</li>[% END %]
<li class="ui-state-default">
<div class="span-3">Fraud Notify:</div>
<div class="span-6">
@ -114,7 +114,7 @@
where e-mail notifications are sent
</div>
</li>
[% IF messages.fraud_interval_notify %]<div class="error">[% messages.fraud_interval_notify %]</div>[% END %]
[% IF messages.fraud_interval_notify %]<li class="error">[% messages.fraud_interval_notify %]</li>[% END %]
<li class="ui-state-default">
<div class="span-3">Currency:</div>
@ -126,7 +126,7 @@
currency symbol or ISO code
</div>
</li>
[% IF messages.currency %]<div class="error">[% messages.currency %]</div>[% END %]
[% IF messages.currency %]<li class="error">[% messages.currency %]</li>[% END %]
<li class="ui-state-default">
<div class="span-3">VAT Rate:</div>
<div class="span-6">
@ -137,7 +137,7 @@
%
</div>
</li>
[% IF messages.vat_rate %]<div class="error">[% messages.vat_rate %]</div>[% END %]
[% IF messages.vat_rate %]<li class="error">[% messages.vat_rate %]</li>[% END %]
<li class="ui-state-default">
<div class="span-3">VAT Included:</div>
<div class="span-6">

@ -13,8 +13,6 @@
<div class="span-7">
[% IF Catalyst.config.domain.preference_features %]
<a href="/domain/preferences?domain=[% domain.domain %]">[% domain.domain %]</a>
[% ELSIF Catalyst.config.domain.audiofile_features %]
<a href="/domain/audio?domain=[% domain.domain %]">[% domain.domain %]</a>
[% ELSE %]
[% domain.domain %]
[% END %]

@ -94,7 +94,7 @@
[% END %]
</div>
</li>
[% IF preference.value.error %]<div class="error">[% preference.value.error %]</div>[% END %]
[% IF preference.value.error %]<li class="error">[% preference.value.error %]</li>[% END %]
[% ELSIF preference.key == "ncos" || preference.key == "adm_ncos"%]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
@ -139,24 +139,6 @@
[% END %]
</div>
</li>
[% ELSIF preference.key == "sound_set" AND Catalyst.config.domain.audiofile_features %]
<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=""></option>
[% FOREACH option IN preference.value.options %]
<option value="[% option.id %]"
[% IF option.id == preference.value.selected %]
selected="selected"
[% END %]>
[% option.name %]
</option>
[% END %]
</select>
</div>
</li>
[% ELSIF preference.data_type == "boolean" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
@ -224,7 +206,7 @@
</div>
</li>
[% END %]
[% IF preference.error %]<div class="error">[% preference.error %]</div>[% END %]
[% IF preference.error %]<li class="error">[% preference.error %]</li>[% END %]
[% END %]
</ul>
[% IF edit_preferences %]

@ -28,7 +28,7 @@
</div>
[% END %]
</li>
[% IF messages.destination %]<div class="error">[% messages.destination %]</div>[% END %]
[% IF messages.destination %]<li class="error">[% messages.destination %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Zone:</div>
@ -40,7 +40,7 @@
existing or new zone name
</div>
</li>
[% IF messages.zone %]<div class="error">[% messages.zone %]</div>[% END %]
[% IF messages.zone %]<li class="error">[% messages.zone %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Zone Detail:</div>
<div class="span-6">
@ -51,7 +51,7 @@
existing or new zone detail
</div>
</li>
[% IF messages.zone_detail %]<div class="error">[% messages.zone_detail %]</div>[% END %]
[% IF messages.zone_detail %]<li class="error">[% messages.zone_detail %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Onpeak Init Rate:</div>
<div class="span-6">
@ -62,7 +62,7 @@
rate in cent per second
</div>
</li>
[% IF messages.onpeak_init_rate %]<div class="error">[% messages.onpeak_init_rate %]</div>[% END %]
[% IF messages.onpeak_init_rate %]<li class="error">[% messages.onpeak_init_rate %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Onpeak Init Interval:</div>
<div class="span-6">
@ -73,7 +73,7 @@
interval in seconds
</div>
</li>
[% IF messages.onpeak_init_interval %]<div class="error">[% messages.onpeak_init_interval %]</div>[% END %]
[% IF messages.onpeak_init_interval %]<li class="error">[% messages.onpeak_init_interval %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Onpeak Follow Rate:</div>
<div class="span-6">
@ -84,7 +84,7 @@
rate in cent per second
</div>
</li>
[% IF messages.onpeak_follow_rate %]<div class="error">[% messages.onpeak_follow_rate %]</div>[% END %]
[% IF messages.onpeak_follow_rate %]<li class="error">[% messages.onpeak_follow_rate %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Onpeak Follow Interval:</div>
<div class="span-6">
@ -95,7 +95,7 @@
interval in seconds
</div>
</li>
[% IF messages.onpeak_follow_interval %]<div class="error">[% messages.onpeak_follow_interval %]</div>[% END %]
[% IF messages.onpeak_follow_interval %]<li class="error">[% messages.onpeak_follow_interval %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Offpeak Init Rate:</div>
<div class="span-6">
@ -106,7 +106,7 @@
rate in cent per second
</div>
</li>
[% IF messages.offpeak_init_rate %]<div class="error">[% messages.offpeak_init_rate %]</div>[% END %]
[% IF messages.offpeak_init_rate %]<li class="error">[% messages.offpeak_init_rate %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Offpeak Init Interval:</div>
<div class="span-6">
@ -117,7 +117,7 @@
interval in seconds
</div>
</li>
[% IF messages.offpeak_init_interval %]<div class="error">[% messages.offpeak_init_interval %]</div>[% END %]
[% IF messages.offpeak_init_interval %]<li class="error">[% messages.offpeak_init_interval %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Offpeak Follow Rate:</div>
<div class="span-6">
@ -128,7 +128,7 @@
rate in cent per seconds
</div>
</li>
[% IF messages.offpeak_follow_rate %]<div class="error">[% messages.offpeak_follow_rate %]</div>[% END %]
[% IF messages.offpeak_follow_rate %]<li class="error">[% messages.offpeak_follow_rate %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Offpeak Follow Interval:</div>
<div class="span-6">
@ -139,7 +139,7 @@
interval in seconds
</div>
</li>
[% IF messages.offpeak_follow_interval %]<div class="error">[% messages.offpeak_follow_interval %]</div>[% END %]
[% IF messages.offpeak_follow_interval %]<li class="error">[% messages.offpeak_follow_interval %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Use Free Time:</div>
<div class="span-6 last">

@ -97,7 +97,7 @@
[% END %]
</div>
</li>
[% IF preference.value.error %]<div class="error">[% preference.value.error %]</div>[% END %]
[% IF preference.value.error %]<li class="error">[% preference.value.error %]</li>[% END %]
[% ELSIF preference.key == "ncos" || preference.key == "adm_ncos"%]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
@ -142,24 +142,6 @@
[% END %]
</div>
</li>
[% ELSIF preference.key == "sound_set" AND Catalyst.config.domain.audiofile_features %]
<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=""></option>
[% FOREACH option IN preference.value.options %]
<option value="[% option.id %]"
[% IF option.id == preference.value.selected %]
selected="selected"
[% END %]>
[% option.name %]
</option>
[% END %]
</select>
</div>
</li>
[% ELSIF preference.data_type == "boolean" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
@ -227,7 +209,7 @@
</div>
</li>
[% END %]
[% IF preference.error %]<div class="error">[% preference.error %]</div>[% END %]
[% IF preference.error %]<li class="error">[% preference.error %]</li>[% END %]
[% END %]
</ul>
[% IF edit_preferences %]

@ -51,11 +51,21 @@
<script language="JavaScript" src="/js/openclose.js" type="text/javascript"></script>
<a id="lock" href="javascript:;" onclick="javascript:openclose();" onkeypress="javascript:openclose();"><span class="button-lock-sub">Lock</span></a>
<span id="lock_menu" class="floating" onmouseout="javascript:openclose();">
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=none" class="aaction">unlock</a><br />
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=foreign" class="aaction">foreign calls</a><br />
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=outgoing" class="aaction">all outgoing calls</a><br />
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=incoming" class="aaction">incoming and outgoing</a><br />
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=global" class="aaction">global (including CSC)</a><br />
[% UNLESS subscriber.lock == 'none' %]
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=none" class="aaction">unlock</a><br />
[% END %]
[% UNLESS subscriber.lock == 'foreign' %]
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=foreign" class="aaction">foreign calls</a><br />
[% END %]
[% UNLESS subscriber.lock == 'outgoing' %]
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=outgoing" class="aaction">all outgoing calls</a><br />
[% END %]
[% UNLESS subscriber.lock == 'incoming' %]
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=incoming" class="aaction">incoming and outgoing</a><br />
[% END %]
[% UNLESS subscriber.lock == 'global' %]
<a href="lock?subscriber_id=[% subscriber.subscriber_id %]&amp;lock=global" class="aaction">global (including CSC)</a><br />
[% END %]
</span>
<a href="terminate?subscriber_id=[% subscriber.subscriber_id %]"><span class="button-terminate">Terminate</span></a>
[% END %]
@ -97,7 +107,7 @@
[% END %]
</div>
</li>
[% IF messages.webusername %]<div class="error">[% messages.webusername %]</div>[% END %]
[% IF messages.webusername %]<li class="error">[% messages.webusername %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Web Password:</div>
<div class="span-10">
@ -120,7 +130,7 @@
[% END %]
[% END %]
</li>
[% IF messages.webpassword %]<div class="error">[% messages.webpassword %]</div>[% END %]
[% IF messages.webpassword %]<li class="error">[% messages.webpassword %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">E.164 Number:</div>
[% IF edit_subscriber %]
@ -148,10 +158,10 @@
</div>
[% END %]
</li>
[% IF messages.number %]<div class="error">[% messages.number %]</div>[% END %]
[% IF messages.number_cc %]<div class="error">[% messages.number_cc %]</div>[% END %]
[% IF messages.number_ac %]<div class="error">[% messages.number_ac %]</div>[% END %]
[% IF messages.number_sn %]<div class="error">[% messages.number_sn %]</div>[% END %]
[% IF messages.number %]<li class="error">[% messages.number %]</li>[% END %]
[% IF messages.number_cc %]<li class="error">[% messages.number_cc %]</li>[% END %]
[% IF messages.number_ac %]<li class="error">[% messages.number_ac %]</li>[% END %]
[% IF messages.number_sn %]<li class="error">[% messages.number_sn %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Alias Numbers:</div>
@ -217,7 +227,7 @@
[% END %]
[% END %]
</li>
[% IF messages.password %]<div class="error">[% messages.password %]</div>[% END %]
[% IF messages.password %]<li class="error">[% messages.password %]</li>[% END %]
<li class="ui-state-default">
<div class="span-5">Administrative:</div>
<div class="span-11 last">

@ -50,11 +50,11 @@
</form>
</li>
[% IF messages.number_cc OR messages.number_ac OR messages.number_sn %]
<div class="error">
<li class="error">
[% messages.number_cc IF messages.number_cc %]
[% messages.number_ac IF messages.number_ac %]
[% messages.number_sn IF messages.number_sn %]
</div>
</li>
[% END %]
</ul>

@ -40,8 +40,8 @@
<button class="button-delete" id="listdel[% sdentry.id %]">Delete</button>
</div>
</form>
[% IF sdentry.error %]</li><li><div class="error">[% sdentry.error %]</div>[% END %]
</li>
[% IF sdentry.error %]<li class="error">[% sdentry.error %]</li>[% END %]
[% END %]
[% END %]

@ -93,24 +93,6 @@
[% END %]
</div>
</li>
[% ELSIF preference.key == "sound_set" AND Catalyst.config.domain.audiofile_features %]
<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=""></option>
[% FOREACH option IN preference.value.options %]
<option value="[% option.id %]"
[% IF option.id == preference.value.selected %]
selected="selected"
[% END %]>
[% option.name %]
</option>
[% END %]
</select>
</div>
</li>
[% ELSIF preference.data_type == "boolean" %]
<li class="ui-state-default">
<div class="span-5" title="[% preference.description %]">[% preference.key %]:</div>
@ -178,7 +160,7 @@
</div>
</li>
[% END %]
[% IF preference.error %]<div class="error">[% preference.error %]</div>[% END %]
[% IF preference.error %]<li class="error">[% preference.error %]</li>[% END %]
[% END %]
</ul>
[% IF edit_preferences %]
@ -392,7 +374,7 @@
value="[% subscriber.voicebox_preferences.password %]" />
</div>
</li>
[% IF messages.vpin %]<div class="error">[% messages.vpin %]</div>[% END %]
[% IF messages.vpin %]<li class="error">[% messages.vpin %]</li>[% END %]
<li class="ui-state-default">
<div class="span-4">E-Mail:</div>
<div class="span-10 last">
@ -401,7 +383,7 @@
value="[% subscriber.voicebox_preferences.email %]" />
</div>
</li>
[% IF messages.vemail %]<div class="error">[% messages.vemail %]</div>[% END %]
[% IF messages.vemail %]<li class="error">[% messages.vemail %]</li>[% END %]
<li class="ui-state-default">
<div class="span-4">Attach WAV:</div>
<div class="span-10 last">
@ -452,7 +434,7 @@
value="[% subscriber.fax_preferences.name %]" />
</div>
</li>
[% IF messages.faxname %]<li class="ui-state-default"><div class="span-14 error">[% messages.faxname %]</div></li>[% END %]
[% IF messages.faxname %]<li class="error">[% messages.faxname %]</li>[% END %]
<li class="ui-state-default">
<div class="span-4">Password:</div>
@ -478,7 +460,7 @@
[% END %]
</div>
</li>
[% IF messages.faxpass %]<li class="ui-state-default"><div class="span-14 error">[% messages.faxpass %]</div></li>[% END %]
[% IF messages.faxpass %]<li class="error">[% messages.faxpass %]</li>[% END %]
<li class="ui-state-default">
<div class="span-4">Active:</div>

Loading…
Cancel
Save