mirror of
https://github.com/leanote/desktop-app.git
synced 2025-10-16 08:01:53 +00:00
send changes tag ok
This commit is contained in:
43
node_modules/api.js
generated
vendored
43
node_modules/api.js
generated
vendored
@@ -2,6 +2,7 @@ var db = require('db');
|
|||||||
var async = require('async');
|
var async = require('async');
|
||||||
var User = require('user');
|
var User = require('user');
|
||||||
var Note = require('note');
|
var Note = require('note');
|
||||||
|
var Tag = require('tag');
|
||||||
var Notebook = require('notebook');
|
var Notebook = require('notebook');
|
||||||
var Common = require('common');
|
var Common = require('common');
|
||||||
var Tags = db.tags;
|
var Tags = db.tags;
|
||||||
@@ -494,6 +495,48 @@ var Api = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 添加标签
|
||||||
|
addTag: function(title, callback) {
|
||||||
|
var me = this;
|
||||||
|
needle.post(me.getUrl('tag/addTag'), {tag: title}, {}, function(err, resp) {
|
||||||
|
if(err) {
|
||||||
|
return callback && callback(false);
|
||||||
|
}
|
||||||
|
var ret = resp.body;
|
||||||
|
log('add tag ret ==========');
|
||||||
|
log(ret);
|
||||||
|
if(Common.isOk(ret)) {
|
||||||
|
// 以后不要再发了
|
||||||
|
Tag.setNotDirty(title);
|
||||||
|
callback && callback(ret);
|
||||||
|
} else {
|
||||||
|
callback && callback(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 删除标签
|
||||||
|
deleteTag: function(tag, callback) {
|
||||||
|
var me = this;
|
||||||
|
needle.post(me.getUrl('tag/deleteTag'), data, {tag: tag.Tag, usn: tag.Usn}, function(err, resp) {
|
||||||
|
if(err) {
|
||||||
|
return callback && callback(false);
|
||||||
|
}
|
||||||
|
var ret = resp.body;
|
||||||
|
log('delete tag ret ===========');
|
||||||
|
log(ret);
|
||||||
|
if(Common.isOk(ret)) {
|
||||||
|
// 以后不要再发了
|
||||||
|
Tag.setNotDirty(tag.Tag);
|
||||||
|
callback && callback(ret);
|
||||||
|
} else {
|
||||||
|
// 出错了也不要发了, 万一是网络原因呢?
|
||||||
|
if(ret.Msg == 'conflict') {
|
||||||
|
Tag.setNotDirty(tag.Tag);
|
||||||
|
}
|
||||||
|
callback && callback(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
test: function() {
|
test: function() {
|
||||||
log("??");
|
log("??");
|
||||||
|
41
node_modules/sync.js
generated
vendored
41
node_modules/sync.js
generated
vendored
@@ -404,6 +404,8 @@ var Sync = {
|
|||||||
}, true);
|
}, true);
|
||||||
} else {
|
} else {
|
||||||
// 本地有, 不用操作
|
// 本地有, 不用操作
|
||||||
|
Tag.setNotDirty(tag.Tag);
|
||||||
|
return canCall();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})(tag);
|
})(tag);
|
||||||
@@ -632,6 +634,9 @@ var Sync = {
|
|||||||
} else {
|
} else {
|
||||||
// newNote.Usn > User.getLastSyncUsn + 1, 表示服务器端在本次同步后, sendChanges之前有更新
|
// newNote.Usn > User.getLastSyncUsn + 1, 表示服务器端在本次同步后, sendChanges之前有更新
|
||||||
// 那么, 还需要来一次incrSync, 之后
|
// 那么, 还需要来一次incrSync, 之后
|
||||||
|
if(User.getLastSyncUsn() > usn) { // 添加标签时如果标签已经存在, 则返回的是旧的
|
||||||
|
return;
|
||||||
|
}
|
||||||
me._needIncrSyncAgain = true;
|
me._needIncrSyncAgain = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -758,7 +763,42 @@ var Sync = {
|
|||||||
// 发送标签改变
|
// 发送标签改变
|
||||||
sendTagChanges: function(callback) {
|
sendTagChanges: function(callback) {
|
||||||
log('send note changes');
|
log('send note changes');
|
||||||
|
var me = this;
|
||||||
|
// 获取所有笔记本的更改
|
||||||
|
Tag.getDirtyTags(function(tags) {
|
||||||
|
log('dirty tags');
|
||||||
|
log(tags);
|
||||||
|
if(!tags) {
|
||||||
callback && callback();
|
callback && callback();
|
||||||
|
} else {
|
||||||
|
// 调api, 所有执行后再callback();
|
||||||
|
// 一个一个同步执行, 因为要有
|
||||||
|
async.eachSeries(tags, function(tag, cb) {
|
||||||
|
if(tag.IsDirty) {
|
||||||
|
// 添加
|
||||||
|
Api.addTag(tag.Tag, function(newTag) {
|
||||||
|
if(!Common.isOk(newTag)) {
|
||||||
|
return cb();
|
||||||
|
}
|
||||||
|
me._syncInfo.note.changeAdds.push(newTag);
|
||||||
|
me.checkNeedIncSyncAgain(newTag.Usn);
|
||||||
|
cb();
|
||||||
|
});
|
||||||
|
} else if(note.LocalIsDelete) {
|
||||||
|
// 删除, 不管它了
|
||||||
|
Api.deleteTag(tag, function(ret) {
|
||||||
|
if(Common.isOk(ret)) {
|
||||||
|
me.checkNeedIncSyncAgain(ret.Usn);
|
||||||
|
}
|
||||||
|
return cb();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
}, function() {
|
||||||
|
callback && callback();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
sendChanges: function() {
|
sendChanges: function() {
|
||||||
@@ -766,7 +806,6 @@ var Sync = {
|
|||||||
log('send changes before...')
|
log('send changes before...')
|
||||||
// 先处理冲突, 可以同时进行
|
// 先处理冲突, 可以同时进行
|
||||||
me.fixConflicts(function() {
|
me.fixConflicts(function() {
|
||||||
return;
|
|
||||||
// send changes
|
// send changes
|
||||||
log('send changes');
|
log('send changes');
|
||||||
me._initSyncInfo(); // 重新初始化[]
|
me._initSyncInfo(); // 重新初始化[]
|
||||||
|
22
node_modules/tag.js
generated
vendored
22
node_modules/tag.js
generated
vendored
@@ -84,14 +84,34 @@ var Tag = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
getTag: function(title, callback) {
|
getTag: function(title, callback) {
|
||||||
userId = User.getCurActiveUserId();
|
var userId = User.getCurActiveUserId();
|
||||||
Tags.findOne({UserId: userId, Tag: title}, function(err, tag) {
|
Tags.findOne({UserId: userId, Tag: title}, function(err, tag) {
|
||||||
if(err || !tag) {
|
if(err || !tag) {
|
||||||
return callback && callback(false);
|
return callback && callback(false);
|
||||||
}
|
}
|
||||||
callback && callback(tag);
|
callback && callback(tag);
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 服务器上更新过来, 已经存在了
|
||||||
|
setNotDirty: function(title) {
|
||||||
|
var me = this;
|
||||||
|
var userId = User.getCurActiveUserId();
|
||||||
|
Tags.update({UserId: userId, Title: title}, {$set: {IsDirty: false, UpdatedTime: new Date()}}, function() {
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// send changes to server
|
||||||
|
getDirtyTags: function(callback) {
|
||||||
|
var me = this;
|
||||||
|
userId = User.getCurActiveUserId();
|
||||||
|
Tags.find({UserId: userId, IsDirty: true}, function(err, tags) {
|
||||||
|
if(err || !tags) {
|
||||||
|
return callback && callback(false);
|
||||||
}
|
}
|
||||||
|
callback && callback(tags);
|
||||||
|
});
|
||||||
|
},
|
||||||
/*
|
/*
|
||||||
// 添加多个标签
|
// 添加多个标签
|
||||||
addTags: function(titles) {
|
addTags: function(titles) {
|
||||||
|
Reference in New Issue
Block a user