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

При заходе второго пользователя возникали проблемы с принятием изменений на авторизации.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@51336 954022d7-b5bf-4e40-9824-e11837661b57
parent 6ba36fe2
...@@ -569,12 +569,9 @@ ...@@ -569,12 +569,9 @@
allChanges.push(changesOneUser[i]); allChanges.push(changesOneUser[i]);
} }
} }
// Функция может быть долгой (и в IE10 происходит disconnect). Поэтому вызовем через timeout
// Посылать нужно всегда, т.к. на это рассчитываем при открытии // Посылать нужно всегда, т.к. на это рассчитываем при открытии
window.setTimeout(function () { t.onFirstLoadChanges(allChanges);
t.onFirstLoadChanges(allChanges);
}, 10);
} }
}; };
......
...@@ -92,8 +92,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -92,8 +92,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
this.ServerIdWaitComplete = false; this.ServerIdWaitComplete = false;
// Переменная отвечает, отрисовали ли мы все (иначе при рестарте, получится переинициализация) // Переменная отвечает, отрисовали ли мы все (иначе при рестарте, получится переинициализация)
this.DocumentLoadComplete = false; this.DocumentLoadComplete = false;
// Переменная, которая хранит пришедшие изменения при открытии
this.FirstLoadChanges = null;
// Переменная, которая отвечает, послали ли мы окончание открытия документа // Переменная, которая отвечает, послали ли мы окончание открытия документа
this.IsSendDocumentLoadCompleate = false; this.IsSendDocumentLoadCompleate = false;
...@@ -1301,16 +1299,15 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1301,16 +1299,15 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
// Их нужно применять после того, как мы создали WorkbookView // Их нужно применять после того, как мы создали WorkbookView
// т.к. автофильтры, диаграммы, изображения и комментарии завязаны на WorksheetView (ToDo переделать) // т.к. автофильтры, диаграммы, изображения и комментарии завязаны на WorksheetView (ToDo переделать)
_applyFirstLoadChanges: function () { _applyFirstLoadChanges: function () {
if (this.DocumentLoadComplete && null !== this.FirstLoadChanges) { if (this.IsSendDocumentLoadCompleate)
this.CoAuthoringApi.onSaveChanges(this.FirstLoadChanges, false); return;
this.FirstLoadChanges = null; if (this.collaborativeEditing.applyChanges()) {
if (this.collaborativeEditing.applyChanges() && !this.IsSendDocumentLoadCompleate) { // Изменений не было
this.IsSendDocumentLoadCompleate = true;
this.asc_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Open);
}
} else if (this.DocumentLoadComplete && !this.IsSendDocumentLoadCompleate) {
this.IsSendDocumentLoadCompleate = true; this.IsSendDocumentLoadCompleate = true;
this.asc_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Open); this.asc_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Open);
} else {
// При открытии после принятия изменений мы должны сбросить пересчетные индексы
this.collaborativeEditing.sendChanges();
} }
}, },
...@@ -1480,12 +1477,12 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1480,12 +1477,12 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
} }
} }
// т.е. если bSendEvent не задан, то посылаем сообщение // т.е. если bSendEvent не задан, то посылаем сообщение + если мы уже открыли документ
if (true === bAddChanges && false !== bSendEvent) if (true === bAddChanges && false !== bSendEvent && t.IsSendDocumentLoadCompleate)
t.syncCollaborativeChanges(); t.syncCollaborativeChanges();
}; };
this.CoAuthoringApi.onFirstLoadChanges = function (e) { this.CoAuthoringApi.onFirstLoadChanges = function (e) {
t.FirstLoadChanges = e; t.CoAuthoringApi.onSaveChanges(e, false);
t.asyncServerIdEndLoaded (); t.asyncServerIdEndLoaded ();
}; };
this.CoAuthoringApi.onSetIndexUser = function (e) { this.CoAuthoringApi.onSetIndexUser = function (e) {
...@@ -1534,10 +1531,12 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1534,10 +1531,12 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
}, },
_onSaveChanges: function (recalcIndexColumns, recalcIndexRows) { _onSaveChanges: function (recalcIndexColumns, recalcIndexRows) {
var arrChanges = this.wbModel.SerializeHistory(); if (this.IsSendDocumentLoadCompleate) {
arrChanges.push({"index" : recalcIndexColumns, "type" : "0"}); var arrChanges = this.wbModel.SerializeHistory();
arrChanges.push({"index" : recalcIndexRows, "type" : "1"}); arrChanges.push({"index" : recalcIndexColumns, "type" : "0"});
this.CoAuthoringApi.saveChanges(arrChanges); arrChanges.push({"index" : recalcIndexRows, "type" : "1"});
this.CoAuthoringApi.saveChanges(arrChanges);
}
}, },
_onApplyChanges: function (changes, fCallback) { _onApplyChanges: function (changes, fCallback) {
...@@ -1546,8 +1545,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS"; ...@@ -1546,8 +1545,6 @@ var ASC_DOCS_API_USE_EMBEDDED_FONTS = "@@ASC_DOCS_API_USE_EMBEDDED_FONTS";
_onUpdateAfterApplyChanges: function () { _onUpdateAfterApplyChanges: function () {
if (!this.IsSendDocumentLoadCompleate) { if (!this.IsSendDocumentLoadCompleate) {
// При открытии после принятия изменений мы должны сбросить пересчетные индексы
this.collaborativeEditing.clearRecalcIndex();
this.IsSendDocumentLoadCompleate = true; this.IsSendDocumentLoadCompleate = true;
this.asc_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Open); this.asc_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.Open);
} }
......
...@@ -176,10 +176,11 @@ ...@@ -176,10 +176,11 @@
return true; return true;
var t = this; var t = this;
// Отправляем на сервер изменения var length = this.m_arrChanges.length;
if (0 < this.m_arrChanges.length) { // Принимаем изменения
if (0 < length) {
this.handlers.trigger("applyChanges", this.m_arrChanges, function () { this.handlers.trigger("applyChanges", this.m_arrChanges, function () {
t.m_arrChanges.splice(0, t.m_arrChanges.length); t.m_arrChanges.splice(0, length);
t.handlers.trigger("updateAfterApplyChanges"); t.handlers.trigger("updateAfterApplyChanges");
}); });
......
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