@tegrus/formio-react
Version:
React renderer for form.io forms.
120 lines (99 loc) • 3.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.deleteSubmission = exports.saveSubmission = exports.getSubmission = exports.resetSubmission = exports.clearSubmissionError = undefined;
var _formiojs = require('@tegrus/formiojs');
var _constants = require('./constants');
var types = _interopRequireWildcard(_constants);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
var clearSubmissionError = exports.clearSubmissionError = function clearSubmissionError(name) {
return {
type: types.SUBMISSION_CLEAR_ERROR,
name: name
};
};
var requestSubmission = function requestSubmission(name, id, formId, url) {
return {
type: types.SUBMISSION_REQUEST,
name: name,
id: id,
formId: formId,
url: url
};
};
var sendSubmission = function sendSubmission(name, data) {
return {
type: types.SUBMISSION_SAVE,
name: name
};
};
var receiveSubmission = function receiveSubmission(name, submission, url) {
return {
type: types.SUBMISSION_SUCCESS,
name: name,
submission: submission,
url: url
};
};
var failSubmission = function failSubmission(name, error) {
return {
type: types.SUBMISSION_FAILURE,
name: name,
error: error
};
};
var resetSubmission = exports.resetSubmission = function resetSubmission(name) {
return {
type: types.SUBMISSION_RESET,
name: name
};
};
var getSubmission = exports.getSubmission = function getSubmission(name, id, formId) {
var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
return function (dispatch, getState) {
// Check to see if the submission is already loaded.
if (getState().id === id) {
return;
}
var url = _formiojs.Formio.getProjectUrl() + '/' + (formId ? 'form/' + formId : name) + '/submission/' + id;
var formio = new _formiojs.Formio(url);
dispatch(requestSubmission(name, id, formId, url));
formio.loadSubmission().then(function (result) {
dispatch(receiveSubmission(name, result));
done(null, result);
}).catch(function (error) {
dispatch(failSubmission(name, error));
done(error);
});
};
};
var saveSubmission = exports.saveSubmission = function saveSubmission(name, data, formId) {
var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
return function (dispatch) {
dispatch(sendSubmission(name, data));
var id = data._id;
var formio = new _formiojs.Formio(_formiojs.Formio.getProjectUrl() + '/' + (formId ? 'form/' + formId : name) + '/submission' + (id ? '/' + id : ''));
formio.saveSubmission(data).then(function (result) {
var url = _formiojs.Formio.getProjectUrl() + '/' + (formId ? 'form/' + formId : name) + '/submission/' + result._id;
dispatch(receiveSubmission(name, result, url));
done(null, result);
}).catch(function (error) {
dispatch(failSubmission(name, error));
done(error);
});
};
};
var deleteSubmission = exports.deleteSubmission = function deleteSubmission(name, id, formId) {
var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};
return function (dispatch, getState) {
var formio = new _formiojs.Formio(_formiojs.Formio.getProjectUrl() + '/' + (formId ? 'form/' + formId : name) + '/submission/' + id);
return formio.deleteSubmission().then(function () {
dispatch(resetSubmission(name));
done(null, true);
}).catch(function (error) {
dispatch(failSubmission(name, error));
done(error);
});
};
};