tweaks/bugfixes (e.g. support adding multiple tags to an image at once)
authorterom
Sun, 20 Jan 2008 01:52:00 +0000
changeset 25 4b3cf12848c2
parent 24 001f52cd057e
child 26 81d6679d50d0
tweaks/bugfixes (e.g. support adding multiple tags to an image at once)
de-cgi-bin/taggr2.py
javascript/taggr.js
lib/req.py
--- a/de-cgi-bin/taggr2.py	Sun Jan 20 01:07:02 2008 +0000
+++ b/de-cgi-bin/taggr2.py	Sun Jan 20 01:52:00 2008 +0000
@@ -75,9 +75,9 @@
 
 elif act == "tag" :
     img_list = req.get_int_list("img")
-    tag = req.get_str("tag")
+    tag_list = req.get_str_list("tag")
 
-    db.insert_many("""INSERT INTO tags (image, tag) VALUES (?, ?)""", ((img, tag) for img in img_list))
+    db.insert_many("""INSERT INTO tags (image, tag) VALUES (?, ?)""", ((img, tag) for img in img_list for tag in tag_list))
 
     print "OK"
 
--- a/javascript/taggr.js	Sun Jan 20 01:07:02 2008 +0000
+++ b/javascript/taggr.js	Sun Jan 20 01:52:00 2008 +0000
@@ -99,6 +99,10 @@
 }
 
 function new_tag (tag_name) {
+    if ($("tag_" + tag_name)) {
+        $("tag_" + tag_name).show().scrollTo();
+    }
+
     var tag_images = Builder.node("td", {className:"tag_images", id:"tag_" + tag_name + "_images"});
 
     tag_images._tag = tag_name;
@@ -116,6 +120,8 @@
     tag_row._tags = new Array(tag_name);
 
     $("tag_table").appendChild(tag_row);
+
+    return true;
 }
 
 function tag_add_tag (new_tag, tag) {
@@ -177,7 +183,7 @@
             parameters: {
                 act: 'tag',
                 img: orig_img._key,
-                tag: tag,
+                tag: $("tag_" + tag)._tags,
             },
             method: 'get'
 
@@ -198,7 +204,7 @@
         parameters: {
             act: 'tag',
             img: img_keys,
-            tag: tag_name,
+            tag: $("tag_" + tag_name)._tags,
         },
         method: 'get'
 
@@ -218,21 +224,21 @@
         parameters: {
             act: 'untag',
             img: img_key,
-            tag: tag_name,
+            tag: $("tag_" + tag_name)._tags,
         },
         method: 'get',
     });
 }
 
 function hide_tag_image (tag, img) {
-    $("tagimg_" + tag + "_" + img).hide();
+    $("tag_" + tag + "_img_" + img).hide();
 
     if (--$("tag_" + tag + "_images")._visibleCount == 0)
         $("tag_" + tag).hide();
 }
 
 function show_tag_image (tag, img) {
-    $("tagimg_" + tag + "_" + img).hide();
+    $("tag_" + tag + "_img_" + img).show();
 
     if ($("tag_" + tag + "_images")._visibleCount++ == 0)
          $("tag_" + tag).show();
--- a/lib/req.py	Sun Jan 20 01:07:02 2008 +0000
+++ b/lib/req.py	Sun Jan 20 01:52:00 2008 +0000
@@ -40,6 +40,14 @@
     else :
         return default
 
+def get_str_list (key, default=REQUIRED_PARAM) :
+    if key in vars :
+        return [val.decode('utf8', 'replace') for val in vars.getlist(key)]
+    elif default is REQUIRED_PARAM :
+        raise ValueError("Required param %s" % key)
+    else :
+        return default
+
 def get_int (key, default=REQUIRED_PARAM) :
     if key in vars :
         return int(vars[key].value)