diff --git a/node_modules/note.js b/node_modules/note.js index f8878302..85b0c7d8 100644 --- a/node_modules/note.js +++ b/node_modules/note.js @@ -369,32 +369,70 @@ var Note = { }); }); }, + + // sync时调用 // 是新的, 又是deleted的, 则删除之 deleteLocalNote: function(noteId, callback) { - db.notes.remove({NoteId: noteId}, function() { - callback && callback(); + var me = this; + this.getNote(noteId, function(note) { + if (!note) { + callback && callback(); + return; + } + db.notes.remove({NoteId: noteId}, function() { + me.deleteNoteAllOthers(note); + callback && callback(); + }); }); }, + + // 删除笔记的所有 + // 1) notes + // 2) noteHistory + // 3) imgages, attachs + deleteNoteAllOthers: function (note) { + if (!note) { + return; + } + var me = this; + // 删除图片 + me.deleteImages(note); + // 删除附件 + me.deleteAttachs(note.Attachs); + // 删除历史记录 + me.deleteNoteHistory(note.NoteId); + }, + // 彻底删除笔记, 如果有tags, 则需要更新tags's count deleteTrash: function(note, callback) { var me = this; if(note) { - note.LocalIsDelete = true; - note.IsDirty = true; - - // TODO 删除附件 - db.notes.update({_id: note._id}, {$set: {IsDirty: true, LocalIsDelete: true}}, function(err, n) { - if(n) { - // 删除附件 - me.deleteAttachs(note.Attachs); - // 删除历史记录 - me.deleteNoteHistory(note.NoteId); - // 如果有tags, 则重新更新tags' count - me.updateTagCount(note.Tags); - callback(true); - } - callback(false); - }); + // 如果是本地用户, 则直接删除 + if(User.isLocal) { + db.notes.remove({_id: note._id}, function(err, n) { + if(n) { + me.deleteNoteAllOthers(note); + // 如果有tags, 则重新更新tags' count + me.updateTagCount(note.Tags); + callback(true); + return; + } + callback(false); + }); + } + else { + note.LocalIsDelete = true; + note.IsDirty = true; + db.notes.update({_id: note._id}, {$set: {IsDirty: true, LocalIsDelete: true}}, function(err, n) { + if(n) { + me.deleteNoteAllOthers(note); + me.updateTagCount(note.Tags); + callback(true); + return; + } + callback(false); + }); + } } else { callback(false); } @@ -704,10 +742,7 @@ var Note = { if(err) { callback && callback(false); } else { - // 删除附件 - me.deleteAttachs(note.Attachs); - // 删除历史记录 - me.deleteNoteHistory(noteId); + me.deleteNoteAllOthers(note); Notebook.reCountNotebookNumberNotes(note.NotebookId); callback && callback(true); } @@ -1511,6 +1546,11 @@ var Note = { }); }, + // 删除图片 + // 删除图片有困难, 如果用户复制了笔记的内容贴到其它笔记中去了 + deleteImages: function (note) { + }, + // 删除附件, 在sync时 // 或者, 在删除笔记后 deleteAttachs: function(attachs) { @@ -1519,13 +1559,13 @@ var Note = { } var me = this; var fileBasePath = User.getCurUserAttachsPath(); - for(var i in attachs) { + for(var i = 0; i < attachs.length; ++i) { var path = attachs[i].Path; - if(path && path.indexOf(fileBasePath) > 0) { + if(path && path.indexOf(fileBasePath) >= 0) { try { fs.unlink(path); } catch(e) { - console.log(e); + console.error(e); } } } @@ -1718,6 +1758,7 @@ var Note = { } }); }, + exportPdf: function(noteId, callback) { var me = this; me.getServerNoteIdByNoteId(noteId, function(serverNoteId) {