diff --git a/app/livechat/server/lib/Livechat.js b/app/livechat/server/lib/Livechat.js index eef2b2a8619..60e674fcc77 100644 --- a/app/livechat/server/lib/Livechat.js +++ b/app/livechat/server/lib/Livechat.js @@ -296,10 +296,7 @@ export const Livechat = { return; } const value = s.trim(livechatData[field._id]); - if (value === '') { - return; - } - if (field.regexp !== undefined && field.regexp !== '') { + if (value !== '' && field.regexp !== undefined && field.regexp !== '') { const regexp = new RegExp(field.regexp); if (!regexp.test(value)) { throw new Meteor.Error(TAPi18n.__('error-invalid-custom-field-value', { field: field.label })); @@ -450,10 +447,7 @@ export const Livechat = { return; } const value = s.trim(livechatData[field._id]); - if (value === '') { - return; - } - if (field.regexp !== undefined && field.regexp !== '') { + if (value !== '' && field.regexp !== undefined && field.regexp !== '') { const regexp = new RegExp(field.regexp); if (!regexp.test(value)) { throw new Meteor.Error(TAPi18n.__('error-invalid-custom-field-value', { field: field.label })); diff --git a/app/models/server/models/LivechatRooms.js b/app/models/server/models/LivechatRooms.js index 562e3a91dac..4a6767d9290 100644 --- a/app/models/server/models/LivechatRooms.js +++ b/app/models/server/models/LivechatRooms.js @@ -86,9 +86,14 @@ export class LivechatRooms extends Base { unsetData.tags = 1; } - if (livechatData != null) { + if (livechatData) { Object.keys(livechatData).forEach((key) => { - setData[`livechatData.${ key }`] = s.trim(livechatData[key]); + const value = s.trim(livechatData[key]); + if (value) { + setData[`livechatData.${ key }`] = value; + } else { + unsetData[`livechatData.${ key }`] = 1; + } }); } diff --git a/app/models/server/models/LivechatVisitors.js b/app/models/server/models/LivechatVisitors.js index cca7a510f82..803ecf2dc56 100644 --- a/app/models/server/models/LivechatVisitors.js +++ b/app/models/server/models/LivechatVisitors.js @@ -162,7 +162,12 @@ export class LivechatVisitors extends Base { if (data.livechatData) { Object.keys(data.livechatData).forEach((key) => { - setData[`livechatData.${ key }`] = s.trim(data.livechatData[key]); + const value = s.trim(data.livechatData[key]); + if (value) { + setData[`livechatData.${ key }`] = value; + } else { + unsetData[`livechatData.${ key }`] = 1; + } }); }