mirror of
https://github.com/leanote/desktop-app.git
synced 2026-01-14 07:04:21 +08:00
fix note sync; add marker to mark dirty & sync error note and
This commit is contained in:
4
node_modules/api.js
generated
vendored
4
node_modules/api.js
generated
vendored
@@ -571,6 +571,10 @@ var Api = {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// for test
|
||||
// data.FileDatas = null;
|
||||
|
||||
needle.post(me.getUrl('note/updateNote'), data, {multipart: needMultiple}, function(err, resp) {
|
||||
// console.log('update note ret------------------');
|
||||
me.checkError(err, resp);
|
||||
|
||||
73
node_modules/note.js
generated
vendored
73
node_modules/note.js
generated
vendored
@@ -616,7 +616,7 @@ var Note = {
|
||||
var me = this;
|
||||
// 修复内容, 修改图片, 附件链接为本地链接
|
||||
content = me.fixNoteContent(content);
|
||||
db.notes.update({NoteId: noteId}, { $set: {Content: content, InitSync: false, IsContentDirty: false} }, {}, function (err, numReplaced) {
|
||||
db.notes.update({NoteId: noteId}, { $set: {Err: null, Content: content, InitSync: false, IsContentDirty: false} }, {}, function (err, numReplaced) {
|
||||
if(err) {
|
||||
log(err);
|
||||
callback && callback(false);
|
||||
@@ -965,6 +965,7 @@ var Note = {
|
||||
// 不要服务器上的
|
||||
delete note['UpdatedTime'];
|
||||
delete note['CreatedTime'];
|
||||
note.Err = null;
|
||||
|
||||
db.notes.update({NoteId: note.NoteId}, {$set: note}, {}, function (err, cnt) { // Callback is optional
|
||||
// console.log('re:');
|
||||
@@ -1329,15 +1330,6 @@ var Note = {
|
||||
// 因为在处理冲突的时候有些成为更新了, 所以必须在此之后调用
|
||||
// console.log('has updates...');
|
||||
// console.log(noteSyncInfo.updates);
|
||||
|
||||
// 处理更新的
|
||||
if (!Common.isEmpty(noteSyncInfo.updates)) {
|
||||
Web.updateSyncNote(noteSyncInfo.updates);
|
||||
}
|
||||
|
||||
if (!Common.isEmpty(noteSyncInfo.changeUpdates)) {
|
||||
Web.updateChangeUpdates(noteSyncInfo.changeUpdates);
|
||||
}
|
||||
});
|
||||
|
||||
// 发送改变的冲突
|
||||
@@ -1378,6 +1370,36 @@ var Note = {
|
||||
})(i);
|
||||
}
|
||||
|
||||
// errors
|
||||
Web.updateErrors(noteSyncInfo.errors);
|
||||
|
||||
// 1. pull
|
||||
// 更新的
|
||||
if (!Common.isEmpty(noteSyncInfo.updates)) {
|
||||
Web.updateSyncNote(noteSyncInfo.updates);
|
||||
}
|
||||
// 处理添加的
|
||||
var addNotes = noteSyncInfo.adds;
|
||||
if (!isEmpty(addNotes)) {
|
||||
console.log(' has add note...', addNotes);
|
||||
Web.addSyncNote(addNotes);
|
||||
}
|
||||
// 处理删除的
|
||||
Web.deleteSyncNote(noteSyncInfo.deletes);
|
||||
|
||||
|
||||
// 2. push
|
||||
|
||||
// 处理添加的
|
||||
if (!Common.isEmpty(noteSyncInfo.changeAdds)) {
|
||||
Web.updateChangeAdds(noteSyncInfo.changeAdds);
|
||||
}
|
||||
|
||||
// 处理更新的
|
||||
if (!Common.isEmpty(noteSyncInfo.changeUpdates)) {
|
||||
Web.updateChangeUpdates(noteSyncInfo.changeUpdates);
|
||||
}
|
||||
|
||||
// 服务器没有, 但是是发送更新的, 所以需要作为添加以后再send changes
|
||||
if(noteSyncInfo.changeNeedAdds) {
|
||||
var needAddNotes = noteSyncInfo.changeNeedAdds;
|
||||
@@ -1388,16 +1410,6 @@ var Note = {
|
||||
}
|
||||
}
|
||||
|
||||
// 处理添加的
|
||||
var addNotes = noteSyncInfo.adds;
|
||||
if (!isEmpty(addNotes)) {
|
||||
console.log(' has add note...', addNotes);
|
||||
Web.addSyncNote(addNotes);
|
||||
}
|
||||
|
||||
// 处理删除的
|
||||
Web.deleteSyncNote(noteSyncInfo.deletes);
|
||||
|
||||
// 为了博客
|
||||
var changeAdds = noteSyncInfo.changeAdds || [];
|
||||
var changeUpdates = noteSyncInfo.changeUpdates || [];
|
||||
@@ -1847,6 +1859,27 @@ var Note = {
|
||||
Api.exportPdf(serverNoteId, callback);
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 设置笔记同步错误信息
|
||||
setError: function (noteId, err, ret, callback) {
|
||||
var me = this;
|
||||
var Err = {};
|
||||
try {
|
||||
if (err && typeof err == 'object') {
|
||||
Err.err = err.toString();
|
||||
}
|
||||
} catch(e) {
|
||||
}
|
||||
if (typeof ret == 'object' && 'Msg' in ret) {
|
||||
Err.msg = ret.Msg;
|
||||
} else {
|
||||
Err.msg = ret + '';
|
||||
}
|
||||
|
||||
db.notes.update({NoteId: noteId}, { $set: {Err: msg} }, {}, function (err, numReplaced) {
|
||||
return callback && callback(true);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
27
node_modules/sync.js
generated
vendored
27
node_modules/sync.js
generated
vendored
@@ -360,8 +360,8 @@ var Sync = {
|
||||
// 表示没有获取到content, 则只能标志为冲突了
|
||||
// 内容不一样, 也标为冲突
|
||||
if (content === false || content != noteLocal.Content) {
|
||||
// me._syncInfo.note.conflicts.push({server: note, local: noteLocal});
|
||||
me.fixSynced('note', 'conflicts', {server: note, local: noteLocal});
|
||||
me._syncInfo.note.conflicts.push({server: note, local: noteLocal});
|
||||
// me.fixSynced('note', 'conflicts', {server: note, local: noteLocal});
|
||||
}
|
||||
// 否则, 内容一样, 标为不冲突, 需要更新
|
||||
else {
|
||||
@@ -375,7 +375,6 @@ var Sync = {
|
||||
}
|
||||
canCall();
|
||||
}, false);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
@@ -659,7 +658,6 @@ var Sync = {
|
||||
if (mainType == 'notebook') {
|
||||
Notebook.fixConflicts(o);
|
||||
} else if (mainType == 'note') {
|
||||
console.error('........');
|
||||
Note.fixConflicts(o);
|
||||
} else {
|
||||
Web.addOrDeleteTagFromSync(o);
|
||||
@@ -737,6 +735,7 @@ var Sync = {
|
||||
setSyncFinished: function() {
|
||||
var me = this;
|
||||
me.incrSyncStart = false;
|
||||
Web.syncProgress(0);
|
||||
},
|
||||
incrSync: function(again) {
|
||||
if (User.isLocal()) {
|
||||
@@ -985,7 +984,9 @@ var Sync = {
|
||||
newNote.NoteId = note.NoteId;
|
||||
|
||||
newNote.IsBlog = note.IsBlog; // 前端要用
|
||||
me._syncInfo.note.changeAdds.push(newNote);
|
||||
|
||||
// me._syncInfo.note.changeAdds.push(newNote);
|
||||
me.fixSynced('note', 'changeAdds', newNote);
|
||||
|
||||
Note.updateNoteForceForSendChange(newNote, true);
|
||||
|
||||
@@ -1052,21 +1053,26 @@ var Sync = {
|
||||
});
|
||||
}
|
||||
else if(ret.Msg == 'notExists') {
|
||||
Note.setError(note.NoteId, err, ret);
|
||||
me.fixSynced('note', 'errors', {err: err, ret: ret, note: note});
|
||||
// me._syncInfo.note.errors.push({err: err, ret: ret, note: note});
|
||||
// 可能服务器上已删除, 此时应该要作为添加而不是更新
|
||||
me._syncInfo.note.changeNeedAdds.push(note);
|
||||
// me._syncInfo.note.changeNeedAdds.push(note);
|
||||
cb();
|
||||
}
|
||||
// 其它错误, 不加, notImage 导致不能终止
|
||||
else {
|
||||
console.error(' updateNote error', err);
|
||||
me._syncInfo.note.errors.push({err: err, ret: ret, note: note});
|
||||
Note.setError(note.NoteId, err, ret);
|
||||
console.error(' updateNote error', err, ret);
|
||||
me.fixSynced('note', 'errors', {err: err, ret: ret, note: note});
|
||||
cb();
|
||||
}
|
||||
}
|
||||
// 更新失败了, 服务器返回异常
|
||||
else {
|
||||
Note.setError(note.NoteId, err, ret);
|
||||
console.error(' updateNote error', err);
|
||||
me._syncInfo.note.errors.push({err: err, ret: ret, note: note});
|
||||
me.fixSynced('note', 'errors', {err: err, ret: ret, note: note});
|
||||
cb();
|
||||
}
|
||||
}
|
||||
@@ -1076,7 +1082,8 @@ var Sync = {
|
||||
ret.ServerNoteId = ret.NoteId;
|
||||
ret.NoteId = note.NoteId;
|
||||
Note.updateNoteForceForSendChange(ret, false);
|
||||
me._syncInfo.note.changeUpdates.push(note);
|
||||
// me._syncInfo.note.changeUpdates.push(note);
|
||||
me.fixSynced('note', 'changeUpdates', note);
|
||||
|
||||
me.checkNeedIncSyncAgain(ret.Usn);
|
||||
|
||||
|
||||
8
node_modules/web.js
generated
vendored
8
node_modules/web.js
generated
vendored
@@ -78,10 +78,18 @@ var Web = {
|
||||
var me = this;
|
||||
me.Note.updateSync(notes);
|
||||
},
|
||||
updateErrors: function (notes) {
|
||||
var me = this;
|
||||
me.Note.updateErrors(notes);
|
||||
},
|
||||
updateChangeUpdates: function (notes) {
|
||||
var me = this;
|
||||
me.Note.updateChangeUpdates(notes);
|
||||
},
|
||||
updateChangeAdds: function (notes) {
|
||||
var me = this;
|
||||
me.Note.updateChangeAdds(notes);
|
||||
},
|
||||
deleteSyncNote: function(notes) {
|
||||
var me = this;
|
||||
me.Note.deleteSync(notes);
|
||||
|
||||
Reference in New Issue
Block a user