installers (calendaring), RT#16584
[freeside.git] / rt / share / html / Elements / CalendarSlotSchedule
index 3af90ff..8a0c617 100644 (file)
@@ -8,39 +8,51 @@
   @username => ()
 </%ARGS>
 % foreach my $username ( @username ) {
-
-    <td class="weekly
-%#               <%   $is_today     ? 'today'
-%#                  : $is_yesterday ? 'yesterday'
-%#                  : $is_aweekago  ? 'aweekago'
-%#                  : ''
-%#               %>
-                   "
-    >
-%       for my $t (@Tickets) {
-%         next unless $t->OwnerObj->Name eq $username;
 %
-%         next unless RTx::Calendar::LocalDate($t->StartsObj->Unix)
-%                     eq $Date->strftime('%F'); #today
+%   my %schedule = UserDaySchedule( username => $username,
+%                                   'date'   => $Date->strftime('%F'),
+%                                   Tickets  => \@Tickets,
+%                                 );
+%
+%   my $bgcolor = '666666;border-color:#555555';
+%   my $content = '';
+%
+%   #white out available times
+%   foreach my $avail ( @{ $schedule{'avail'} } ) {
+%     my( $start, $end ) = @$avail;
+%     next if $start >= ($tod_row+$timestep) || $end <= $tod_row;
+%     $bgcolor = 'FFFFFF';
+%   }
 %
-%         my($sm, $sh) = ($t->StartsObj->Localtime('user'))[1,2];
-%         my $starts = $sh*60 + $sm;
+%   #block out / show / color code existing appointments
+%   foreach my $id ( keys %{ $schedule{'scheduled'} } ) {
 %
-%         my($dm, $dh) = ($t->DueObj->Localtime('user'))[1,2];
-%         my $due = $dh*60 + $dm;
+%     my( $starts, $due, $col, $t ) = @{ $schedule{'scheduled'}->{$id} };
 %
-%         next if $starts >= ($tod_row+$timestep) || $due < $tod_row;
+%     next if $starts >= ($tod_row+$timestep) || $due < $tod_row;
 %
-%         warn $starts. ' = '. ($tod_row+$timestep);
-%         if ( $starts >= $tod_row ) {
-            <% $t->Id %>
-%         } else {
-            cont<% $t->Id %>...
-%         }
-%       }
-    </td>
+%     if ( $starts >= $tod_row ) {
+%       $bgcolor = $col;
+%       $content .= ($content?', ':''). $id; #XXX more
+%     } else {
+%       $bgcolor = $col;
+%     }
+%   }
+
+    <td style="background:#<%$bgcolor%>" class="weekly"
+%#               <%   $is_today     ? 'today'
+%#                  : $is_yesterday ? 'yesterday'
+%#                  : $is_aweekago  ? 'aweekago'
+%#                  : ''
+%#               %>"
+    ><% $content %></td>
 % }
 <%ONCE>
 my $default_slots = RT->Config->Get('CalendarWeeklySlots') || 5;
 my $default_timestep = RT->Config->Get('CalendarWeeklySizeMin') || 30; #1/2h
 </%ONCE>
+<%INIT>
+
+use RTx::Schedule qw( UserDaySchedule );
+
+</%INIT>