From c924c76bd89d6d607b59c1d68ba32fae0fefc77a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 21 Jul 2008 13:50:12 -0400 Subject: basically, removal works Still need to consider all the edge cases.. --- IkiWiki/Plugin/remove.pm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'IkiWiki/Plugin') diff --git a/IkiWiki/Plugin/remove.pm b/IkiWiki/Plugin/remove.pm index 0dded4fa4..57c43cfdf 100644 --- a/IkiWiki/Plugin/remove.pm +++ b/IkiWiki/Plugin/remove.pm @@ -106,7 +106,23 @@ sub sessioncgi ($$) { #{{{ exit 0; } elsif ($form->submitted eq 'Remove' && $form->validate) { - error("removal not yet implemented"); # TODO + my $page=IkiWiki::titlepage($form->field("page")); + my $file=$pagesources{$page}; + + # Do removal, and update the wiki. + require IkiWiki::Render; + if ($config{rcs}) { + IkiWiki::rcs_remove($file); + IkiWiki::disable_commit_hook(); + IkiWiki::rcs_commit($file, gettext("removed"), + IkiWiki::rcs_prepedit($file), + $session->param("name"), $ENV{REMOTE_ADDR}); + IkiWiki::enable_commit_hook(); + IkiWiki::rcs_update(); + } + IkiWiki::prune("$config{srcdir}/$file"); + IkiWiki::refresh(); + IkiWiki::saveindex(); } else { IkiWiki::showform($form, $buttons, $session, $q); -- cgit v1.2.3