From 6c55e63eab9ea6b538105b76180aae3de6bc4270 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Tue, 6 Jun 2006 17:37:52 +0000 Subject: [PATCH] Add ' et al.' to firstCreator field when more than one creator --- chrome/chromeFiles/content/scholar/xpcom/data_access.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/chrome/chromeFiles/content/scholar/xpcom/data_access.js b/chrome/chromeFiles/content/scholar/xpcom/data_access.js index 5d2f61ff9..cc79c8f9b 100644 --- a/chrome/chromeFiles/content/scholar/xpcom/data_access.js +++ b/chrome/chromeFiles/content/scholar/xpcom/data_access.js @@ -64,7 +64,9 @@ Scholar.Item.prototype.isEditableField = function(field){ * Build object from database */ Scholar.Item.prototype.loadFromID = function(id){ - var sql = 'SELECT I.*, lastName AS firstCreator ' + var sql = 'SELECT I.*, lastName || ' + + 'CASE ((SELECT COUNT(*) FROM itemCreators WHERE itemID=' + id + ')>1) ' + + "WHEN 0 THEN '' ELSE ' et al.' END AS firstCreator " + 'FROM items I ' + 'LEFT JOIN itemCreators IC ON (I.itemID=IC.itemID) ' + 'LEFT JOIN creators C ON (IC.creatorID=C.creatorID) ' @@ -934,12 +936,15 @@ Scholar.Items = new function(){ function _load(){ // Should be the same as query in Scholar.Item.loadFromID, just // without itemID clause - var sql = 'SELECT I.*, lastName AS firstCreator ' + var sql = 'SELECT I.*, lastName || ' + + 'CASE ((SELECT COUNT(*) FROM itemCreators WHERE itemID=I.itemID)>1) ' + + "WHEN 0 THEN '' ELSE ' et al.' END AS firstCreator " + 'FROM items I ' + 'LEFT JOIN itemCreators IC ON (I.itemID=IC.itemID) ' + 'LEFT JOIN creators C ON (IC.creatorID=C.creatorID) ' + 'WHERE (IC.orderIndex=0 OR IC.orderIndex IS NULL)'; + Scholar.debug(arguments[0]); if (arguments[0]){ sql += ' AND I.itemID IN (' + Scholar.join(arguments,',') + ')'; }