Export forms
parent
89844455bb
commit
ec556ed261
@ -0,0 +1,60 @@
|
|||||||
|
define([
|
||||||
|
'/common/common-util.js',
|
||||||
|
'/customize/messages.js'
|
||||||
|
], function (Util, Messages) {
|
||||||
|
var Export = {};
|
||||||
|
|
||||||
|
var escapeCSV = function (v) {
|
||||||
|
if (!/("|,)/.test(v)) {
|
||||||
|
return v || '';
|
||||||
|
}
|
||||||
|
var value = '';
|
||||||
|
var vv = (v || '').replaceAll('"', '""');
|
||||||
|
value += '"' + vv + '"';
|
||||||
|
return value;
|
||||||
|
};
|
||||||
|
Export.results = function (content, answers, TYPES) {
|
||||||
|
console.log(content, answers, TYPES);
|
||||||
|
if (!content || !content.form) { return; }
|
||||||
|
var csv = "";
|
||||||
|
var form = content.form;
|
||||||
|
|
||||||
|
var questions = Object.keys(form).map(function (key) {
|
||||||
|
var obj = form[key];
|
||||||
|
if (!obj) { return; }
|
||||||
|
return obj.q || Messages.form_default;
|
||||||
|
}).filter(Boolean);
|
||||||
|
questions.unshift(Messages.form_poll_time); // "Time"
|
||||||
|
questions.unshift(Messages.share_formView); // "Participant"
|
||||||
|
|
||||||
|
questions.forEach(function (v, i) {
|
||||||
|
if (i) { csv += ','; }
|
||||||
|
csv += escapeCSV(v);
|
||||||
|
});
|
||||||
|
|
||||||
|
Object.keys(answers || {}).forEach(function (key) {
|
||||||
|
var obj = answers[key];
|
||||||
|
csv += '\n';
|
||||||
|
var time = new Date(obj.time).toISOString();
|
||||||
|
var msg = obj.msg || {};
|
||||||
|
var user = msg._userdata;
|
||||||
|
csv += escapeCSV(time);
|
||||||
|
csv += ',' + escapeCSV(user.name || Messages.anonymous);
|
||||||
|
Object.keys(form).forEach(function (key) {
|
||||||
|
csv += ',' + escapeCSV(String(msg[key]));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
console.log(csv);
|
||||||
|
return csv;
|
||||||
|
};
|
||||||
|
|
||||||
|
Export.main = function (content, cb) {
|
||||||
|
var json = Util.clone(content || {});
|
||||||
|
delete json.answers;
|
||||||
|
cb(new Blob([JSON.stringify(json, 0, 2)], {
|
||||||
|
type: 'application/json;charset=utf-8'
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
|
return Export;
|
||||||
|
});
|
Loading…
Reference in New Issue