Commit 4896d2af authored by Alexander.Trofimov's avatar Alexander.Trofimov

fix open chart editor

parent 0497050b
...@@ -958,10 +958,15 @@ var editor; ...@@ -958,10 +958,15 @@ var editor;
t.sendEvent('asc_onError', c_oAscError.ID.Unknown, c_oAscError.Level.Critical); t.sendEvent('asc_onError', c_oAscError.ID.Unknown, c_oAscError.Level.Critical);
}); });
}; };
spreadsheet_api.prototype.openDocumentFromZip = function(wb) { spreadsheet_api.prototype.openDocumentFromZip = function (wb) {
var t = this; var t = this;
return new Promise(function(resolve, reject) { return new Promise(function (resolve, reject) {
AscCommon.getJSZipUtils().getBinaryContent(t.documentUrl, function(err, data) { if (t.isChartEditor) {
resolve();
return;
}
AscCommon.getJSZipUtils().getBinaryContent(t.documentUrl, function (err, data) {
if (err) { if (err) {
reject(err); // or handle err reject(err); // or handle err
} else { } else {
...@@ -969,24 +974,24 @@ var editor; ...@@ -969,24 +974,24 @@ var editor;
var doc = new openXml.OpenXmlPackage(); var doc = new openXml.OpenXmlPackage();
var wbPart = null; var wbPart = null;
var wbXml = null; var wbXml = null;
var loadAsyncFile = require('jszip').loadAsync(data).then(function(zip) { var loadAsyncFile = require('jszip').loadAsync(data).then(function (zip) {
return doc.openFromZip(zip); return doc.openFromZip(zip);
}).then(function() { }).then(function () {
wbPart = doc.getPartByRelationshipType(openXml.relationshipTypes.workbook); wbPart = doc.getPartByRelationshipType(openXml.relationshipTypes.workbook);
return wbPart.getDocumentContent(); return wbPart.getDocumentContent();
}).then(function(contentWorkbook) { }).then(function (contentWorkbook) {
wbXml = new AscCommonExcel.CT_Workbook(); wbXml = new AscCommonExcel.CT_Workbook();
new openXml.SaxParserBase().parse(contentWorkbook, wbXml); new openXml.SaxParserBase().parse(contentWorkbook, wbXml);
if (wbXml.pivotCaches) { if (wbXml.pivotCaches) {
return wbXml.pivotCaches.reduce(function(prevVal, wbPivotCacheXml) { return wbXml.pivotCaches.reduce(function (prevVal, wbPivotCacheXml) {
var pivotTableCacheDefinitionPart; var pivotTableCacheDefinitionPart;
var pivotTableCacheDefinition; var pivotTableCacheDefinition;
return prevVal.then(function() { return prevVal.then(function () {
if (null !== wbPivotCacheXml.cacheId && null !== wbPivotCacheXml.id) { if (null !== wbPivotCacheXml.cacheId && null !== wbPivotCacheXml.id) {
pivotTableCacheDefinitionPart = wbPart.getPartById(wbPivotCacheXml.id); pivotTableCacheDefinitionPart = wbPart.getPartById(wbPivotCacheXml.id);
return pivotTableCacheDefinitionPart.getDocumentContent(); return pivotTableCacheDefinitionPart.getDocumentContent();
} }
}).then(function(content) { }).then(function (content) {
if (content) { if (content) {
pivotTableCacheDefinition = new CT_PivotCacheDefinition(); pivotTableCacheDefinition = new CT_PivotCacheDefinition();
new openXml.SaxParserBase().parse(content, pivotTableCacheDefinition); new openXml.SaxParserBase().parse(content, pivotTableCacheDefinition);
...@@ -997,7 +1002,7 @@ var editor; ...@@ -997,7 +1002,7 @@ var editor;
return partPivotTableCacheRecords.getDocumentContent(); return partPivotTableCacheRecords.getDocumentContent();
} }
} }
}).then(function(content) { }).then(function (content) {
if (content) { if (content) {
var pivotTableCacheRecords = new CT_PivotCacheRecords(); var pivotTableCacheRecords = new CT_PivotCacheRecords();
new openXml.SaxParserBase().parse(content, pivotTableCacheRecords); new openXml.SaxParserBase().parse(content, pivotTableCacheRecords);
...@@ -1006,29 +1011,30 @@ var editor; ...@@ -1006,29 +1011,30 @@ var editor;
}); });
}, Promise.resolve()); }, Promise.resolve());
} }
}).then(function() { }).then(function () {
if (wbXml.sheets) { if (wbXml.sheets) {
var wsIndex = 0; var wsIndex = 0;
return wbXml.sheets.reduce(function(prevVal, wbSheetXml) { return wbXml.sheets.reduce(function (prevVal, wbSheetXml) {
var wsPart; var wsPart;
return prevVal.then(function() { return prevVal.then(function () {
if (null !== wbSheetXml.id) { if (null !== wbSheetXml.id) {
var actions = []; var actions = [];
wsPart = wbPart.getPartById(wbSheetXml.id); wsPart = wbPart.getPartById(wbSheetXml.id);
var pivotParts = wsPart.getPartsByRelationshipType(openXml.relationshipTypes.pivotTable); var pivotParts = wsPart.getPartsByRelationshipType(
for(var i = 0 ; i < pivotParts.length; ++i){ openXml.relationshipTypes.pivotTable);
for (var i = 0; i < pivotParts.length; ++i) {
actions.push(pivotParts[i].getDocumentContent()); actions.push(pivotParts[i].getDocumentContent());
} }
return Promise.all(actions); return Promise.all(actions);
} }
}).then(function(res) { }).then(function (res) {
if(res){ if (res) {
var ws = wb.getWorksheet(wsIndex); var ws = wb.getWorksheet(wsIndex);
for(var i = 0; i < res.length; ++i){ for (var i = 0; i < res.length; ++i) {
var pivotTable = new CT_pivotTableDefinition(); var pivotTable = new CT_pivotTableDefinition();
new openXml.SaxParserBase().parse(res[i], pivotTable); new openXml.SaxParserBase().parse(res[i], pivotTable);
var cacheDefinition = wb.pivotCaches[pivotTable.cacheId]; var cacheDefinition = wb.pivotCaches[pivotTable.cacheId];
if(cacheDefinition){ if (cacheDefinition) {
pivotTable.cacheDefinition = cacheDefinition; pivotTable.cacheDefinition = cacheDefinition;
} }
ws.pivotTables.push(pivotTable); ws.pivotTables.push(pivotTable);
...@@ -1039,11 +1045,11 @@ var editor; ...@@ -1039,11 +1045,11 @@ var editor;
}, Promise.resolve()); }, Promise.resolve());
} }
}); });
Promise.all([loadAsyncFile, Asc.ReadDefTableStyles(wb)]).then(function() { Promise.all([loadAsyncFile, Asc.ReadDefTableStyles(wb)]).then(function () {
//clean up //clean up
openXml.SaxParserDataTransfer = {}; openXml.SaxParserDataTransfer = {};
resolve(); resolve();
}).catch(function(err) { }).catch(function (err) {
reject(err); reject(err);
}); });
} }
......
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