feat. Make raw json data available in templates

This commit is contained in:
Bruno MATEU 2020-08-27 11:38:56 +02:00
parent 613a6fb1f0
commit b1eaa6eaa1

View file

@ -97,6 +97,7 @@ fieldTypes.json = {
cardinality: Cardinality.SINGLE, cardinality: Cardinality.SINGLE,
getHbsType: field => 'typeJson', getHbsType: field => 'typeJson',
forHbs: (field, value) => value, forHbs: (field, value) => value,
jsonData: (field, value) => JSON.parse(value),
parsePostValue: (field, value) => value, parsePostValue: (field, value) => value,
render: (field, value) => { render: (field, value) => {
try { try {
@ -137,6 +138,7 @@ fieldTypes['checkbox-grouped'] = {
enumerated: false, enumerated: false,
cardinality: Cardinality.MULTIPLE, cardinality: Cardinality.MULTIPLE,
getHbsType: field => 'typeCheckboxGrouped', getHbsType: field => 'typeCheckboxGrouped',
jsonData: (field, value) => (value || []).map(col => field.groupedOptions[col].name),
render: (field, value) => { render: (field, value) => {
const subItems = (value || []).map(col => field.groupedOptions[col].name); const subItems = (value || []).map(col => field.groupedOptions[col].name);
@ -227,6 +229,7 @@ fieldTypes.option = {
return !(['false', 'no', '0', ''].indexOf((value || '').toString().trim().toLowerCase()) >= 0) return !(['false', 'no', '0', ''].indexOf((value || '').toString().trim().toLowerCase()) >= 0)
}, },
getHbsType: field => 'typeOption', getHbsType: field => 'typeOption',
jsonData: (field, value) => value ? true : false,
forHbs: (field, value) => value ? 1 : 0, forHbs: (field, value) => value ? 1 : 0,
render: (field, value) => value ? field.settings.checkedLabel : field.settings.uncheckedLabel render: (field, value) => value ? field.settings.checkedLabel : field.settings.uncheckedLabel
@ -737,6 +740,9 @@ function getMergeTags(fieldsGrouped, subscription, extraTags = {}) { // assumes
const fldCol = getFieldColumn(fld); const fldCol = getFieldColumn(fld);
mergeTags[fld.key] = type.render(fld, subscription[fldCol]); mergeTags[fld.key] = type.render(fld, subscription[fldCol]);
if (type.jsonData) {
mergeTags[fld.key + "_RAW"] = type.jsonData(fld, subscription[fldCol]);
}
} }
return mergeTags; return mergeTags;