diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-07-21 13:50:12 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-07-21 13:50:12 -0400 |
commit | c924c76bd89d6d607b59c1d68ba32fae0fefc77a (patch) | |
tree | 25c916fef0d55b917a661cb451214d7ccc28fa95 | |
parent | c6d1ae33d224486f347d39005e516f514c613d3c (diff) |
basically, removal works
Still need to consider all the edge cases..
-rw-r--r-- | IkiWiki/Plugin/remove.pm | 18 | ||||
-rw-r--r-- | debian/changelog | 2 |
2 files changed, 18 insertions, 2 deletions
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); diff --git a/debian/changelog b/debian/changelog index 1c7d03b97..7fd149df5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,7 +3,7 @@ ikiwiki (2.55) UNRELEASED; urgency=low * prefix_directives enabled in doc wiki, all preprocessor directives converted. (Simon McVittie) * editpage: Don't show attachments link when attachments are disabled. - * All rcs backends need to implement rcs_rm. (Done for svn, git). + * All rcs backends need to implement rcs_remove. (Done for svn, git). -- Joey Hess <joeyh@debian.org> Mon, 21 Jul 2008 11:35:46 -0400 |