* Preview limits the page dropdown to what's selected previously

(as preserving the full list across preview would be tricky). Userdirs
  were still being offered as an option there, remove them.
* Fix a bug where user A created a page concurrently with user B, and
  when B previewed it would redirect B to A's new page, losing B's work.
  Instead, don't redirect and let conflict handling resolve it.
master
Joey Hess 2008-02-14 15:42:14 -05:00
parent 8be2b60aac
commit 553136ec1f
3 changed files with 24 additions and 4 deletions

View File

@ -394,9 +394,10 @@ sub cgi_editpage ($$) { #{{{
$dir=~s![^/]+/+$!!;
push @page_locs, $dir.$page;
}
push @page_locs, "$config{userdir}/$page"
if length $config{userdir};
}
push @page_locs, "$config{userdir}/$page"
if length $config{userdir};
@page_locs = grep {
! exists $pagecase{lc $_}
@ -404,8 +405,16 @@ sub cgi_editpage ($$) { #{{{
if (! @page_locs) {
# hmm, someone else made the page in the
# meantime?
redirect($q, "$config{url}/".htmlpage($page));
return;
if ($form->submitted eq "Preview") {
# let them go ahead with the edit
# and resolve the conflict at save
# time
@page_locs=$page;
}
else {
redirect($q, "$config{url}/".htmlpage($page));
return;
}
}
my @editable_locs = grep {

6
debian/changelog vendored
View File

@ -27,6 +27,12 @@ ikiwiki (2.40) UNRELEASED; urgency=low
containing ikiwiki.cgi, but this should not change the urls to the style
sheets etc. Add a new forcebareurl parameter to misctemplate to allow
it to do that.
* Preview limits the page dropdown to what's selected previously
(as preserving the full list across preview would be tricky). Userdirs
were still being offered as an option there, remove them.
* Fix a bug where user A created a page concurrently with user B, and
when B previewed it would redirect B to A's new page, losing B's work.
Instead, don't redirect and let conflict handling resolve it.
-- Josh Triplett <josh@freedesktop.org> Sun, 10 Feb 2008 13:18:58 -0800

View File

@ -3,3 +3,8 @@ If there is more than one option in the Page Location drop down box when create
The problem exists on Ikiwiki's wiki, but manifests itself differently, in that subpages are still displayed, so maybe that's the actual bug :)
Anyway, to reproduce, edit any page, view the page location options, preview, and some will disappear.
> Yeah, this is a dark corner. :-) It'd be nice if preview did preserve the
> lise, but it's complex to do so. So for now the bug is that it added
> userdirs to the list, which I've fixed, so calling this [[done]]
> --[[Joey]]