Added optional second param to Items.search() to restrict search to a particular collectionID

This commit is contained in:
Dan Stillman 2006-06-06 20:46:08 +00:00
parent 2513c829a6
commit 9bcaad5946

View file

@ -899,7 +899,7 @@ Scholar.Items = new function(){
* *
* TODO: more * TODO: more
**/ **/
function search(text){ function search(text, parentCollectionID){
if (!text){ if (!text){
text = ''; text = '';
} }
@ -910,9 +910,17 @@ Scholar.Items = new function(){
+ "(SELECT creatorID FROM creators WHERE firstName LIKE ?1 " + "(SELECT creatorID FROM creators WHERE firstName LIKE ?1 "
+ "OR lastName LIKE ?1) UNION " + "OR lastName LIKE ?1) UNION "
+ "SELECT itemID FROM itemKeywords WHERE keywordID IN " + "SELECT itemID FROM itemKeywords WHERE keywordID IN "
+ "(SELECT keywordID FROM keywords WHERE keyword LIKE ?)"; + "(SELECT keywordID FROM keywords WHERE keyword LIKE ?1)";
return Scholar.DB.columnQuery(sql, [{'string':'%' + text + '%'}]); var sqlParams = [{'string':'%' + text + '%'}];
if (parentCollectionID){
sql = "SELECT itemID FROM (" + sql + ") WHERE itemID IN "
+ "(SELECT itemID FROM collectionItems WHERE collectionID=?2)";
sqlParams.push({'int':parentCollectionID});
}
return Scholar.DB.columnQuery(sql, sqlParams);
} }
@ -1828,5 +1836,5 @@ Scholar.getItems = function(parent){
return toReturn; return toReturn;
} }
return Scholar.Items.get(children) return Scholar.Items.get(children);
} }