summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-07-21 13:50:12 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-07-21 13:50:12 -0400
commitc924c76bd89d6d607b59c1d68ba32fae0fefc77a (patch)
tree25c916fef0d55b917a661cb451214d7ccc28fa95
parentc6d1ae33d224486f347d39005e516f514c613d3c (diff)
basically, removal works
Still need to consider all the edge cases..
-rw-r--r--IkiWiki/Plugin/remove.pm18
-rw-r--r--debian/changelog2
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