Merge branch 'master' into webpack-frontend

This commit is contained in:
Yukai Huang 2016-10-12 18:19:08 +08:00
commit 2f11706dd2
4 changed files with 32 additions and 17 deletions

2
app.js
View file

@ -512,7 +512,7 @@ process.on('SIGINT', function () {
if (history.isReady() && realtime.isReady()) {
models.Revision.checkAllNotesRevision(function (err, notes) {
if (err) throw new Error(err);
if (notes.length <= 0) {
if (!notes || notes.length <= 0) {
clearInterval(checkCleanTimer);
return process.exit(0);
}

View file

@ -396,7 +396,7 @@ function finishConnection(socket, note, user) {
// update user note history
setTimeout(function () {
var noteId = note.alias ? note.alias : LZString.compressToBase64(note.id);
history.updateHistory(user.userid, noteId, note.server.document);
if (note.server) history.updateHistory(user.userid, noteId, note.server.document);
}, 0);
emitOnlineUsers(socket);
@ -669,7 +669,7 @@ function operationCallback(socket, operation) {
// update user note history
setTimeout(function() {
var noteId = note.alias ? note.alias : LZString.compressToBase64(note.id);
history.updateHistory(userId, noteId, note.server.document);
if (note.server) history.updateHistory(userId, noteId, note.server.document);
}, 0);
}

View file

@ -2870,14 +2870,14 @@ function sortOnlineUserList(list) {
else if (usera.idle && !userb.idle)
return 1;
else {
if (usera.name.toLowerCase() < userb.name.toLowerCase()) {
if (usera.name && usera.name.toLowerCase() < userb.name.toLowerCase()) {
return -1;
} else if (usera.name.toLowerCase() > userb.name.toLowerCase()) {
} else if (usera.name && usera.name.toLowerCase() > userb.name.toLowerCase()) {
return 1;
} else {
if (usera.color.toLowerCase() < userb.color.toLowerCase())
if (usera.color && usera.color.toLowerCase() < userb.color.toLowerCase())
return -1;
else if (usera.color.toLowerCase() > userb.color.toLowerCase())
else if (usera.color && usera.color.toLowerCase() > userb.color.toLowerCase())
return 1;
else
return 0;

View file

@ -863,16 +863,31 @@ if (typeof jQuery === 'undefined') {
//
// FIXME: Calculate the left top corner of `this.option.appendTo` element.
getCaretPosition: function () {
//var position = this._getCaretRelativePosition();
//var offset = this.$el.offset();
//var offset = $('.CodeMirror-cursor').offset();
var position = $('.CodeMirror-cursor').position();
var menu = $('.cursor-menu .dropdown-menu');
var offsetLeft = parseFloat(menu.attr('data-offset-left'));
var offsetTop = parseFloat(menu.attr('data-offset-top'));
position.left += offsetLeft;
position.top += offsetTop;
return position;
if ($('.CodeMirror-cursor').length > 0) {
var position = $('.CodeMirror-cursor').position();
var menu = $('.cursor-menu .dropdown-menu');
var offsetLeft = parseFloat(menu.attr('data-offset-left'));
var offsetTop = parseFloat(menu.attr('data-offset-top'));
position.left += offsetLeft;
position.top += offsetTop;
return position;
} else {
var position = this._getCaretRelativePosition();
var offset = this.$el.offset();
// Calculate the left top corner of `this.option.appendTo` element.
var $parent = this.option.appendTo;
if ($parent) {
if (!($parent instanceof $)) { $parent = $($parent); }
var parentOffset = $parent.offsetParent().offset();
offset.top -= parentOffset.top;
offset.left -= parentOffset.left;
}
position.top += offset.top;
position.left += offset.left;
return position;
}
},
// Focus on the element.