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)
document.body.style["-webkit-user-select"] = "none";
History.Create_NewPoint(historydescription_PasteButtonIE);
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste(api, false);
return true;
}
......@@ -2049,7 +2049,7 @@ function Editor_Paste_Button(api)
if(ElemToSelect && ElemToSelect.innerHTML !== " " && ElemToSelect.innerHTML !== "")
{
History.Create_NewPoint(historydescription_PasteButtonNotIE);
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste_Exec(api, ElemToSelect);
}
else
......@@ -4888,11 +4888,28 @@ PasteProcessor.prototype =
var aPrepeareFonts = this._Prepeare_recursive(node, true, true);
var aImagesToDownload = [];
var _mapLocal = {};
for(var image in this.oImages)
{
var src = this.oImages[image];
if(0 == src.indexOf("file:"))
this.oImages[image] = "local";
{
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";
}
else if(false == (0 == src.indexOf(documentOrigin + this.api.DocumentUrl) || 0 == src.indexOf(this.api.DocumentUrl)))
aImagesToDownload.push(src);
}
......@@ -4912,7 +4929,14 @@ PasteProcessor.prototype =
var sFrom = aImagesToDownload[i];
var sTo = oFromTo[sFrom];
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.pre_Paste(aPrepeareFonts, oPrepeareImages, fCallback);
......
......@@ -9774,7 +9774,7 @@ CDocument.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
}
......@@ -9786,7 +9786,7 @@ CDocument.prototype =
SafariIntervalFocus();
window.GlobalPasteFlag = true;
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
//не возвращаем true чтобы не было preventDefault
}
......@@ -10066,7 +10066,7 @@ CDocument.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
}
......@@ -10078,7 +10078,7 @@ CDocument.prototype =
SafariIntervalFocus();
window.GlobalPasteFlag = true;
editor.waitSave = true;
editor.asc_IncrementCounterLongAction();
Editor_Paste(this.DrawingDocument.m_oWordControl.m_oApi, true);
//не возвращаем true чтобы не было preventDefault
}
......
......@@ -460,7 +460,6 @@ function asc_docs_api(name)
this.isSaveFonts_Images = false;
this.saveImageMap = null;
this.canSave = true;//Флаг нужен чтобы не происходило сохранение пока не завершится предыдущее сохранение
this.waitSave = false; // Отложенное сохранение, происходит во время долгих операций
this.isLoadImagesCustom = false;
this.loadCustomImageMap = null;
......@@ -502,7 +501,7 @@ function asc_docs_api(name)
this.chartPreviewManager = new ChartPreviewManager();
else
this.chartPreviewManager = null;
this.IsLongActionCurrent = 0;
this.LongActionCallbacks = [];
this.LongActionCallbacksParams = [];
......@@ -2384,7 +2383,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 () {
......@@ -2435,8 +2434,7 @@ function OnSave_Callback(e) {
asc_docs_api.prototype.asc_Save = function ()
{
// waitSave - означает, что сейчас происходит вставка данных и сохранять до окончания нельзя
if (false === this.waitSave && true === this.canSave)
if (true === this.canSave && !this.asc_IsLongAction())
{
this.canSave = false;
this.CoAuthoringApi.askSaveChanges(OnSave_Callback);
......@@ -2697,7 +2695,7 @@ asc_docs_api.prototype.sync_StartAction = function(type, id){
//console.log("asc_onStartAction: type = " + type + " id = " + id);
if (c_oAscAsyncActionType.BlockInteraction == type)
this.IsLongActionCurrent++;
this.asc_IncrementCounterLongAction(this.IsLongActionCurrent);
};
asc_docs_api.prototype.sync_EndAction = function(type, id){
//this.AsyncAction
......@@ -2706,9 +2704,7 @@ asc_docs_api.prototype.sync_EndAction = function(type, id){
if (c_oAscAsyncActionType.BlockInteraction == type)
{
this.IsLongActionCurrent--;
if (this.IsLongActionCurrent < 0)
this.IsLongActionCurrent = 0;
this.asc_DecrementCounterLongAction();
if (!this.asc_IsLongAction())
{
......@@ -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()
{
return (0 == this.IsLongActionCurrent) ? false : true;
......@@ -6136,7 +6143,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;
......@@ -6382,7 +6389,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;
......@@ -7463,10 +7470,10 @@ asc_docs_api.prototype.asc_RemoveStyle = function(sName)
};
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
......
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