diff -r 6784c4350b41 -r 4f6b7b48322f lib/actions/bookmark.py --- 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: