Commit dbcbc309 authored by Igor.Zotov's avatar Igor.Zotov

загрузка изображений на сервер -> использую sendImgUrls

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@65336 954022d7-b5bf-4e40-9824-e11837661b57
parent 1a3a5255
......@@ -2442,11 +2442,19 @@ function Editor_Paste_Exec(api, pastebin, nodeDisplay, onlyBinary)
function trimString( str ){
return str.replace(/^\s+|\s+$/g, '') ;
};
function sendImgUrls(api, images, callback) {
var rData = {"id": documentId, "c": "imgurls", "vkey": documentVKey, "userid": documentUserId, "saveindex": g_oDocumentUrls.getMaxIndex(), "data": images};
function sendImgUrls(api, images, callback, bExcel) {
var rData = {"id": bExcel ? api.documentId : documentId, "c": "imgurls", "vkey": bExcel ? api.documentVKey : documentVKey, "userid": bExcel ? api.documentUserId : documentUserId, "saveindex": g_oDocumentUrls.getMaxIndex(), "data": images};
if(!bExcel)
api.sync_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
else
api.asc_StartAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
api.fCurCallback = function (input) {
if(!bExcel)
api.sync_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
else
api.asc_EndAction(c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
if (null != input && "imgurls" == input["type"]) {
if ("ok" == input["status"]) {
var data = input["data"];
......@@ -2460,10 +2468,16 @@ function sendImgUrls(api, images, callback) {
g_oDocumentUrls.addUrls(urls);
callback(data);
} else {
if(!bExcel)
api.asc_fireCallback("asc_onError", g_fMapAscServerErrorToAscError(parseInt(input["data"])), c_oAscError.Level.NoCritical);
else
api.handlers.trigger("asc_onError", g_fMapAscServerErrorToAscError(parseInt(input["data"])), c_oAscError.Level.NoCritical);
}
} else {
if(!bExcel)
api.asc_fireCallback("asc_onError", c_oAscError.ID.Unknown, c_oAscError.Level.NoCritical);
else
api.handlers.trigger("asc_onError", c_oAscError.ID.Unknown,c_oAscError.Level.NoCritical);
}
};
sendCommand2(api, null, rData);
......@@ -3608,84 +3622,6 @@ PasteProcessor.prototype =
}
return;
}
case "TeamLab4":
{
var objects = this.ReadPresentationShapes(stream);
var arr_shapes = objects.arrShapes;
var presentation = editor.WordControl.m_oLogicDocument;
oThis = this;
var fonts = [];
var images = [];
for(var i = 0; i < arr_shapes.length; ++i)
{
if(arr_shapes[i].getAllFonts)
arr_shapes[i].getAllFonts(fonts);
if(arr_shapes[i].getAllImages)
arr_shapes[i].getAllImages(images);
}
var paste_callback = function()
{
if(false == oThis.bNested)
{
var b_add_slide = false;
if(presentation.Slides.length === 0)
{
presentation.addNextSlide();
b_add_slide = true;
}
if(presentation.Document_Is_SelectionLocked(changestype_AddShapes, arr_shapes) === false)
{
var slide = presentation.Slides[presentation.CurPage];
if(presentation.Document_Is_SelectionLocked(changestype_Drawing_Props) === false)
{
slide.graphicObjects.resetSelectionState();
for(var i = 0; i < arr_shapes.length; ++i)
{
if(b_add_slide)
{
arr_shapes[i].setParent(presentation.Slides[0]);
}
arr_shapes[i].changeSize(presentation.Width, presentation.Height);
slide.addToSpTreeToPos(slide.cSld.spTree.length, arr_shapes[i]);
arr_shapes[i].select(slide.graphicObjects);
}
}
presentation.Recalculate();
}
nodeDisplay.blur();
nodeDisplay.style.display = ELEMENT_DISPAY_STYLE;
}
};
var aImagesToDownload = [];
for(var i in images)
aImagesToDownload.push(i);
if(aImagesToDownload.length > 0)
{
sendImgUrls(oThis.api, aImagesToDownload, function (data) {
var image_map = {};
for (var i = 0, length = data.length; i < length; ++i) {
var elem = data[i];
var sFrom = aImagesToDownload[i];
if (null != elem.url) {
var name = g_oDocumentUrls.imagePath2Local(elem.path);
oThis.oImages[sFrom] = name;
image_map[i] = name;
} else {
image_map[i] = sFrom;
}
}
oThis.api.pre_Paste(fonts, image_map, paste_callback);
});
}
else
{
this.api.pre_Paste(fonts, [], paste_callback);
}
return;
}
}
}
else if(base64FromWord)//вставляем в презентации из документов
......
......@@ -1925,53 +1925,15 @@
_loadImagesOnServer: function(aPastedImages, callback)
{
var api = asc["editor"];
var aImagesToDownload = [];
var t = this;
for(var k = 0; k < aPastedImages.length; k++)
{
var src = aPastedImages[k].Url;
var oObjectsForDownload = GetObjectsForImageDownload(aPastedImages);
if(!g_oDocumentUrls.getImageLocal(src))
aImagesToDownload.push(src);
}
sendImgUrls(api, oObjectsForDownload.aUrls, function (data) {
var oImageMap = {};
ResetNewUrls(data, oObjectsForDownload.aUrls, oObjectsForDownload.aBuilderImagesByUrl, oImageMap);
if(aImagesToDownload.length > 0)
{
var rData = {"id": api.documentId, "c":"imgurls", "vkey": api.documentVKey, "userid": api.documentUserId, "saveindex": g_oDocumentUrls.getMaxIndex(), "data": aImagesToDownload};
api.fCurCallback = function(input) {
if(null != input && "imgurls" == input["type"]){
if("ok" == input["status"]) {
var data = input["data"];
var urls = {};
var aImagesSync = [];
for(var i = 0, length = data.length; i < length; ++i)
{
var elem = data[i];
if(elem.url)
{
urls[elem.path] = elem.url;
var name = g_oDocumentUrls.imagePath2Local(elem.path);
aImagesSync.push(name);
var imageElem = aPastedImages[i];
if(null != imageElem) {
imageElem.SetUrl(name);
}
}
}
g_oDocumentUrls.addUrls(urls);
} else {
api.handlers.trigger("asc_onError", g_fMapAscServerErrorToAscError(parseInt(input["data"])), c_oAscError.Level.NoCritical);
}
} else {
api.handlers.trigger("asc_onError", c_oAscError.ID.Unknown,c_oAscError.Level.NoCritical);
}
callback();
};
sendCommand2( api, null, rData );
}
else
callback();
}, true);
},
ReadPresentationShapes: function(stream, worksheet)
......@@ -2220,68 +2182,6 @@
window.GlobalPasteFlag = false;
},
_correctImageUrl: function (aResult, worksheet)
{
var api = asc["editor"];
var aImagesToDownload = [];
var t = this;
var addImages = aResult.addImages ? aResult.addImages : [];
for(var k = 0; k < addImages.length; k++)
{
var src = addImages[k].tag.src;
//TODO просмотреть для локальных ссылок
/*if(0 == src.indexOf("file:"))
this.oImages[image] = "local";
else*/
//TODO не вставляется картинка из EXCEL - стоит base64 грузить на сервер bug 22957
if(!g_oDocumentUrls.getImageLocal(src))
aImagesToDownload.push(src);
}
if(aImagesToDownload.length > 0)
{
var rData = {"id": api.documentId, "c":"imgurls", "vkey": api.documentVKey, "userid": api.documentUserId, "saveindex": g_oDocumentUrls.getMaxIndex(), "data": aImagesToDownload};
api.fCurCallback = function(input) {
if(null != input && "imgurls" == input["type"]){
if("ok" == input["status"]) {
var data = input["data"];
var urls = {};
for(var i = 0, length = data.length; i < length; ++i)
{
var elem = data[i];
if(elem.url)
{
urls[elem.path] = elem.url;
var name = g_oDocumentUrls.imagePath2Local(elem.path);
if(aResult.addImages[i])
{
var height = aResult.addImages[i].tag.height;
var width = aResult.addImages[i].tag.width;
aResult.addImages[i].tag =
{
height: height,
width: width,
src: name
};
}
}
}
g_oDocumentUrls.addUrls(urls);
} else {
api.handlers.trigger("asc_onError", g_fMapAscServerErrorToAscError(parseInt(input["data"])), c_oAscError.Level.NoCritical);
}
} else {
api.handlers.trigger("asc_onError", c_oAscError.ID.Unknown,c_oAscError.Level.NoCritical);
}
t._pasteResult(aResult, worksheet);
};
sendCommand2( api, null, rData );
}
else
t._pasteResult(aResult, worksheet);
},
_pasteResult: function(aResult, worksheet)
{
//insert into document content
......
......@@ -8363,55 +8363,16 @@
}
else if(val.addImagesFromWord && val.addImagesFromWord.length != 0 && !(window["Asc"]["editor"] && window["Asc"]["editor"].isChartEditor))
{
//показываем плашку для отправки изображений на сервер
api.handlers.trigger("asc_onStartAction", c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
var oObjectsForDownload = GetObjectsForImageDownload(val._aPastedImages);
var rData = {"id": api.documentId, "c":"imgurls", "vkey": api.documentVKey, "userid": api.documentUserId, "saveindex": g_oDocumentUrls.getMaxIndex(), "data": val._images};
api.fCurCallback = function(input) {
if(null != input && "imgurls" == input["type"]){
if("ok" == input["status"]) {
var data = input["data"];
var urls = {};
var aImagesSync = [];
for(var i = 0, length = data.length; i < length; ++i)
{
var elem = data[i];
if(elem.url)
{
urls[elem.path] = elem.url;
var name = g_oDocumentUrls.imagePath2Local(elem.path);
aImagesSync.push(name);
var imageElem = oObjectsForDownload && oObjectsForDownload.aBuilderImagesByUrl && oObjectsForDownload.aBuilderImagesByUrl[i] ? oObjectsForDownload.aBuilderImagesByUrl[i] : null;
if(null != imageElem) {
if(imageElem.length)
{
for(var j = 0; j < imageElem.length; j++)
{
if(imageElem[j])
imageElem[j].SetUrl(name);
}
}
else
imageElem.SetUrl(name);
}
}
}
g_oDocumentUrls.addUrls(urls);
sendImgUrls(api, oObjectsForDownload.aUrls, function (data) {
var oImageMap = {};
ResetNewUrls(data, oObjectsForDownload.aUrls, oObjectsForDownload.aBuilderImagesByUrl, oImageMap);
if(val.onlyImages !== true)
t._pasteFromLocalBuff(isLargeRange, isLocal, val, bIsUpdate, canChangeColWidth);
api.wb.clipboard._insertImagesFromBinaryWord(t, val, aImagesSync);
} else {
api.handlers.trigger("asc_onError", g_fMapAscServerErrorToAscError(parseInt(input["data"])), c_oAscError.Level.NoCritical);
}
} else {
api.handlers.trigger("asc_onError", c_oAscError.ID.Unknown,c_oAscError.Level.NoCritical);
}
api.handlers.trigger("asc_onEndAction", c_oAscAsyncActionType.BlockInteraction, c_oAscAsyncAction.LoadImage);
};
sendCommand2( api, null, rData );
api.wb.clipboard._insertImagesFromBinaryWord(t, val, oImageMap);
}, true);
}
else if(val.onlyImages !== true)
t._pasteFromLocalBuff(isLargeRange, isLocal, val, bIsUpdate, canChangeColWidth);
......
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