X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/8e0180d8ca6c9b08ed752b92d4c50a5298d8f55a..fdc7974b2ac995b4ff12dfa208741189ff4bd274:/IkiWiki/Plugin/remove.pm diff --git a/IkiWiki/Plugin/remove.pm b/IkiWiki/Plugin/remove.pm index 869d32f93..68bf9d1ee 100644 --- a/IkiWiki/Plugin/remove.pm +++ b/IkiWiki/Plugin/remove.pm @@ -46,7 +46,7 @@ sub check_canremove ($$$) { #{{{ # If a user can't upload an attachment, don't let them delete it. # This is sorta overkill, but better safe than sorry. - if (! defined IkiWiki::pagetype($pagesources{$page})) { + if (! defined pagetype($pagesources{$page})) { if (IkiWiki::Plugin::attachment->can("check_canattach")) { IkiWiki::Plugin::attachment::check_canattach($session, $page, $file); } @@ -61,9 +61,10 @@ sub formbuilder_setup (@) { #{{{ my $form=$params{form}; my $q=$params{cgi}; - if (defined $form->field("do") && $form->field("do") eq "edit") { + if (defined $form->field("do") && ($form->field("do") eq "edit" || + $form->field("do") eq "create")) { # Removal button for the page, and also for attachments. - push @{$params{buttons}}, "Remove"; + push @{$params{buttons}}, "Remove" if $form->field("do") eq "edit"; $form->tmpl_param("field-remove" => ''); } } #}}} @@ -97,7 +98,9 @@ sub removal_confirm ($$@) { #{{{ my $attachment=shift; my @pages=@_; - check_canremove($_, $q, $session) foreach @pages; + foreach my $page (@pages) { + check_canremove($page, $q, $session); + } # Save current form state to allow returning to it later # without losing any edits. @@ -110,7 +113,7 @@ sub removal_confirm ($$@) { #{{{ my ($f, $buttons)=confirmation_form($q, $session); $f->title(sprintf(gettext("confirm removal of %s"), - join(", ", map { IkiWiki::pagetitle($_) } @pages))); + join(", ", map { pagetitle($_) } @pages))); $f->field(name => "page", type => "hidden", value => \@pages, force => 1); if (defined $attachment) { $f->field(name => "attachment", type => "hidden", @@ -135,11 +138,12 @@ sub formbuilder (@) { #{{{ my %params=@_; my $form=$params{form}; - if (defined $form->field("do") && $form->field("do") eq "edit") { + if (defined $form->field("do") && ($form->field("do") eq "edit" || + $form->field("do") eq "create")) { my $q=$params{cgi}; my $session=$params{session}; - if ($form->submitted eq "Remove") { + if ($form->submitted eq "Remove" && $form->field("do") eq "edit") { removal_confirm($q, $session, 0, $form->field("page")); } elsif ($form->submitted eq "Remove Attachments") { @@ -210,7 +214,7 @@ sub sessioncgi ($$) { #{{{ if (! exists $pagesources{$parent}) { $parent="index"; } - IkiWiki::redirect($q, $config{url}."/".htmlpage($parent)); + IkiWiki::redirect($q, urlto($parent, '/', 1)); } } else {