Reformateditor layout and add accesskeys
[geekigeeki.git] / geekigeeki.py
index 64333eaf0605d79abdc674eb9a5042fed05e5050..5a3eb8e58abc8b422d77a1b64bda50789886e3c0 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'
@@ -694,18 +694,25 @@ class Page:
             + ' for ' + cgi.escape(remote_user())
             + ' from ' + cgi.escape(get_hostname(remote_host()))
             + '</b></p>')
-        print '<div class="editor"><form method="post" enctype="multipart/form-data" action="%s">' % relative_url(self.page_name)
+        print '<div class="editor"><form name="editform" method="post" enctype="multipart/form-data" action="%s">' % relative_url(self.page_name)
         print '<input type="hidden" name="edit" value="%s">' % (self.page_name)
-        print '<textarea wrap="off" spellcheck="true" id="editor" name="savetext" rows="17" cols="100">%s</textarea>' % (preview or self.get_raw_body())
-        print 'Or upload a file: <input type="file" name="file" value="%s" />' % file
+        print '<input type="input" id="editor" name="changelog" value="Edit page %s" accesskey="c" /><br />' % (self.page_name)
+        print '<textarea wrap="off" spellcheck="true" id="editor" name="savetext" rows="17" cols="100" accesskey="e">%s</textarea>' % (preview or self.get_raw_body())
+        print '<label for="file" accesskey="u">Or Upload a file:</label> <input type="file" name="file" value="%s" />' % file
         print """
             <br />
-            <input type="submit" name="save" value="Save" />
-            <input type="submit" name="preview" value="Preview" />
+            <input type="submit" name="save" value="Save" accesskey="s">
+            <input type="submit" name="preview" value="Preview" accesskey="p" />
             <input type="reset" value="Reset" />
             <input type="submit" name="cancel" value="Cancel" />
             <br />
-            </form></div>"""
+            </form></div>
+            <script language="javascript">
+            <!--
+            document.editform.savetext.focus()
+            //-->
+            </script>
+            """
         print "<p>" + Page('EditingTips').link_to() + "</p>"
         if preview:
             print "<div class='preview'>"
@@ -743,7 +750,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 +763,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()