www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 2194dff7a49f268f66af9a9db525629087ff5215
parent ca9a7c685eae3df9aa1769c8511ea6402b564cae
Author: Dan Stillman <dstillman@zotero.org>
Date:   Fri, 19 Jan 2018 12:57:45 -0500

Fix startup hang if note is null in database

Diffstat:
Mchrome/content/zotero/xpcom/data/items.js | 38++++++++++++++++++++++++--------------
1 file changed, 24 insertions(+), 14 deletions(-)

diff --git a/chrome/content/zotero/xpcom/data/items.js b/chrome/content/zotero/xpcom/data/items.js @@ -415,21 +415,31 @@ Zotero.Items = function() { // Convert non-HTML notes on-the-fly if (note !== "") { - if (!note.substr(0, 36).match(/^<div class="zotero-note znv[0-9]+">/)) { - note = Zotero.Utilities.htmlSpecialChars(note); - note = Zotero.Notes.notePrefix + '<p>' - + note.replace(/\n/g, '</p><p>') - .replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;') - .replace(/ /g, '&nbsp;&nbsp;') - + '</p>' + Zotero.Notes.noteSuffix; - note = note.replace(/<p>\s*<\/p>/g, '<p>&nbsp;</p>'); - notesToUpdate.push([item.id, note]); + if (typeof note == 'number') { + note = '' + note; + } + if (typeof note == 'string') { + if (!note.substr(0, 36).match(/^<div class="zotero-note znv[0-9]+">/)) { + note = Zotero.Utilities.htmlSpecialChars(note); + note = Zotero.Notes.notePrefix + '<p>' + + note.replace(/\n/g, '</p><p>') + .replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;') + .replace(/ /g, '&nbsp;&nbsp;') + + '</p>' + Zotero.Notes.noteSuffix; + note = note.replace(/<p>\s*<\/p>/g, '<p>&nbsp;</p>'); + notesToUpdate.push([item.id, note]); + } + + // Don't include <div> wrapper when returning value + let startLen = note.substr(0, 36).match(/^<div class="zotero-note znv[0-9]+">/)[0].length; + let endLen = 6; // "</div>".length + note = note.substr(startLen, note.length - startLen - endLen); + } + // Clear null notes + else { + note = ''; + notesToUpdate.push([item.id, '']); } - - // Don't include <div> wrapper when returning value - let startLen = note.substr(0, 36).match(/^<div class="zotero-note znv[0-9]+">/)[0].length; - let endLen = 6; // "</div>".length - note = note.substr(startLen, note.length - startLen - endLen); } item._noteText = note ? note : '';