installers (calendaring), RT#16584
[freeside.git] / rt / share / html / Elements / CalendarDaySchedule
index 0f9f909..f378674 100644 (file)
@@ -1,32 +1,63 @@
 <%args>
-$Date      => undef
-$Tickets   => undef
-$DateTypes => undef
-@username  => ()
+$Date        => undef
+$Tickets     => undef
+$DateTypes   => undef
+@username    => ()
+$CurrentUser => undef
 </%args>
 % foreach my $username ( @username ) {
 %   my $mapname = "$username-$date";
-<span class="calendarright"><% $username %><img src="<%$RT::WebPath%>/Schedule/UserBar?Username=<%$username%>;Date=<%$date%>" useMap="#<%$mapname%>"><span><br>
-<MAP name="<%$mapname%>">
-%# 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?
-%
-%#XXX block out / show / color code existing appointments
+%   my $img = "$RT::WebPath/Schedule/UserBar?Username=$username;Date=$date";
+    <span class="calendarright"
+    ><% $username %><img src    = "<%$img|n%>"
+                         useMap = "#<%$mapname%>"
+                         height = <%$height%>
+                         width  = <%$width%>
+    ></span><br>
+
+    <MAP name="<%$mapname%>">
+
+%   my %schedule = UserDaySchedule( CurrentUser => $CurrentUser,
+%                                   username    => $username,
+%                                   'date'      => $Date->strftime('%F'),
+%                                 );
+
+%   #XXX block out unavailable times
 %
-<AREA onmouseover="overlib('XX miles away<BR>more info')"
-      onmouseout="nd(); return true;"
-      shape = "rect"
-      coords="0,0,59,11"
-      href="test_href"
-%#    alt=
-%#    title=
->
-</MAP>
+%   #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;
+      <AREA
+         onmouseover = "overlib('<%$id%>: XX miles away<BR>more info', BGCOLOR, '#000000', FGCOLOR, '#<%$col%>')"
+         onmouseout  = "nd(); return true;"
+         shape       = "rect"
+         coords      = "<%$s%>,0,<%$e%>,<%$height-1%>"
+%#         href        = "test_href"
+%#         alt         =
+%#         title       =
+      >
+%   }
+
+    </MAP>
+
 % }
+<%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
+
+</%once>
 <%init>
 
+use RTx::Schedule qw( UserDaySchedule );
+
 my( $date, $time ) = split('T', $Date);
 
 </%init>