rename: Allow rename to be started not from the edit page; return to the renamed page in this case.
parent
c594109f57
commit
e4cdce4bce
|
@ -206,7 +206,8 @@ sub rename_start ($$$$) {
|
|||
exit 0;
|
||||
}
|
||||
|
||||
sub postrename ($;$$$) {
|
||||
sub postrename ($$;$$$) {
|
||||
my $cgi=shift;
|
||||
my $session=shift;
|
||||
my $src=shift;
|
||||
my $dest=shift;
|
||||
|
@ -216,6 +217,9 @@ sub postrename ($;$$$) {
|
|||
my $postrename=CGI->new($session->param("postrename"));
|
||||
$session->clear("postrename");
|
||||
IkiWiki::cgi_savesession($session);
|
||||
if (! defined $postrename) {
|
||||
redirect($cgi, urlto(defined $dest ? $dest : $src));
|
||||
}
|
||||
|
||||
if (defined $dest) {
|
||||
if (! $attachment) {
|
||||
|
@ -291,16 +295,16 @@ sub sessioncgi ($$) {
|
|||
my $session=shift;
|
||||
my ($form, $buttons)=rename_form($q, $session, Encode::decode_utf8($q->param("page")));
|
||||
IkiWiki::decode_form_utf8($form);
|
||||
my $src=$form->field("page");
|
||||
|
||||
if ($form->submitted eq 'Cancel') {
|
||||
postrename($session);
|
||||
postrename($q, $session, $src);
|
||||
}
|
||||
elsif ($form->submitted eq 'Rename' && $form->validate) {
|
||||
IkiWiki::checksessionexpiry($q, $session, $q->param('sid'));
|
||||
|
||||
# These untaints are safe because of the checks
|
||||
# performed in check_canrename later.
|
||||
my $src=$form->field("page");
|
||||
my $srcfile=IkiWiki::possibly_foolish_untaint($pagesources{$src})
|
||||
if exists $pagesources{$src};
|
||||
my $dest=IkiWiki::possibly_foolish_untaint(titlepage($form->field("new_name")));
|
||||
|
@ -324,7 +328,7 @@ sub sessioncgi ($$) {
|
|||
IkiWiki::Plugin::attachment::is_held_attachment($src);
|
||||
if ($held) {
|
||||
rename($held, IkiWiki::Plugin::attachment::attachment_holding_location($dest));
|
||||
postrename($session, $src, $dest, $q->param("attachment"))
|
||||
postrename($q, $session, $src, $dest, $q->param("attachment"))
|
||||
unless defined $srcfile;
|
||||
}
|
||||
|
||||
|
@ -430,7 +434,7 @@ sub sessioncgi ($$) {
|
|||
$renamesummary.=$template->output;
|
||||
}
|
||||
|
||||
postrename($session, $src, $dest, $q->param("attachment"));
|
||||
postrename($q, $session, $src, $dest, $q->param("attachment"));
|
||||
}
|
||||
else {
|
||||
IkiWiki::showform($form, $buttons, $session, $q);
|
||||
|
|
|
@ -14,6 +14,8 @@ ikiwiki (3.20120204) UNRELEASED; urgency=low
|
|||
* passwordauth: Fix url in password recovery email to be absolute.
|
||||
* httpauth: When it's the only auth method, avoid a pointless and
|
||||
confusing signin form, and go right to the httpauthurl.
|
||||
* rename: Allow rename to be started not from the edit page; return to
|
||||
the renamed page in this case.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Wed, 21 Mar 2012 14:33:14 -0400
|
||||
|
||||
|
|
Loading…
Reference in New Issue