commit b7db38d946393b7c8cb42ce19fad6a6bef2e6100
parent c7c60753095f1e4940dffa6c5b57f3d48f3496ae
Author: Simon Kornblith <simon@simonster.com>
Date: Fri, 10 Sep 2010 02:08:06 +0000
add z:displayTitle property to items with no title (or cases, for which displayTitle differs from title)
Diffstat:
1 file changed, 39 insertions(+), 1 deletion(-)
diff --git a/translators/Zotero RDF.js b/translators/Zotero RDF.js
@@ -8,7 +8,7 @@
"maxVersion":"",
"priority":25,
"inRepository":true,
- "lastUpdated":"2009-01-02 20:55:00"
+ "lastUpdated":"2010-10-10 02:07:05"
}
Zotero.configure("getCollections", true);
@@ -75,6 +75,41 @@ function generateCollection(collection) {
}
}
+/**
+ * Get display title
+ * Analogous to getDisplayTitle in item.js, but returns null if no display title distinct from
+ * title property
+ */
+function getDisplayTitle(item) {
+ if(!item.title && (item.itemType == "interview" || item.itemType == "letter")) {
+ var participants = [creator for each(creator in item.creators)
+ if (item.itemType == "letter" && creator.creatorType == "recipient" ||
+ item.itemType == "interview" && creator.creatorType == "interviewer")];
+
+ var displayTitle = "["+(item.itemType == "letter" ? "Letter" : "Interview");
+ if(participants.length) {
+ //var names = [creator.firstName ? creator.firstName+" "+creator.lastName : creator.lastName
+ var names = [creator.lastName
+ for each(creator in participants)];
+
+ displayTitle += (item.itemType == "letter" ? " to " : " of ")+names[0];
+
+ if(participants.length == 2) {
+ displayTitle += " and "+names[1];
+ } else if(participants.length == 3) {
+ displayTitle += ", "+names[1]+", and "+names[2];
+ } else if(participants.length > 3) {
+ displayTitle += " et al.";
+ }
+ }
+
+ return displayTitle+"]";
+ } if (item.itemType == "case" && item.title && item.reporter) { // 'case' itemTypeID
+ return item.title+' (' + item.reporter + ')';
+ }
+ return null;
+}
+
function generateItem(item, zoteroType, resource) {
var container = null;
var containerElement = null;
@@ -448,6 +483,9 @@ function generateItem(item, zoteroType, resource) {
Zotero.RDF.addStatement(resource, n.z+property, value, true);
}
}
+
+ var displayTitle = getDisplayTitle(item);
+ if(displayTitle) Zotero.RDF.addStatement(resource, n.z+"displayTitle", displayTitle, true);
}
function doExport() {