actually tested rename not started from the edit page
parent
089e72caa7
commit
bcc2809b96
|
@ -213,34 +213,38 @@ sub postrename ($$$;$$) {
|
||||||
my $dest=shift;
|
my $dest=shift;
|
||||||
my $attachment=shift;
|
my $attachment=shift;
|
||||||
|
|
||||||
# Load saved form state and return to edit page.
|
# Load saved form state and return to edit page, using stored old
|
||||||
my $postrename=CGI->new($session->param("postrename"));
|
# cgi state. Or, if the rename was not started on the edit page,
|
||||||
|
# return to the renamed page.
|
||||||
|
my $postrename=$session->param("postrename");
|
||||||
|
if (! defined $postrename) {
|
||||||
|
IkiWiki::redirect($cgi, urlto(defined $dest ? $dest : $src));
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
my $oldcgi=CGI->new($postrename);
|
||||||
$session->clear("postrename");
|
$session->clear("postrename");
|
||||||
IkiWiki::cgi_savesession($session);
|
IkiWiki::cgi_savesession($session);
|
||||||
if (! defined $postrename) {
|
|
||||||
redirect($cgi, urlto(defined $dest ? $dest : $src));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined $dest) {
|
if (defined $dest) {
|
||||||
if (! $attachment) {
|
if (! $attachment) {
|
||||||
# They renamed the page they were editing. This requires
|
# They renamed the page they were editing. This requires
|
||||||
# fixups to the edit form state.
|
# fixups to the edit form state.
|
||||||
# Tweak the edit form to be editing the new page.
|
# Tweak the edit form to be editing the new page.
|
||||||
$postrename->param("page", $dest);
|
$oldcgi->param("page", $dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
# Update edit form content to fix any links present
|
# Update edit form content to fix any links present
|
||||||
# on it.
|
# on it.
|
||||||
$postrename->param("editcontent",
|
$oldcgi->param("editcontent",
|
||||||
renamepage_hook($dest, $src, $dest,
|
renamepage_hook($dest, $src, $dest,
|
||||||
$postrename->param("editcontent")));
|
$oldcgi->param("editcontent")));
|
||||||
|
|
||||||
# Get a new edit token; old was likely invalidated.
|
# Get a new edit token; old was likely invalidated.
|
||||||
$postrename->param("rcsinfo",
|
$oldcgi->param("rcsinfo",
|
||||||
IkiWiki::rcs_prepedit($pagesources{$dest}));
|
IkiWiki::rcs_prepedit($pagesources{$dest}));
|
||||||
}
|
}
|
||||||
|
|
||||||
IkiWiki::cgi_editpage($postrename, $session);
|
IkiWiki::cgi_editpage($oldcgi, $session);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub formbuilder (@) {
|
sub formbuilder (@) {
|
||||||
|
|
Loading…
Reference in New Issue