reload notebook after synced

This commit is contained in:
life
2017-01-19 13:18:42 +08:00
parent 2f615069c2
commit b82afa1d24
5 changed files with 76 additions and 36 deletions

19
node_modules/notebook.js generated vendored
View File

@@ -442,12 +442,14 @@ var Notebook = {
}
}
// 处理添加的
// 处理添加的, 更新的, 这里前端统一重新渲染!!
var adds = notebookSyncInfo.adds;
if (!isEmpty(adds)) {
console.log(' has add notebook');
console.log(adds);
Web.addSyncNotebook(adds);
if (!isEmpty(adds) || !isEmpty(notebookSyncInfo.updates)) {
console.log(' has adds/updates notebook', adds, notebookSyncInfo.updates);
// Web.addSyncNotebook(adds);
// Web.updateSyncNotebook(notebookSyncInfo.updates);
Web.reloadNotebook();
}
if (!isEmpty(notebookSyncInfo.changeAdds)) {
@@ -456,13 +458,6 @@ var Notebook = {
Web.addChangeNotebook(notebookSyncInfo.changeAdds);
}
if (!isEmpty(notebookSyncInfo.updates)) {
console.log(' has updates notebook');
console.log(notebookSyncInfo.updates);
// 处理更新的
Web.updateSyncNotebook(notebookSyncInfo.updates);
}
if (!isEmpty(notebookSyncInfo.deletes)) {
// 处理删除的
Web.deleteSyncNotebook(notebookSyncInfo.deletes);

39
node_modules/sync.js generated vendored
View File

@@ -186,11 +186,13 @@ var Sync = {
Notebook.getNotebookByServerNotebookId(notebookId, function(notebookLocal) {
// 2.1 本地没有, 表示是新建
if(!notebookLocal) {
console.log('add addNotebookForce...')
console.log(' add addNotebookForce...', notebook.Title)
// TODO
Notebook.addNotebookForce(notebook, function(notebook) {
// me._syncInfo.notebook.adds.push(notebook);
me.fixSynced('notebook', 'adds', notebook);
// 要最后一起添加, 因为有层级关系
console.log(' ', notebook.Title)
me._syncInfo.notebook.adds.push(notebook);
// me.fixSynced('notebook', 'adds', notebook);
canCall();
});
} else {
@@ -209,8 +211,9 @@ var Sync = {
// 这里都是用服务器端的数据, 不处理冲突
Notebook.updateNotebookForce(notebook, notebookLocal, function(notebook) {
if(notebook) {
// me._syncInfo.notebook.updates.push(notebook);
me.fixSynced('notebook', 'updates', notebook);
// 前端一起渲染
me._syncInfo.notebook.updates.push(notebook);
// me.fixSynced('notebook', 'updates', notebook);
}
canCall();
})
@@ -226,7 +229,7 @@ var Sync = {
return;
}
Api.getSyncNotebooks(afterUsn, me._notebookMaxEntry, function(notebooks) {
console.log(' syncNotebook')
console.log(' syncNotebook', notebooks)
// console.log(notebooks);
if(Common.isOk(notebooks)) {
me._totalSyncNotebookNum += notebooks.length;
@@ -663,6 +666,15 @@ var Sync = {
}
},
// 前端重新渲染
fixSyncedNotebook: function () {
var me = this;
if(me.incrSyncStart) {
console.log(' fixSyncedNotebook')
Notebook.fixConflicts(me._syncInfo.notebook);
}
},
// 处理冲突
fixConflicts: function(callback) {
var me = this;
@@ -676,7 +688,7 @@ var Sync = {
// 不是fullSync
if(me.incrSyncStart) {
Notebook.fixConflicts(me._syncInfo.notebook);
// Notebook.fixConflicts(me._syncInfo.notebook);
Note.fixConflicts(me._syncInfo.note, function() {
// 避免无限循环, 别send changes了
@@ -773,9 +785,12 @@ var Sync = {
// 同步笔记本
me.syncNotebook(lastSyncUsn, function(ok) {
if(ok) {
me.fixSyncedNotebook();
console.log(' incr notebook ok', lastSyncUsn);
me.addSyncProcessStatus(10);
console.log(' incr note start');
// 同步笔记
me.syncNote(lastSyncUsn, function(ok) {
if(ok) {
@@ -864,11 +879,13 @@ var Sync = {
if(!newNotebook.NotebookId) {
if(newNotebook.Msg == 'conflict') {
// 没用, 前端不会处理的, 按理不会出现这种情况, 因为先sync
me._syncInfo.notebook.conflicts.push(newNotebook);
// me._syncInfo.notebook.conflicts.push(newNotebook);
me.fixSynced('notebook', 'conflicts', newNotebook);
} else if(newNotebook.Msg == 'notExists') {
// 服务器端没有, 那么要作为添加
// 可能服务器上已删除, 此时应该要作为添加而不是更新
me._syncInfo.notebook.changeNeedAdds.push(notebook);
// me.fixSynced('notebook', 'changeNeedAdds', notebook);
}
// me.checkNeedIncSyncAgain(newNotebook.Usn);
@@ -877,15 +894,17 @@ var Sync = {
else {
// 更新
// TODO 后端updateNotebook只要传Usn回来即可
console.log("返回来的notebook" + newNotebook.Title)
console.log(" 返回来的notebook" + newNotebook.Title)
Notebook.updateNotebookForceForSendChange(notebook.NotebookId, newNotebook, function() {
if(notebook.LocalIsNew) {
// 没用
me._syncInfo.notebook.changeAdds.push(newNotebook);
// me.fixSynced('notebook', 'changeAdds', newNotebook);
} else {
// 没用
me._syncInfo.notebook.updates.push(newNotebook);
// me._syncInfo.notebook.updates.push(newNotebook);
me.fixSynced('notebook', 'updates', newNotebook);
}
// 这里才cb(), 因为先添加父, 再添加子

4
node_modules/web.js generated vendored
View File

@@ -39,6 +39,10 @@ var Web = {
me.Tag = tag;
},
reloadNotebook: function () {
this.Notebook.reload();
},
addSyncNotebook: function(notebooks) {
var me = this;
me.Notebook.addSync(notebooks);

View File

@@ -382,7 +382,8 @@ Notebook.curNotebookIsTrashOrAll = function() {
Notebook.curNotebookIsTrash = function() {
return Notebook.curNotebookId == Notebook.trashNotebookId;
};
Notebook.renderNotebooks = function(notebooks) {
// reload 是否再一次load
Notebook.renderNotebooks = function(notebooks, reload) {
var self = this;
if(!notebooks || typeof notebooks != "object" || notebooks.length < 0) {
@@ -416,12 +417,17 @@ Notebook.renderNotebooks = function(notebooks) {
Notebook.curNotebookId = notebooks[0].NotebookId;
self.cacheAllNotebooks(notebooks);
}
// 渲染nav
Notebook.renderNav();
// 渲染第一个notebook作为当前
Notebook.changeNotebookNavForNewNote(notebooks[0].NotebookId);
if (!reload) {
// 渲染nav
Notebook.renderNav();
// 渲染第一个notebook作为当前
Notebook.changeNotebookNavForNewNote(notebooks[0].NotebookId);
}
else {
console.log(' reload notebook ok');
}
}
Notebook.cacheAllNotebooks = function(notebooks) {
@@ -1111,27 +1117,43 @@ Notebook.fixSyncConflict = function(note, newNote) {
*/
};
// 本地 -> 添加到服务器上的
// 不用做任何操作
Notebook.addChange = function(notebooks) {
return;
};
// 服务器adds/updates后, 一起渲染
Notebook.reload = function() {
var me = this;
var curNotebookId = Notebook.curNotebookId;
NotebookService.getNotebooks(function(notebooks) {
me.renderNotebooks(notebooks, true);
// 定位到某个笔记本下
Notebook.expandNotebookTo(curNotebookId);
});
};
// 弃用, 一起渲染
// notebooks
// <- server 服务器端添加过来的
// ? 如果是子先添加了, 再父添加呢?
Notebook.addSync = function(notebooks) {
var me = this;
if(isEmpty(notebooks)) {
return;
}
console.log('web add sync notebook');
for(var i in notebooks) {
for(var i = 0; i < notebooks.length; ++i) {
var notebook = notebooks[i];
Notebook.setCache(notebook);
me.tree.addNodes(me.tree.getNodeByTId(notebook.ParentNotebookId),
{Title: notebook.Title, NotebookId: notebook.NotebookId, IsNew: false}, // IsNew: false啊!!!
true, true, false);
}
}
// 本地 -> 添加到服务器上的
// 不用做任何操作
Notebook.addChange = function(notebooks) {
return;
};
// 弃用, 一起渲染
// 更新
// 不对移动做修改, 只修改标题
Notebook.updateSync = function(notebooks) {

View File

@@ -1489,7 +1489,7 @@ function initPage(initedCallback) {
// 标签
TagService.getTags(function(tags) {
Tag.nav.setTags(tags);
Tag.nav.setTags(tags);
ok();
});