Commit 46bb66b3 authored by Oleg.Korshul's avatar Oleg.Korshul Committed by Alexander.Trofimov

waitSave переделан на LongAction


git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@62823 954022d7-b5bf-4e40-9824-e11837661b57
parent c2932285
......@@ -4826,7 +4826,7 @@ function CThumbnailsManager()
this.m_oWordControl.m_oLogicDocument.Create_NewHistoryPoint(historydescription_Presentation_PasteOnThumbnails);
window.GlobalPasteFlag = true;
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste(this.m_oWordControl.m_oApi, true);
return undefined;
//не возвращаем true чтобы не было preventDefault
......@@ -4839,7 +4839,7 @@ function CThumbnailsManager()
SafariIntervalFocus();
window.GlobalPasteFlag = true;
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste(this.m_oWordControl.m_oApi, true);
return undefined;
//не возвращаем true чтобы не было preventDefault
......
......@@ -1983,7 +1983,7 @@ CPresentation.prototype =
this.Create_NewHistoryPoint(historydescription_Document_ShiftInsert);
window.GlobalPasteFlag = true;
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
//не возвращаем true чтобы не было preventDefault
}
......@@ -1995,7 +1995,7 @@ CPresentation.prototype =
SafariIntervalFocus();
window.GlobalPasteFlag = true;
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
//не возвращаем true чтобы не было preventDefault
}
......@@ -2270,7 +2270,7 @@ CPresentation.prototype =
this.Create_NewHistoryPoint(historydescription_Document_PasteHotKey);
window.GlobalPasteFlag = true;
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
//не возвращаем true чтобы не было preventDefault
}
......@@ -2282,7 +2282,7 @@ CPresentation.prototype =
SafariIntervalFocus();
window.GlobalPasteFlag = true;
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
//не возвращаем true чтобы не было preventDefault
}
......
......@@ -110,7 +110,6 @@ function asc_docs_api(name)
this.isSaveFonts_Images = false;
this.saveImageMap = null;
this.canSave = true;//Флаг нужен чтобы не происходило сохранение пока не завершится предыдущее сохранение
this.waitSave = false; // Отложенное сохранение, происходит во время долгих операций
this.ServerIdWaitComplete = false;
this.ServerImagesWaitComplete = false;
......@@ -1523,7 +1522,7 @@ asc_docs_api.prototype.Share = function(){
function OnSave_Callback(e) {
if (false == e["saveLock"]) {
if (editor.waitSave) {
if (editor.asc_IsLongAction()) {
// Мы не можем в этот момент сохранять, т.к. попали в ситуацию, когда мы залочили сохранение и успели нажать вставку до ответа
// Нужно снять lock с сохранения
editor.CoAuthoringApi.onUnSaveLock = function () {
......@@ -1573,8 +1572,7 @@ function OnSave_Callback(e) {
}
asc_docs_api.prototype.asc_Save = function () {
// waitSave - означает, что сейчас происходит вставка данных или какая-то операция и сохранять до окончания нельзя
if (false === this.waitSave && true === this.canSave)
if (!this.asc_IsLongAction() && true === this.canSave)
{
this.canSave = false;
this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
......@@ -1694,27 +1692,36 @@ asc_docs_api.prototype.sync_StartAction = function(type, id){
this.asc_fireCallback("asc_onStartAction", type, id);
if (c_oAscAsyncActionType.BlockInteraction == type)
this.IsLongActionCurrent++;
this.asc_IncrementCounterLongAction();
};
asc_docs_api.prototype.sync_EndAction = function(type, id){
this.asc_fireCallback("asc_onEndAction", type, id);
if (c_oAscAsyncActionType.BlockInteraction == type)
{
this.IsLongActionCurrent--;
if (this.IsLongActionCurrent < 0)
this.IsLongActionCurrent = 0;
this.asc_DecrementCounterLongAction();
}
};
if (!this.asc_IsLongAction())
asc_docs_api.prototype.asc_IncrementCounterLongAction = function()
{
this.IsLongActionCurrent++;
};
asc_docs_api.prototype.asc_DecrementCounterLongAction = function()
{
this.IsLongActionCurrent--;
if (this.IsLongActionCurrent < 0)
this.IsLongActionCurrent = 0;
if (!this.asc_IsLongAction())
{
var _length = this.LongActionCallbacks.length;
for (var i = 0; i < _length; i++)
{
var _length = this.LongActionCallbacks.length;
for (var i = 0; i < _length; i++)
{
this.LongActionCallbacks[i](this.LongActionCallbacksParams[i]);
}
this.LongActionCallbacks.splice(0, _length);
this.LongActionCallbacksParams.splice(0, _length);
this.LongActionCallbacks[i](this.LongActionCallbacksParams[i]);
}
this.LongActionCallbacks.splice(0, _length);
this.LongActionCallbacksParams.splice(0, _length);
}
};
......@@ -3815,7 +3822,7 @@ asc_docs_api.prototype.asyncImagesDocumentEndLoaded = function()
{
this.isPasteFonts_Images = false;
this.pasteImageMap = null;
this.waitSave = false;
this.asc_DecrementCounterLongAction();
this.pasteCallback();
window.GlobalPasteFlag = false;
window.GlobalPasteFlagCounter = 0;
......@@ -4082,7 +4089,7 @@ asc_docs_api.prototype.pre_Paste = function(_fonts, _images, callback)
{
// никаких евентов. ничего грузить не нужно. сделано для сафари под макОс.
// там при LongActions теряется фокус и вставляются пробелы
this.waitSave = false;
this.asc_DecrementCounterLongAction();
this.pasteCallback();
window.GlobalPasteFlag = false;
window.GlobalPasteFlagCounter = 0;
......@@ -5036,10 +5043,10 @@ asc_docs_api.prototype.sync_closeChartEditor = function()
};
asc_docs_api.prototype.asc_stopSaving = function () {
this.waitSave = true;
this.asc_IncrementCounterLongAction();
};
asc_docs_api.prototype.asc_continueSaving = function () {
this.waitSave = false;
this.asc_DecrementCounterLongAction();
};
// Version History
......
......@@ -2705,17 +2705,6 @@ asc_docs_api.prototype.sync_EndAction = function(type, id){
if (c_oAscAsyncActionType.BlockInteraction == type)
{
this.asc_DecrementCounterLongAction();
if (!this.asc_IsLongAction())
{
var _length = this.LongActionCallbacks.length;
for (var i = 0; i < _length; i++)
{
this.LongActionCallbacks[i](this.LongActionCallbacksParams[i]);
}
this.LongActionCallbacks.splice(0, _length);
this.LongActionCallbacksParams.splice(0, _length);
}
}
};
......@@ -2728,6 +2717,17 @@ asc_docs_api.prototype.asc_DecrementCounterLongAction = function()
this.IsLongActionCurrent--;
if (this.IsLongActionCurrent < 0)
this.IsLongActionCurrent = 0;
if (!this.asc_IsLongAction())
{
var _length = this.LongActionCallbacks.length;
for (var i = 0; i < _length; i++)
{
this.LongActionCallbacks[i](this.LongActionCallbacksParams[i]);
}
this.LongActionCallbacks.splice(0, _length);
this.LongActionCallbacksParams.splice(0, _length);
}
};
asc_docs_api.prototype.asc_IsLongAction = function()
......
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