@sapui5/sap.ui.export 1.124.7 → 1.124.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/ui/export/.library +1 -1
- package/src/sap/ui/export/ExportBase.js +1 -1
- package/src/sap/ui/export/ExportHandler.js +1 -1
- package/src/sap/ui/export/ExportUtils.js +2 -2
- package/src/sap/ui/export/PortableDocument.js +21 -6
- package/src/sap/ui/export/Spreadsheet.js +3 -3
- package/src/sap/ui/export/SpreadsheetExport.js +1 -1
- package/src/sap/ui/export/library.js +2 -2
- package/src/sap/ui/export/provider/DataProviderBase.js +32 -12
- package/src/sap/ui/export/util/Filter.js +1 -1
package/package.json
CHANGED
|
@@ -27,7 +27,7 @@ sap.ui.define([
|
|
|
27
27
|
* @class The <code>sap.ui.export.ExportBase</code> class allows you to export table data from a UI5 application to certain formats. This class is an abstract class that requires specific implementations for each file format.
|
|
28
28
|
*
|
|
29
29
|
* @author SAP SE
|
|
30
|
-
* @version 1.124.
|
|
30
|
+
* @version 1.124.9
|
|
31
31
|
*
|
|
32
32
|
* @since 1.96
|
|
33
33
|
* @alias sap.ui.export.ExportBase
|
|
@@ -18,7 +18,7 @@ sap.ui.define(['./library', './ExportUtils', './ExportDialog', './util/PDFCapabi
|
|
|
18
18
|
* @class The <code>sap.ui.export.ExportHandler</code> class allows you to export table data from an SAPUI5 application.
|
|
19
19
|
*
|
|
20
20
|
* @author SAP SE
|
|
21
|
-
* @version 1.124.
|
|
21
|
+
* @version 1.124.9
|
|
22
22
|
*
|
|
23
23
|
* @since 1.102
|
|
24
24
|
* @alias sap.ui.export.ExportHandler
|
|
@@ -147,7 +147,7 @@ sap.ui.define([
|
|
|
147
147
|
* @class Utilities related to export to enable reuse in integration scenarios (e.g. tables).
|
|
148
148
|
*
|
|
149
149
|
* @author SAP SE
|
|
150
|
-
* @version 1.124.
|
|
150
|
+
* @version 1.124.9
|
|
151
151
|
*
|
|
152
152
|
* @since 1.59
|
|
153
153
|
* @alias sap.ui.export.ExportUtils
|
|
@@ -1228,7 +1228,7 @@ sap.ui.define([
|
|
|
1228
1228
|
*
|
|
1229
1229
|
* @param {object} oContext Context object
|
|
1230
1230
|
* @param {string} [oContext.application] Name of the application (default: "SAP UI5")
|
|
1231
|
-
* @param {string} [oContext.version] Application version (default: "1.124.
|
|
1231
|
+
* @param {string} [oContext.version] Application version (default: "1.124.9")
|
|
1232
1232
|
* @param {string} [oContext.title] Title that will be written to the file (NOT the filename)
|
|
1233
1233
|
* @param {string} [oContext.modifiedBy] Optional user context that will be written to the file
|
|
1234
1234
|
* @param {string} [oContext.sheetName] Name of the data sheet - Maximum length of 31 characters
|
|
@@ -24,7 +24,7 @@ sap.ui.define([
|
|
|
24
24
|
* @class The <code>sap.ui.export.PortableDocument</code> class allows you to export table data from a UI5 application to a Portable Document Format (*.PDF) file.
|
|
25
25
|
*
|
|
26
26
|
* @author SAP SE
|
|
27
|
-
* @version 1.124.
|
|
27
|
+
* @version 1.124.9
|
|
28
28
|
*
|
|
29
29
|
* @since 1.96
|
|
30
30
|
* @alias sap.ui.export.PortableDocument
|
|
@@ -201,17 +201,32 @@ sap.ui.define([
|
|
|
201
201
|
oDocumentDescription["CoverPage"] = [];
|
|
202
202
|
|
|
203
203
|
if (oMetaInfo instanceof Array) {
|
|
204
|
-
oMetaInfo.forEach(
|
|
204
|
+
oMetaInfo.forEach((oGroup) => {
|
|
205
205
|
if (iODataVersion === 2) {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
206
|
+
let fnTruncateString = (sValue) => sValue;
|
|
207
|
+
|
|
208
|
+
const oMetaModel = this._oModel?.getMetaModel();
|
|
209
|
+
const sEntityTypeName = oMetaModel?.getODataEntitySet("SAP__CoverPageSet")?.entityType;
|
|
210
|
+
const oEntityType = oMetaModel?.getODataEntityType(sEntityTypeName);
|
|
211
|
+
|
|
212
|
+
if (oEntityType) {
|
|
213
|
+
const oProperty = oEntityType.property.find(function(oProperty) {
|
|
214
|
+
return oProperty.name === 'Value';
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
if (oProperty && oProperty.maxLength) {
|
|
218
|
+
var iMaxLength = oProperty.maxLength;
|
|
219
|
+
fnTruncateString = (sValue) => {
|
|
220
|
+
return sValue.length > iMaxLength ? sValue.substring(0, iMaxLength - 3) + '...' : sValue;
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
}
|
|
209
224
|
|
|
210
225
|
oGroup.items.forEach(function(oItem) {
|
|
211
226
|
const oCoverPageGroup = {
|
|
212
227
|
"Title": oGroup.name,
|
|
213
228
|
"Name": oItem.key,
|
|
214
|
-
"Value":
|
|
229
|
+
"Value": fnTruncateString(oItem.value)
|
|
215
230
|
};
|
|
216
231
|
oDocumentDescription["CoverPage"].push(oCoverPageGroup);
|
|
217
232
|
});
|
|
@@ -85,7 +85,7 @@ sap.ui.define([
|
|
|
85
85
|
* <li><code>workbook.context</code> - Context object that will be applied to the generated file. It may contain the following fields:</li>
|
|
86
86
|
* <ul>
|
|
87
87
|
* <li><code>application</code> (string) - The application that creates the XLSX document (default: "SAP UI5")</li>
|
|
88
|
-
* <li><code>version</code> (string) - Application version that creates the XLSX document (default: "1.124.
|
|
88
|
+
* <li><code>version</code> (string) - Application version that creates the XLSX document (default: "1.124.9")</li>
|
|
89
89
|
* <li><code>title</code> (string) - Title of the XLSX document (NOT the filename)</li>
|
|
90
90
|
* <li><code>modifiedBy</code> (string) - User context for the XLSX document</li>
|
|
91
91
|
* <li><code>sheetName</code> (string) - The label of the data sheet</li>
|
|
@@ -169,7 +169,7 @@ sap.ui.define([
|
|
|
169
169
|
* columns: aColumns,
|
|
170
170
|
* context: {
|
|
171
171
|
* application: 'Debug Test Application',
|
|
172
|
-
* version: '1.124.
|
|
172
|
+
* version: '1.124.9',
|
|
173
173
|
* title: 'Some random title',
|
|
174
174
|
* modifiedBy: 'John Doe',
|
|
175
175
|
* metaSheetName: 'Custom metadata',
|
|
@@ -281,7 +281,7 @@ sap.ui.define([
|
|
|
281
281
|
* @class The <code>sap.ui.export.Spreadsheet</code> class allows you to export table data from a UI5 application to a spreadsheet file.
|
|
282
282
|
*
|
|
283
283
|
* @author SAP SE
|
|
284
|
-
* @version 1.124.
|
|
284
|
+
* @version 1.124.9
|
|
285
285
|
*
|
|
286
286
|
* @since 1.50
|
|
287
287
|
* @alias sap.ui.export.Spreadsheet
|
|
@@ -21,7 +21,7 @@ sap.ui.define(['sap/base/Log', 'sap/ui/export/ExportUtils'], function(Log, Expor
|
|
|
21
21
|
* Utility class to perform spreadsheet export.
|
|
22
22
|
*
|
|
23
23
|
* @author SAP SE
|
|
24
|
-
* @version 1.124.
|
|
24
|
+
* @version 1.124.9
|
|
25
25
|
*
|
|
26
26
|
* @alias sap.ui.export.SpreadsheetExport
|
|
27
27
|
* @private
|
|
@@ -15,7 +15,7 @@ sap.ui.define(["sap/ui/core/Lib"], function(Library) {
|
|
|
15
15
|
* @namespace
|
|
16
16
|
* @alias sap.ui.export
|
|
17
17
|
* @author SAP SE
|
|
18
|
-
* @version 1.124.
|
|
18
|
+
* @version 1.124.9
|
|
19
19
|
* @public
|
|
20
20
|
*/
|
|
21
21
|
|
|
@@ -33,7 +33,7 @@ sap.ui.define(["sap/ui/core/Lib"], function(Library) {
|
|
|
33
33
|
interfaces: [],
|
|
34
34
|
controls: [],
|
|
35
35
|
elements: [],
|
|
36
|
-
version: "1.124.
|
|
36
|
+
version: "1.124.9"
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
/**
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* @param {object} mSettings Data service related part of the export configuration
|
|
25
25
|
*
|
|
26
26
|
* @author SAP SE
|
|
27
|
-
* @version 1.124.
|
|
27
|
+
* @version 1.124.9
|
|
28
28
|
*
|
|
29
29
|
* @constructor
|
|
30
30
|
* @class DataProviderBase
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
this.iAvailableRows = 0;
|
|
40
40
|
this.mRequest = null;
|
|
41
41
|
this.iCount = Math.min(mSettings.dataSource.count || DataProviderBase.MAX_ROWS, DataProviderBase.MAX_ROWS);
|
|
42
|
+
this.fnConvertData = DataProviderBase.getDataConverter(this.mSettings);
|
|
42
43
|
|
|
43
44
|
if (this.mSettings.dataSource.downloadLimit) {
|
|
44
45
|
this.iTotalRows = this.mSettings.dataSource.downloadLimit;
|
|
@@ -195,7 +196,6 @@
|
|
|
195
196
|
DataProviderBase.prototype.requestData = function(fnProcessCallback) {
|
|
196
197
|
var mDataSource = this.mSettings.dataSource;
|
|
197
198
|
|
|
198
|
-
this.fnConvertData = DataProviderBase.getDataConverter(this.mSettings);
|
|
199
199
|
this.fnProcessCallback = fnProcessCallback;
|
|
200
200
|
|
|
201
201
|
// Execution
|
|
@@ -231,7 +231,7 @@
|
|
|
231
231
|
* @private
|
|
232
232
|
*/
|
|
233
233
|
DataProviderBase.prototype.fnOnDataReceived = function(oResult) {
|
|
234
|
-
var aData, sNextUrl, iFetchedRows, iRemainingRows;
|
|
234
|
+
var aData, sNextUrl, iFetchedRows, iRemainingRows, bWasServerSidePaging;
|
|
235
235
|
var mCallbackParams = {};
|
|
236
236
|
this.oPendingXHR = null;
|
|
237
237
|
if (this.bCanceled) {
|
|
@@ -241,6 +241,7 @@
|
|
|
241
241
|
/* Check for OData V4 result, if not present check for OData V2 result or apply default */
|
|
242
242
|
aData = (oResult && oResult.value || (oResult.d && (oResult.d.results || oResult.d))) || oResult;
|
|
243
243
|
aData = (Array.isArray(aData)) ? aData : [];
|
|
244
|
+
bWasServerSidePaging = this.mRequest?.dataUrl.includes("$skiptoken");
|
|
244
245
|
iFetchedRows = aData.length;
|
|
245
246
|
|
|
246
247
|
this.iAvailableRows += iFetchedRows;
|
|
@@ -250,7 +251,7 @@
|
|
|
250
251
|
|
|
251
252
|
iRemainingRows = this.iTotalRows - this.iAvailableRows;
|
|
252
253
|
|
|
253
|
-
mCallbackParams.finished = this._isFinished(iFetchedRows, sNextUrl, iRemainingRows);
|
|
254
|
+
mCallbackParams.finished = this._isFinished(iFetchedRows, sNextUrl, iRemainingRows, bWasServerSidePaging);
|
|
254
255
|
mCallbackParams.progress = this.iTotalRows;
|
|
255
256
|
mCallbackParams.total = this.iTotalRows < this.iCount ? this.iTotalRows : this.iCount;
|
|
256
257
|
mCallbackParams.fetched = this.iAvailableRows;
|
|
@@ -275,17 +276,36 @@
|
|
|
275
276
|
* The function returns array of columns that need special conversion for values.
|
|
276
277
|
* E.g. handling data from association/navigationProperty
|
|
277
278
|
*
|
|
278
|
-
* @param {number} iFetchedRows
|
|
279
|
-
* @param {string} sNextUrl
|
|
280
|
-
* @param {number} iRemainingRows
|
|
281
|
-
* @
|
|
279
|
+
* @param {number} iFetchedRows Number of rows fetched
|
|
280
|
+
* @param {string} sNextUrl Next url to fetch data
|
|
281
|
+
* @param {number} iRemainingRows Remaining rows to fetch
|
|
282
|
+
* @param {boolean} bWasServerSidePaging Flag if server side paging was used
|
|
282
283
|
*
|
|
283
|
-
* @
|
|
284
|
+
* @returns {boolean} True if the finish condition is met
|
|
284
285
|
* @private
|
|
285
286
|
*/
|
|
286
|
-
DataProviderBase.prototype._isFinished = function(iFetchedRows, sNextUrl, iRemainingRows) {
|
|
287
|
-
|
|
288
|
-
|
|
287
|
+
DataProviderBase.prototype._isFinished = function(iFetchedRows, sNextUrl, iRemainingRows, bWasServerSidePaging) {
|
|
288
|
+
if (iFetchedRows === 0 || iRemainingRows <= 0) {
|
|
289
|
+
return true;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
if (sNextUrl) {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (iFetchedRows > this.iBatchSize) {
|
|
297
|
+
return true;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
if (iFetchedRows < this.iBatchSize && bWasServerSidePaging) {
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
if (iFetchedRows === this.iBatchSize) {
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return true;
|
|
289
309
|
};
|
|
290
310
|
|
|
291
311
|
/**
|
|
@@ -20,7 +20,7 @@ sap.ui.define(['sap/ui/base/Object'], function(BaseObject) {
|
|
|
20
20
|
* convenience functions like <code>sap.ui.export.util.Filter#setType</code> to improve the result.
|
|
21
21
|
*
|
|
22
22
|
* @author SAP SE
|
|
23
|
-
* @version 1.124.
|
|
23
|
+
* @version 1.124.9
|
|
24
24
|
*
|
|
25
25
|
* @since 1.110
|
|
26
26
|
* @alias sap.ui.export.util.Filter
|