fix handing of case of file first created by preview but then saved
To handle this, avoid populating %renderedfiles in preview, and in expiry, check if the file is in %renderedfiles, if it is do not delete it since it was saved.master
parent
d4ac1c750e
commit
c4be16703f
|
@ -29,9 +29,18 @@ sub refresh () {
|
||||||
foreach my $file (@{$wikistate{editpage}{previews}}) {
|
foreach my $file (@{$wikistate{editpage}{previews}}) {
|
||||||
my $mtime=(stat("$config{destdir}/$file"))[9];
|
my $mtime=(stat("$config{destdir}/$file"))[9];
|
||||||
if (defined $mtime && $mtime <= $expire) {
|
if (defined $mtime && $mtime <= $expire) {
|
||||||
|
# Avoid deleting a preview that was later saved.
|
||||||
|
my $delete=1;
|
||||||
|
foreach my $page (keys %renderedfiles) {
|
||||||
|
if (grep { $_ eq $file } @{$renderedfiles{$page}}) {
|
||||||
|
$delete=0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($delete) {
|
||||||
debug(sprintf(gettext("removing old preview %s"), $file));
|
debug(sprintf(gettext("removing old preview %s"), $file));
|
||||||
IkiWiki::prune("$config{destdir}/$file");
|
IkiWiki::prune("$config{destdir}/$file");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
elsif (defined $mtime) {
|
elsif (defined $mtime) {
|
||||||
push @previews, $file;
|
push @previews, $file;
|
||||||
}
|
}
|
||||||
|
@ -225,6 +234,7 @@ sub cgi_editpage ($$) { #{{{
|
||||||
$previews{$file}=1 unless $wasrendered{$file};
|
$previews{$file}=1 unless $wasrendered{$file};
|
||||||
}
|
}
|
||||||
@{$wikistate{editpage}{previews}} = keys %previews;
|
@{$wikistate{editpage}{previews}} = keys %previews;
|
||||||
|
$renderedfiles{$page}=[keys %wasrendered];
|
||||||
saveindex();
|
saveindex();
|
||||||
}
|
}
|
||||||
elsif ($form->submitted eq "Save Page") {
|
elsif ($form->submitted eq "Save Page") {
|
||||||
|
|
Loading…
Reference in New Issue