Convert the prefs editor to the action library.
--- a/edit_prefs.py Sun Dec 28 12:29:23 2008 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#!/usr/bin/python
-
-import sys
-import traceback
-sys.path.insert(0, "/home/fabien/lib/python")
-sys.path.insert(0, "./lib")
-sys.stderr = sys.stdout
-
-print "Content-type: text/html; charset=iso-8859-1;"
-print
-
-# import cgitb; cgitb.enable()
-import cgi
-import my_db
-from os import environ
-from webutils import load_index
-
-if (__name__ == "__main__"):
- form = cgi.FieldStorage()
- db = my_db.connect(environ["REMOTE_USER"])
- prefs = db.get_preferences()
- if form.has_key('kw_size'):
- prefs['keywords_box'] = int(form['kw_size'].value)
- if form.has_key('kw_sort'):
- prefs['keywords_sort'] = form['kw_sort'].value
- if form.has_key('default_view'):
- prefs['default_view'] = int(form['default_view'].value)
- prefs['keywords_reverse'] = form.has_key('kw_reverse')
- if form.has_key('fullname'):
- prefs['fullname'] = form['fullname'].value
- db.set_preferences(prefs)
- load_index(db, prefs)
--- a/lib/actions.py Sun Dec 28 12:29:23 2008 -0500
+++ b/lib/actions.py Sun Dec 28 12:41:44 2008 -0500
@@ -30,3 +30,4 @@
actions['import'] = ('imp_xbel', 'do_it')
actions['add'] = ('add', 'do_it')
actions['keywords'] = ('editkw', 'do_it')
+actions['prefs'] = ('edit_prefs', 'do_it')
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/actions/edit_prefs.py Sun Dec 28 12:41:44 2008 -0500
@@ -0,0 +1,42 @@
+from templates import Template
+from webutils import load_index
+
+def edit_prefs(db, prefs, form):
+ if form.has_key('kw_size'):
+ prefs['keywords_box'] = int(form['kw_size'].value)
+ if form.has_key('kw_sort'):
+ prefs['keywords_sort'] = form['kw_sort'].value
+ if form.has_key('default_view'):
+ prefs['default_view'] = int(form['default_view'].value)
+ prefs['keywords_reverse'] = form.has_key('kw_reverse')
+ if form.has_key('fullname'):
+ prefs['fullname'] = form['fullname'].value
+ db.set_preferences(prefs)
+ load_index(db, prefs, form, "result", "Preferences saved.")
+
+def view_prefs(prefs):
+ tmpl = Template("prefs.tmpl", prefs)
+ sortfields = []
+ for field in ['keyword', 'count']:
+ sortfields.append({'field': field,
+ 'selected' : prefs['keywords_sort'] == field })
+ tmpl.set('Sortfields', sortfields)
+ views = []
+ for view in [(0, 'dynamic'), (1, 'folder')]:
+ views.append({ 'view': view[0],
+ 'name': view[1],
+ 'selected': prefs['default_view'] == view[0]} )
+ tmpl.set('Views', views)
+ print tmpl.process()
+
+def do_it(action, db, prefs, form):
+ if form.has_key('step'):
+ step = form['step']
+ else:
+ step = 'view'
+ if step == 'view':
+ view_prefs(prefs)
+ elif step == 'edit':
+ edit_prefs(prefs)
+ else:
+ load_index(db, prefs, form, "error", "Operation cancel.")
--- a/prefs.py Sun Dec 28 12:29:23 2008 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-#!/usr/bin/python
-
-import sys
-import traceback
-sys.path.insert(0, "/home/fabien/lib/python")
-sys.path.insert(0, "./lib")
-sys.stderr = sys.stdout
-
-print "Content-type: text/html; charset=iso-8859-1;"
-print
-
-# import cgitb; cgitb.enable()
-import cgi
-from templates import Template
-import my_db
-import os
-
-def main(prefs):
- tmpl = Template("prefs.tmpl", prefs)
- sortfields = []
- for field in ['keyword', 'count']:
- sortfields.append({'field': field,
- 'selected' : prefs['keywords_sort'] == field })
- tmpl.set('Sortfields', sortfields)
- views = []
- for view in [(0, 'dynamic'), (1, 'folder')]:
- views.append({ 'view': view[0],
- 'name': view[1],
- 'selected': prefs['default_view'] == view[0]} )
- tmpl.set('Views', views)
- print tmpl.process()
-
-if (__name__ == "__main__"):
- db = my_db.connect(os.environ["REMOTE_USER"])
- main(db.get_preferences())
--- a/templates/prefs.tmpl Sun Dec 28 12:29:23 2008 -0500
+++ b/templates/prefs.tmpl Sun Dec 28 12:41:44 2008 -0500
@@ -3,7 +3,8 @@
<TMPL_INCLUDE NAME="headers.tmpl">
<body>
<h1><TMPL_VAR remote_user>'s Preferences</h1>
- <form action="edit_prefs.py" method="post" name="prefs">
+ <form action="" method="post" name="prefs">
+ <input type="hidden" name="action" value="prefs"/>
<p><label>Display name:
<input type="text" name="fullname"
value="<TMPL_VAR remote_user>"/></label></p>
@@ -28,10 +29,10 @@
<input type="checkbox" name="kw_reverse"
<TMPL_IF kw_reverse>checked</TMPL_IF>>
reversed</p>
- <button>Submit</button>
+ <button name="step" value="edit" type="submit">Submit</button>
+ <button name="step" value="cancel" type="submit">Cancel</button>
</form>
<hr/>
- <a href="index">Back to main page</a>
</html>
<!-- Keep this comment at the end of the file
Local variables: