diff --git a/chrome/content/zotero/xpcom/report.js b/chrome/content/zotero/xpcom/report.js index 38836149af..ae6fc360a2 100644 --- a/chrome/content/zotero/xpcom/report.js +++ b/chrome/content/zotero/xpcom/report.js @@ -234,53 +234,53 @@ Zotero.Report = new function() { table = true; var fieldText; - // Shorten long URLs manually until Firefox wraps at ? - // (like Safari) or supports the CSS3 word-wrap property - var firstSpace = arr[i].indexOf(' '); - if (arr[i].indexOf('http://') === 0 && - ((firstSpace == -1 && arr[i].length > 29) || firstSpace > 29)) { + if (i == 'url' && arr[i].match(/^https?:\/\//)) { + fieldText = arr[i]; - var stripped = false; - - // Strip query string for sites we know don't need it - for each(var re in _noQueryStringSites) { - if (re.test(arr[i])){ - var pos = arr[i].indexOf('?'); - if (pos != -1) { - fieldText = arr[i].substr(0, pos); - stripped = true; - } - break; - } - } - - if (!stripped) { - // Add a line-break after the ? of long URLs - fieldText = arr[i].replace('?', "?"); + // Shorten long URLs manually until Firefox wraps at ? + // (like Safari) or supports the CSS3 word-wrap property + var firstSpace = fieldText.indexOf(' '); + if ((firstSpace == -1 && arr[i].length > 29) || firstSpace > 29) { + var stripped = false; - // Strip query string variables from the end while the - // query string is longer than the main part - var pos = fieldText.indexOf('?'); - if (pos != -1) { - while (pos < (fieldText.length / 2)) { - var lastAmp = fieldText.lastIndexOf('&'); - if (lastAmp == -1) { - break; + // Strip query string for sites we know don't need it + for each(var re in _noQueryStringSites) { + if (re.test(arr[i])){ + var pos = arr[i].indexOf('?'); + if (pos != -1) { + fieldText = arr[i].substr(0, pos); + stripped = true; } - fieldText = fieldText.substr(0, lastAmp); - var shortened = true; + break; } - // Append '&...' to the end - if (shortened) { - fieldText += "&"; + } + + if (!stripped) { + // Add a line-break after the ? of long URLs + fieldText = arr[i].replace('?', "?"); + + // Strip query string variables from the end while the + // query string is longer than the main part + var pos = fieldText.indexOf('?'); + if (pos != -1) { + while (pos < (fieldText.length / 2)) { + var lastAmp = fieldText.lastIndexOf('&'); + if (lastAmp == -1) { + break; + } + fieldText = fieldText.substr(0, lastAmp); + var shortened = true; + } + // Append '&...' to the end + if (shortened) { + fieldText += "&"; + } } } } - if (i == 'url') { - fieldText = '' - + escapeXML(fieldText) + ''; - } + fieldText = '' + + escapeXML(fieldText) + ''; } // Remove SQL date from multipart dates // (e.g. '2006-00-00 Summer 2006' becomes 'Summer 2006')