implemented reminder settings interface


			
			
				2.0@2770
			
			
		
Daniel Tiefnig 16 years ago
parent e3c57e34c8
commit 9d48ab9d8b

@ -43,6 +43,7 @@
addressbook="1"
callforward="1"
callblock="1"
reminder="1"
device="0"
account="1"
/>

@ -82,6 +82,14 @@ sub index : Private {
and @{$c->stash->{subscriber}{voicemail_list}};
delete $c->session->{user}{voicemail_list} if exists $c->session->{user}{voicemail_list};
return 1 unless $c->model('Provisioning')->call_prov($c, 'voip', 'get_subscriber_reminder',
{ username => $c->session->{user}{username},
domain => $c->session->{user}{domain},
},
\$c->stash->{subscriber}{reminder}
);
return;
}
=head1 BUGS AND LIMITATIONS

@ -0,0 +1,125 @@
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
=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/;
}
}
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;

@ -654,6 +654,37 @@
border: 1px solid #8D9FAA;
}
/* text fields for reminder config */
#reminder input,
#reminder textarea,
#reminder select {
margin: 3px 0 0px 0;
border: 1px solid #8D9FAA;
}
#reminder .input5 {
padding-left: 3px;
padding-right: 0px;
margin-top: -1px;
width: 50px; /* falsch für ie */
voice-family: "\"}\"";
voice-family:inherit;
width: 45px; /* richtig */
}
#reminder p {
margin-top: 8px;
}
#reminder .recur {
margin-left: 100px;
}
#reminder .lleft {
float: left;
width: 100px !important;
}
/* add to cart link next to product images */
#main .produktwahlshop .produktwahl span.add_to_cart {
float: left;

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 B

@ -34,6 +34,9 @@
[% IF Catalyst.config.main_menu.callblock %]
<li [% 'class="on"' IF template.title == "callblock" %]><a href="/callblock">Rufnummernsperre</a></li>
[% END %]
[% IF Catalyst.config.main_menu.reminder %]
<li [% 'class="on"' IF template.title == "reminder" %]><a href="/reminder">Weckruf</a></li>
[% END %]
[% IF Catalyst.config.main_menu.device && Catalyst.session.user.admin %]
<li [% 'class="on"' IF template.title == "device" %]><a href="/autosubscriber">Endgeräte</a></li>
[% END %]

@ -138,7 +138,25 @@
[% END %]
</p>
<p style="clear:left">
<a href="/callforward" class="link">Einstellungen ändern</a>
<a href="/callforward" class="link">Einstellungen ansehen</a>
</p>
<br clear="all" />
[% END %]
[% IF Catalyst.config.main_menu.reminder %]
<h3>Weckruf</h3>
<p class="rufumleitung">
[% IF subscriber.reminder.time %]
<img src="/grafik/reminder_on.gif" width="34" height="43" alt="" />
Weckruf aktiv
[% ELSE %]
<img src="/grafik/reminder_off.gif" width="34" height="43" alt="" />
Weckruf deaktiviert
[% END %]
</p>
<p style="clear:left">
<a href="/reminder" class="link">Einstellungen ansehen</a>
</p>
<br clear="all" />
[% END %]

@ -0,0 +1,81 @@
[% META title = 'reminder' %]
<div id="headimg">
<img src="/grafik/area.jpg" width="869" height="69" alt="" />
</div>
<div id="headtxt">Stellen Sie Ihren persönlichen Wecker.</div>
<div id="main">
<div id="topmsg">
<p> [% messages.topmsg %] </p>
</div>
<div id="toperr">
<p> [% messages.toperr %] </p>
<p> [% messages.prov_error %] </p>
</div>
<div class="sperrehead">
<h3>Weckruf</h3>
<h2 class="umleitungfuer">Einstellungen für [% subscriber.active_number %]</h2>
</div>
<div id="spalten31">
<div class="spalte1">
<form id="reminder" action="/reminder/save" method="post">
<h3 class="blueh3">Wann</h3>
<p>
<label class="lleft" for="reminder_time">Uhrzeit: </label>
<input type="text" id="reminder_time" name="time" size="5" class="input5" value="[% subscriber.reminder.time %]" />
<span class="info">(hh:mm)</span>
[% IF messages.time %]<div id="errormsg">[% messages.time %]</div><br clear="all" />[% END %]
</p>
<p>
<label class="lleft">Wiederholung:</label>
<p class="recur">
<input type="radio" id="reminder_recur_never" value="never" name="recur" class="radio"
[% IF subscriber.reminder.recur == "never" %]checked="checked"[% END %] />
<label for="reminder_recur_never">nie</label><br />
<input type="radio" id="reminder_recur_weekdays" value="weekdays" name="recur" class="radio"
[% IF subscriber.reminder.recur == "weekdays" %]checked="checked"[% END %] />
<label for="reminder_recur_weekdays">an Wochentagen (Montag - Samstag)</label><br />
<input type="radio" id="reminder_recur_always" value="always" name="recur" class="radio"
[% IF subscriber.reminder.recur == "always" %]checked="checked"[% END %] />
<label for="reminder_recur_always">täglich</label><br />
</p>
</p>
<p class="save">
<label for="save_settings">Weckruf aktivieren</label>
<input type="image" class="hidden" src="/grafik/dot_trans.gif" alt="" id="save_settings">
</p>
</form>
<form action="/reminder/save" method="post">
<p class="save">
<label for="clear_settings">Weckruf deaktivieren</label>
<input type="image" class="hidden" src="/grafik/dot_trans.gif" alt="" id="clear_settings">
</p>
</form>
<br clear="all" />
</div>
<div class="spalte2">
<p class="rufumleitung">
[% IF subscriber.reminder.time %]
<img src="/grafik/reminder_on.gif" width="34" height="43" alt="reminder" />
Der Weckruf ist aktiv!
[% ELSE %]
<img src="/grafik/reminder_off.gif" width="34" height="43" alt="reminder" />
Der Weckruf ist deaktiviert!
[% END %]
</p>
</div>
</div>
</div><br clear="all" />
Loading…
Cancel
Save