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