Commit c2932285 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@62822 954022d7-b5bf-4e40-9824-e11837661b57
parent ea36fef2
...@@ -2039,7 +2039,7 @@ function Editor_Paste_Button(api) ...@@ -2039,7 +2039,7 @@ function Editor_Paste_Button(api)
document.body.style["-webkit-user-select"] = "none"; document.body.style["-webkit-user-select"] = "none";
History.Create_NewPoint(historydescription_PasteButtonIE); History.Create_NewPoint(historydescription_PasteButtonIE);
editor.waitSave = true; editor.asc_IncrementCounterLongAction();
Editor_Paste(api, false); Editor_Paste(api, false);
return true; return true;
} }
...@@ -2049,7 +2049,7 @@ function Editor_Paste_Button(api) ...@@ -2049,7 +2049,7 @@ function Editor_Paste_Button(api)
if(ElemToSelect && ElemToSelect.innerHTML !== " " && ElemToSelect.innerHTML !== "") if(ElemToSelect && ElemToSelect.innerHTML !== " " && ElemToSelect.innerHTML !== "")
{ {
History.Create_NewPoint(historydescription_PasteButtonNotIE); History.Create_NewPoint(historydescription_PasteButtonNotIE);
editor.waitSave = true; editor.asc_IncrementCounterLongAction();
Editor_Paste_Exec(api, ElemToSelect); Editor_Paste_Exec(api, ElemToSelect);
} }
else else
...@@ -4888,11 +4888,28 @@ PasteProcessor.prototype = ...@@ -4888,11 +4888,28 @@ PasteProcessor.prototype =
var aPrepeareFonts = this._Prepeare_recursive(node, true, true); var aPrepeareFonts = this._Prepeare_recursive(node, true, true);
var aImagesToDownload = []; var aImagesToDownload = [];
var _mapLocal = {};
for(var image in this.oImages) for(var image in this.oImages)
{ {
var src = this.oImages[image]; var src = this.oImages[image];
if(0 == src.indexOf("file:")) if(0 == src.indexOf("file:"))
{
if (window["AscDesktopEditor"] !== undefined)
{
var _base64 = window["AscDesktopEditor"]["GetImageBase64"](src);
if (_base64 != "")
{
aImagesToDownload.push(_base64);
_mapLocal[_base64] = src;
}
else
{
this.oImages[image] = "local";
}
}
else
this.oImages[image] = "local"; this.oImages[image] = "local";
}
else if(false == (0 == src.indexOf(documentOrigin + this.api.DocumentUrl) || 0 == src.indexOf(this.api.DocumentUrl))) else if(false == (0 == src.indexOf(documentOrigin + this.api.DocumentUrl) || 0 == src.indexOf(this.api.DocumentUrl)))
aImagesToDownload.push(src); aImagesToDownload.push(src);
} }
...@@ -4912,7 +4929,14 @@ PasteProcessor.prototype = ...@@ -4912,7 +4929,14 @@ PasteProcessor.prototype =
var sFrom = aImagesToDownload[i]; var sFrom = aImagesToDownload[i];
var sTo = oFromTo[sFrom]; var sTo = oFromTo[sFrom];
if(sTo) if(sTo)
{ oThis.oImages[sFrom] = sTo; oPrepeareImages[i] = sTo; } } {
if (_mapLocal[sFrom] !== undefined)
sFrom = _mapLocal[sFrom];
oThis.oImages[sFrom] = sTo;
oPrepeareImages[i] = sTo;
}
}
} }
oThis.api.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage); oThis.api.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
oThis.api.pre_Paste(aPrepeareFonts, oPrepeareImages, fCallback); oThis.api.pre_Paste(aPrepeareFonts, oPrepeareImages, fCallback);
......
...@@ -9774,7 +9774,7 @@ CDocument.prototype = ...@@ -9774,7 +9774,7 @@ CDocument.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
} }
...@@ -9786,7 +9786,7 @@ CDocument.prototype = ...@@ -9786,7 +9786,7 @@ CDocument.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
} }
...@@ -10066,7 +10066,7 @@ CDocument.prototype = ...@@ -10066,7 +10066,7 @@ CDocument.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
} }
...@@ -10078,7 +10078,7 @@ CDocument.prototype = ...@@ -10078,7 +10078,7 @@ CDocument.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
} }
......
...@@ -460,7 +460,6 @@ function asc_docs_api(name) ...@@ -460,7 +460,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.isLoadImagesCustom = false; this.isLoadImagesCustom = false;
this.loadCustomImageMap = null; this.loadCustomImageMap = null;
...@@ -2384,7 +2383,7 @@ asc_docs_api.prototype.Share = function(){ ...@@ -2384,7 +2383,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 () {
...@@ -2435,8 +2434,7 @@ function OnSave_Callback(e) { ...@@ -2435,8 +2434,7 @@ function OnSave_Callback(e) {
asc_docs_api.prototype.asc_Save = function () asc_docs_api.prototype.asc_Save = function ()
{ {
// waitSave - означает, что сейчас происходит вставка данных и сохранять до окончания нельзя if (true === this.canSave && !this.asc_IsLongAction())
if (false === this.waitSave && true === this.canSave)
{ {
this.canSave = false; this.canSave = false;
this.CoAuthoringApi.askSaveChanges(OnSave_Callback); this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
...@@ -2697,7 +2695,7 @@ asc_docs_api.prototype.sync_StartAction = function(type, id){ ...@@ -2697,7 +2695,7 @@ asc_docs_api.prototype.sync_StartAction = function(type, id){
//console.log("asc_onStartAction: type = " + type + " id = " + id); //console.log("asc_onStartAction: type = " + type + " id = " + id);
if (c_oAscAsyncActionType.BlockInteraction == type) if (c_oAscAsyncActionType.BlockInteraction == type)
this.IsLongActionCurrent++; this.asc_IncrementCounterLongAction(this.IsLongActionCurrent);
}; };
asc_docs_api.prototype.sync_EndAction = function(type, id){ asc_docs_api.prototype.sync_EndAction = function(type, id){
//this.AsyncAction //this.AsyncAction
...@@ -2706,9 +2704,7 @@ asc_docs_api.prototype.sync_EndAction = function(type, id){ ...@@ -2706,9 +2704,7 @@ asc_docs_api.prototype.sync_EndAction = function(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()) if (!this.asc_IsLongAction())
{ {
...@@ -2723,6 +2719,17 @@ asc_docs_api.prototype.sync_EndAction = function(type, id){ ...@@ -2723,6 +2719,17 @@ asc_docs_api.prototype.sync_EndAction = function(type, id){
} }
}; };
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;
};
asc_docs_api.prototype.asc_IsLongAction = function() asc_docs_api.prototype.asc_IsLongAction = function()
{ {
return (0 == this.IsLongActionCurrent) ? false : true; return (0 == this.IsLongActionCurrent) ? false : true;
...@@ -6136,7 +6143,7 @@ asc_docs_api.prototype.asyncImagesDocumentEndLoaded = function() ...@@ -6136,7 +6143,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;
...@@ -6382,7 +6389,7 @@ asc_docs_api.prototype.pre_Paste = function(_fonts, _images, callback) ...@@ -6382,7 +6389,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;
...@@ -7463,10 +7470,10 @@ asc_docs_api.prototype.asc_RemoveStyle = function(sName) ...@@ -7463,10 +7470,10 @@ asc_docs_api.prototype.asc_RemoveStyle = function(sName)
}; };
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
......
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