[freeside-commits] branch master updated. 9f1a3b2bd30562d52fa9d2d0c7afab08f5efff41

Ivan ivan at 420.am
Sat Apr 12 19:18:28 PDT 2014


The branch, master has been updated
       via  9f1a3b2bd30562d52fa9d2d0c7afab08f5efff41 (commit)
      from  e6341bb01533cc32252676ea40bb94bbd2613a37 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9f1a3b2bd30562d52fa9d2d0c7afab08f5efff41
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sat Apr 12 19:18:27 2014 -0700

    installers (calendaring), RT#16584

diff --git a/rt/share/html/Elements/CalendarSlotSchedule b/rt/share/html/Elements/CalendarSlotSchedule
index e94bddf..88202d4 100644
--- a/rt/share/html/Elements/CalendarSlotSchedule
+++ b/rt/share/html/Elements/CalendarSlotSchedule
@@ -1,31 +1,34 @@
 <%ARGS>
+  $Date     => undef,
   @Tickets  => ()
   $slots    => $default_slots,
   $sday     => undef,
   $tod_row  => undef,
   $timestep => $default_timestep,
+  @username => ()
 </%ARGS>
 <%SHARED>
 my @slots = ( [], [], [], [], [], [], [] );
 </%SHARED>
-% warn $sday;
 %       #for my $t ( @{ $Tickets{$date->strftime("%F")} } ) {
 %       for my $t (@Tickets) {
 %
-%         #XXX off by 1h on daylight savings boundaries... 2 sundays a year
-%         my $starts = ($t->StartsObj->Unix - $t->StartsObj->SetToMidnight(Timezone=>'user'))/60;
+%         my($sm, $sh) = ($t->StartsObj->Localtime('user'))[1,2];
+%         my $starts = $sh*60 + $sm;
 %
-%         if ( $starts >= $tod_row && $starts < ($tod_row + $timestep) ) {
+%         if ( RTx::Calendar::LocalDate($t->StartsObj->Unix) eq $Date->strftime('%F') #today
+%                && $starts >= $tod_row && $starts < ($tod_row + $timestep) ) {
 %           #then we're a new entry, find a slot for us
 %           my $s = 0;
 %           while ( ref($slots[$sday]->[$s]) ) { $s++ }
 %           $slots[$sday]->[$s] = [ $t->Id, $t ];
 %         }
 %
-%         #XXX also off by 1h on daylight savings boundaries
-%         my $due = $t->DueObj->Unix - $t->DueObj->SetToMidnight;
+%         my($dm, $dh) = ($t->DueObj->Localtime('user'))[1,2];
+%         my $due = $dh*60 + $dm;
 %
-%         if ( $due <= $tod_row && $due > ($tod_row + $timestep ) ) {
+%         if ( RTx::Calendar::LocalDate($t->DueObj->Unix) eq $Date->strftime('%F') #today
+%                && $due <= $tod_row && $due > ($tod_row + $timestep ) ) {
 %           #then find our slot and remove us
 %           @{ $slots[$sday] } =
 %             map { (!ref($_) || $_->[0] != $t->Id) ? $_ : '' }
diff --git a/rt/share/html/Search/Calendar.html b/rt/share/html/Search/Calendar.html
index bf07ff3..a6df9fc 100644
--- a/rt/share/html/Search/Calendar.html
+++ b/rt/share/html/Search/Calendar.html
@@ -79,52 +79,54 @@ $slots       => $default_slots
 
 <table class="rtxcalendar">
 
-<thead>
-<tr>
-<td class="labels" colspan=<% $WeekDay ? 2 : 1 %>></td>
-% for ( @{$week{$weekstart}} ) {
-<th colspan=<% $WeekDay ? $slots : 1 %>><%$rtdate->GetWeekday($_)%></th>
+  <thead>
+
+% unless ( $WeekDay ) {
+
+    <tr>
+      <td class="labels" colspan=<% $WeekDay ? 2 : 1 %>></td>
+%     for ( @{$week{$weekstart}} ) {
+        <th colspan=<% $WeekDay ? $slots : 1 %>><%$rtdate->GetWeekday($_)%></th>
+%     }
+    </tr>
+  </thead>
+  <tbody>
+
 % }
-</tr>
-</thead>
 
-<tbody>
 <tr>
 
-% if ( $WeekDay ) {
-  <td class="controls" rowspan=<% $rowspan+2 %> valign="middle">
-    <& week_collapse, date=>$start, Month=>$OrigMonth, Year=>$OrigYear, QueryString=>$QueryString, Embed=>$Embed, &>
-  </td>
-  </td>
-% } else {
+% unless ( $WeekDay ) {
   <& td_week_expand, date=>$start, Month=>$Month, Year=>$Year, QueryString=>$QueryString, Embed=>$Embed, &>
 % }
 
 % if ( $WeekDay ) {
 
-    <td class="labels"></td>
+    <td class="labels" colspan=2></td>
 
 %   my $date = $start;
+%   my $sday = 0;
 %   while ($date <= $end) {
 %
 %     my $is_today     = (DateTime->compare($today,     $date) == 0);
 %     my $is_yesterday = (DateTime->compare($yesterday, $date) == 0);
 %     my $is_aweekago  = (DateTime->compare($aweekago,  $date) == 0);
 
-      <td colspan=<%$slots%>
-          class="weekly
-                 <%   $is_today     ? 'today'
-                    : $is_yesterday ? 'yesterday'
-                    : $is_aweekago  ? 'aweekago'
-                    : ''
-                 %>"
-      >
-        <div class="<%   $is_today ? 'todays'
-                       : ''
-                    %>calendardate"
-        ><% $rtdate->GetMonth($date->month-1). ' '. $date->day %></div>
-
-      </td>
+      <th colspan=<%$slots%>
+          class="labels"
+%#                 <%   $is_today     ? 'today'
+%#                    : $is_yesterday ? 'yesterday'
+%#                    : $is_aweekago  ? 'aweekago'
+%#                    : ''
+%#                 %>"
+%#        <div class="<%   $is_today ? 'todays'
+%#                       : ''
+%#                    %>calendardate"
+      ><% $rtdate->GetWeekday( $week{$weekstart}->[$sday++] ). ' '.
+          $rtdate->GetMonth($date->month-1). ' '.
+          $date->day
+       %>
+      </th>
 
 %     $date = $set->next($date);
 %     if ( $date->day_of_week == $startday_of_week ) {
@@ -141,7 +143,15 @@ $slots       => $default_slots
 
     </tr>
 
+        </thead>
+        <tbody>
+
     <tr>
+
+  <td class="controls" rowspan=<% $rowspan+1 %> valign="middle">
+    <& week_collapse, date=>$start, Month=>$OrigMonth, Year=>$OrigYear, QueryString=>$QueryString, Embed=>$Embed, &>
+  </td>
+
 %     #slot header callback
 %     if ( defined($Display) && $Display =~ /^(\w+)$/ ) {
 %
@@ -192,10 +202,8 @@ $slots       => $default_slots
 %             grep {
 %               my $meth = $_.'Obj';
 %
-%               #XXX off by 1h on daylight savings boundaries.. 2 sundays a year
-%               my $tod = (   $Ticket->$meth->Unix
-%                           - $Ticket->$meth->SetToMidnight(Timezone=>'user')
-%                         ) / 60;
+%               my($m, $h) = ($Ticket->$meth->Localtime('user'))[1,2];
+%               my $tod = $h*60 + $m;
 %
 %               RTx::Calendar::LocalDate($Ticket->$meth->Unix) eq $date->strftime('%F') #today
 %                 && $tod >= $row && $tod < ($row+$timestep); #and in timeslot
diff --git a/rt/share/html/Search/Schedule.html b/rt/share/html/Search/Schedule.html
index 0f8896c..8a18616 100644
--- a/rt/share/html/Search/Schedule.html
+++ b/rt/share/html/Search/Schedule.html
@@ -7,7 +7,8 @@
 
 <& /Search/Calendar.html,
      @_,
-     Embed          => 'Schedule.html',
+     slots       => scalar( @{ $ARGS{username} } ),
+     Embed       => 'Schedule.html',
      Display     => 'Schedule',
      DisplayArgs => [ username => $ARGS{username} ],
 &>

-----------------------------------------------------------------------

Summary of changes:
 rt/share/html/Elements/CalendarSlotSchedule |   17 ++++---
 rt/share/html/Search/Calendar.html          |   74 +++++++++++++++------------
 rt/share/html/Search/Schedule.html          |    3 +-
 3 files changed, 53 insertions(+), 41 deletions(-)




More information about the freeside-commits mailing list