@onehat/ui 0.3.375 → 0.3.377
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
CHANGED
|
@@ -542,12 +542,8 @@ export default function withFilters(WrappedComponent) {
|
|
|
542
542
|
newSlots = _.clone(modalSlots),
|
|
543
543
|
i = searchAllText ? ixPlusOne : ix; // compensate for 'q' filter's possible presence
|
|
544
544
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
} else {
|
|
548
|
-
newFilters[i] = getFormattedFilter(value);
|
|
549
|
-
}
|
|
550
|
-
newSlots[ix] = value;
|
|
545
|
+
newFilters[i] = getFormattedFilter(value);
|
|
546
|
+
newSlots[i] = value;
|
|
551
547
|
|
|
552
548
|
setModalFilters(newFilters);
|
|
553
549
|
setModalSlots(newSlots);
|
|
@@ -10,21 +10,19 @@ import {
|
|
|
10
10
|
UI_MODE_WEB,
|
|
11
11
|
CURRENT_MODE,
|
|
12
12
|
} from '../../Constants/UiModes.js';
|
|
13
|
+
import {
|
|
14
|
+
REPORT_TYPES__EXCEL,
|
|
15
|
+
REPORT_TYPES__PDF,
|
|
16
|
+
} from '../../Constants/ReportTypes.js';
|
|
13
17
|
import Form from '../Form/Form.js';
|
|
14
18
|
import withComponent from '../Hoc/withComponent.js';
|
|
15
19
|
import testProps from '../../Functions/testProps.js';
|
|
16
20
|
import ChartLine from '../Icons/ChartLine.js';
|
|
17
21
|
import Pdf from '../Icons/Pdf.js';
|
|
18
22
|
import Excel from '../Icons/Excel.js';
|
|
19
|
-
import
|
|
20
|
-
import downloadInBackground from '../../Functions/downloadInBackground.js';
|
|
21
|
-
import downloadWithFetch from '../../Functions/downloadWithFetch.js';
|
|
23
|
+
import getReport from '../../Functions/getReport.js';
|
|
22
24
|
import _ from 'lodash';
|
|
23
25
|
|
|
24
|
-
const
|
|
25
|
-
PDF = 'PDF',
|
|
26
|
-
EXCEL = 'PhpOffice';
|
|
27
|
-
|
|
28
26
|
function Report(props) {
|
|
29
27
|
if (CURRENT_MODE !== UI_MODE_WEB) {
|
|
30
28
|
return <Text>Reports are web only!</Text>;
|
|
@@ -40,30 +38,7 @@ function Report(props) {
|
|
|
40
38
|
showReportHeaders = true,
|
|
41
39
|
h = '300px',
|
|
42
40
|
} = props,
|
|
43
|
-
|
|
44
|
-
buttons = [],
|
|
45
|
-
getReport = (reportType, data) => {
|
|
46
|
-
const params = {
|
|
47
|
-
report_id: reportId,
|
|
48
|
-
outputFileType: reportType,
|
|
49
|
-
showReportHeaders,
|
|
50
|
-
// download_token, // not sure this is needed
|
|
51
|
-
...data,
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
if (reportType === EXCEL) {
|
|
55
|
-
downloadInBackground(url, params);
|
|
56
|
-
} else {
|
|
57
|
-
const options = {
|
|
58
|
-
method: 'POST',
|
|
59
|
-
headers: {
|
|
60
|
-
'Content-Type': 'application/json',
|
|
61
|
-
},
|
|
62
|
-
body: JSON.stringify(params),
|
|
63
|
-
};
|
|
64
|
-
downloadWithFetch(url, options);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
41
|
+
buttons = [];
|
|
67
42
|
|
|
68
43
|
const propsIcon = props._icon || {};
|
|
69
44
|
propsIcon.size = 60;
|
|
@@ -86,7 +61,12 @@ function Report(props) {
|
|
|
86
61
|
key: 'excelBtn',
|
|
87
62
|
text: 'Download Excel',
|
|
88
63
|
leftIcon: <Icon as={Excel} size="md" color="#fff" />,
|
|
89
|
-
onPress: (data) => getReport(
|
|
64
|
+
onPress: (data) => getReport({
|
|
65
|
+
reportId,
|
|
66
|
+
data,
|
|
67
|
+
reportType: REPORT_TYPES__EXCEL,
|
|
68
|
+
showReportHeaders,
|
|
69
|
+
}),
|
|
90
70
|
ml: 1,
|
|
91
71
|
});
|
|
92
72
|
}
|
|
@@ -96,7 +76,12 @@ function Report(props) {
|
|
|
96
76
|
key: 'pdfBtn',
|
|
97
77
|
text: 'Download PDF',
|
|
98
78
|
leftIcon: <Icon as={Pdf} size="md" color="#fff" />,
|
|
99
|
-
onPress: (data) => getReport(
|
|
79
|
+
onPress: (data) => getReport({
|
|
80
|
+
reportId,
|
|
81
|
+
data,
|
|
82
|
+
reportType: REPORT_TYPES__PDF,
|
|
83
|
+
showReportHeaders,
|
|
84
|
+
}),
|
|
100
85
|
ml: 1,
|
|
101
86
|
});
|
|
102
87
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {
|
|
2
|
+
REPORT_TYPES__EXCEL,
|
|
3
|
+
REPORT_TYPES__PDF,
|
|
4
|
+
} from '../Constants/ReportTypes.js';
|
|
5
|
+
import downloadInBackground from './downloadInBackground.js';
|
|
6
|
+
import downloadWithFetch from './downloadWithFetch.js';
|
|
7
|
+
import UiGlobals from '../UiGlobals.js';
|
|
8
|
+
|
|
9
|
+
export default function getReport(args) {
|
|
10
|
+
const {
|
|
11
|
+
reportId,
|
|
12
|
+
data,
|
|
13
|
+
reportType = REPORT_TYPES__EXCEL,
|
|
14
|
+
showReportHeaders = true,
|
|
15
|
+
} = args;
|
|
16
|
+
|
|
17
|
+
if (!reportId) {
|
|
18
|
+
throw Error('downloadReport: report_id is required');
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const
|
|
22
|
+
url = UiGlobals.baseURL + 'Reports/getReport',
|
|
23
|
+
params = {
|
|
24
|
+
report_id: reportId,
|
|
25
|
+
outputFileType: reportType,
|
|
26
|
+
showReportHeaders,
|
|
27
|
+
...data,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
if (reportType === REPORT_TYPES__EXCEL) {
|
|
31
|
+
downloadInBackground(url, params);
|
|
32
|
+
} else {
|
|
33
|
+
const options = {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
},
|
|
38
|
+
body: JSON.stringify(params),
|
|
39
|
+
};
|
|
40
|
+
downloadWithFetch(url, options);
|
|
41
|
+
}
|
|
42
|
+
};
|