mirror of https://github.com/sipwise/www_csc.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
4.0 KiB
134 lines
4.0 KiB
package csc::Controller::reminder;
|
|
|
|
use strict;
|
|
use warnings;
|
|
use base 'Catalyst::Controller';
|
|
|
|
=head1 NAME
|
|
|
|
csc::Controller::reminder - Catalyst Controller
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
Catalyst Controller.
|
|
|
|
=head1 METHODS
|
|
|
|
=cut
|
|
|
|
|
|
=head2 index
|
|
|
|
Displays the reminder settings for a subscriber.
|
|
|
|
=cut
|
|
|
|
sub index : Private {
|
|
my ( $self, $c, $preferences ) = @_;
|
|
|
|
$c->log->debug('***reminder::index called');
|
|
$c->stash->{template} = 'tt/reminder.tt';
|
|
|
|
return 1 unless $c->model('Provisioning')->call_prov($c, 'voip', 'get_subscriber',
|
|
{ username => $c->session->{user}{username},
|
|
domain => $c->session->{user}{domain},
|
|
},
|
|
\$c->session->{user}{data}
|
|
);
|
|
return 1 unless $c->model('Provisioning')->call_prov($c, 'voip', 'get_subscriber_preferences',
|
|
{ username => $c->session->{user}{username},
|
|
domain => $c->session->{user}{domain},
|
|
},
|
|
\$c->session->{user}{preferences}
|
|
);
|
|
|
|
if(defined $preferences and ref $preferences eq 'HASH') {
|
|
for(keys %$preferences) {
|
|
$c->session->{user}{reminder}{$_} = $$preferences{$_};
|
|
}
|
|
} else {
|
|
unless($c->model('Provisioning')->call_prov($c, 'voip', 'get_subscriber_reminder',
|
|
{ username => $c->session->{user}{username},
|
|
domain => $c->session->{user}{domain},
|
|
},
|
|
\$c->session->{user}{reminder}
|
|
)) {
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
$c->stash->{subscriber} = $c->session->{user};
|
|
|
|
$c->stash->{subscriber}{active_number} = '0'. $c->session->{user}{data}{ac} .' '. $c->session->{user}{data}{sn};
|
|
if($c->session->{user}{extension}) {
|
|
my $ext = $c->session->{user}{preferences}{extension};
|
|
$c->stash->{subscriber}{active_number} =~ s/$ext$/ - $ext/;
|
|
}
|
|
|
|
}
|
|
|
|
=head2 save
|
|
|
|
Changes the reminder settings for a subscriber.
|
|
|
|
=cut
|
|
|
|
sub save : Local {
|
|
my ( $self, $c ) = @_;
|
|
my (%preferences, %messages);
|
|
|
|
$preferences{time} = $c->request->params->{time};
|
|
if(defined $preferences{time} and $preferences{time} !~ /^\d\d?:\d\d?$/) {
|
|
$messages{time} = 'Client.Syntax.MalformedReminderTime';
|
|
}
|
|
$preferences{recur} = $c->request->params->{recur} || 'never';
|
|
|
|
unless(keys %messages) {
|
|
if($c->model('Provisioning')->call_prov($c, 'voip', 'set_subscriber_reminder',
|
|
{ username => $c->session->{user}{username},
|
|
domain => $c->session->{user}{domain},
|
|
data => \%preferences
|
|
},
|
|
undef
|
|
))
|
|
{
|
|
$messages{topmsg} = 'Server.Voip.SavedSettings';
|
|
$c->session->{messages} = \%messages;
|
|
$c->response->redirect('/reminder');
|
|
return;
|
|
}
|
|
} else {
|
|
$messages{toperr} = 'Client.Voip.InputErrorFound';
|
|
}
|
|
|
|
$c->session->{messages} = \%messages;
|
|
$self->index($c, \%preferences);
|
|
}
|
|
|
|
|
|
=head1 BUGS AND LIMITATIONS
|
|
|
|
=over
|
|
|
|
=item none.
|
|
|
|
=back
|
|
|
|
=head1 SEE ALSO
|
|
|
|
Provisioning model, Catalyst
|
|
|
|
=head1 AUTHORS
|
|
|
|
Daniel Tiefnig <dtiefnig@sipwise.com>
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
The reminder controller is Copyright (c) 2010 Sipwise GmbH,
|
|
Austria. All rights reserved.
|
|
|
|
=cut
|
|
|
|
# over and out
|
|
1;
|