Skip to content

Commit

Permalink
add question names for questions in nested groups, fix ordering of qu…
Browse files Browse the repository at this point in the history
…estions in groups in table display, fixes #1621
  • Loading branch information
pmusaraj committed Mar 14, 2018
1 parent 6bbb965 commit 5f8130c
Showing 1 changed file with 35 additions and 9 deletions.
44 changes: 35 additions & 9 deletions jsapp/js/components/table.es6
Original file line number Diff line number Diff line change
Expand Up @@ -216,19 +216,21 @@ export class DataTable extends React.Component {
return false;

var q = undefined;
var groupQ = [];
if (key.includes('/')) {
groupQ = key.split('/');
q = survey.find(o => o.name === groupQ[1] || o.$autoname == groupQ[1]);
var qParentG = [];
if (key.includes('/') && key !== 'meta/instanceID') {
qParentG = key.split('/');
q = survey.find(o => o.name === qParentG[qParentG.length - 1] || o.$autoname == qParentG[qParentG.length - 1]);
} else {
q = survey.find(o => o.name === key || o.$autoname == key);
}

if (q && q.type === 'begin_repeat')
return false;

var index = key;
// sets location of columns for questions not in current survey version
var index = 'y_' + key;

// place meta question columns at the very end
switch(key) {
case 'username':
index = 'z1';
Expand Down Expand Up @@ -262,21 +264,45 @@ export class DataTable extends React.Component {
index = 'z91';
break;
default:
// set index for questions in current version of survey (including questions in groups)
survey.map(function(x, i) {
if (x.name === key || x.$autoname === key) {
var k = key;
if (key.includes('/')) {
var kArray = k.split('/');
k = kArray[kArray.length - 1];
}
if (x.name === k || x.$autoname === k) {
index = i.toString();
}
});
}

columns.push({
Header: h => {
var lbl = key.includes('/') ? key.split('/')[1] : key;
var lbl = key;

if (key.includes('/')) {
var splitK = key.split('/');
lbl = splitK[splitK.length - 1];
}
if (q && q.label && showLabels)
lbl = q.label[0];
// show Groups in labels, when selected
if (showGroups && groupQ && key.includes('/') && key !== 'meta/instanceID')
lbl = `${groupQ[0]} / ${lbl}`;
if (showGroups && qParentG && key.includes('/')) {
var gLabels = qParentG.join(' / ');

if (showLabels) {
var gT = qParentG.map(function(g) {
var x = survey.find(o => o.name === g || o.$autoname == g);
if (x && x.label && x.label[0])
return x.label[0];

return '';
});
gLabels = gT.join(' / ');
}
return gLabels;
}

return lbl;
},
Expand Down

0 comments on commit 5f8130c

Please sign in to comment.