Convert the prefs editor to the action library.
authorfabien@tzone.org
Sun, 28 Dec 2008 12:41:44 -0500
changeset 60 dad9733c99f0
parent 59 2c5e38748004
child 61 a1bcf5e4b8a4
Convert the prefs editor to the action library.
edit_prefs.py
lib/actions.py
lib/actions/edit_prefs.py
prefs.py
templates/prefs.tmpl
--- 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: