www

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

commit b0157efd23426361791a2aeaa90fe8549cb27351
parent eb7556533adb53aec89184e824d705a9720cc3ed
Author: Adomas Ven <adomas.ven@gmail.com>
Date:   Thu, 14 Jul 2016 21:17:56 +0300

Clone feed item if no translators available (#1061)


Diffstat:
Mchrome/content/zotero/xpcom/data/feedItem.js | 28++++++++++++++++++++++++----
1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/chrome/content/zotero/xpcom/data/feedItem.js b/chrome/content/zotero/xpcom/data/feedItem.js @@ -208,6 +208,7 @@ Zotero.FeedItem.prototype.toggleRead = Zotero.Promise.coroutine(function* (state * @return {Promise<FeedItem|Item>} translated feed item */ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (libraryID, collectionID) { + Zotero.debug("Translating feed item " + this.id + " with URL " + this.getField('url'), 2); if (Zotero.locked) { Zotero.debug('Zotero locked, skipping feed item translation'); return; @@ -224,9 +225,8 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar translate.clearHandlers("itemDone"); translate.setHandler("done", win.Zotero_Browser.progress.Translation.doneHandler); translate.setHandler("itemDone", win.Zotero_Browser.progress.Translation.itemDoneHandler()); - let collection; if (collectionID) { - collection = yield Zotero.Collections.getAsync(collectionID); + var collection = yield Zotero.Collections.getAsync(collectionID); } win.Zotero_Browser.progress.show(); win.Zotero_Browser.progress.Translation.scrapingTo(libraryID, collection); @@ -249,8 +249,28 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar translate.getTranslators(); let translators = yield deferred.promise; if (!translators || !translators.length) { - Zotero.debug("No translators detected for feed item " + this.id + " with URL " + this.getField('url'), 2); - throw new Zotero.Error("No translators detected for feed item " + this.id + " with URL " + this.getField('url')) + Zotero.debug("No translators detected for feed item " + this.id + " with URL " + this.getField('url') + + ' -- cloning item instead', 2); + let dbItem = this.clone(libraryID); + if (collectionID) { + dbItem.addToCollection(collectionID); + } + yield dbItem.saveTx(); + + let item = {title: dbItem.getField('title'), itemType: dbItem.itemType}; + + // Add snapshot + if (Zotero.Libraries.get(libraryID).filesEditable) { + item.attachments = [{title: "Snapshot"}]; + yield Zotero.Attachments.importFromDocument({ + document: doc, + parentItemID: dbItem.id + }); + } + + win.Zotero_Browser.progress.Translation.itemDoneHandler()(null, null, item); + win.Zotero_Browser.progress.Translation.doneHandler(null, true); + return; } translate.setTranslator(translators[0]);