mirror of
https://github.com/leanote/desktop-app.git
synced 2026-01-14 07:04:21 +08:00
sync 问题 leanote#103, 点击sync图标不sync问题, 因为当前没有笔记, 不能保存
This commit is contained in:
1
src/node_modules/api.js
generated
vendored
1
src/node_modules/api.js
generated
vendored
@@ -390,7 +390,6 @@ var Api = {
|
||||
console.log(data);
|
||||
needle.post(me.getUrl('notebook/addNotebook'), data, {}, function(err, resp) {
|
||||
me.checkError(err, resp);
|
||||
|
||||
if(err) {
|
||||
return callback(false);
|
||||
}
|
||||
|
||||
17
src/node_modules/note.js
generated
vendored
17
src/node_modules/note.js
generated
vendored
@@ -304,6 +304,12 @@ var Note = {
|
||||
});
|
||||
});
|
||||
},
|
||||
// 是新的, 又是deleted的, 则删除之
|
||||
deleteLocalNote: function(noteId, callback) {
|
||||
Notes.remove({NoteId: noteId}, function() {
|
||||
callback && callback();
|
||||
});
|
||||
},
|
||||
// 彻底删除笔记, 如果有tags, 则需要更新tags's count
|
||||
deleteTrash: function(noteId, callback) {
|
||||
var me = this;
|
||||
@@ -325,15 +331,15 @@ var Note = {
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
Notes.update({NoteId: noteId}, {$set: {IsDirty: true, LocalIsDelete: true}}, function(err, n) {
|
||||
if(err || !n) {
|
||||
callback(false);
|
||||
} else {
|
||||
|
||||
|
||||
callback(true);
|
||||
}
|
||||
});
|
||||
*/
|
||||
},
|
||||
|
||||
// 移动note
|
||||
@@ -624,11 +630,14 @@ var Note = {
|
||||
var me = this;
|
||||
note.InitSync = true; // 刚同步完, 表示content, images, attach没有同步
|
||||
note.IsDirty = false;
|
||||
note.LocalIsDelete = false;
|
||||
note.IsTrash = false;
|
||||
|
||||
note.ServerNoteId = note.NoteId;
|
||||
note.NoteId = Common.objectId();
|
||||
note.LocalIsDelete = false;
|
||||
|
||||
console.error('add note force' + note.Title + Common.goNowToDate(note.CreatedTime));
|
||||
|
||||
console.error('add note' + note.Title + Common.goNowToDate(note.CreatedTime));
|
||||
note.CreatedTime = Common.goNowToDate(note.CreatedTime);
|
||||
note.UpdatedTime = Common.goNowToDate(note.UpdatedTime);
|
||||
|
||||
|
||||
20
src/node_modules/notebook.js
generated
vendored
20
src/node_modules/notebook.js
generated
vendored
@@ -112,6 +112,7 @@ var Notebook = {
|
||||
},
|
||||
|
||||
// 新建笔记本
|
||||
// 这里, 之前有个大BUG, pull过来后添加到tree上设为IsNew, 导致添加大量重复的notebook
|
||||
addNotebook: function(notebookId, title, parentNotebookId, callback) {
|
||||
var notebook = {
|
||||
Title: title,
|
||||
@@ -135,6 +136,7 @@ var Notebook = {
|
||||
});
|
||||
},
|
||||
|
||||
// 修改笔记本标题
|
||||
updateNotebookTitle: function(notebookId, title, callback) {
|
||||
NB.update({NotebookId: notebookId},
|
||||
{$set:
|
||||
@@ -200,6 +202,13 @@ var Notebook = {
|
||||
*/
|
||||
},
|
||||
|
||||
// 删除本地的笔记本, 是New又是Delete
|
||||
deleteLocalNotebook: function(notebookId, callback) {
|
||||
NB.remove({NotebookId: notebookId}, function(err, n) {
|
||||
callback && callback();
|
||||
});
|
||||
},
|
||||
|
||||
// addNote, 删除note, 移动note
|
||||
// 重新统计笔记本的笔记数据
|
||||
reCountNotebookNumberNotes: function(notebookId) {
|
||||
@@ -298,6 +307,10 @@ var Notebook = {
|
||||
notebook.CreatedTime = Common.goNowToDate(notebook.CreatedTime);
|
||||
notebook.UpdatedTime = Common.goNowToDate(notebook.UpdatedTime);
|
||||
|
||||
notebook.IsDirty = false;
|
||||
notebook.LocalIsNew = false;
|
||||
notebook.LocalIsDelete = false;
|
||||
|
||||
NB.insert(notebook, function (err, newDoc) { // Callback is optional
|
||||
if(err) {
|
||||
console.log(err);
|
||||
@@ -342,6 +355,7 @@ var Notebook = {
|
||||
// 更新笔记本, NotebookId可能也要更改
|
||||
// notebook是服务器传过来的
|
||||
updateNotebookForceForSendChange: function(notebookId, notebook, callback) {
|
||||
// console.log('updateNotebookForceForSendChange notebook是服务器传过来的');
|
||||
var me = this;
|
||||
notebook.IsDirty = false;
|
||||
notebook.LocalIsNew = false;
|
||||
@@ -350,7 +364,11 @@ var Notebook = {
|
||||
|
||||
me.getNotebookIdByServerNotebookId(notebook.ParentNotebookId, function(parentNotebookId) {
|
||||
notebook.ParentNotebookId = parentNotebookId;
|
||||
NB.update({NotebookId: notebookId}, {$set: notebook}, {}, function (err, n) {
|
||||
// console.log(notebook2);
|
||||
// notebook2.Title += " H-";
|
||||
// multi, 因为历史原因, 导致大量重复notebookId的元素
|
||||
NB.update({NotebookId: notebookId}, {$set: notebook}, {multi: true}, function (err, n) {
|
||||
// console.log('updateNotebookForceForSendChange end' + notebookId + ' ' + n);
|
||||
if(err) {
|
||||
console.log(err);
|
||||
callback && callback(false);
|
||||
|
||||
62
src/node_modules/sync.js
generated
vendored
62
src/node_modules/sync.js
generated
vendored
@@ -185,7 +185,7 @@ var Sync = {
|
||||
Notebook.getNotebookByServerNotebookId(notebookId, function(notebookLocal) {
|
||||
// 2.1 本地没有, 表示是新建
|
||||
if(!notebookLocal) {
|
||||
console.log('add: ...')
|
||||
console.log('add addNotebookForce...')
|
||||
// TODO
|
||||
Notebook.addNotebookForce(notebook, function(notebook) {
|
||||
me._syncInfo.notebook.adds.push(notebook);
|
||||
@@ -697,6 +697,15 @@ var Sync = {
|
||||
// 一个一个同步执行, 因为要有
|
||||
async.eachSeries(notebooks, function(notebook, cb) {
|
||||
var api = Api.updateNotebook;
|
||||
|
||||
// 本地既是新的, 又是删除的, 删除本地的, 不要同步
|
||||
// 5/4
|
||||
if(notebook.LocalIsNew && notebook.LocalIsDelete) {
|
||||
console.log('笔记本既是新的, 又是删除的, 不同步, 直接删除本地的');
|
||||
Notebook.deleteLocalNotebook(notebook.NotebookId);
|
||||
return cb();
|
||||
}
|
||||
|
||||
if(notebook.LocalIsNew) {
|
||||
api = Api.addNotebook;
|
||||
} else if(notebook.LocalIsDelete) {
|
||||
@@ -793,27 +802,43 @@ var Sync = {
|
||||
// 调api, 所有执行后再callback();
|
||||
// 一个一个同步执行, 因为要有
|
||||
async.eachSeries(notes, function(note, cb) {
|
||||
if(note.LocalIsNew && !note.IsTrash) { // 是新的, 且不是trash
|
||||
// 添加, newNote的返回不会很多值(server端)
|
||||
Api.addNote(note, function(newNote) {
|
||||
if(!Common.isOk(newNote)) {
|
||||
return cb();
|
||||
}
|
||||
if(note.LocalIsNew) {
|
||||
// 是新的, 且不是trash和删除的
|
||||
if(!note.IsTrash && !note.LocalIsDelete) {
|
||||
// 添加, newNote的返回不会很多值(server端)
|
||||
Api.addNote(note, function(newNote) {
|
||||
if(!Common.isOk(newNote)) {
|
||||
return cb();
|
||||
}
|
||||
|
||||
newNote.ServerNoteId = newNote.NoteId;
|
||||
newNote.NoteId = note.NoteId;
|
||||
newNote.ServerNoteId = newNote.NoteId;
|
||||
newNote.NoteId = note.NoteId;
|
||||
|
||||
newNote.IsBlog = note.IsBlog; // 前端要用
|
||||
me._syncInfo.note.changeAdds.push(newNote);
|
||||
newNote.IsBlog = note.IsBlog; // 前端要用
|
||||
me._syncInfo.note.changeAdds.push(newNote);
|
||||
|
||||
Note.updateNoteForceForSendChange(newNote, true);
|
||||
Note.updateNoteForceForSendChange(newNote, true);
|
||||
|
||||
// 这里
|
||||
me.checkNeedIncSyncAgain(newNote.Usn);
|
||||
// 这里
|
||||
me.checkNeedIncSyncAgain(newNote.Usn);
|
||||
|
||||
cb();
|
||||
});
|
||||
} else if(note.LocalIsDelete) {
|
||||
cb();
|
||||
});
|
||||
}
|
||||
// 5/4
|
||||
// 本地已经删除了, 则彻底删除之
|
||||
else if(note.LocalIsDelete) {
|
||||
console.log('既是新的, 又是删除的, 则删除笔记的');
|
||||
Note.deleteLocalNote(note.NoteId);
|
||||
return cb();
|
||||
}
|
||||
// isTrash, 不同步, 不删除
|
||||
else {
|
||||
console.log('既是新的, 又是trash的, 不要同步');
|
||||
return cb();
|
||||
}
|
||||
}
|
||||
else if(note.LocalIsDelete) {
|
||||
// 删除, 不管它了
|
||||
// TODO
|
||||
Api.deleteTrash(note, function(ret) {
|
||||
@@ -822,7 +847,8 @@ var Sync = {
|
||||
}
|
||||
return cb();
|
||||
});
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
// 更新
|
||||
Api.updateNote(note, function(ret) {
|
||||
if(!Common.isOk(ret)) {
|
||||
|
||||
1
src/node_modules/web.js
generated
vendored
1
src/node_modules/web.js
generated
vendored
@@ -153,7 +153,6 @@ var Web = {
|
||||
updateNotebookNumberNotes: function(notebookId, count) {
|
||||
var me = this;
|
||||
me.Notebook.updateNotebookNumberNotes(notebookId, count);
|
||||
|
||||
}
|
||||
};
|
||||
module.exports = Web;
|
||||
|
||||
Reference in New Issue
Block a user