Package: ikiwiki
Version: 2.11~ox.2
Severity: wishlist
Tags: patch

In our team internal wiki, we wish to impose a policy that all edits
must have a comment. A patch to implement this is attached.
diff -urN ikiwiki/IkiWiki/CGI.pm ikiwiki.mine/IkiWiki/CGI.pm
--- ikiwiki/IkiWiki/CGI.pm      2007-10-25 08:00:51.000000000 +0100
+++ ikiwiki.mine/IkiWiki/CGI.pm 2007-11-07 17:18:08.000000000 +0000
@@ -306,15 +306,22 @@
        
        eval q{use CGI::FormBuilder};
        error($@) if $@;
+
+    my @required_fields = qw(editcontent);
+    my %validate_fields = (editcontent => '/.+/');
+
+    if ($config{comment_required}) {
+        push @required_fields, 'comments';
+        $validate_fields{comments} = '/.+/';
+    }
+
        my $form = CGI::FormBuilder->new(
                title => "editpage",
                fields => [EMAIL PROTECTED],
                charset => "utf-8",
                method => 'POST',
-               validate => {
-                       editcontent => '/.+/',
-               },
-               required => [qw{editcontent}],
+               validate => \%validate_fields,
+               required => [EMAIL PROTECTED],
                javascript => 0,
                params => $q,
                action => $config{cgiurl},
@@ -388,6 +395,10 @@
        $form->tmpl_param("helponformattinglink",
                htmllink("", "", "HelpOnFormatting", noimageinline => 1));
        $form->tmpl_param("baseurl", baseurl());
+
+    foreach my $config_param(qw(comment_required)) {
+        $form->tmpl_param($config_param, $config{$config_param});
+    }
        
        if ($form->submitted eq "Cancel") {
                if ($form->field("do") eq "create" && defined $from) {
diff -urN ikiwiki/ikiwiki.in ikiwiki.mine/ikiwiki.in
--- ikiwiki/ikiwiki.in  2007-10-25 08:00:52.000000000 +0100
+++ ikiwiki.mine/ikiwiki.in     2007-11-07 16:26:18.000000000 +0000
@@ -50,6 +50,7 @@
                        "userdir=s" => \$config{userdir},
                        "htmlext=s" => \$config{htmlext},
                        "libdir=s" => \$config{libdir},
+                       "comment_required" => \$config{comment_required},
                        "exclude=s@" => sub {
                                push @{$config{wiki_file_prune_regexps}}, $_[1];
                        },
diff -urN ikiwiki/templates/editpage.tmpl ikiwiki.mine/templates/editpage.tmpl
--- ikiwiki/templates/editpage.tmpl     2007-10-25 08:00:52.000000000 +0100
+++ ikiwiki.mine/templates/editpage.tmpl        2007-11-07 16:23:25.000000000 
+0000
@@ -54,7 +54,12 @@
 </TMPL_IF>
 <TMPL_VAR FIELD-EDITCONTENT><br />
 <TMPL_IF NAME="CAN_COMMIT">
-Optional comment about this change:<br />
+<TMPL_IF NAME="COMMENT_REQUIRED">
+Mandatory
+<TMPL_ELSE>
+Optional
+</TMPL_IF>
+comment about this change:<br />
 <TMPL_VAR FIELD-COMMENTS><br />
 </TMPL_IF>
 <TMPL_VAR FORM-SUBMIT>

Reply via email to