--- 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: