X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/db9f2b1b2b97fd92b09f170c3b567ec59030bf0a..d3c15aed18ef9e67c3e785ac3cc0426c56e59ac7:/IkiWiki/Plugin/recentchanges.pm

diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm
index d6292c3f2..2b2f43b7a 100644
--- a/IkiWiki/Plugin/recentchanges.pm
+++ b/IkiWiki/Plugin/recentchanges.pm
@@ -16,6 +16,8 @@ sub import {
 	hook(type => "sessioncgi", id => "recentchanges", call => \&sessioncgi);
 	# Load goto to fix up links from recentchanges
 	IkiWiki::loadplugin("goto");
+	# ... and transient as somewhere to put our internal pages
+	IkiWiki::loadplugin("transient");
 }
 
 sub getsetup () {
@@ -56,7 +58,7 @@ sub refresh ($) {
 	# delete old and excess changes
 	foreach my $page (keys %pagesources) {
 		if ($pagesources{$page} =~ /\._change$/ && ! $seen{$page}) {
-			unlink($config{srcdir}.'/'.$pagesources{$page});
+			unlink($IkiWiki::Plugin::transient::transientdir.'/'.$pagesources{$page}) || unlink($config{srcdir}.'/'.$pagesources{$page});
 		}
 	}
 }
@@ -100,7 +102,7 @@ sub sessioncgi ($$) {
 	IkiWiki::decode_form_utf8($form);
 
 	if ($form->submitted eq 'Revert' && $form->validate) {
-		IkiWiki::checksessionexpiry($q, $session, $q->param('sid'));
+		IkiWiki::checksessionexpiry($q, $session);
 		my $message=sprintf(gettext("This reverts commit %s"), $rev);
 		if (defined $form->field('revertmessage') &&
 		    length $form->field('revertmessage')) {
@@ -163,6 +165,7 @@ sub store ($$$) {
 	# Limit pages to first 10, and add links to the changed pages.
 	my $is_excess = exists $change->{pages}[10];
 	delete @{$change->{pages}}[10 .. @{$change->{pages}}] if $is_excess;
+	my $has_diffurl=0;
 	$change->{pages} = [
 		map {
 			if (length $config{cgiurl}) {
@@ -178,6 +181,9 @@ sub store ($$$) {
 			else {
 				$_->{link} = pagetitle($_->{page});
 			}
+			if (defined $_->{diffurl} && length($_->{diffurl})) {
+				$has_diffurl=1;
+			}
 
 			$_;
 		} @{$change->{pages}}
@@ -225,6 +231,8 @@ sub store ($$$) {
 		wikiname => $config{wikiname},
 	);
 	
+	$template->param(has_diffurl => 1) if $has_diffurl;
+
 	$template->param(permalink => urlto($config{recentchangespage})."#change-".titlepage($change->{rev}))
 		if exists $config{url};
 	
@@ -234,8 +242,8 @@ sub store ($$$) {
 	});
 
 	my $file=$page."._change";
-	writefile($file, $config{srcdir}, $template->output);
-	utime $change->{when}, $change->{when}, "$config{srcdir}/$file";
+	writefile($file, $IkiWiki::Plugin::transient::transientdir, $template->output);
+	utime $change->{when}, $change->{when}, $IkiWiki::Plugin::transient::transientdir.'/'.$file;
 
 	return $page;
 }