closes #1732, Creator sequence breaks in RDF export with > 10 creators (thanks Frank)
This commit is contained in:
parent
60026d5f39
commit
a5365bb938
|
@ -580,9 +580,35 @@ __Serializer.prototype.statementsToXML = function(sts) {
|
||||||
var type = null;
|
var type = null;
|
||||||
|
|
||||||
var results = []
|
var results = []
|
||||||
Zotero.debug(sz.toStr(subject));
|
|
||||||
var sts = subjects[sz.toStr(subject)]; // relevant statements
|
var sts = subjects[sz.toStr(subject)]; // relevant statements
|
||||||
sts.sort();
|
// Sort only on the predicate, leave the order at object
|
||||||
|
// level undisturbed. This leaves multilingual content in
|
||||||
|
// the order of entry (for partner literals), which helps
|
||||||
|
// readability.
|
||||||
|
//
|
||||||
|
// For the predicate sort, we attempt to split the uri
|
||||||
|
// as a hint to the sequence, as sequenced items seems
|
||||||
|
// to be of the form http://example.com#_1, http://example.com#_2,
|
||||||
|
// et cetera. Probably not the most optimal of fixes, but
|
||||||
|
// it does work.
|
||||||
|
sts.sort(function(a,b){
|
||||||
|
var aa = a.predicate.uri.split('#_');
|
||||||
|
var bb = a.predicate.uri.split('#_');
|
||||||
|
if (aa[0] > bb[0]) {
|
||||||
|
return 1;
|
||||||
|
} else if (aa[0] < bb[0]) {
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
if ("undefined" !== typeof aa[1] && "undefined" !== typeof bb[1]) {
|
||||||
|
if (parseInt(aa[1], 10) > parseInt(bb[1], 10)) {
|
||||||
|
return 1;
|
||||||
|
} else if (parseInt(aa[1], 10) < parseInt(bb[1], 10)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
for (var i=0; i<sts.length; i++) {
|
for (var i=0; i<sts.length; i++) {
|
||||||
var st = sts[i];
|
var st = sts[i];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user