Temporarily disable folder import #2862
This commit is contained in:
parent
fc572ba2a6
commit
01611cbb07
3 changed files with 14 additions and 17 deletions
|
@ -40,20 +40,9 @@ const findCollection = (libraryID, parentCollectionID, collectionName) => {
|
||||||
return collections.find(c => c.name === collectionName);
|
return collections.find(c => c.name === collectionName);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// @TODO
|
||||||
const findItemByHash = async (libraryID, hash) => {
|
const findItemByHash = async (libraryID, hash) => {
|
||||||
let items = (await Zotero.Relations.getByPredicateAndObject('item', 'zotero:attachmentHash', hash))
|
return null;
|
||||||
.filter(item => item.libraryID == libraryID && !item.deleted && item.isTopLevelItem());
|
|
||||||
|
|
||||||
if (!items.length) {
|
|
||||||
items = (await Zotero.Relations.getByPredicateAndObject('item', 'zotero:fileHash', hash))
|
|
||||||
.filter(item => item.libraryID == libraryID && !item.deleted && item.isTopLevelItem());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!items.length) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return items[0];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Zotero_Import_Folder { // eslint-disable-line camelcase,no-unused-vars
|
class Zotero_Import_Folder { // eslint-disable-line camelcase,no-unused-vars
|
||||||
|
@ -92,6 +81,8 @@ class Zotero_Import_Folder { // eslint-disable-line camelcase,no-unused-vars
|
||||||
}
|
}
|
||||||
|
|
||||||
async translate({ collections = [], linkFiles = false } = {}) {
|
async translate({ collections = [], linkFiles = false } = {}) {
|
||||||
|
// https://github.com/zotero/zotero/pull/2862#discussion_r1141324302
|
||||||
|
throw new Error('Folder import is not supported yet');
|
||||||
const libraryID = this.libraryID || Zotero.Libraries.userLibraryID;
|
const libraryID = this.libraryID || Zotero.Libraries.userLibraryID;
|
||||||
const files = await collectFilesRecursive(this.folder);
|
const files = await collectFilesRecursive(this.folder);
|
||||||
|
|
||||||
|
@ -201,7 +192,7 @@ class Zotero_Import_Folder { // eslint-disable-line camelcase,no-unused-vars
|
||||||
}
|
}
|
||||||
|
|
||||||
if (attachmentItem && !Zotero.RecognizePDF.canRecognize(attachmentItem)) {
|
if (attachmentItem && !Zotero.RecognizePDF.canRecognize(attachmentItem)) {
|
||||||
attachmentItem.setRelations({ 'zotero:fileHash': hash });
|
// @TODO: store hash of an item that cannot be recognized
|
||||||
await attachmentItem.saveTx({ skipSelect: true });
|
await attachmentItem.saveTx({ skipSelect: true });
|
||||||
attachmentItem = null;
|
attachmentItem = null;
|
||||||
}
|
}
|
||||||
|
@ -225,13 +216,13 @@ class Zotero_Import_Folder { // eslint-disable-line camelcase,no-unused-vars
|
||||||
if (status === Zotero.ProgressQueue.ROW_SUCCEEDED) {
|
if (status === Zotero.ProgressQueue.ROW_SUCCEEDED) {
|
||||||
const recognizedItem = updatedItem.parentItem;
|
const recognizedItem = updatedItem.parentItem;
|
||||||
if (recognizedItem && id in attachmentItemHashLookup) {
|
if (recognizedItem && id in attachmentItemHashLookup) {
|
||||||
recognizedItem.setRelations({ 'zotero:attachmentHash': attachmentItemHashLookup[id] });
|
// @TODO: Store hash of an attachment (attachmentItemHashLookup[id]) for this recognized item
|
||||||
itemsToSavePostRecognize.push(recognizedItem);
|
itemsToSavePostRecognize.push(recognizedItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (status === Zotero.ProgressQueue.ROW_FAILED) {
|
if (status === Zotero.ProgressQueue.ROW_FAILED) {
|
||||||
if (updatedItem && id in attachmentItemHashLookup) {
|
if (updatedItem && id in attachmentItemHashLookup) {
|
||||||
updatedItem.setRelations({ 'zotero:fileHash': attachmentItemHashLookup[id] });
|
// @TODO: Store hash of a file that failed to be recognized (attachmentItemHashLookup[id])
|
||||||
itemsToSavePostRecognize.push(updatedItem);
|
itemsToSavePostRecognize.push(updatedItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
<wizardpage pageid="page-start" data-header-label-id="import-where-from">
|
<wizardpage pageid="page-start" data-header-label-id="import-where-from">
|
||||||
<radiogroup id="import-source-group" align="start">
|
<radiogroup id="import-source-group" align="start">
|
||||||
<radio value="file" data-l10n-id="import-source-file" />
|
<radio value="file" data-l10n-id="import-source-file" />
|
||||||
<radio value="folder" data-l10n-id="import-source-folder" />
|
<!-- @TODO
|
||||||
|
<radio value="folder" data-l10n-id="import-source-folder" />
|
||||||
|
-->
|
||||||
<radio value="mendeleyOnline" data-l10n-id="import-source-online"
|
<radio value="mendeleyOnline" data-l10n-id="import-source-online"
|
||||||
data-l10n-args='{"targetApp": "Mendeley Reference Manager"}' />
|
data-l10n-args='{"targetApp": "Mendeley Reference Manager"}' />
|
||||||
</radiogroup>
|
</radiogroup>
|
||||||
|
|
|
@ -45,6 +45,8 @@ describe('Zotero_Import_Folder', function () {
|
||||||
|
|
||||||
describe('#import', () => {
|
describe('#import', () => {
|
||||||
it('should import PDFs from a folder and recreate structure without creating duplicates', async function () {
|
it('should import PDFs from a folder and recreate structure without creating duplicates', async function () {
|
||||||
|
// @TODO: re-enable when folder import is ready
|
||||||
|
this.skip();
|
||||||
this.timeout(30000);
|
this.timeout(30000);
|
||||||
if (Zotero.automatedTest) {
|
if (Zotero.automatedTest) {
|
||||||
this.skip();
|
this.skip();
|
||||||
|
@ -104,6 +106,8 @@ describe('Zotero_Import_Folder', function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should only import specified file types from a folder', async function () {
|
it('should only import specified file types from a folder', async function () {
|
||||||
|
// @TODO: re-enable when folder import is ready
|
||||||
|
this.skip();
|
||||||
this.timeout(30000);
|
this.timeout(30000);
|
||||||
if (Zotero.automatedTest) {
|
if (Zotero.automatedTest) {
|
||||||
this.skip();
|
this.skip();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue