X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FElements%2FCalendarDaySchedule;h=bac9a78d4354a4dcf1586d40b098f087e145f53c;hb=05c0b947ddba67a8ac2537c010a583277623ff3e;hp=0f9f9092e40b68db620e19193df3fa8cd5112e95;hpb=d1bfdbf97b2950f5f6ccb1255db387479d483955;p=freeside.git diff --git a/rt/share/html/Elements/CalendarDaySchedule b/rt/share/html/Elements/CalendarDaySchedule index 0f9f9092e..bac9a78d4 100644 --- a/rt/share/html/Elements/CalendarDaySchedule +++ b/rt/share/html/Elements/CalendarDaySchedule @@ -1,32 +1,100 @@ <%args> -$Date => undef -$Tickets => undef -$DateTypes => undef -@username => () +$Date => undef +$today => undef +$Tickets => undef +$DateTypes => undef +@username => () +$CurrentUser => undef +%if ( DateTime->compare( $Date, $today ) == -1 ) {#flag to show the past anyway? +% #the past already happened... +%} else { % foreach my $username ( @username ) { % my $mapname = "$username-$date"; -<% $username %>
- -%# false laziness w/Schedule/UserBar -%#XXX block out unavailable times -%#alas. abstractions break, freeside-specific stuff to get availability -%# move availability to RT side? make it all callback/pluggable? +% my $img = "$RT::WebPath/Schedule/UserBar?Username=$username;Date=$date"; + <% $username %> + width = <%$width%> + >
+ + + +% my %schedule = UserDaySchedule( CurrentUser => $CurrentUser, +% username => $username, +% 'date' => $date, #$Date->strftime('%F'), +% ); % -%#XXX block out / show / color code existing appointments +% #block out / show / color code existing appointments +% foreach my $id ( keys %{ $schedule{'scheduled'} } ) { +% my( $starts, $due, $col, $t ) = @{ $schedule{'scheduled'}->{$id} }; +% my $s = int(($starts-$stime)/10); +% my $e = int(($due-$stime)/10)-1; + +% #false laziness w/misc/xmlhttp-ticket-update.html & CalendarSlotSchedule +% my %hash = $m->comp('/Ticket/Elements/Customers', Ticket => $t); +% my @cust_main = values( %{$hash{cust_main}} ); + + +%# +% } % --%# - +% #white out available times +% foreach my $avail ( @{ $schedule{'avail'} } ) { +% my( $start, $end ) = @$avail; +% +% my $s = $start >= $stime ? int(($start-$stime)/10) : 0; +% my $e = int(($end-$stime)/10)-1; + +%# +% } + + +%# + +
+ % } +%} +<%once> + +my $stime = RT->Config->Get('CalendarWeeklyStartMin'); +$stime = 480 unless $stime =~ /^\d+$/; #8am +my $etime = RT->Config->Get('CalendarWeeklyEndMin'); +$etime = 1080 unless $etime =~ /^\d+$/; #6pm + +my $width = int( ( $etime - $stime ) / 10 ); +my $height = 12; #Schedule/UserBar + + <%init> -my( $date, $time ) = split('T', $Date); +use RTx::Schedule qw( UserDaySchedule ); +use FS::sched_avail; #just for pretty_time + +#my( $date, $time ) = split('T', $Date); +my $date = $Date->strftime('%F');