2345fe8217d82d25faaca56927d42e4f0dcbb213
[freeside.git] / rt / share / html / Schedule / UserBar
1 <%perl>
2
3 use GD;
4 use RTx::Schedule qw( UserDaySchedule );
5
6 my $im = new GD::Image($width, $height) or die;
7
8 my $white = $im->colorAllocate(255,255,255);
9 my $black = $im->colorAllocate(0,0,0); 
10
11 # Put a black frame around the picture
12 $im->rectangle(0,0,$width-1,$height-1,$black);
13
14 my %schedule = UserDaySchedule( CurrentUser => $session{CurrentUser},
15                                 username    => $Username,
16                                 'date'      => $Date,
17                               );
18
19 #XXX block out unavailable times
20
21 #block out / show / color code existing appointments
22 foreach my $id ( keys %{ $schedule{'scheduled'} } ) {
23
24   my( $starts, $due, $col, $t ) = @{ $schedule{'scheduled'}->{$id} };
25   my $color = $im->colorAllocate( unpack 'C*', pack 'H*', $col );
26   $im->filledRectangle( int(($starts-$stime)/10), 1, int(($due-$stime)/10)-1, $height-2, $color );
27
28 }
29
30 $r->content_type('image/png');
31 $m->clear_buffer;
32 $m->out($im->png);
33 $m->abort;
34
35 </%perl>
36 <%args>
37 $Username => undef
38 $Date     => undef
39 </%args>
40 <%once>
41
42 my $stime    = RT->Config->Get('CalendarWeeklyStartMin');
43 $stime = 480 unless $stime =~ /^\d+$/; #8am
44 my $etime    = RT->Config->Get('CalendarWeeklyEndMin');
45 $etime = 1080 unless $etime =~ /^\d+$/; #6pm
46
47 my $width = int( ( $etime - $stime ) / 10 );
48 my $height = 12; #Elements/CalendarDaySchedule
49
50 </%once>