Ignore:
Timestamp:
Sep 16, 2004, 7:12:48 PM (17 years ago)
Author:
kake
Message:

Changes since

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/OpenGuides.pm

    r472 r473  
    77use CGI::Wiki::Plugin::GeoCache;
    88use CGI::Wiki::Plugin::Locator::UK;
     9use OpenGuides::CGI;
    910use OpenGuides::Template;
    1011use OpenGuides::Utils;
     12use Time::Piece;
    1113use URI::Escape;
    1214
     
    188190        my $minor_edits = $self->get_cookie( "show_minor_edits_in_rc" );
    189191        my %recent_changes;
    190         for my $days ( [0, 1], [1, 7], [7, 14], [14, 30] ) {
    191             my %criteria = ( between_days => $days );
     192        my $q = CGI->new;
     193        my $since = $q->param("since");
     194        if ( $since ) {
     195            $tt_vars{since} = $since;
     196            my $t = localtime($since); # overloaded by Time::Piece
     197            $tt_vars{since_string} = $t->strftime;
     198            my %criteria = ( since => $since );
    192199            $criteria{metadata_was} = { edit_type => "Normal edit" }
    193200              unless $minor_edits;
     
    209216                       } @rc;
    210217            if ( scalar @rc ) {
    211                 $recent_changes{$days->[1]} = \@rc;
    212             }
    213         }
     218                $recent_changes{since} = \@rc;
     219            }
     220        } else {
     221            for my $days ( [0, 1], [1, 7], [7, 14], [14, 30] ) {
     222                my %criteria = ( between_days => $days );
     223                $criteria{metadata_was} = { edit_type => "Normal edit" }
     224                  unless $minor_edits;
     225                my @rc = $self->{wiki}->list_recent_changes( %criteria );
     226
     227                @rc = map {
     228                {
     229                  name        => CGI->escapeHTML($_->{name}),
     230                  last_modified => CGI->escapeHTML($_->{last_modified}),
     231                  version     => CGI->escapeHTML($_->{version}),
     232                  comment     => CGI->escapeHTML($_->{metadata}{comment}[0]),
     233                  username    => CGI->escapeHTML($_->{metadata}{username}[0]),
     234                  host        => CGI->escapeHTML($_->{metadata}{host}[0]),
     235                  username_param => CGI->escape($_->{metadata}{username}[0]),
     236                  edit_type   => CGI->escapeHTML($_->{metadata}{edit_type}[0]),
     237                  url         => "$config->{_}->{script_name}?"
     238          . CGI->escape($wiki->formatter->node_name_to_node_param($_->{name})),
     239                }
     240                           } @rc;
     241                if ( scalar @rc ) {
     242                    $recent_changes{$days->[1]} = \@rc;
     243                }
     244            }
     245        }
    214246        $tt_vars{recent_changes} = \%recent_changes;
     247        my %processing_args = (
     248                                id            => $id,
     249                                template      => "recent_changes.tt",
     250                                tt_vars       => \%tt_vars,
     251                               );
     252        if ( !$since && $self->get_cookie("track_recent_changes_views") ) {
     253            my $cookie =
     254               OpenGuides::CGI->make_recent_changes_cookie(config => $config );
     255            $processing_args{cookies} = $cookie;
     256            $tt_vars{last_viewed} = OpenGuides::CGI->get_last_recent_changes_visit_from_cookie( config => $config );
     257        }
    215258        return %tt_vars if $args{return_tt_vars};
    216         my $output = $self->process_template(
    217                                           id            => $id,
    218                                           template      => "recent_changes.tt",
    219                                           tt_vars       => \%tt_vars,
    220                                             );
     259        my $output = $self->process_template( %processing_args );
    221260        return $output if $return_output;
    222261        print $output;
     
    651690                        template => $args{template},
    652691                        vars     => $args{tt_vars},
     692                        cookies  => $args{cookies},
    653693    );
    654694    if ( $args{content_type} ) {
Note: See TracChangeset for help on using the changeset viewer.