From 937072e875d17d9eeabf8fdfa7cfff9cc9e33999 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Wed, 21 Feb 2007 19:22:45 +0000 Subject: [PATCH] Add Item.hasTags(tagIDs) -- returns true if the item has one or more of |tagIDs| |tagIDs| can be an int or array of ints, so made Item.hasTag(tagID) just call hasTags() --- chrome/content/zotero/xpcom/data_access.js | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/chrome/content/zotero/xpcom/data_access.js b/chrome/content/zotero/xpcom/data_access.js index d6731dd5c..0180d2e12 100644 --- a/chrome/content/zotero/xpcom/data_access.js +++ b/chrome/content/zotero/xpcom/data_access.js @@ -1637,8 +1637,27 @@ Zotero.Item.prototype.addTagByID = function(tagID) { } Zotero.Item.prototype.hasTag = function(tagID) { - var sql = "SELECT COUNT(*) FROM itemTags WHERE itemID=? AND tagID=?"; - return !!Zotero.DB.valueQuery(sql, [this.getID(), tagID]); + return this.hasTags(tagID); +} + +/* + * Returns true if the item has one or more of |tagIDs| + * + * |tagIDs| can be an int or array of ints + */ +Zotero.Item.prototype.hasTags = function(tagIDs) { + var tagIDs = Zotero.flattenArguments(tagIDs); + + var sql = "SELECT COUNT(*) FROM itemTags WHERE itemID=? AND tagID IN ("; + var q = []; + var p = [this.getID()]; + for each(var tagID in tagIDs) { + q.push('?'); + p.push(tagID); + } + sql += q.join(); + sql += ")"; + return !!Zotero.DB.valueQuery(sql, p); } Zotero.Item.prototype.getTags = function(){