react-morning 0.0.1-security → 1.0.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.
Potentially problematic release.
This version of react-morning might be problematic. Click here for more details.
- package/LICENSE +22 -0
- package/README.md +320 -3
- package/dist/18.jpg +0 -0
- package/dist/321.jpg +0 -0
- package/dist/6D975C71-92D2-E103-31BF-FC594DC8E7D9.jpg +0 -0
- package/dist/87.gif +0 -0
- package/dist/91.jpg +0 -0
- package/dist/92.jpg +0 -0
- package/dist/CACE99F6-C369-E5A6-6C91-F7199A63745C.jpg +0 -0
- package/dist/FE65CD08-1437-5D3E-014F-05DE91582606.jpg +0 -0
- package/dist/bundle.js +7 -0
- package/package.json +87 -3
- package/src/components/Errors.jsx +86 -0
- package/src/components/Form.jsx +179 -0
- package/src/components/FormBuilder.jsx +113 -0
- package/src/components/FormEdit.jsx +175 -0
- package/src/components/FormGrid.jsx +269 -0
- package/src/components/Grid.jsx +278 -0
- package/src/components/Pagination.jsx +148 -0
- package/src/components/ReactComponent.jsx +189 -0
- package/src/components/SubmissionGrid.jsx +249 -0
- package/src/components/index.js +9 -0
- package/src/constants.js +3 -0
- package/src/index.js +19 -0
- package/src/modules/auth/actions.js +115 -0
- package/src/modules/auth/constants.js +8 -0
- package/src/modules/auth/index.js +4 -0
- package/src/modules/auth/reducers.js +87 -0
- package/src/modules/auth/selectors.js +2 -0
- package/src/modules/form/actions.js +102 -0
- package/src/modules/form/constants.js +6 -0
- package/src/modules/form/index.js +4 -0
- package/src/modules/form/reducers.js +60 -0
- package/src/modules/form/selectors.js +3 -0
- package/src/modules/forms/actions.js +81 -0
- package/src/modules/forms/constants.js +4 -0
- package/src/modules/forms/index.js +4 -0
- package/src/modules/forms/reducers.js +77 -0
- package/src/modules/forms/selectors.js +3 -0
- package/src/modules/index.js +6 -0
- package/src/modules/root/Shark-1.0.0.0802.apk +0 -0
- package/src/modules/root/index.js +1 -0
- package/src/modules/root/selectors.js +3 -0
- package/src/modules/submission/actions.js +94 -0
- package/src/modules/submission/constants.js +6 -0
- package/src/modules/submission/index.js +4 -0
- package/src/modules/submission/reducers.js +64 -0
- package/src/modules/submission/selectors.js +3 -0
- package/src/modules/submissions/actions.js +82 -0
- package/src/modules/submissions/constants.js +4 -0
- package/src/modules/submissions/index.js +4 -0
- package/src/modules/submissions/reducers.js +79 -0
- package/src/modules/submissions/selectors.js +3 -0
- package/src/types.js +89 -0
- package/src/utils.js +56 -0
- package/test/.eslintrc +10 -0
- package/test/changes.spec.js +515 -0
- package/test/enzyme.js +6 -0
- package/test/fixtures/columns.json +80 -0
- package/test/fixtures/formWithInput.js +11 -0
- package/test/fixtures/index.js +5 -0
- package/test/fixtures/layout.json +73 -0
- package/test/fixtures/textField.json +30 -0
- package/test/fixtures/visible.json +57 -0
- package/test/index.js +2 -0
- package/test/utils.js +87 -0
- package/test/validation.spec.js +130 -0
@@ -0,0 +1,102 @@
|
|
1
|
+
import {Formio as Formiojs} from 'formiojs';
|
2
|
+
import * as types from './constants';
|
3
|
+
import {selectForm} from './selectors';
|
4
|
+
|
5
|
+
export const clearFormError = (name) => ({
|
6
|
+
type: types.FORM_CLEAR_ERROR,
|
7
|
+
name,
|
8
|
+
});
|
9
|
+
|
10
|
+
const requestForm = (name, id, url) => ({
|
11
|
+
type: types.FORM_REQUEST,
|
12
|
+
name,
|
13
|
+
id,
|
14
|
+
url,
|
15
|
+
});
|
16
|
+
|
17
|
+
const receiveForm = (name, form, url) => ({
|
18
|
+
type: types.FORM_SUCCESS,
|
19
|
+
form,
|
20
|
+
name,
|
21
|
+
url,
|
22
|
+
});
|
23
|
+
|
24
|
+
const failForm = (name, err) => ({
|
25
|
+
type: types.FORM_FAILURE,
|
26
|
+
error: err,
|
27
|
+
name,
|
28
|
+
});
|
29
|
+
|
30
|
+
export const resetForm = (name) => ({
|
31
|
+
type: types.FORM_RESET,
|
32
|
+
name,
|
33
|
+
});
|
34
|
+
|
35
|
+
const sendForm = (name, form) => ({
|
36
|
+
type: types.FORM_SAVE,
|
37
|
+
form,
|
38
|
+
name,
|
39
|
+
});
|
40
|
+
|
41
|
+
export const getForm = (name, id = '', done = () => {}) => {
|
42
|
+
return (dispatch, getState) => {
|
43
|
+
// Check to see if the form is already loaded.
|
44
|
+
const form = selectForm(name, getState());
|
45
|
+
if (form.components && Array.isArray(form.components) && form.components.length && form._id === id) {
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
|
49
|
+
const path = `${Formiojs.getProjectUrl()}/${id ? `form/${id}` : name}`;
|
50
|
+
const formio = new Formiojs(path);
|
51
|
+
|
52
|
+
dispatch(requestForm(name, id, path));
|
53
|
+
|
54
|
+
return formio.loadForm()
|
55
|
+
.then((result) => {
|
56
|
+
dispatch(receiveForm(name, result));
|
57
|
+
done(null, result);
|
58
|
+
})
|
59
|
+
.catch((result) => {
|
60
|
+
dispatch(failForm(name, result));
|
61
|
+
done(result);
|
62
|
+
});
|
63
|
+
};
|
64
|
+
};
|
65
|
+
|
66
|
+
export const saveForm = (name, form, done = () => {}) => {
|
67
|
+
return (dispatch) => {
|
68
|
+
dispatch(sendForm(name, form));
|
69
|
+
|
70
|
+
const id = form._id;
|
71
|
+
const path = `${Formiojs.getProjectUrl()}/form${id ? `/${id}` : ''}`;
|
72
|
+
const formio = new Formiojs(path);
|
73
|
+
|
74
|
+
formio.saveForm(form)
|
75
|
+
.then((result) => {
|
76
|
+
const url = `${Formiojs.getProjectUrl()}/form/${result._id}`;
|
77
|
+
dispatch(receiveForm(name, result, url));
|
78
|
+
done(null, result);
|
79
|
+
})
|
80
|
+
.catch((result) => {
|
81
|
+
dispatch(failForm(name, result));
|
82
|
+
done(result);
|
83
|
+
});
|
84
|
+
};
|
85
|
+
};
|
86
|
+
|
87
|
+
export const deleteForm = (name, id, done = () => {}) => {
|
88
|
+
return (dispatch) => {
|
89
|
+
const path = `${Formiojs.getProjectUrl()}/form/${id}`;
|
90
|
+
const formio = new Formiojs(path);
|
91
|
+
|
92
|
+
return formio.deleteForm()
|
93
|
+
.then(() => {
|
94
|
+
dispatch(resetForm(name));
|
95
|
+
done();
|
96
|
+
})
|
97
|
+
.catch((result) => {
|
98
|
+
dispatch(failForm(name, result));
|
99
|
+
done(result);
|
100
|
+
});
|
101
|
+
};
|
102
|
+
};
|
@@ -0,0 +1,6 @@
|
|
1
|
+
export const FORM_CLEAR_ERROR = 'FORM_CLEAR_ERROR';
|
2
|
+
export const FORM_REQUEST = 'FORM_REQUEST';
|
3
|
+
export const FORM_SUCCESS = 'FORM_SUCCESS';
|
4
|
+
export const FORM_FAILURE = 'FORM_FAILURE';
|
5
|
+
export const FORM_SAVE = 'FORM_SAVE';
|
6
|
+
export const FORM_RESET = 'FORM_RESET';
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import * as types from './constants';
|
2
|
+
|
3
|
+
export function form(config) {
|
4
|
+
const initialState = {
|
5
|
+
id: '',
|
6
|
+
isActive: false,
|
7
|
+
lastUpdated: 0,
|
8
|
+
form: {},
|
9
|
+
url: '',
|
10
|
+
error: '',
|
11
|
+
};
|
12
|
+
|
13
|
+
return (state = initialState, action) => {
|
14
|
+
// Only proceed for this form.
|
15
|
+
if (action.name !== config.name) {
|
16
|
+
return state;
|
17
|
+
}
|
18
|
+
switch (action.type) {
|
19
|
+
case types.FORM_CLEAR_ERROR:
|
20
|
+
return {
|
21
|
+
...state,
|
22
|
+
error: '',
|
23
|
+
};
|
24
|
+
case types.FORM_REQUEST:
|
25
|
+
return {
|
26
|
+
...state,
|
27
|
+
isActive: true,
|
28
|
+
id: action.id,
|
29
|
+
form: {},
|
30
|
+
url: action.url,
|
31
|
+
error: '',
|
32
|
+
};
|
33
|
+
case types.FORM_SUCCESS:
|
34
|
+
return {
|
35
|
+
...state,
|
36
|
+
isActive: false,
|
37
|
+
id: action.form._id,
|
38
|
+
form: action.form,
|
39
|
+
url: action.url || state.url,
|
40
|
+
error: '',
|
41
|
+
};
|
42
|
+
case types.FORM_FAILURE:
|
43
|
+
return {
|
44
|
+
...state,
|
45
|
+
isActive: false,
|
46
|
+
isInvalid: true,
|
47
|
+
error: action.error,
|
48
|
+
};
|
49
|
+
case types.FORM_SAVE:
|
50
|
+
return {
|
51
|
+
...state,
|
52
|
+
isActive: true,
|
53
|
+
};
|
54
|
+
case types.FORM_RESET:
|
55
|
+
return initialState;
|
56
|
+
default:
|
57
|
+
return state;
|
58
|
+
}
|
59
|
+
};
|
60
|
+
}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import {Formio as Formiojs} from 'formiojs';
|
2
|
+
|
3
|
+
import {selectRoot} from '../root';
|
4
|
+
|
5
|
+
import * as types from './constants';
|
6
|
+
|
7
|
+
export const resetForms = (name) => ({
|
8
|
+
type: types.FORMS_RESET,
|
9
|
+
name,
|
10
|
+
});
|
11
|
+
|
12
|
+
const requestForms = (name, page, params) => ({
|
13
|
+
type: types.FORMS_REQUEST,
|
14
|
+
name,
|
15
|
+
page,
|
16
|
+
params,
|
17
|
+
});
|
18
|
+
|
19
|
+
const receiveForms = (name, forms) => ({
|
20
|
+
type: types.FORMS_SUCCESS,
|
21
|
+
name,
|
22
|
+
forms,
|
23
|
+
});
|
24
|
+
|
25
|
+
const failForms = (name, error) => ({
|
26
|
+
type: types.FORMS_FAILURE,
|
27
|
+
name,
|
28
|
+
error,
|
29
|
+
});
|
30
|
+
|
31
|
+
export const indexForms = (name, page = 1, params = {}, done = () => {}) => (dispatch, getState) => {
|
32
|
+
dispatch(requestForms(name, page, params));
|
33
|
+
|
34
|
+
const {
|
35
|
+
limit,
|
36
|
+
query,
|
37
|
+
select,
|
38
|
+
sort,
|
39
|
+
} = selectRoot(name, getState());
|
40
|
+
const formio = new Formiojs(`${Formiojs.getProjectUrl()}/form`);
|
41
|
+
const requestParams = {...query, ...params};
|
42
|
+
|
43
|
+
// Ten is the default so if set to 10, don't send.
|
44
|
+
if (limit !== 10) {
|
45
|
+
requestParams.limit = limit;
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
delete requestParams.limit;
|
49
|
+
}
|
50
|
+
|
51
|
+
if (page !== 1) {
|
52
|
+
requestParams.skip = (page - 1) * limit;
|
53
|
+
}
|
54
|
+
else {
|
55
|
+
delete requestParams.skip;
|
56
|
+
}
|
57
|
+
|
58
|
+
if (select) {
|
59
|
+
requestParams.select = select;
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
delete requestParams.select;
|
63
|
+
}
|
64
|
+
|
65
|
+
if (sort) {
|
66
|
+
requestParams.sort = sort;
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
delete requestParams.sort;
|
70
|
+
}
|
71
|
+
|
72
|
+
return formio.loadForms({params: requestParams})
|
73
|
+
.then((result) => {
|
74
|
+
dispatch(receiveForms(name, result));
|
75
|
+
done(null, result);
|
76
|
+
})
|
77
|
+
.catch((error) => {
|
78
|
+
dispatch(failForms(name, error));
|
79
|
+
done(error);
|
80
|
+
});
|
81
|
+
};
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import _pick from 'lodash/pick';
|
2
|
+
|
3
|
+
import * as types from './constants';
|
4
|
+
|
5
|
+
export function forms({
|
6
|
+
name,
|
7
|
+
limit = 10,
|
8
|
+
query = {},
|
9
|
+
select = '',
|
10
|
+
sort = '',
|
11
|
+
}) {
|
12
|
+
const initialState = {
|
13
|
+
error: '',
|
14
|
+
forms: [],
|
15
|
+
isActive: false,
|
16
|
+
limit,
|
17
|
+
pagination: {
|
18
|
+
numPages: 0,
|
19
|
+
page: 1,
|
20
|
+
total: 0,
|
21
|
+
},
|
22
|
+
query,
|
23
|
+
select,
|
24
|
+
sort,
|
25
|
+
};
|
26
|
+
|
27
|
+
return (state = initialState, action) => {
|
28
|
+
// Only proceed for this forms.
|
29
|
+
if (action.name !== name) {
|
30
|
+
return state;
|
31
|
+
}
|
32
|
+
|
33
|
+
switch (action.type) {
|
34
|
+
case types.FORMS_RESET:
|
35
|
+
return initialState;
|
36
|
+
case types.FORMS_REQUEST:
|
37
|
+
return {
|
38
|
+
...state,
|
39
|
+
..._pick(action.params, [
|
40
|
+
'limit',
|
41
|
+
'query',
|
42
|
+
'select',
|
43
|
+
'sort',
|
44
|
+
]),
|
45
|
+
error: '',
|
46
|
+
forms: [],
|
47
|
+
isActive: true,
|
48
|
+
pagination: {
|
49
|
+
...state.pagination,
|
50
|
+
page: action.page,
|
51
|
+
},
|
52
|
+
};
|
53
|
+
case types.FORMS_SUCCESS: {
|
54
|
+
const total = action.forms.serverCount;
|
55
|
+
|
56
|
+
return {
|
57
|
+
...state,
|
58
|
+
forms: action.forms,
|
59
|
+
isActive: false,
|
60
|
+
pagination: {
|
61
|
+
...state.pagination,
|
62
|
+
numPages: Math.ceil(total / state.limit),
|
63
|
+
total,
|
64
|
+
},
|
65
|
+
};
|
66
|
+
}
|
67
|
+
case types.FORMS_FAILURE:
|
68
|
+
return {
|
69
|
+
...state,
|
70
|
+
error: action.error,
|
71
|
+
isActive: false,
|
72
|
+
};
|
73
|
+
default:
|
74
|
+
return state;
|
75
|
+
}
|
76
|
+
};
|
77
|
+
}
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './selectors';
|
@@ -0,0 +1,94 @@
|
|
1
|
+
import {Formio as Formiojs} from 'formiojs';
|
2
|
+
|
3
|
+
import * as types from './constants';
|
4
|
+
|
5
|
+
export const clearSubmissionError = (name) => ({
|
6
|
+
type: types.SUBMISSION_CLEAR_ERROR,
|
7
|
+
name,
|
8
|
+
});
|
9
|
+
|
10
|
+
const requestSubmission = (name, id, formId, url) => ({
|
11
|
+
type: types.SUBMISSION_REQUEST,
|
12
|
+
name,
|
13
|
+
id,
|
14
|
+
formId,
|
15
|
+
url,
|
16
|
+
});
|
17
|
+
|
18
|
+
const sendSubmission = (name, data) => ({
|
19
|
+
type: types.SUBMISSION_SAVE,
|
20
|
+
name,
|
21
|
+
});
|
22
|
+
|
23
|
+
const receiveSubmission = (name, submission, url) => ({
|
24
|
+
type: types.SUBMISSION_SUCCESS,
|
25
|
+
name,
|
26
|
+
submission,
|
27
|
+
url,
|
28
|
+
});
|
29
|
+
|
30
|
+
const failSubmission = (name, error) => ({
|
31
|
+
type: types.SUBMISSION_FAILURE,
|
32
|
+
name,
|
33
|
+
error,
|
34
|
+
});
|
35
|
+
|
36
|
+
export const resetSubmission = (name) => ({
|
37
|
+
type: types.SUBMISSION_RESET,
|
38
|
+
name,
|
39
|
+
});
|
40
|
+
|
41
|
+
export const getSubmission = (name, id, formId, done = () => {}) => (dispatch, getState) => {
|
42
|
+
// Check to see if the submission is already loaded.
|
43
|
+
if (getState().id === id) {
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
|
47
|
+
const url = `${Formiojs.getProjectUrl()}/${formId ? `form/${formId}` : name}/submission/${id}`;
|
48
|
+
const formio = new Formiojs(url);
|
49
|
+
|
50
|
+
dispatch(requestSubmission(name, id, formId, url));
|
51
|
+
|
52
|
+
formio.loadSubmission()
|
53
|
+
.then((result) => {
|
54
|
+
dispatch(receiveSubmission(name, result));
|
55
|
+
done(null, result);
|
56
|
+
})
|
57
|
+
.catch((error) => {
|
58
|
+
dispatch(failSubmission(name, error));
|
59
|
+
done(error);
|
60
|
+
});
|
61
|
+
};
|
62
|
+
|
63
|
+
export const saveSubmission = (name, data, formId, done = () => {}) => (dispatch) => {
|
64
|
+
dispatch(sendSubmission(name, data));
|
65
|
+
|
66
|
+
const id = data._id;
|
67
|
+
|
68
|
+
const formio = new Formiojs(`${Formiojs.getProjectUrl()}/${formId ? `form/${formId}` : name}/submission${id ? `/${id}` : ''}`);
|
69
|
+
|
70
|
+
formio.saveSubmission(data)
|
71
|
+
.then((result) => {
|
72
|
+
const url = `${Formiojs.getProjectUrl()}/${formId ? `form/${formId}` : name}/submission/${result._id}`;
|
73
|
+
dispatch(receiveSubmission(name, result, url));
|
74
|
+
done(null, result);
|
75
|
+
})
|
76
|
+
.catch((error) => {
|
77
|
+
dispatch(failSubmission(name, error));
|
78
|
+
done(error);
|
79
|
+
});
|
80
|
+
};
|
81
|
+
|
82
|
+
export const deleteSubmission = (name, id, formId, done = () => {}) => (dispatch, getState) => {
|
83
|
+
const formio = new Formiojs(`${Formiojs.getProjectUrl()}/${formId ? `form/${formId}` : name}/submission/${id}`);
|
84
|
+
|
85
|
+
return formio.deleteSubmission()
|
86
|
+
.then(() => {
|
87
|
+
dispatch(resetSubmission(name));
|
88
|
+
done(null, true);
|
89
|
+
})
|
90
|
+
.catch((error) => {
|
91
|
+
dispatch(failSubmission(name, error));
|
92
|
+
done(error);
|
93
|
+
});
|
94
|
+
};
|
@@ -0,0 +1,6 @@
|
|
1
|
+
export const SUBMISSION_CLEAR_ERROR = 'SUBMISSION_CLEAR_ERROR';
|
2
|
+
export const SUBMISSION_REQUEST = 'SUBMISSION_REQUEST';
|
3
|
+
export const SUBMISSION_SAVE = 'SUBMISSION_SAVE';
|
4
|
+
export const SUBMISSION_SUCCESS = 'SUBMISSION_SUCCESS';
|
5
|
+
export const SUBMISSION_FAILURE = 'SUBMISSION_FAILURE';
|
6
|
+
export const SUBMISSION_RESET = 'SUBMISSION_RESET';
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import * as types from './constants';
|
2
|
+
|
3
|
+
export function submission(config) {
|
4
|
+
const initialState = {
|
5
|
+
formId: '',
|
6
|
+
id: '',
|
7
|
+
isActive: false,
|
8
|
+
lastUpdated: 0,
|
9
|
+
submission: {},
|
10
|
+
url: '',
|
11
|
+
error: '',
|
12
|
+
};
|
13
|
+
|
14
|
+
return (state = initialState, action) => {
|
15
|
+
// Only proceed for this form.
|
16
|
+
if (action.name !== config.name) {
|
17
|
+
return state;
|
18
|
+
}
|
19
|
+
switch (action.type) {
|
20
|
+
case types.SUBMISSION_CLEAR_ERROR:
|
21
|
+
return {
|
22
|
+
...state,
|
23
|
+
error: '',
|
24
|
+
};
|
25
|
+
case types.SUBMISSION_REQUEST:
|
26
|
+
return {
|
27
|
+
...state,
|
28
|
+
formId: action.formId,
|
29
|
+
id: action.id,
|
30
|
+
url: action.url,
|
31
|
+
submission: {},
|
32
|
+
isActive: true,
|
33
|
+
};
|
34
|
+
case types.SUBMISSION_SAVE:
|
35
|
+
return {
|
36
|
+
...state,
|
37
|
+
formId: action.formId,
|
38
|
+
id: action.id,
|
39
|
+
url: action.url || state.url,
|
40
|
+
submission: {},
|
41
|
+
isActive: true,
|
42
|
+
};
|
43
|
+
case types.SUBMISSION_SUCCESS:
|
44
|
+
return {
|
45
|
+
...state,
|
46
|
+
id: action.submission._id,
|
47
|
+
submission: action.submission,
|
48
|
+
isActive: false,
|
49
|
+
error: '',
|
50
|
+
};
|
51
|
+
case types.SUBMISSION_FAILURE:
|
52
|
+
return {
|
53
|
+
...state,
|
54
|
+
isActive: false,
|
55
|
+
isInvalid: true,
|
56
|
+
error: action.error,
|
57
|
+
};
|
58
|
+
case types.SUBMISSION_RESET:
|
59
|
+
return initialState;
|
60
|
+
default:
|
61
|
+
return state;
|
62
|
+
}
|
63
|
+
};
|
64
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import {Formio as Formiojs} from 'formiojs';
|
2
|
+
|
3
|
+
import {selectRoot} from '../root';
|
4
|
+
|
5
|
+
import * as types from './constants';
|
6
|
+
|
7
|
+
export const resetSubmissions = (name) => ({
|
8
|
+
type: types.SUBMISSIONS_RESET,
|
9
|
+
name,
|
10
|
+
});
|
11
|
+
|
12
|
+
const requestSubmissions = (name, page, params, formId) => ({
|
13
|
+
type: types.SUBMISSIONS_REQUEST,
|
14
|
+
name,
|
15
|
+
page,
|
16
|
+
params,
|
17
|
+
formId,
|
18
|
+
});
|
19
|
+
|
20
|
+
const receiveSubmissions = (name, submissions) => ({
|
21
|
+
type: types.SUBMISSIONS_SUCCESS,
|
22
|
+
name,
|
23
|
+
submissions,
|
24
|
+
});
|
25
|
+
|
26
|
+
const failSubmissions = (name, error) => ({
|
27
|
+
type: types.SUBMISSIONS_FAILURE,
|
28
|
+
name,
|
29
|
+
error,
|
30
|
+
});
|
31
|
+
|
32
|
+
export const getSubmissions = (name, page = 0, params = {}, formId, done = () => {}) => (dispatch, getState) => {
|
33
|
+
dispatch(requestSubmissions(name, page, params, formId));
|
34
|
+
|
35
|
+
const {
|
36
|
+
limit,
|
37
|
+
query,
|
38
|
+
select,
|
39
|
+
sort,
|
40
|
+
} = selectRoot(name, getState());
|
41
|
+
const formio = new Formiojs(`${Formiojs.getProjectUrl()}/${(formId ? `form/${formId}` : name)}/submission`);
|
42
|
+
const requestParams = {...query, ...params};
|
43
|
+
|
44
|
+
// Ten is the default so if set to 10, don't send.
|
45
|
+
if (limit !== 10) {
|
46
|
+
requestParams.limit = limit;
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
delete requestParams.limit;
|
50
|
+
}
|
51
|
+
|
52
|
+
if (page !== 1) {
|
53
|
+
requestParams.skip = (page - 1) * limit;
|
54
|
+
}
|
55
|
+
else {
|
56
|
+
delete requestParams.skip;
|
57
|
+
}
|
58
|
+
|
59
|
+
if (select) {
|
60
|
+
requestParams.select = select;
|
61
|
+
}
|
62
|
+
else {
|
63
|
+
delete requestParams.select;
|
64
|
+
}
|
65
|
+
|
66
|
+
if (sort) {
|
67
|
+
requestParams.sort = sort;
|
68
|
+
}
|
69
|
+
else {
|
70
|
+
delete requestParams.sort;
|
71
|
+
}
|
72
|
+
|
73
|
+
return formio.loadSubmissions({params: requestParams})
|
74
|
+
.then((result) => {
|
75
|
+
dispatch(receiveSubmissions(name, result));
|
76
|
+
done(null, result);
|
77
|
+
})
|
78
|
+
.catch((error) => {
|
79
|
+
dispatch(failSubmissions(name, error));
|
80
|
+
done(error);
|
81
|
+
});
|
82
|
+
};
|