Skip to content

Commit 4c85354

Browse files
authored
Merge pull request #123 from mendix/release/8.0.0
Release/8.0.0
2 parents 82fb5dd + 854dbad commit 4c85354

File tree

434 files changed

+40601
-2615
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

434 files changed

+40601
-2615
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ apply plugin: 'org.owasp.dependencycheck'
2222
apply plugin: 'com.github.ben-manes.versions'
2323

2424
project.ext {
25-
PNC_VERSION = '7.4.2'
26-
MXBUILD_VERSION = '9.24.0.2965'
25+
PNC_VERSION = '8.0.0'
26+
MXBUILD_VERSION = '10.21.0.64362'
2727
MODULE_NAME = 'PushNotifications'
2828
}
2929

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "MxPushNotifications",
3-
"version": "7.4.2",
3+
"version": "8.0.0",
44
"description": "Phonegap widget for notifications",
55
"license": "Apache 2.0",
66
"author": "Mendix Technology B.V.",

test/PushNotfications.mpr

3 MB
Binary file not shown.

test/javascriptsource/datawidgets/actions/Export_To_Excel.js

Lines changed: 47 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -26,54 +26,57 @@ export async function Export_To_Excel(datagridName, fileName, sheetName, include
2626
return false;
2727
}
2828

29-
return new Promise((resolve, reject) => {
30-
const stream =
31-
window[window.DATAGRID_DATA_EXPORT][datagridName].create();
29+
const REGISTRY_NAME = "com.mendix.widgets.web.datagrid.export";
30+
const registry = window[REGISTRY_NAME];
31+
const controller = registry.get(datagridName);
3232

33-
let worksheet;
34-
let headers;
35-
const streamOptions = { limit: chunkSize };
36-
stream.process((msg) => {
37-
if (!msg) {
38-
return;
39-
}
33+
if (controller === undefined) {
34+
return false;
35+
}
36+
37+
return new Promise((resolve) => {
38+
function handler(req) {
39+
let worksheet;
40+
let headers;
4041

41-
switch (msg.type) {
42-
case "columns":
43-
headers = msg.payload.map(column => column.name);
44-
if (includeColumnHeaders) {
45-
worksheet = utils.aoa_to_sheet([headers]);
46-
}
47-
break;
48-
case "data":
49-
if (worksheet === undefined) {
50-
worksheet = utils.aoa_to_sheet(msg.payload)
51-
} else {
52-
utils.sheet_add_aoa(worksheet, msg.payload, { origin: -1 });
53-
}
54-
break;
55-
case "end":
56-
if (worksheet) {
57-
// Set character width for each column
58-
// https://docs.sheetjs.com/docs/csf/sheet#worksheet-object
59-
worksheet["!cols"] = headers.map(header => ({
60-
wch: header.length + 10
61-
}));
62-
const workbook = utils.book_new();
63-
utils.book_append_sheet(workbook, worksheet, sheetName === "" ? "Data" : sheetName);
64-
writeFileXLSX(workbook, `${fileName}.xlsx`);
65-
resolve(true);
66-
} else {
67-
resolve(false);
68-
}
69-
break;
70-
case "aborted":
42+
req.on("headers", (hds) => {
43+
headers = hds.map(header => header.name);
44+
if (includeColumnHeaders) {
45+
worksheet = utils.aoa_to_sheet([headers]);
46+
}
47+
});
48+
49+
req.on("data", (data) => {
50+
if (worksheet === undefined) {
51+
worksheet = utils.aoa_to_sheet(data)
52+
} else {
53+
utils.sheet_add_aoa(worksheet, data, { origin: -1 });
54+
}
55+
});
56+
57+
req.on("end", () => {
58+
if (worksheet) {
59+
// Set character width for each column
60+
// https://docs.sheetjs.com/docs/csf/sheet#worksheet-object
61+
worksheet["!cols"] = headers.map(header => ({
62+
wch: header.length + 10
63+
}));
64+
const workbook = utils.book_new();
65+
utils.book_append_sheet(workbook, worksheet, sheetName === "" ? "Data" : sheetName);
66+
writeFileXLSX(workbook, `${fileName}.xlsx`);
67+
resolve(true);
68+
} else {
7169
resolve(false);
72-
break;
73-
}
74-
}, streamOptions);
70+
}
71+
});
72+
73+
req.on("abort", () => resolve(false));
74+
}
7575

76-
stream.start();
76+
controller.exportData(handler, {
77+
withHeaders: true,
78+
limit: chunkSize.toNumber()
79+
})
7780
});
7881
// END USER CODE
7982
}

test/javascriptsource/datawidgets/actions/Reset_All_Filters.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ import "mx-global";
1313

1414
/**
1515
* @param {string} targetName - Name of the widget for which filters should be reset. Valid targets are: Data grid 2, Gallery. You can find filter name in widget settings in the "Common" group (Properties>Common>Name).
16+
* @param {boolean} setToDefault - Set to default value. If true, filter will be set to its default value, otherwise it will be set to empty.
1617
* @returns {Promise.<void>}
1718
*/
18-
export async function Reset_All_Filters(targetName) {
19+
export async function Reset_All_Filters(targetName, setToDefault) {
1920
// BEGIN USER CODE
2021
const plugin = window["com.mendix.widgets.web.plugin.externalEvents"];
2122
if (plugin) {
22-
plugin.emit(targetName, "reset.filters");
23+
plugin.emit(targetName, "reset.filters", setToDefault);
2324
}
2425
// END USER CODE
2526
}

test/javascriptsource/datawidgets/actions/Reset_Filter.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ import { Big } from "big.js";
1313

1414
/**
1515
* @param {string} targetName - Name of the filter to reset. Valid targets are: Number filter, Date filter, Text filter, Drop-down filter. You can find filter name in widget settings in the "Common" group (Properties>Common>Name).
16+
* @param {boolean} setToDefault - Set to default value. If true, filter will be set to its default value, otherwise it will be set to empty.
1617
* @returns {Promise.<void>}
1718
*/
18-
export async function Reset_Filter(targetName) {
19+
export async function Reset_Filter(targetName, setToDefault) {
1920
// BEGIN USER CODE
2021
const plugin = window["com.mendix.widgets.web.plugin.externalEvents"];
2122
if (plugin) {
22-
plugin.emit(targetName, "reset.value");
23+
plugin.emit(targetName, "reset.value", setToDefault);
2324
}
2425
// END USER CODE
2526
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// This file was generated by Mendix Studio Pro.
2+
//
3+
// WARNING: Only the following code will be retained when actions are regenerated:
4+
// - the import list
5+
// - the code between BEGIN USER CODE and END USER CODE
6+
// - the code between BEGIN EXTRA CODE and END EXTRA CODE
7+
// Other code you write will be lost the next time you deploy the project.
8+
import "mx-global";
9+
import { Big } from "big.js";
10+
11+
// BEGIN EXTRA CODE
12+
// END EXTRA CODE
13+
14+
/**
15+
* @param {string} targetName - Name of the filter to set. Valid targets are: Number filter, Date filter, Text filter, Drop-down filter. You can find filter name in widget settings in the "Common" group (Properties>Common>Name).
16+
* @param {boolean} useDefaultValue - Determine the use of default value provided by the filter component itself.
17+
If true, "Value" section will be ignored
18+
* @param {"DataWidgets.Filter_Operators.contains"|"DataWidgets.Filter_Operators.startsWith"|"DataWidgets.Filter_Operators.endsWith"|"DataWidgets.Filter_Operators.between"|"DataWidgets.Filter_Operators.greater"|"DataWidgets.Filter_Operators.greaterEqual"|"DataWidgets.Filter_Operators.equal"|"DataWidgets.Filter_Operators.notEqual"|"DataWidgets.Filter_Operators.smaller"|"DataWidgets.Filter_Operators.smallerEqual"|"DataWidgets.Filter_Operators.empty"|"DataWidgets.Filter_Operators.notEmpty"} operators - Selected operators value. If filter has operators, this value will be applied.
19+
* @param {string} stringValue - Value set for dropdown filter or text filter. Choose empty if not use.
20+
* @param {Big} numberValue - Number value for number filter. Choose empty if not use.
21+
* @param {Date} dateTimeValue - Date time value for date filter, can also be use as "start date". Choose empty if not use.
22+
* @param {Date} dateTimeValue_2 - End date time value for range filter. Choose empty if not use.
23+
* @returns {Promise.<void>}
24+
*/
25+
export async function Set_Filter(targetName, useDefaultValue, operators, stringValue, numberValue, dateTimeValue, dateTimeValue_2) {
26+
// BEGIN USER CODE
27+
const plugin = window["com.mendix.widgets.web.plugin.externalEvents"];
28+
if (plugin) {
29+
plugin.emit(targetName, "set.value", useDefaultValue, {
30+
operators, stringValue, numberValue, dateTimeValue, dateTimeValue2: dateTimeValue_2
31+
});
32+
}
33+
// END USER CODE
34+
}

test/javascriptsource/datawidgets/actions/xlsx-export-tools.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/javascriptsource/nanoflowcommons/actions/Base64Encode.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ import { Base64 } from 'js-base64';
1212
// END EXTRA CODE
1313

1414
/**
15-
* @param {string} string
15+
* @param {string} stringToEncode
1616
* @returns {Promise.<string>}
1717
*/
18-
export async function Base64Encode(string) {
18+
export async function Base64Encode(stringToEncode) {
1919
// BEGIN USER CODE
20-
return Base64.encode(string);
20+
return Base64.encode(stringToEncode);
2121
// END USER CODE
2222
}

0 commit comments

Comments
 (0)