X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/8e2fb374e03ee2122fcfb678fd851673ca86eefa..4a10f694c4e0895df9145b46c18a8b9633e68926:/IkiWiki/CGI.pm?ds=sidebyside diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 144ad2198..07319ad22 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -138,7 +138,6 @@ sub cgi_signin ($$) { #{{{ my $form = CGI::FormBuilder->new( title => "signin", name => "signin", - header => 1, charset => "utf-8", method => 'POST', required => 'NONE', @@ -306,7 +305,6 @@ sub cgi_editpage ($$) { #{{{ error($@) if $@; my $form = CGI::FormBuilder->new( fields => \@fields, - header => 1, charset => "utf-8", method => 'POST', validate => { @@ -499,8 +497,11 @@ sub cgi_editpage ($$) { #{{{ else { # save page check_canedit($page, $q, $session); - if (! -e "$config{srcdir}/$file" && - $form->field("do") ne "create") { + + my $exists=-e "$config{srcdir}/$file"; + + if ($form->field("do") ne "create" && + ! $exists && ! -e "$config{underlaydir}/$file") { $form->tmpl_param("page_gone", 1); $form->field(name => "do", value => "create", force => 1); $form->tmpl_param("page_select", 0); @@ -511,8 +512,7 @@ sub cgi_editpage ($$) { #{{{ print misctemplate($form->title, $form->render(submit => \@buttons)); return; } - elsif (-e "$config{srcdir}/$file" && - $form->field("do") eq "create") { + elsif ($form->field("do") eq "create" && $exists) { $form->tmpl_param("creation_conflict", 1); $form->field(name => "do", value => "edit", force => 1); $form->tmpl_param("page_select", 0); @@ -559,7 +559,7 @@ sub cgi_editpage ($$) { #{{{ $message=$form->field('comments'); } - if ($form->field("do") eq "create") { + if (! $exists) { rcs_add($file); } @@ -704,21 +704,6 @@ sub cgi (;$$) { #{{{ elsif ($do eq 'create' || $do eq 'edit') { cgi_editpage($q, $session); } - elsif ($do eq 'blog') { - my $page=decode_utf8($q->param('title')); - $page=~s/\///g; # no slashes in blog posts - # if the page already exists, munge it to be unique - my $from=$q->param('from'); - my $add=""; - while (exists $pagecase{lc($from."/".titlepage($page).$add)}) { - $add=1 unless length $add; - $add++; - } - $q->param('page', $page.$add); - # now run same as create - $q->param('do', 'create'); - cgi_editpage($q, $session); - } elsif ($do eq 'postsignin') { error(gettext("login failed, perhaps you need to turn on cookies?")); }