Working API for subscribing and unsubscribing

This commit is contained in:
Andris Reinman 2016-05-07 14:28:24 +03:00
parent d5222f7b4d
commit 11f412ded1
15 changed files with 439 additions and 24 deletions

View file

@ -348,7 +348,7 @@ function addCustomField(listId, name, defaultValue, type, group, visible, callba
});
}
module.exports.getRow = (fieldList, values, useDate, showAll) => {
module.exports.getRow = (fieldList, values, useDate, showAll, onlyExisting) => {
let valueList = {};
let row = [];
@ -363,6 +363,10 @@ module.exports.getRow = (fieldList, values, useDate, showAll) => {
});
fieldList.filter(field => showAll || field.visible).forEach(field => {
if (onlyExisting && field.column && !valueList.hasOwnProperty(field.column)) {
// ignore missing values
return;
}
switch (field.type) {
case 'text':
case 'website':
@ -409,15 +413,21 @@ module.exports.getRow = (fieldList, values, useDate, showAll) => {
mergeTag: field.key,
mergeValue: field.defaultValue,
['type' + (field.type || '').toString().trim().replace(/(?:^|\-)([a-z])/g, (m, c) => c.toUpperCase())]: true,
options: (field.options || []).map(subField => ({
type: subField.type,
name: subField.name,
column: subField.column,
value: valueList[subField.column] ? 1 : 0,
visible: !!subField.visible,
mergeTag: subField.key,
mergeValue: valueList[subField.column] ? subField.name : subField.defaultValue
}))
options: (field.options || []).map(subField => {
if (onlyExisting && subField.column && !valueList.hasOwnProperty(subField.column)) {
// ignore missing values
return false;
}
return {
type: subField.type,
name: subField.name,
column: subField.column,
value: valueList[subField.column] ? 1 : 0,
visible: !!subField.visible,
mergeTag: subField.key,
mergeValue: valueList[subField.column] ? subField.name : subField.defaultValue
};
}).filter(subField => subField)
};
item.value = item.options.filter(subField => showAll || subField.visible && subField.value).map(subField => subField.name).join(', ');
item.mergeValue = item.value || field.defaultValue;