[freeside-commits] branch master updated. 49ab5818ef56a8758548396033388187b123f8ed

Ivan ivan at 420.am
Sun Apr 13 17:15:29 PDT 2014


The branch, master has been updated
       via  49ab5818ef56a8758548396033388187b123f8ed (commit)
      from  9ecdd3410e3b41791e4d444a9c29157b5dbbe2bb (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 49ab5818ef56a8758548396033388187b123f8ed
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Sun Apr 13 17:15:28 2014 -0700

    installers (calendaring), RT#16584

diff --git a/rt/share/html/Elements/CalendarSlotSchedule b/rt/share/html/Elements/CalendarSlotSchedule
index 8a0c617..5b40040 100644
--- a/rt/share/html/Elements/CalendarSlotSchedule
+++ b/rt/share/html/Elements/CalendarSlotSchedule
@@ -1,11 +1,12 @@
 <%ARGS>
-  $Date     => undef
-  @Tickets  => ()
-  $slots    => $default_slots
-  $sday     => undef
-  $tod_row  => undef
-  $timestep => $default_timestep
-  @username => ()
+  $Date      => undef
+  @Tickets   => ()
+  $slots     => $default_slots
+  $sday      => undef
+  $tod_row   => undef
+  $timestep  => $default_timestep
+  @username  => ()
+  $LengthMin => $default_timestep
 </%ARGS>
 % foreach my $username ( @username ) {
 %
@@ -16,12 +17,17 @@
 %
 %   my $bgcolor = '666666;border-color:#555555';
 %   my $content = '';
+%   my $onmouse = 0;
 %
 %   #white out available times
 %   foreach my $avail ( @{ $schedule{'avail'} } ) {
 %     my( $start, $end ) = @$avail;
 %     next if $start >= ($tod_row+$timestep) || $end <= $tod_row;
 %     $bgcolor = 'FFFFFF';
+%     $onmouse = 1
+%       if $LengthMin <= $end - $tod_row  #the slot is long enough
+%       && ! grep { $_ > $tod_row && $LengthMin > $_ - $tod_row }
+%              map $_->[0], values %{ $schedule{'scheduled'} };
 %   }
 %
 %   #block out / show / color code existing appointments
@@ -31,11 +37,11 @@
 %
 %     next if $starts >= ($tod_row+$timestep) || $due < $tod_row;
 %
-%     if ( $starts >= $tod_row ) {
-%       $bgcolor = $col;
+%     $bgcolor = $col;
+%     $onmouse = 0;
+%
+%     if ( $starts >= $tod_row ) { #first row
 %       $content .= ($content?', ':''). $id; #XXX more
-%     } else {
-%       $bgcolor = $col;
 %     }
 %   }
 
@@ -45,6 +51,10 @@
 %#                  : $is_aweekago  ? 'aweekago'
 %#                  : ''
 %#               %>"
+%     if ( $onmouse ) {
+        onmouseover="boxon(this);"
+        onmouseout ="boxoff(this);"
+%     }
     ><% $content %></td>
 % }
 <%ONCE>
diff --git a/rt/share/html/Search/Calendar.html b/rt/share/html/Search/Calendar.html
index 55b2b5a..092f6a5 100644
--- a/rt/share/html/Search/Calendar.html
+++ b/rt/share/html/Search/Calendar.html
@@ -516,7 +516,7 @@ my %Tickets = FindTickets($session{'CurrentUser'}, $TempQuery, \@Dates, $start->
   $QueryString => undef
   $Embed => undef
 </%args>
-    <a href="<%$RT::WebPath%>/Search/<%$Embed||'Calendar.html'%>?Month=<% $Month %>&Year=<% $Year %>&<%$QueryString%>"><img src="<%$RT::WebPath%>/NoAuth/images/week-collapse.gif" STYLE="height:384px;width:11px"></a>
+    <a href="<%$RT::WebPath%>/Search/<%$Embed||'Calendar.html'%>?Month=<% $Month %>&Year=<% $Year %>&<%$QueryString%>"><img src="<%$RT::WebPath%>/NoAuth/images/week-collapse.gif" STYLE="height:384px;width:11px;border:none"></a>
 </%def>
 
 <%def td_time>
diff --git a/rt/share/html/Search/Schedule.html b/rt/share/html/Search/Schedule.html
index 14956b2..4bc5134 100644
--- a/rt/share/html/Search/Schedule.html
+++ b/rt/share/html/Search/Schedule.html
@@ -5,6 +5,51 @@
 <SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/<%$file%>.js"></SCRIPT>
 %}
 
+<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/jquery.js"></SCRIPT>
+
+<SCRIPT TYPE="text/javascript">
+
+  function boxon(what) {
+    var $this = $(what);
+    for ( var c=0; c < <%$cells%>; c++) {
+
+      $this.css('background-color', '#ffffdd');
+      if ( c == 0 ) {
+        $this.css('border-top', '1px double black');
+        $this.css('border-left', '1px double black');
+        $this.css('border-right', '1px solid black');
+      } else if ( c == <%$cells-1%> ) {
+        $this.css('border-left', '1px double black');
+        $this.css('border-right', '1px solid black');
+        $this.css('border-bottom', '1px solid black');
+      } else {
+        $this.css('border-left', '1px double black');
+        $this.css('border-right', '1px solid black');
+      }
+
+      var rownum = $this.parent().prevAll('tr').length;
+      var colnum = $this.prevAll('td').length;
+      $this = $this.parent().parent().children('tr').eq(rownum+1).children('td').eq(colnum);
+    }
+  }
+
+  function boxoff(what) {
+    var $this = $(what);
+    for ( var c=0; c < <%$cells%>; c++) {
+
+      //$this.css('background-color', '');
+      //$this.css('border', ''); //IE8 woes, removes cell borders
+      $this.removeAttr('style'); //slightly "flashy" on cell changes under IE8
+                                 //but at least it doesn't remove cell borders
+
+      var rownum = $this.parent().prevAll('tr').length;
+      var colnum = $this.prevAll('td').length;
+      $this = $this.parent().parent().children('tr').eq(rownum+1).children('td').eq(colnum);
+    }
+  }
+
+</SCRIPT>
+
 <& /Search/Calendar.html,
      @_,
      Query       => "( Status = 'new' OR Status = 'open' OR Status = 'stalled')
@@ -14,13 +59,27 @@
      Embed       => 'Schedule.html',
      DimPast     => 1,
      Display     => 'Schedule',
-     DisplayArgs => [ username => $ARGS{username} ],
+     DisplayArgs => [ username  => $ARGS{username},
+                      LengthMin => $LengthMin,
+                    ],
 &>
 
+<%ONCE>
+
+my $timestep =  RT->Config->Get('CalendarWeeklySizeMin') || 30; #1/2h
+
+</%ONCE>
 <%init>
+
 my @files = ();
 #if ( ! $initialized ) {
   push @files, map "overlibmws$_", ( '', qw( _iframe _draggable _crossframe ) );
   push @files, map { "${_}contentmws" } qw( iframe ajax );
 #%}
+
+my $LengthMin = 180; #XXX $ARGS{LengthMin};, passed in
+
+my $cells = int($LengthMin / $timestep);
+$cells++ if $LengthMin % $timestep;
+
 </%init>

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

Summary of changes:
 rt/share/html/Elements/CalendarSlotSchedule |   32 +++++++++-----
 rt/share/html/Search/Calendar.html          |    2 +-
 rt/share/html/Search/Schedule.html          |   61 ++++++++++++++++++++++++++-
 3 files changed, 82 insertions(+), 13 deletions(-)




More information about the freeside-commits mailing list