lib/actions/bookmark.py
changeset 75 4f6b7b48322f
parent 74 6784c4350b41
--- a/lib/actions/bookmark.py	Wed Dec 31 15:41:32 2008 -0500
+++ b/lib/actions/bookmark.py	Wed Dec 31 16:26:22 2008 -0500
@@ -40,17 +40,24 @@
 
 def edit(db, prefs, form, id):
     name = url = ""
-    if form.has_key("ctitle"):
-        name = form["ctitle"].value
-    if form.has_key("curl"):
-        url = form["curl"].value
+    bk = Bookmark()
+    selected_kws = []
+    if (id != -1):
+    	bks = db.get_bookmarks([id])
+	if len(bks) > 0:
+		bk = bks[0]
+		(selected_kws, kwnames) = apply(zip,db.get_keywords([id]))
+    if form.has_key("name"):
+        bk.name = form["name"].value
+    if form.has_key("url"):
+        bk.url = form["url"].value
     kw = db.get_all_keywords()[1:]
     kw.sort(lambda l,r: cmp(l[1],r[1]))
     kw = map(lambda elem: {
          'id' : elem[0],
          'keyword' : elem[1],
-         'checked' : 0 }, kw)
-    print_edit(id, kw, name, url, prefs)
+         'checked' : elem[0] in selected_kws }, kw)
+    print_edit(prefs, bk, kw)
 
 def confirm(step, bk, kw, prefs):
     tmpl = Template("add_confirm.tmpl", prefs)
@@ -68,24 +75,29 @@
     tmpl.set("desc", bk.desc)
     print tmpl.process()
 
-def print_edit(id, keywords, title, url, prefs):
+def print_edit(prefs, bk, keywords):
     tmpl = Template("add_bk.tmpl", prefs)
-    tmpl.set('ctitle', title)
-    tmpl.set('curl', url)
-    tmpl.set('desc', '')
-    tmpl.set('bkid', id)
+    tmpl.set('name', bk.name)
+    tmpl.set('url', bk.url)
+    tmpl.set('desc', bk.desc)
+    tmpl.set('bkid', bk.id)
     tmpl.set('Keywords', keywords)
     print tmpl.process()
 
-def update_bookmark(db, form):
+def execute(db, form):
 	bk = get_bk_from_form(form)
 	id = bk.id
-	if (bk.id == -1):
-		id = db.add_bookmark(bk)
-	else:
-		db.update_bookmark(bk)
-	kw = add_unique_keywords(db, get_unique_keywords(form, db))
-	db.update_keywords(id, kw.values())
+	execution = form['execute'].value
+	if execution == 'delete':
+		if id != -1:
+			db.remove_bookmark(id)
+	elif execution == 'update':
+		if (bk.id == -1):
+			id = db.add_bookmark(bk)
+		else:
+			db.update_bookmark(bk)
+		kw = add_unique_keywords(db, get_unique_keywords(form, db))
+		db.update_keywords(id, kw.values())
 
 def do_it(action, db, prefs, form):
         if form.has_key('id'):
@@ -99,8 +111,8 @@
         if step == 'edit':
                 edit(db, prefs, form, id)
 	elif step == 'confirm':
-		update_bookmark(db, form)
-                load_index(db, prefs, form, "result", "Bookmark update")
+		execute(db, form)
+                load_index(db, prefs, form, "result", "Bookmark " + form['execute'].value)
         elif step == 'cancel' or (action == 'delete' and id == -1):
                 load_index(db, prefs, form, "err", "Operation cancel")
         else: