From 49ab5818ef56a8758548396033388187b123f8ed Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Sun, 13 Apr 2014 17:15:28 -0700 Subject: [PATCH] installers (calendaring), RT#16584 --- 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(-) diff --git a/rt/share/html/Elements/CalendarSlotSchedule b/rt/share/html/Elements/CalendarSlotSchedule index 8a0c617d9..5b4004062 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 % 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 %> % } <%ONCE> diff --git a/rt/share/html/Search/Calendar.html b/rt/share/html/Search/Calendar.html index 55b2b5a8a..092f6a5a1 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 - + <%def td_time> diff --git a/rt/share/html/Search/Schedule.html b/rt/share/html/Search/Schedule.html index 14956b2db..4bc5134cb 100644 --- a/rt/share/html/Search/Schedule.html +++ b/rt/share/html/Search/Schedule.html @@ -5,6 +5,51 @@ %} + + + + <& /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 + + <%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; + -- 2.11.0