mirror of
https://github.com/leanote/desktop-app.git
synced 2025-10-15 23:55:50 +00:00
35
node_modules/user.js
generated
vendored
35
node_modules/user.js
generated
vendored
@@ -153,21 +153,24 @@ User = {
|
|||||||
},
|
},
|
||||||
// 不同host的userId可能一样, 潜在的bug
|
// 不同host的userId可能一样, 潜在的bug
|
||||||
saveCurUser: function(user, callback) {
|
saveCurUser: function(user, callback) {
|
||||||
|
// 设置其它用户为 not active
|
||||||
|
db.users.update({_id: {$ne: user.UserId}}, {$set: {IsActive: false}}, {multi: true}, function(err, n) {
|
||||||
// 当前用户是否在数据库中
|
// 当前用户是否在数据库中
|
||||||
db.users.count({_id: user.UserId}, function(err, count) {
|
db.users.count({_id: user.UserId}, function(err, count) {
|
||||||
if(err || count == 0) {
|
if(err || count == 0) {
|
||||||
// 添加一个
|
// 添加一个
|
||||||
user['_id'] = user.UserId;
|
user['_id'] = user.UserId;
|
||||||
user['IsActive'] = true;
|
user['IsActive'] = true;
|
||||||
|
user['LastLoginTime'] = new Date();
|
||||||
db.users.insert(user, function(err, doc) {
|
db.users.insert(user, function(err, doc) {
|
||||||
log(err);
|
callback && callback(true);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
user.IsActive = true;
|
user.IsActive = true;
|
||||||
|
user.LastLoginTime = new Date();
|
||||||
delete user['Ok'];
|
delete user['Ok'];
|
||||||
db.users.update({_id: user.UserId}, {$set: user}, function(err, cnt) {
|
db.users.update({_id: user.UserId}, {$set: user}, function(err, cnt) {
|
||||||
if(err || cnt == 0) {
|
if(err || cnt == 0) {
|
||||||
log(err);
|
|
||||||
callback && callback(false);
|
callback && callback(false);
|
||||||
} else {
|
} else {
|
||||||
callback && callback(true);
|
callback && callback(true);
|
||||||
@@ -175,20 +178,6 @@ User = {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// console.log(".........");
|
|
||||||
// console.log(user);
|
|
||||||
// 设值其它用户为非active
|
|
||||||
db.users.update({_id: {$ne: user.UserId}}, {$set: {IsActive: false}}, {multi: true}, function(err, n) {
|
|
||||||
// console.log(err);
|
|
||||||
// console.log(n);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// for test
|
|
||||||
getAllUsers: function(callback) {
|
|
||||||
var me = this;
|
|
||||||
db.users.find({}, function(err, users) {
|
|
||||||
callback && callback(users);
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -310,8 +299,8 @@ User = {
|
|||||||
}
|
}
|
||||||
Api.getLastSyncState(function(state) {
|
Api.getLastSyncState(function(state) {
|
||||||
if(state) {
|
if(state) {
|
||||||
console.error('--updateLastSyncState---')
|
// console.error('--updateLastSyncState---')
|
||||||
console.log(state);
|
// console.log(state);
|
||||||
me.LastSyncUsn = state.LastSyncUsn;
|
me.LastSyncUsn = state.LastSyncUsn;
|
||||||
me.LastSyncTime = state.LastSyncTime;
|
me.LastSyncTime = state.LastSyncTime;
|
||||||
db.users.update({UserId: me.getCurActiveUserId()}, {$set: state});
|
db.users.update({UserId: me.getCurActiveUserId()}, {$set: state});
|
||||||
@@ -372,6 +361,16 @@ User = {
|
|||||||
db.users.update({_id: me.getCurActiveUserId()}, {$set: {State: state}}, function() {
|
db.users.update({_id: me.getCurActiveUserId()}, {$set: {State: state}}, function() {
|
||||||
callback && callback();
|
callback && callback();
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取所有用户, 当前active的在第一个
|
||||||
|
getAllUsers: function(callback) {
|
||||||
|
db.users.find({}).sort({'LastLoginTime': -1}).exec(function(err, users) {
|
||||||
|
if(err) {
|
||||||
|
return callback && callback(false);
|
||||||
|
}
|
||||||
|
return callback && callback(users);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -6,6 +6,7 @@ var Api = {
|
|||||||
loading: Loading,
|
loading: Loading,
|
||||||
gui: gui,
|
gui: gui,
|
||||||
onClose: onClose,
|
onClose: onClose,
|
||||||
|
reloadApp: reloadApp,
|
||||||
isMac: isMac(),
|
isMac: isMac(),
|
||||||
nodeFs: NodeFs,
|
nodeFs: NodeFs,
|
||||||
evtService: EvtService,
|
evtService: EvtService,
|
||||||
|
@@ -1437,7 +1437,11 @@ function initPage(initedCallback) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
$('#username').text(UserInfo.Username);
|
$('#username').text(UserInfo.Username);
|
||||||
userMenu();
|
|
||||||
|
UserService.getAllUsers(function(users) {
|
||||||
|
userMenu(users);
|
||||||
|
});
|
||||||
|
|
||||||
setLayoutWidth();
|
setLayoutWidth();
|
||||||
} else {
|
} else {
|
||||||
switchAccount();
|
switchAccount();
|
||||||
@@ -1901,7 +1905,7 @@ function setMacTopMenu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// user
|
// user
|
||||||
function userMenu() {
|
function userMenu(allUsers) {
|
||||||
// ----------
|
// ----------
|
||||||
// 全局菜单
|
// 全局菜单
|
||||||
var win = gui.getCurrentWindow();
|
var win = gui.getCurrentWindow();
|
||||||
@@ -1914,15 +1918,23 @@ function userMenu() {
|
|||||||
|
|
||||||
//-------------------
|
//-------------------
|
||||||
// 右键菜单
|
// 右键菜单
|
||||||
|
|
||||||
|
function getShortHost(host) {
|
||||||
|
if (!host) {
|
||||||
|
host = 'https://leanote.com';
|
||||||
|
}
|
||||||
|
var ret = /http(s*):\/\/([a-zA-Z0-9\.\-]+)/.exec(host);
|
||||||
|
if(ret && ret.length == 3) {
|
||||||
|
host = ret[2];
|
||||||
|
}
|
||||||
|
return host;
|
||||||
|
}
|
||||||
|
|
||||||
function menu() {
|
function menu() {
|
||||||
var me = this;
|
var me = this;
|
||||||
// this.target = '';
|
// this.target = '';
|
||||||
UserInfo.Host = UserInfo.Host || 'http://leanote.com';
|
UserInfo.Host = UserInfo.Host || 'https://leanote.com';
|
||||||
var shortHost = UserInfo.Host;
|
var shortHost = getShortHost(UserInfo.Host);
|
||||||
var ret = /http(s*):\/\/([a-zA-Z0-9\.\-]+)/.exec(shortHost);
|
|
||||||
if(ret && ret.length == 3) {
|
|
||||||
shortHost = ret[2];
|
|
||||||
}
|
|
||||||
|
|
||||||
this.menu = new gui.Menu();
|
this.menu = new gui.Menu();
|
||||||
this.email = new gui.MenuItem({
|
this.email = new gui.MenuItem({
|
||||||
@@ -1932,7 +1944,7 @@ function userMenu() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.switchAccount = new gui.MenuItem({
|
this.switchAccount = new gui.MenuItem({
|
||||||
label: getMsg('Switch account'),
|
label: getMsg('Add account'),
|
||||||
click: function(e) {
|
click: function(e) {
|
||||||
// window.open('login.html');
|
// window.open('login.html');
|
||||||
// win.close();
|
// win.close();
|
||||||
@@ -1944,6 +1956,42 @@ function userMenu() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 所有用户
|
||||||
|
var allUsersMenu;
|
||||||
|
if (allUsers) {
|
||||||
|
function toggleAccount(user) {
|
||||||
|
if (!user) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
UserService.saveCurUser({UserId: user.UserId}, function () {
|
||||||
|
reloadApp();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
var userMenus = new gui.Menu();
|
||||||
|
for (var i = 0; i < allUsers.length; ++i) {
|
||||||
|
var user = allUsers[i];
|
||||||
|
if (user.Username && user.UserId) {
|
||||||
|
var label = user.Username;
|
||||||
|
|
||||||
|
var otherLabel = user.IsLocal ? getMsg('Local') : getShortHost(user.Host);
|
||||||
|
label += ' (' + otherLabel + ')';
|
||||||
|
|
||||||
|
userMenus.append(new gui.MenuItem({
|
||||||
|
label: label,
|
||||||
|
enabled: !user.IsActive,
|
||||||
|
click: (function(user) {
|
||||||
|
return function() {
|
||||||
|
toggleAccount(user);
|
||||||
|
}
|
||||||
|
})(user)
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
allUsersMenu = new gui.MenuItem({
|
||||||
|
label: getMsg('Switch account'),
|
||||||
|
submenu: userMenus
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this.checkForUpdates = new gui.MenuItem({
|
this.checkForUpdates = new gui.MenuItem({
|
||||||
label: getMsg('Check for updates'),
|
label: getMsg('Check for updates'),
|
||||||
@@ -1963,6 +2011,7 @@ function userMenu() {
|
|||||||
this.menu.append(this.blog);
|
this.menu.append(this.blog);
|
||||||
}
|
}
|
||||||
this.menu.append(this.switchAccount);
|
this.menu.append(this.switchAccount);
|
||||||
|
this.menu.append(allUsersMenu);
|
||||||
this.menu.append(new gui.MenuItem({ type: 'separator' }));
|
this.menu.append(new gui.MenuItem({ type: 'separator' }));
|
||||||
|
|
||||||
// themeMenu
|
// themeMenu
|
||||||
|
@@ -539,8 +539,16 @@ function isAceError(val) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 有tinymce得到的content有<html>包围
|
// 有tinymce得到的content有<html>包围
|
||||||
// false表示编辑器未初始化
|
// 总会出现<p> <br></p>, 原因, setContent('<p><br data-mce-bogus="1" /></p>') 会设置成 <p> <br></p>
|
||||||
|
// 所以, 要在getContent时, 当是<p><br data-mce-bogus="1"></p>, 返回 <p><br/></p>
|
||||||
function getEditorContent(isMarkdown) {
|
function getEditorContent(isMarkdown) {
|
||||||
|
var content = _getEditorContent(isMarkdown);
|
||||||
|
if (content === '<p><br data-mce-bogus="1"></p>') {
|
||||||
|
return '<p><br></p>';
|
||||||
|
}
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
function _getEditorContent(isMarkdown) {
|
||||||
if(!isMarkdown) {
|
if(!isMarkdown) {
|
||||||
var editor = tinymce.activeEditor;
|
var editor = tinymce.activeEditor;
|
||||||
if(editor) {
|
if(editor) {
|
||||||
@@ -569,9 +577,9 @@ function getEditorContent(isMarkdown) {
|
|||||||
// 去掉恶心的花瓣注入
|
// 去掉恶心的花瓣注入
|
||||||
// <pinit></pinit>
|
// <pinit></pinit>
|
||||||
// 把最后的<script>..</script>全去掉
|
// 把最后的<script>..</script>全去掉
|
||||||
content.find("pinit").remove();
|
// content.find("pinit").remove();
|
||||||
content.find(".thunderpin").remove();
|
// content.find(".thunderpin").remove();
|
||||||
content.find(".pin").parent().remove();
|
// content.find(".pin").parent().remove();
|
||||||
content = $(content).html();
|
content = $(content).html();
|
||||||
if(content) {
|
if(content) {
|
||||||
while(true) {
|
while(true) {
|
||||||
@@ -1664,6 +1672,7 @@ var onClose = function(afterFunc) {
|
|||||||
try {
|
try {
|
||||||
// 先把服务关掉
|
// 先把服务关掉
|
||||||
Server.close();
|
Server.close();
|
||||||
|
SyncService.stop();
|
||||||
|
|
||||||
// 先保存之前改变的
|
// 先保存之前改变的
|
||||||
Note.curChangedSaveIt();
|
Note.curChangedSaveIt();
|
||||||
@@ -1681,4 +1690,12 @@ function isURL(str_url) {
|
|||||||
return re.test(str_url);
|
return re.test(str_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function reloadApp() {
|
||||||
|
onClose(function() {
|
||||||
|
setTimeout(function() {
|
||||||
|
location.reload();
|
||||||
|
}, isMac() ? 0 : 200);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
ContextTips.init();
|
ContextTips.init();
|
||||||
|
@@ -184,6 +184,7 @@
|
|||||||
"Search note": "搜索笔记",
|
"Search note": "搜索笔记",
|
||||||
"Search notebook": "搜索笔记本",
|
"Search notebook": "搜索笔记本",
|
||||||
|
|
||||||
|
"Add account": "添加帐户",
|
||||||
"Switch account": "切换帐户",
|
"Switch account": "切换帐户",
|
||||||
"Sync": "同步",
|
"Sync": "同步",
|
||||||
"Loading": "正在加载",
|
"Loading": "正在加载",
|
||||||
|
@@ -184,6 +184,7 @@
|
|||||||
"Search note": "搜索筆記",
|
"Search note": "搜索筆記",
|
||||||
"Search notebook": "搜索筆記本",
|
"Search notebook": "搜索筆記本",
|
||||||
|
|
||||||
|
"Add account": "添加帳戶",
|
||||||
"Switch account": "切換帳戶",
|
"Switch account": "切換帳戶",
|
||||||
"Sync": "同步",
|
"Sync": "同步",
|
||||||
"Loading": "正在加載",
|
"Loading": "正在加載",
|
||||||
@@ -253,7 +254,7 @@
|
|||||||
"Warning": "警告",
|
"Warning": "警告",
|
||||||
|
|
||||||
"Mode": "模式",
|
"Mode": "模式",
|
||||||
"Toggle Fullscreen": "全屏切换",
|
"Toggle Fullscreen": "全屏切換",
|
||||||
"Toggle Presentation": "演示切換",
|
"Toggle Presentation": "演示切換",
|
||||||
"Toggle View": "預覽切換",
|
"Toggle View": "預覽切換",
|
||||||
|
|
||||||
@@ -278,4 +279,5 @@
|
|||||||
"Username": "用戶名",
|
"Username": "用戶名",
|
||||||
"User exists": "用戶已存在",
|
"User exists": "用戶已存在",
|
||||||
"Local": "本地"
|
"Local": "本地"
|
||||||
|
|
||||||
}
|
}
|
@@ -32,13 +32,7 @@ define(function() {
|
|||||||
Config.lang = langFileName;
|
Config.lang = langFileName;
|
||||||
var ok = Api.writeConfig(Config);
|
var ok = Api.writeConfig(Config);
|
||||||
if(ok) {
|
if(ok) {
|
||||||
Api.onClose(function() {
|
Api.reloadApp();
|
||||||
// mac下server关闭要点时间
|
|
||||||
var timeout = Api.isMac ? 0 : 200;
|
|
||||||
setTimeout(function() {
|
|
||||||
location.reload();
|
|
||||||
}, timeout);
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
alert(getMsg('error'));
|
alert(getMsg('error'));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user