1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-04-14 11:18:47 +02:00

Handle resource in enex files

This commit is contained in:
Laurent Cozic 2017-06-27 20:53:40 +00:00
parent 32b7207ea1
commit 2c713cdf7a
2 changed files with 32 additions and 20 deletions

View File

@ -65,37 +65,8 @@ async function fuzzyMatch(note) {
return null;
}
async function saveNoteToStorage(note, fuzzyMatching = false) {
note = Note.filter(note);
let existingNote = fuzzyMatching ? await fuzzyMatch(note) : null;
let result = {
noteCreated: false,
noteUpdated: false,
noteSkipped: false,
resourcesCreated: 0,
};
if (existingNote) {
let diff = BaseModel.diffObjects(existingNote, note);
delete diff.tags;
delete diff.resources;
delete diff.id;
// TODO: also save resources
if (!Object.getOwnPropertyNames(diff).length) {
result.noteSkipped = true;
// TODO: also save resources
return result;
}
diff.id = existingNote.id;
diff.type_ = existingNote.type_;
await Note.save(diff, { autoTimestamp: false })
result.noteUpdated = true;
} else {
async function saveNoteResources(note) {
let resourcesCreated = 0;
for (let i = 0; i < note.resources.length; i++) {
let resource = note.resources[i];
let toSave = Object.assign({}, resource);
@ -109,9 +80,42 @@ async function saveNoteToStorage(note, fuzzyMatching = false) {
await Resource.save(toSave, { isNew: true });
await filePutContents(Resource.fullPath(toSave), resource.data)
result.resourcesCreated++;
resourcesCreated++;
}
return resourcesCreated;
}
async function saveNoteToStorage(note, fuzzyMatching = false) {
note = Note.filter(note);
let existingNote = fuzzyMatching ? await fuzzyMatch(note) : null;
let result = {
noteCreated: false,
noteUpdated: false,
noteSkipped: false,
resourcesCreated: 0,
};
let resourcesCreated = await saveNoteResources(note);
result.resourcesCreated += resourcesCreated;
if (existingNote) {
let diff = BaseModel.diffObjects(existingNote, note);
delete diff.tags;
delete diff.resources;
delete diff.id;
if (!Object.getOwnPropertyNames(diff).length) {
result.noteSkipped = true;
return result;
}
diff.id = existingNote.id;
diff.type_ = existingNote.type_;
await Note.save(diff, { autoTimestamp: false })
result.noteUpdated = true;
} else {
await Note.save(note, {
isNew: true,
autoTimestamp: false,

View File

@ -365,7 +365,15 @@ commands.push({
if (folderTitle) {
folder = await Folder.loadByField('title', folderTitle);
if (!folder) return cmdError(this, _('Folder does not exists: "%s"', folderTitle), end);
if (!folder) {
let ok = await cmdPromptConfirm(this, _('Folder does not exists: "%s". Create it?', folderTitle))
if (!ok) {
end();
return;
}
folder = await Folder.save({ title: folderTitle });
}
} else {
folderTitle = filename(filePath);
folderTitle = _('Imported - %s', folderTitle);