X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/89000b48f3cb809b13aa64db79abb90d446458b9..890863679fea395172c247877579d391563c3b5e:/IkiWiki/CGI.pm diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 3f588e427..87cb9c3f3 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -354,9 +354,11 @@ sub cgi_editpage ($$) { #{{{ }); $form->tmpl_param("page_preview", htmlize($page, $type, - linkify($page, "", - preprocess($page, $page, - filter($page, $page, $content), 0, 1)))); + linkify($page, "/", + preprocess($page, "/", + filter($page, "/", $content), 0, 1)))); + # previewing may have created files on disk + saveindex(); } elsif ($form->submitted eq "Save Page") { $form->tmpl_param("page_preview", ""); @@ -392,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 $_} @@ -402,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 { @@ -448,7 +459,6 @@ sub cgi_editpage ($$) { #{{{ } showform($form, \@buttons, $session, $q); - saveindex(); } else { # save page @@ -526,7 +536,7 @@ sub cgi_editpage ($$) { #{{{ # Prevent deadlock with post-commit hook by # signaling to it that it should not try to - # do anything (except send commit mails). + # do anything. disable_commit_hook(); $conflict=rcs_commit($file, $message, $form->field("rcsinfo"),