decode_cgi_utf8($q);
- my @fields=qw(do rcsinfo subpage from page type editcontent editmessage);
+ my @fields=qw(do rcsinfo subpage from page type editcontent
+ editmessage subscribe);
my @buttons=("Save Page", "Preview", "Cancel");
eval q{use CGI::FormBuilder};
error($@) if $@;
noimageinline => 1,
linktext => "FormattingHelp"));
+ my $cansubscribe=IkiWiki::Plugin::notifyemail->can("subscribe")
+ && IkiWiki::Plugin::comments->can("import")
+ && defined $session->param('name');
+ if ($cansubscribe) {
+ $form->field(name => "subscribe", type => "checkbox",
+ options => [gettext("email comments to me")]);
+ }
+ else {
+ $form->field(name => "subscribe", type => 'hidden');
+ }
+
my $previewing=0;
if ($form->submitted eq "Cancel") {
if ($form->field("do") eq "create" && defined $from) {
my @page_types;
if (exists $hooks{htmlize}) {
foreach my $key (grep { !/^_/ } keys %{$hooks{htmlize}}) {
- push @page_types, [$key, $hooks{htmlize}{$key}{longname} || $key];
+ push @page_types, [$key, $hooks{htmlize}{$key}{longname} || $key]
+ unless $hooks{htmlize}{$key}{nocreate};
}
}
@page_types=sort @page_types;
else {
# save page
check_canedit($page, $q, $session);
- checksessionexpiry($q, $session, $q->param('sid'));
+ checksessionexpiry($q, $session);
my $exists=-e "$config{srcdir}/$file";
eval { writefile($file, $config{srcdir}, $content) };
$config{cgi}=1;
if ($@) {
+ # save $@ in case a called function clobbers it
+ my $error = $@;
$form->field(name => "rcsinfo", value => rcs_prepedit($file),
force => 1);
my $mtemplate=template("editfailedsave.tmpl");
- $mtemplate->param(error_message => $@);
+ $mtemplate->param(error_message => $error);
$form->tmpl_param("message", $mtemplate->output);
$form->field("editcontent", value => $content, force => 1);
$form->tmpl_param("page_select", 0);
$conflict=rcs_commit(
file => $file,
message => $message,
- token => $form->field("rcsinfo"),
+ token => scalar $form->field("rcsinfo"),
session => $session,
);
enable_commit_hook();
# caches and get the most recent version of the page.
redirect($q, $baseurl."?updated");
}
+
+ if ($cansubscribe && length $form->field("subscribe")) {
+ my $subspec="comment($page)";
+ IkiWiki::Plugin::notifyemail::subscribe(
+ $session->param('name'), $subspec);
+ }
}
exit;