From: Joey Hess Date: Sun, 8 Apr 2012 18:17:29 +0000 (-0400) Subject: Merge branch 'master' of ssh://git.ikiwiki.info X-Git-Tag: 3.20120419~53 X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/8cdbe23435d6a027d25c106c00ba34665fd54ed1?hp=04af2f9f52bcaa2455eaaef95d4d7c0b747b7d06 Merge branch 'master' of ssh://git.ikiwiki.info --- diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 62383b6fd..5baa6c179 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -131,7 +131,7 @@ sub needsignin ($$) { if (! defined $session->param("name") || ! userinfo_get($session->param("name"), "regdate")) { - $session->param(postsignin => $ENV{QUERY_STRING}); + $session->param(postsignin => $q->query_string); cgi_signin($q, $session); cgi_savesession($session); exit; diff --git a/IkiWiki/Plugin/rename.pm b/IkiWiki/Plugin/rename.pm index 8e32d41ae..8387a1e32 100644 --- a/IkiWiki/Plugin/rename.pm +++ b/IkiWiki/Plugin/rename.pm @@ -206,14 +206,22 @@ sub rename_start ($$$$) { exit 0; } -sub postrename ($;$$$) { +sub postrename ($$$;$$) { + my $cgi=shift; my $session=shift; my $src=shift; my $dest=shift; my $attachment=shift; - # Load saved form state and return to edit page. - my $postrename=CGI->new($session->param("postrename")); + # Load saved form state and return to edit page, using stored old + # 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"); IkiWiki::cgi_savesession($session); @@ -222,21 +230,21 @@ sub postrename ($;$$$) { # They renamed the page they were editing. This requires # fixups to the edit form state. # 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 # on it. - $postrename->param("editcontent", + $oldcgi->param("editcontent", renamepage_hook($dest, $src, $dest, - $postrename->param("editcontent"))); + $oldcgi->param("editcontent"))); # Get a new edit token; old was likely invalidated. - $postrename->param("rcsinfo", + $oldcgi->param("rcsinfo", IkiWiki::rcs_prepedit($pagesources{$dest})); } - IkiWiki::cgi_editpage($postrename, $session); + IkiWiki::cgi_editpage($oldcgi, $session); } sub formbuilder (@) { @@ -291,16 +299,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 +332,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 +438,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); diff --git a/debian/changelog b/debian/changelog index cf2dbf8a4..7d92ad151 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Wed, 21 Mar 2012 14:33:14 -0400 diff --git a/doc/roadmap.mdwn b/doc/roadmap.mdwn index 159ded5de..f2ff5802e 100644 --- a/doc/roadmap.mdwn +++ b/doc/roadmap.mdwn @@ -77,13 +77,10 @@ Probably incomplete list: * Remove compatability code in `loadindex` to handle old index data layouts. * Make pagespecs match relative by default? (see [[discussion]]) * Flip wikilinks? (see [[todo/link_plugin_perhaps_too_general?]] and [[todo/do_not_make_links_backwards]]) -* YADA format setup files per default? * Enable tagbase by default (so that tag autocreation will work by default). Note that this is already done for wikis created by `auto-blog.setup`. * [[tips/html5]] on by default (some day..) * Remove support for old `.ikiwiki/comments_pending` from comment plugin. -* Use yaml formatted setup files by default. (Not too compatability breaking - really.) In general, we try to use [[ikiwiki-transition]] or forced rebuilds on upgrade to deal with changes that break compatability. Some things that @@ -91,8 +88,5 @@ can't help with. # future goals -* Conversion support for existing other wikis. - (Being worked on for MoinMoin and TWiki by [[Josh_Triplett|JoshTriplett]] - and Jamey Sharp; support for other wikis should fit into the same - framework.) +* Conversion support for existing other wikis. See [[convert]]. * [[TODO]], [[bugs]], ... diff --git a/doc/todo/do_not_make_links_backwards.mdwn b/doc/todo/do_not_make_links_backwards.mdwn index 55db32b4f..4059d8e2a 100644 --- a/doc/todo/do_not_make_links_backwards.mdwn +++ b/doc/todo/do_not_make_links_backwards.mdwn @@ -54,11 +54,18 @@ There's a caveat: we can't have a per-wiki backwards_links option, because of th >>> That style of link would work whether the link style was "backwards" or "forwards". Unfortunately it could make some links less readable; after all, there is a reason why one wants to be able to change the link text! But I don't know what proportion of the links are like that. It's a thought, anyway. >>> --[[KathrynAndersen]] +>>>> I dislike placing such requirements on the underlay, which is after +>>>> all, just a subset of pages in this wiki, which many of the people +>>>> editing may not even realize are part of the underlay. --[[Joey]] + >>> Another option for internal links is to just use the regular markdown links instead of `\[[text|link]]` markup, that way it works regardless. Then the documentation for the link plugin just has to state both syntaxes in a safe manner. >>> I also agree that we should just switch in one shot, although I am worried this means this could be postponed indefinitely.--[[anarcat]] >>>> I have done just that in my branch: now the underlay only uses wikilinks in the wikilink page, elsewhere regular markdown links are used. I haven't converted the whole of the doc/ directory however, that would be left to the migration. I have written a ikiwik-transition tool to migrate from wikilink to markdown while i was there. --[[anarcat]] +>>>>> No, that is *not* an option. Relative markdown links **break** when +>>>>> page A, containing a link, is inlined into page B. --[[Joey]] + ---- FWIW, I think this change may well be painful, but is a good idea. I can never remember which way around it should be.