Support changelog message
[geekigeeki.git] / geekigeeki.py
index 64333eaf0605d79abdc674eb9a5042fed05e5050..794350389c8def020777bfe47efa8733a001a0f4 100755 (executable)
@@ -246,9 +246,9 @@ def handle_edit(pagename):
     pg = Page(pagename)
     if 'save' in form:
         if form['file'].value:
-            pg.save(form['file'].file.read())
+            pg.save(form['file'].file.read(), form['changelog'].value)
         else:
-            pg.save(form['savetext'].value.replace('\r\n', '\n'))
+            pg.save(form['savetext'].value.replace('\r\n', '\n'), form['changelog'].value)
         pg.format()
     elif 'cancel' in form:
         pg.msg_text = 'Editing canceled'
@@ -704,8 +704,9 @@ class Page:
             <input type="submit" name="preview" value="Preview" />
             <input type="reset" value="Reset" />
             <input type="submit" name="cancel" value="Cancel" />
-            <br />
-            </form></div>"""
+            <br />"""
+       print "Changelog: <input type=\"input\" name=\"changelog\" value=\"Edit page %s\"/>" % self.page_name
+       print"</form></div>"
         print "<p>" + Page('EditingTips').link_to() + "</p>"
         if preview:
             print "<div class='preview'>"
@@ -743,7 +744,7 @@ class Page:
                 if er.errno != errno.ENOENT: raise er
         os.rename(tmp_filename, name)
 
-    def save(self, newdata):
+    def save(self, newdata, changelog):
         if not self.can_write():
             self.msg_text = 'Write access denied by ACLs'
             self.msg_type = 'error'
@@ -756,7 +757,8 @@ class Page:
             cmd = ( post_edit_hook
                 + " '" + data_dir + '/' + self.page_name
                 + "' '" + remote_user()
-                + "' '" + remote_host() + "'"
+                + "' '" + remote_host()
+               + "' '" + changelog + "'"
             )
             out = os.popen(cmd)
             output = out.read()