Commit ec499dcd authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Поправил перерисовку при приходе lock-объекта (делаем только если он на том же листе).

Для комментариев полностью переделал lock (баг http://bugzserver/show_bug.cgi?id=25770)
Теперь он не накладывается на lock от range (вместо добавления нового c_oAscLockTypeElem, поменяем имя листа

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@57871 954022d7-b5bf-4e40-9824-e11837661b57
parent 316c0243
...@@ -1492,13 +1492,10 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1492,13 +1492,10 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
"drawFrozenPaneLines": function () {t._onDrawFrozenPaneLines.apply(t, arguments);}, "drawFrozenPaneLines": function () {t._onDrawFrozenPaneLines.apply(t, arguments);},
"updateAllSheetsLock": function () {t._onUpdateAllSheetsLock.apply(t, arguments);}, "updateAllSheetsLock": function () {t._onUpdateAllSheetsLock.apply(t, arguments);},
"showDrawingObjects": function () {t._onShowDrawingObjects.apply(t, arguments);}, "showDrawingObjects": function () {t._onShowDrawingObjects.apply(t, arguments);},
"resetLockedGraphicObjects": function () {t._onResetLockedGraphicObjects.apply(t, arguments);},
"tryResetLockedGraphicObject": function () {return t._onTryResetLockedGraphicObject.apply(t, arguments);},
"showComments": function () {t._onShowComments.apply(t, arguments);}, "showComments": function () {t._onShowComments.apply(t, arguments);},
"unlockComments": function () {t._onUnlockComments.apply(t);},
"tryUnlockComment": function () {t._onTryUnlockComment.apply(t, arguments);},
"cleanSelection": function () {t._onCleanSelection.apply(t, arguments);}, "cleanSelection": function () {t._onCleanSelection.apply(t, arguments);},
"updateDocumentCanSave": function () {t._onUpdateDocumentCanSave();} "updateDocumentCanSave": function () {t._onUpdateDocumentCanSave();},
"checkCommentRemoveLock": function (lockElem) {return t._onCheckCommentRemoveLock(lockElem);}
}, this.asc_getViewerMode()); }, this.asc_getViewerMode());
if (!this.CoAuthoringApi) { if (!this.CoAuthoringApi) {
...@@ -1518,8 +1515,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1518,8 +1515,7 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
t.collaborativeEditing.addUnlock(lockElem); t.collaborativeEditing.addUnlock(lockElem);
} }
var drawing; var drawing, lockType = lockElem.Element["type"];
if (null != lockElem) {
var oldType = lockElem.getType(); var oldType = lockElem.getType();
if (c_oAscLockTypes.kLockTypeOther2 === oldType || c_oAscLockTypes.kLockTypeOther3 === oldType) if (c_oAscLockTypes.kLockTypeOther2 === oldType || c_oAscLockTypes.kLockTypeOther3 === oldType)
lockElem.setType(c_oAscLockTypes.kLockTypeOther3, true); lockElem.setType(c_oAscLockTypes.kLockTypeOther3, true);
...@@ -1529,12 +1525,11 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1529,12 +1525,11 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
// Выставляем ID пользователя, залочившего данный элемент // Выставляем ID пользователя, залочившего данный элемент
lockElem.setUserId(e["user"]); lockElem.setUserId(e["user"]);
if (lockElem.Element["type"] === c_oAscLockTypeElem.Object) { if (lockType === c_oAscLockTypeElem.Object) {
drawing = g_oTableId.Get_ById(lockElem.Element["rangeOrObjectId"]); drawing = g_oTableId.Get_ById(lockElem.Element["rangeOrObjectId"]);
if (drawing) if (drawing)
drawing.lockType = lockElem.Type; drawing.lockType = lockElem.Type;
} }
}
if (t.wb) { if (t.wb) {
// Шлем update для toolbar-а, т.к. когда select в lock ячейке нужно заблокировать toolbar // Шлем update для toolbar-а, т.к. когда select в lock ячейке нужно заблокировать toolbar
...@@ -1544,15 +1539,21 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1544,15 +1539,21 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
t._onUpdateSheetsLock(lockElem); t._onUpdateSheetsLock(lockElem);
var ws = t.wb.getWorksheet(); var ws = t.wb.getWorksheet();
var lockSheetId = lockElem.Element["sheetId"];
if (lockSheetId === ws.model.getId()) {
if (lockType === c_oAscLockTypeElem.Object) {
// Нужно ли обновлять закрепление областей // Нужно ли обновлять закрепление областей
if (t._onUpdateFrozenPane(lockElem, ws.model.getId())) if (t._onUpdateFrozenPane(lockElem))
ws.draw(); ws.draw();
else else if (drawing && ws.model === drawing.worksheet)
ws.updateSelection();
if (drawing && ws.model === drawing.worksheet)
ws.objectRender.showDrawingObjects(true); ws.objectRender.showDrawingObjects(true);
} else if (lockType === c_oAscLockTypeElem.Range) {
ws.updateSelection();
}
} else if (0 === lockSheetId.indexOf(CCellCommentator.sStartCommentId)) {
// Коммментарий
t.handlers.trigger("asc_onLockComment", lockElem.Element["rangeOrObjectId"], e["user"]);
}
} }
} }
}; };
...@@ -1585,12 +1586,14 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1585,12 +1586,14 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
else { else {
// Удаляем из lock-ов, тот, кто правил ушел и не сохранил // Удаляем из lock-ов, тот, кто правил ушел и не сохранил
t.collaborativeEditing.removeUnlock (lockElem); t.collaborativeEditing.removeUnlock (lockElem);
if (!t._onCheckCommentRemoveLock(lockElem.Element)) {
if (lockElem.Element["type"] === c_oAscLockTypeElem.Object) { if (lockElem.Element["type"] === c_oAscLockTypeElem.Object) {
drawing = g_oTableId.Get_ById(lockElem.Element["rangeOrObjectId"]); drawing = g_oTableId.Get_ById(lockElem.Element["rangeOrObjectId"]);
if (drawing) if (drawing)
drawing.lockType = c_oAscLockTypes.kLockTypeNone; drawing.lockType = c_oAscLockTypes.kLockTypeNone;
} }
} }
}
if (t.wb) { if (t.wb) {
// Шлем update для листов // Шлем update для листов
t._onUpdateSheetsLock(lockElem); t._onUpdateSheetsLock(lockElem);
...@@ -1606,7 +1609,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1606,7 +1609,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
worksheet._drawSelection(); worksheet._drawSelection();
worksheet._drawFrozenPaneLines(); worksheet._drawFrozenPaneLines();
worksheet.objectRender.showDrawingObjects(true); worksheet.objectRender.showDrawingObjects(true);
worksheet.cellCommentator.unlockComments();
} }
}; };
this.CoAuthoringApi.onSaveChanges = function (e, userId, bSendEvent) { this.CoAuthoringApi.onSaveChanges = function (e, userId, bSendEvent) {
...@@ -1735,7 +1737,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1735,7 +1737,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
} }
if (this.wb) { if (this.wb) {
this.wb.getWorksheet().cellCommentator.unlockComments();
// Нужно послать обновить свойства (иначе для удаления данных не обновится строка формул). // Нужно послать обновить свойства (иначе для удаления данных не обновится строка формул).
// ToDo Возможно стоит обновлять только строку формул // ToDo Возможно стоит обновлять только строку формул
this.wb._onWSSelectionChanged(null); this.wb._onWSSelectionChanged(null);
...@@ -1779,41 +1780,12 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1779,41 +1780,12 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
} }
}; };
spreadsheet_api.prototype._onResetLockedGraphicObjects = function () {
if (this.wb) {
this.wb.getWorksheet().objectRender.resetLockedGraphicObjects();
}
};
spreadsheet_api.prototype._onTryResetLockedGraphicObject = function (id) {
if (this.wb) {
for (var key in this.wb.wsViews) {
var ws = this.wb.wsViews[key];
ws.objectRender.tryResetLockedGraphicObject(id);
}
}
};
spreadsheet_api.prototype._onShowComments = function () { spreadsheet_api.prototype._onShowComments = function () {
if (this.wb) { if (this.wb) {
this.wb.getWorksheet().cellCommentator.drawCommentCells(); this.wb.getWorksheet().cellCommentator.drawCommentCells();
} }
}; };
spreadsheet_api.prototype._onUnlockComments = function () {
if (this.wb) {
var ws = this.wb.getWorksheet();
ws.cellCommentator.unlockComments();
}
};
spreadsheet_api.prototype._onTryUnlockComment = function (id) {
if (this.wb) {
var ws = this.wb.getWorksheet();
ws.cellCommentator.tryUnlockComment(id);
}
};
spreadsheet_api.prototype._onUpdateSheetsLock = function (lockElem) { spreadsheet_api.prototype._onUpdateSheetsLock = function (lockElem) {
var t = this; var t = this;
// Шлем update для листов, т.к. нужно залочить лист // Шлем update для листов, т.к. нужно залочить лист
...@@ -1828,10 +1800,9 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1828,10 +1800,9 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
} }
}; };
spreadsheet_api.prototype._onUpdateFrozenPane = function (lockElem, sheetId) { spreadsheet_api.prototype._onUpdateFrozenPane = function (lockElem) {
return (c_oAscLockTypeElem.Object === lockElem.Element["type"] && return (c_oAscLockTypeElem.Object === lockElem.Element["type"] &&
lockElem.Element["rangeOrObjectId"] === c_oAscLockNameFrozenPane && lockElem.Element["rangeOrObjectId"] === c_oAscLockNameFrozenPane);
lockElem.Element["sheetId"] === sheetId);
}; };
spreadsheet_api.prototype._sendWorkbookStyles = function () { spreadsheet_api.prototype._sendWorkbookStyles = function () {
...@@ -3221,6 +3192,16 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -3221,6 +3192,16 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
} }
}; };
spreadsheet_api.prototype._onCheckCommentRemoveLock = function (lockElem) {
var res = false;
if (0 === lockElem["sheetId"].indexOf(CCellCommentator.sStartCommentId)) {
// Коммментарий
res = true;
this.handlers.trigger("asc_onUnLockComment", lockElem["rangeOrObjectId"]);
}
return res;
};
// offline mode // offline mode
spreadsheet_api.prototype.offlineModeInit = function() { spreadsheet_api.prototype.offlineModeInit = function() {
......
...@@ -448,6 +448,7 @@ function CCellCommentator(currentSheet) { ...@@ -448,6 +448,7 @@ function CCellCommentator(currentSheet) {
this.lastSelectedId = null; this.lastSelectedId = null;
this.bSaveHistory = true; this.bSaveHistory = true;
} }
CCellCommentator.sStartCommentId = 'comment_';
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
// Public methods // Public methods
...@@ -457,92 +458,44 @@ CCellCommentator.prototype.isViewerMode = function () { ...@@ -457,92 +458,44 @@ CCellCommentator.prototype.isViewerMode = function () {
return this.worksheet.handlers.trigger("getViewerMode"); return this.worksheet.handlers.trigger("getViewerMode");
}; };
CCellCommentator.prototype.isLockedComment = function(oComment, lockByDefault, callbackFunc) { CCellCommentator.prototype.isLockedComment = function(oComment, callbackFunc) {
var lockInfo;
var model = this.worksheet.model;
var sheetId = model.getId();
var objectGuid = oComment.asc_getId();
if (objectGuid) {
if (false === this.worksheet.collaborativeEditing.isCoAuthoringExcellEnable()) { if (false === this.worksheet.collaborativeEditing.isCoAuthoringExcellEnable()) {
// Запрещено совместное редактирование // Запрещено совместное редактирование
Asc.applyFunction(callbackFunc, true); Asc.applyFunction(callbackFunc, true);
return; return;
} }
if ( lockByDefault ) var objectGuid = oComment.asc_getId();
this.worksheet.collaborativeEditing.onStartCheckLock(); if (objectGuid) {
// Комментарии не должны влиять на lock-листа, поэтому вместо добавления нового c_oAscLockTypeElem, поменяем имя листа
// Комментарий к документу блокируем как Range var sheetId = CCellCommentator.sStartCommentId;
if ( !oComment.asc_getDocumentFlag() ) { if (!oComment.bDocument)
var c = oComment.asc_getCol(); sheetId += this.worksheet.model.getId();
var r = oComment.asc_getRow();
var c1, r1, c2, r2;
var mergedRange = model.getMergedByCell(r, c);
if (mergedRange) {
c1 = mergedRange.c1;
r1 = mergedRange.r1;
c2 = mergedRange.c2;
r2 = mergedRange.r2;
} else {
c1 = c2 = c;
r1 = r2 = r;
}
lockInfo = this.worksheet.collaborativeEditing.getLockInfo(c_oAscLockTypeElem.Range, /*subType*/null, sheetId, new Asc.asc_CCollaborativeRange(c1, r1, c2, r2)); var lockInfo = this.worksheet.collaborativeEditing.getLockInfo(c_oAscLockTypeElem.Object, /*subType*/null,
} else sheetId, objectGuid);
lockInfo = this.worksheet.collaborativeEditing.getLockInfo(c_oAscLockTypeElem.Object, /*subType*/null, sheetId, objectGuid);
if (false === this.worksheet.collaborativeEditing.getCollaborativeEditing()) { if (false === this.worksheet.collaborativeEditing.getCollaborativeEditing()) {
// Пользователь редактирует один: не ждем ответа, а сразу продолжаем редактирование // Пользователь редактирует один: не ждем ответа, а сразу продолжаем редактирование
Asc.applyFunction(callbackFunc, true); Asc.applyFunction(callbackFunc, true);
callbackFunc = undefined; callbackFunc = undefined;
} }
if (false !== this.worksheet.collaborativeEditing.getLockIntersection(lockInfo, c_oAscLockTypes.kLockTypeMine, /*bCheckOnlyLockAll*/false)) { if (false !== this.worksheet.collaborativeEditing.getLockIntersection(lockInfo,
c_oAscLockTypes.kLockTypeMine, /*bCheckOnlyLockAll*/false)) {
// Редактируем сами // Редактируем сами
Asc.applyFunction(callbackFunc, true); Asc.applyFunction(callbackFunc, true);
return; return;
} } else if (false !== this.worksheet.collaborativeEditing.getLockIntersection(lockInfo,
else if (false !== this.worksheet.collaborativeEditing.getLockIntersection(lockInfo, c_oAscLockTypes.kLockTypeOther, /*bCheckOnlyLockAll*/false)) { c_oAscLockTypes.kLockTypeOther, /*bCheckOnlyLockAll*/false)) {
// Уже ячейку кто-то редактирует // Уже ячейку кто-то редактирует
Asc.applyFunction(callbackFunc, false); Asc.applyFunction(callbackFunc, false);
return; return;
} }
// Блокируем this.worksheet.collaborativeEditing.onStartCheckLock();
if ( lockByDefault ) {
this.worksheet.collaborativeEditing.addCheckLock(lockInfo); this.worksheet.collaborativeEditing.addCheckLock(lockInfo);
this.worksheet.collaborativeEditing.onEndCheckLock(callbackFunc); this.worksheet.collaborativeEditing.onEndCheckLock(callbackFunc);
} }
else
Asc.applyFunction(callbackFunc, true);
}
};
CCellCommentator.prototype.callLockComments = function(range) {
if ( range ) {
for (var i = 0; i < this.aComments.length; i++) {
var comment = this.aComments[i];
if ( (comment.nCol >= range.c1) && (comment.nCol <= range.c2) && (comment.nRow >= range.r1) && (comment.nRow <= range.r2) )
this.worksheet.model.workbook.handlers.trigger("asc_onLockComment", comment.asc_getId(), comment.asc_getUserId());
}
}
};
CCellCommentator.prototype.unlockComments = function() {
for (var i = 0; i < this.aComments.length; i++) {
this.worksheet.model.workbook.handlers.trigger("asc_onUnLockComment", this.aComments[i].asc_getId());
}
};
CCellCommentator.prototype.tryUnlockComment = function(id) {
for (var i = 0; i < this.aComments.length; i++) {
if ( this.aComments[i].asc_getId() == id ) {
this.worksheet.model.workbook.handlers.trigger("asc_onUnLockComment", id);
break;
}
}
}; };
CCellCommentator.prototype.moveRangeComments = function(rangeFrom, rangeTo) { CCellCommentator.prototype.moveRangeComments = function(rangeFrom, rangeTo) {
...@@ -919,43 +872,6 @@ CCellCommentator.prototype.updateCommentsDependencies = function(bInsert, operTy ...@@ -919,43 +872,6 @@ CCellCommentator.prototype.updateCommentsDependencies = function(bInsert, operTy
} }
}; };
CCellCommentator.prototype.showHideComments = function(bHide, bColumn, start, stop) {
var t = this;
var aChangedComments = [];
function updateCommentsList(aComments) {
if ( aComments.length ) {
History.StartTransaction();
for (var i = 0; i < aComments.length; i++) {
this.asc_changeComment(aComments[i].asc_getId(), aComments[i]);
}
History.EndTransaction();
t.drawCommentCells();
}
}
for (var i = 0; i < this.aComments.length; i++) {
var comment = new asc_CCommentData(this.aComments[i]);
if ( bColumn ) {
if ( (comment.nCol >= start) && (comment.nCol <= stop) ) {
comment.asc_putHiddenFlag(bHide);
aChangedComments.push(comment);
}
}
else {
if ( (comment.nRow >= start) && (comment.nRow <= stop) ) {
comment.asc_putHiddenFlag(bHide);
aChangedComments.push(comment);
}
}
}
updateCommentsList(aChangedComments);
};
CCellCommentator.prototype.sortComments = function(activeRange, changes) { CCellCommentator.prototype.sortComments = function(activeRange, changes) {
var t = this; var t = this;
...@@ -1246,21 +1162,10 @@ CCellCommentator.prototype.asc_hideComments = function() { ...@@ -1246,21 +1162,10 @@ CCellCommentator.prototype.asc_hideComments = function() {
// Main // Main
CCellCommentator.prototype.asc_showComment = function(id, bNew) { CCellCommentator.prototype.asc_showComment = function(id, bNew) {
var t = this;
var comment = this.asc_findComment(id); var comment = this.asc_findComment(id);
if (comment) { if (comment) {
var commentList = this.asc_getComments(comment.asc_getCol(), comment.asc_getRow());
var callbackFunc = function(result) { var coords = this.getCommentsCoords(commentList);
if ( !result )
t.worksheet.model.workbook.handlers.trigger("asc_onLockComment", comment.asc_getId(), comment.asc_getUserId());
else
t.worksheet.model.workbook.handlers.trigger("asc_onUnLockComment", comment.asc_getId());
var commentList = t.asc_getComments(comment.asc_getCol(), comment.asc_getRow());
var coords = t.getCommentsCoords(commentList);
var indexes = []; var indexes = [];
for (var i = 0; i < commentList.length; i++) { for (var i = 0; i < commentList.length; i++) {
...@@ -1269,19 +1174,13 @@ CCellCommentator.prototype.asc_showComment = function(id, bNew) { ...@@ -1269,19 +1174,13 @@ CCellCommentator.prototype.asc_showComment = function(id, bNew) {
// Second click - hide comment // Second click - hide comment
if (indexes.length) { if (indexes.length) {
if ( t.lastSelectedId != id ) this.worksheet.model.workbook.handlers.trigger("asc_onShowComment", indexes, coords.asc_getLeftPX(),
t.worksheet.model.workbook.handlers.trigger("asc_onHideComment"); coords.asc_getTopPX(), coords.asc_getReverseLeftPX(), bNew);
this.drawCommentCells();
t.worksheet.model.workbook.handlers.trigger("asc_onShowComment", indexes, coords.asc_getLeftPX(), coords.asc_getTopPX(), coords.asc_getReverseLeftPX(), bNew);
t.drawCommentCells();
}
t.lastSelectedId = id;
};
t.isLockedComment(comment, false, callbackFunc);
} }
else this.lastSelectedId = id;
t.lastSelectedId = null; } else
this.lastSelectedId = null;
}; };
CCellCommentator.prototype.asc_selectComment = function(id, bMove) { CCellCommentator.prototype.asc_selectComment = function(id, bMove) {
...@@ -1353,7 +1252,6 @@ CCellCommentator.prototype.asc_findComment = function(id) { ...@@ -1353,7 +1252,6 @@ CCellCommentator.prototype.asc_findComment = function(id) {
}; };
CCellCommentator.prototype.asc_addComment = function(comment, bIsNotUpdate) { CCellCommentator.prototype.asc_addComment = function(comment, bIsNotUpdate) {
var t = this; var t = this;
var oComment = comment; var oComment = comment;
var bChange = false; var bChange = false;
...@@ -1367,11 +1265,10 @@ CCellCommentator.prototype.asc_addComment = function(comment, bIsNotUpdate) { ...@@ -1367,11 +1265,10 @@ CCellCommentator.prototype.asc_addComment = function(comment, bIsNotUpdate) {
} }
var existComments = this.asc_getComments(oComment.nCol, oComment.nRow); var existComments = this.asc_getComments(oComment.nCol, oComment.nRow);
if ( existComments.length ) { if (existComments.length) {
oComment = existComments[0]; oComment = existComments[0];
bChange = true; bChange = true;
} } else {
else {
if ((oComment.nCol != null) && (oComment.nRow != null)) { if ((oComment.nCol != null) && (oComment.nRow != null)) {
var cellAddress = new CellAddress(oComment.nRow, oComment.nCol, 0); var cellAddress = new CellAddress(oComment.nRow, oComment.nCol, 0);
oComment.sQuoteText = cellAddress.getID() + " : " + this.worksheet.model.getCell(cellAddress).getValueWithFormat(); oComment.sQuoteText = cellAddress.getID() + " : " + this.worksheet.model.getCell(cellAddress).getValueWithFormat();
...@@ -1379,33 +1276,23 @@ CCellCommentator.prototype.asc_addComment = function(comment, bIsNotUpdate) { ...@@ -1379,33 +1276,23 @@ CCellCommentator.prototype.asc_addComment = function(comment, bIsNotUpdate) {
} }
} }
function callbackFunc(result) { var onAddCommentCallback = function (isSuccess) {
if ( !result ) { if (false === isSuccess)
t.worksheet.model.workbook.handlers.trigger("asc_onLockComment", oComment.asc_getId(), oComment.asc_getUserId()); return;
}
else {
t._addComment(oComment, bChange, bIsNotUpdate); t._addComment(oComment, bChange, bIsNotUpdate);
} };
} this.isLockedComment(oComment, onAddCommentCallback);
if (bIsNotUpdate)
callbackFunc(true);
else
this.isLockedComment(oComment, true, callbackFunc);
}; };
CCellCommentator.prototype.asc_changeComment = function(id, oComment, bChangeCoords, bNoEvent) { CCellCommentator.prototype.asc_changeComment = function(id, oComment, bChangeCoords, bNoEvent) {
var t = this; var t = this;
var comment = this.asc_findComment(id); var comment = this.asc_findComment(id);
if (null === comment) if (null === comment)
return; return;
function callbackFunc(result) { var onChangeCommentCallback = function (isSuccess) {
if ( !result ) { if (false === isSuccess)
t.worksheet.model.workbook.handlers.trigger("asc_onLockComment", comment.asc_getId(), comment.asc_getUserId()); return;
} else {
t.worksheet.model.workbook.handlers.trigger("asc_onUnLockComment", comment.asc_getId());
var commentBefore = new asc_CCommentData(comment); var commentBefore = new asc_CCommentData(comment);
if (comment) { if (comment) {
...@@ -1447,30 +1334,25 @@ CCellCommentator.prototype.asc_changeComment = function(id, oComment, bChangeCoo ...@@ -1447,30 +1334,25 @@ CCellCommentator.prototype.asc_changeComment = function(id, oComment, bChangeCoo
} }
t.drawCommentCells(); t.drawCommentCells();
} };
}
this.isLockedComment(comment, true, callbackFunc); this.isLockedComment(comment, onChangeCommentCallback);
}; };
CCellCommentator.prototype.asc_removeComment = function(id, bNoEvent) { CCellCommentator.prototype.asc_removeComment = function(id, bNoEvent) {
var t = this; var t = this;
var comment = this.asc_findComment(id); var comment = this.asc_findComment(id);
if (null === comment) if (null === comment)
return; return;
function callbackFunc(result) { var onRemoveCommentCallback = function (isSuccess) {
if ( !result ) { if (false === isSuccess)
t.worksheet.model.workbook.handlers.trigger("asc_onLockComment", comment.asc_getId(), comment.asc_getUserId()); return;
} else {
t.worksheet.model.workbook.handlers.trigger("asc_onUnLockComment", comment.asc_getId());
}
t._removeComment(comment, bNoEvent, true); t._removeComment(comment, bNoEvent, true);
} };
this.isLockedComment(comment, true, callbackFunc); this.isLockedComment(comment, onRemoveCommentCallback);
}; };
// Extra functions // Extra functions
...@@ -1526,8 +1408,6 @@ CCellCommentator.prototype.asc_getDocumentComments = function() { ...@@ -1526,8 +1408,6 @@ CCellCommentator.prototype.asc_getDocumentComments = function() {
}; };
CCellCommentator.prototype._addComment = function (oComment, bChange, bIsNotUpdate) { CCellCommentator.prototype._addComment = function (oComment, bChange, bIsNotUpdate) {
this.worksheet.model.workbook.handlers.trigger("asc_onUnLockComment", oComment.asc_getId());
// Add new comment // Add new comment
if (!bChange) { if (!bChange) {
History.Create_NewPoint(); History.Create_NewPoint();
......
...@@ -240,11 +240,14 @@ ...@@ -240,11 +240,14 @@
for (;bIsCollaborative && nIndex < nCount; ++nIndex) { for (;bIsCollaborative && nIndex < nCount; ++nIndex) {
oLock = this.m_arrNeedUnlock[nIndex]; oLock = this.m_arrNeedUnlock[nIndex];
if (c_oAscLockTypes.kLockTypeOther2 === oLock.getType()) { if (c_oAscLockTypes.kLockTypeOther2 === oLock.getType()) {
if (!this.handlers.trigger("checkCommentRemoveLock", oLock.Element)) {
drawing = g_oTableId.Get_ById(oLock.Element["rangeOrObjectId"]); drawing = g_oTableId.Get_ById(oLock.Element["rangeOrObjectId"]);
if(drawing && drawing.lockType !== c_oAscLockTypes.kLockTypeNone) { if(drawing && drawing.lockType !== c_oAscLockTypes.kLockTypeNone) {
drawing.lockType = c_oAscLockTypes.kLockTypeNone; drawing.lockType = c_oAscLockTypes.kLockTypeNone;
bRedrawGraphicObjects = true; bRedrawGraphicObjects = true;
} }
}
this.m_arrNeedUnlock.splice(nIndex, 1); this.m_arrNeedUnlock.splice(nIndex, 1);
--nIndex; --nIndex;
--nCount; --nCount;
...@@ -275,7 +278,6 @@ ...@@ -275,7 +278,6 @@
this.handlers.trigger("drawSelection"); this.handlers.trigger("drawSelection");
this.handlers.trigger("drawFrozenPaneLines"); this.handlers.trigger("drawFrozenPaneLines");
this.handlers.trigger("updateAllSheetsLock"); this.handlers.trigger("updateAllSheetsLock");
this.handlers.trigger("unlockComments");
this.handlers.trigger("showComments"); this.handlers.trigger("showComments");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment