installers (calendaring), RT#16584
[freeside.git] / rt / share / html / Elements / CalendarSlotSchedule
1 <%ARGS>
2   $Date     => undef
3   @Tickets  => ()
4   $slots    => $default_slots
5   $sday     => undef
6   $tod_row  => undef
7   $timestep => $default_timestep
8   @username => ()
9 </%ARGS>
10 % foreach my $username ( @username ) {
11 %
12 %   my %schedule = UserDaySchedule( username => $username,
13 %                                   'date'   => $Date->strftime('%F'),
14 %                                   Tickets  => \@Tickets,
15 %                                 );
16 %
17 %   my $bgcolor = '666666;border-color:#555555';
18 %   my $content = '';
19 %
20 %   #white out available times
21 %   foreach my $avail ( @{ $schedule{'avail'} } ) {
22 %     my( $start, $end ) = @$avail;
23 %     next if $start >= ($tod_row+$timestep) || $end <= $tod_row;
24 %     $bgcolor = 'FFFFFF';
25 %   }
26 %
27 %   #block out / show / color code existing appointments
28 %   foreach my $id ( keys %{ $schedule{'scheduled'} } ) {
29 %
30 %     my( $starts, $due, $col, $t ) = @{ $schedule{'scheduled'}->{$id} };
31 %
32 %     next if $starts >= ($tod_row+$timestep) || $due < $tod_row;
33 %
34 %     if ( $starts >= $tod_row ) {
35 %       $bgcolor = $col;
36 %       $content .= ($content?', ':''). $id; #XXX more
37 %     } else {
38 %       $bgcolor = $col;
39 %     }
40 %   }
41
42     <td style="background:#<%$bgcolor%>" class="weekly"
43 %#               <%   $is_today     ? 'today'
44 %#                  : $is_yesterday ? 'yesterday'
45 %#                  : $is_aweekago  ? 'aweekago'
46 %#                  : ''
47 %#               %>"
48     ><% $content %></td>
49 % }
50 <%ONCE>
51 my $default_slots = RT->Config->Get('CalendarWeeklySlots') || 5;
52 my $default_timestep = RT->Config->Get('CalendarWeeklySizeMin') || 30; #1/2h
53 </%ONCE>
54 <%INIT>
55
56 use RTx::Schedule qw( UserDaySchedule );
57
58 </%INIT>