* Fix some broken logic in cgi creation of a subpage when a toplevel page
with the same name already exists, and generally simplify the edit code.master
parent
6003422f45
commit
188f1931c2
|
@ -290,8 +290,7 @@ sub cgi_editpage ($$) { #{{{
|
||||||
my $q=shift;
|
my $q=shift;
|
||||||
my $session=shift;
|
my $session=shift;
|
||||||
|
|
||||||
my @fields=qw(do rcsinfo subpage from page type editcontent comments
|
my @fields=qw(do rcsinfo subpage from page type editcontent comments);
|
||||||
newfile);
|
|
||||||
my @buttons=("Save Page", "Preview", "Cancel");
|
my @buttons=("Save Page", "Preview", "Cancel");
|
||||||
|
|
||||||
eval q{use CGI::FormBuilder};
|
eval q{use CGI::FormBuilder};
|
||||||
|
@ -333,12 +332,16 @@ sub cgi_editpage ($$) { #{{{
|
||||||
|
|
||||||
my $file;
|
my $file;
|
||||||
my $type;
|
my $type;
|
||||||
if (exists $pagesources{$page}) {
|
if (exists $pagesources{$page} && $form->field("do") ne "create") {
|
||||||
$file=$pagesources{$page};
|
$file=$pagesources{$page};
|
||||||
$type=pagetype($file);
|
$type=pagetype($file);
|
||||||
if (! defined $type) {
|
if (! defined $type) {
|
||||||
error(sprintf(gettext("%s is not an editable page"), $page));
|
error(sprintf(gettext("%s is not an editable page"), $page));
|
||||||
}
|
}
|
||||||
|
if (! $form->submitted) {
|
||||||
|
$form->field(name => "rcsinfo",
|
||||||
|
value => rcs_prepedit($file), force => 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$type=$form->param('type');
|
$type=$form->param('type');
|
||||||
|
@ -351,6 +354,9 @@ sub cgi_editpage ($$) { #{{{
|
||||||
}
|
}
|
||||||
$type=$config{default_pageext} unless defined $type;
|
$type=$config{default_pageext} unless defined $type;
|
||||||
$file=$page.".".$type;
|
$file=$page.".".$type;
|
||||||
|
if (! $form->submitted) {
|
||||||
|
$form->field(name => "rcsinfo", value => "", force => 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$form->field(name => "do", type => 'hidden');
|
$form->field(name => "do", type => 'hidden');
|
||||||
|
@ -362,25 +368,17 @@ sub cgi_editpage ($$) { #{{{
|
||||||
$form->field(name => "comments", type => "text", size => 80);
|
$form->field(name => "comments", type => "text", size => 80);
|
||||||
$form->field(name => "editcontent", type => "textarea", rows => 20,
|
$form->field(name => "editcontent", type => "textarea", rows => 20,
|
||||||
cols => 80);
|
cols => 80);
|
||||||
$form->field(name => "newfile", type => 'hidden');
|
|
||||||
$form->tmpl_param("can_commit", $config{rcs});
|
$form->tmpl_param("can_commit", $config{rcs});
|
||||||
$form->tmpl_param("indexlink", indexlink());
|
$form->tmpl_param("indexlink", indexlink());
|
||||||
$form->tmpl_param("helponformattinglink",
|
$form->tmpl_param("helponformattinglink",
|
||||||
htmllink("", "", "HelpOnFormatting", noimageinline => 1));
|
htmllink("", "", "HelpOnFormatting", noimageinline => 1));
|
||||||
$form->tmpl_param("baseurl", baseurl());
|
$form->tmpl_param("baseurl", baseurl());
|
||||||
if (! $form->submitted) {
|
|
||||||
$form->field(name => "rcsinfo", value => rcs_prepedit($file),
|
|
||||||
force => 1);
|
|
||||||
$form->field(name => "newfile",
|
|
||||||
value => ! -e "$config{srcdir}/$file",
|
|
||||||
force => 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($form->submitted eq "Cancel") {
|
if ($form->submitted eq "Cancel") {
|
||||||
if ($form->field(name => "newfile") && defined $from) {
|
if ($form->field("do") eq "create" && defined $from) {
|
||||||
redirect($q, "$config{url}/".htmlpage($from));
|
redirect($q, "$config{url}/".htmlpage($from));
|
||||||
}
|
}
|
||||||
elsif ($form->field(name => "newfile")) {
|
elsif ($form->field("do") eq "create") {
|
||||||
redirect($q, $config{url});
|
redirect($q, $config{url});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -488,13 +486,14 @@ sub cgi_editpage ($$) { #{{{
|
||||||
else {
|
else {
|
||||||
# save page
|
# save page
|
||||||
check_canedit($page, $q, $session);
|
check_canedit($page, $q, $session);
|
||||||
if (! -e "$config{srcdir}/$file" && ! $form->field(name => 'newfile')){
|
if (! -e "$config{srcdir}/$file" &&
|
||||||
|
$form->field("do") ne "create") {
|
||||||
$form->tmpl_param("page_gone", 1);
|
$form->tmpl_param("page_gone", 1);
|
||||||
$form->field(name => "newfile",
|
$form->field(name => "do", value => "create", force => 1);
|
||||||
value => 1, force => 1);
|
|
||||||
$form->tmpl_param("page_select", 0);
|
$form->tmpl_param("page_select", 0);
|
||||||
$form->field(name => "page", type => 'hidden');
|
$form->field(name => "page", type => 'hidden');
|
||||||
$form->field(name => "type", type => 'hidden');
|
$form->field(name => "type", type => 'hidden');
|
||||||
|
$form->title(sprintf(gettext("editing %s"), $page));
|
||||||
print $form->render(submit => \@buttons);
|
print $form->render(submit => \@buttons);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -529,7 +528,7 @@ sub cgi_editpage ($$) { #{{{
|
||||||
$message=$form->field('comments');
|
$message=$form->field('comments');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($form->field(name => "newfile")) {
|
if ($form->field("do") eq "create") {
|
||||||
rcs_add($file);
|
rcs_add($file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,10 @@ ikiwiki (1.46) UNRELEASED; urgency=low
|
||||||
blog post pages. The links will now create pages relative to the page that
|
blog post pages. The links will now create pages relative to the page that
|
||||||
actually contains the link.
|
actually contains the link.
|
||||||
* French update. Closes: #414597
|
* French update. Closes: #414597
|
||||||
|
* Fix some broken logic in cgi creation of a subpage when a toplevel page
|
||||||
|
with the same name already exists, and generally simplify the edit code.
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Mon, 12 Mar 2007 15:52:33 -0400
|
-- Joey Hess <joeyh@debian.org> Sat, 17 Mar 2007 18:25:59 -0400
|
||||||
|
|
||||||
ikiwiki (1.45) unstable; urgency=low
|
ikiwiki (1.45) unstable; urgency=low
|
||||||
|
|
||||||
|
|
|
@ -8,5 +8,4 @@ Assume the script is called like this `http://example.com/ikiwiki.cgi?page=discu
|
||||||
|
|
||||||
(To confirm that this wasn't just a result of my imagination, I created [[/discussion]] on this site; feel free to delete it now.)
|
(To confirm that this wasn't just a result of my imagination, I created [[/discussion]] on this site; feel free to delete it now.)
|
||||||
|
|
||||||
> I always find bug reports more comprehansible if they describe actual
|
> [[bugs/done]] --[[Joey]]
|
||||||
> buggy behavior, which you've not done. Could you do so? Thanks. --[[Joey]]
|
|
||||||
|
|
Loading…
Reference in New Issue