diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json
index 6a8ddeb323fb..44e8f3fe4791 100644
--- a/packages/rocketchat-i18n/i18n/en.i18n.json
+++ b/packages/rocketchat-i18n/i18n/en.i18n.json
@@ -433,6 +433,7 @@
"Content": "Content",
"Conversation": "Conversation",
"Conversation_closed": "Conversation closed: __comment__.",
+ "Conversation_finished_message": "Conversation Finished Message",
"Convert_Ascii_Emojis": "Convert ASCII to Emoji",
"Copied": "Copied",
"Copy": "Copy",
diff --git a/packages/rocketchat-i18n/i18n/pt.i18n.json b/packages/rocketchat-i18n/i18n/pt.i18n.json
index d4380dd8a5b9..2ec11d3c1f72 100644
--- a/packages/rocketchat-i18n/i18n/pt.i18n.json
+++ b/packages/rocketchat-i18n/i18n/pt.i18n.json
@@ -432,6 +432,7 @@
"Content": "Conteúdo",
"Conversation": "Conversa",
"Conversation_closed": "Chat encerrado: __comment__.",
+ "Conversation_finished_message": "Mensagem ao encerrar chat",
"Convert_Ascii_Emojis": "Converter ASCII para Emoji",
"Copied": "Copiado",
"Copy": "Cópia",
diff --git a/packages/rocketchat-livechat/.app/client/lib/_livechat.js b/packages/rocketchat-livechat/.app/client/lib/_livechat.js
index c0185a16b436..781f500bc643 100644
--- a/packages/rocketchat-livechat/.app/client/lib/_livechat.js
+++ b/packages/rocketchat-livechat/.app/client/lib/_livechat.js
@@ -22,6 +22,7 @@ this.Livechat = new (class Livechat {
this._offlineSuccessMessage = new ReactiveVar(TAPi18n.__('Thanks_We_ll_get_back_to_you_soon'));
this._videoCall = new ReactiveVar(false);
this._transcriptMessage = new ReactiveVar('');
+ this._conversationFinishedMessage = new ReactiveVar('');
this._connecting = new ReactiveVar(false);
this._room = new ReactiveVar(null);
this._department = new ReactiveVar(null);
@@ -100,6 +101,9 @@ this.Livechat = new (class Livechat {
get transcriptMessage() {
return this._transcriptMessage.get();
}
+ get conversationFinishedMessage() {
+ return this._conversationFinishedMessage.get();
+ }
get department() {
return this._department.get();
}
@@ -161,6 +165,9 @@ this.Livechat = new (class Livechat {
set transcriptMessage(value) {
this._transcriptMessage.set(value);
}
+ set conversationFinishedMessage(value) {
+ this._conversationFinishedMessage.set(value);
+ }
set connecting(value) {
this._connecting.set(value);
}
diff --git a/packages/rocketchat-livechat/.app/client/lib/commands.js b/packages/rocketchat-livechat/.app/client/lib/commands.js
index bcb7eac20125..34631ba9e52d 100644
--- a/packages/rocketchat-livechat/.app/client/lib/commands.js
+++ b/packages/rocketchat-livechat/.app/client/lib/commands.js
@@ -55,13 +55,6 @@ this.Commands = {
}
}
});
- } else {
- swal({
- title: t('Chat_ended'),
- type: 'success',
- timer: 1000,
- showConfirmButton: false
- });
}
},
diff --git a/packages/rocketchat-livechat/.app/client/views/livechatWindow.js b/packages/rocketchat-livechat/.app/client/views/livechatWindow.js
index c0fdf8f2d18f..3116100f6e50 100644
--- a/packages/rocketchat-livechat/.app/client/views/livechatWindow.js
+++ b/packages/rocketchat-livechat/.app/client/views/livechatWindow.js
@@ -111,6 +111,7 @@ Template.livechatWindow.onCreated(function() {
Livechat.online = true;
Livechat.transcript = result.transcript;
Livechat.transcriptMessage = result.transcriptMessage;
+ Livechat.conversationFinishedMessage = result.conversationFinishedMessage;
}
Livechat.videoCall = result.videoCall;
Livechat.registrationForm = result.registrationForm;
diff --git a/packages/rocketchat-livechat/.app/client/views/message.js b/packages/rocketchat-livechat/.app/client/views/message.js
index 9dc31af875b1..dac45da7a1f3 100644
--- a/packages/rocketchat-livechat/.app/client/views/message.js
+++ b/packages/rocketchat-livechat/.app/client/views/message.js
@@ -40,7 +40,7 @@ Template.message.helpers({
case 'wm':
return t('Welcome', { user: this.u.username });
case 'livechat-close':
- return t('Conversation_finished');
+ return (Livechat.conversationFinishedMessage) ? Livechat.conversationFinishedMessage : t('Conversation_finished');
// case 'rtc': return RocketChat.callbacks.run('renderRtcMessage', this);
default:
this.html = this.msg;
diff --git a/packages/rocketchat-livechat/client/views/app/livechatAppearance.html b/packages/rocketchat-livechat/client/views/app/livechatAppearance.html
index 03fdaf1731f7..a21c01511d7f 100644
--- a/packages/rocketchat-livechat/client/views/app/livechatAppearance.html
+++ b/packages/rocketchat-livechat/client/views/app/livechatAppearance.html
@@ -66,6 +66,13 @@
{{_ "Settings"}}
+
diff --git a/packages/rocketchat-livechat/client/views/app/livechatAppearance.js b/packages/rocketchat-livechat/client/views/app/livechatAppearance.js
index 89d4fb89a1ee..d056e9855042 100644
--- a/packages/rocketchat-livechat/client/views/app/livechatAppearance.js
+++ b/packages/rocketchat-livechat/client/views/app/livechatAppearance.js
@@ -79,6 +79,9 @@ Template.livechatAppearance.helpers({
emailOffline() {
return Template.instance().offlineEmail.get();
},
+ conversationFinishedMessage() {
+ return Template.instance().conversationFinishedMessage.get();
+ },
sampleColor() {
if (Template.instance().previewState.get().indexOf('offline') !== -1) {
return Template.instance().colorOffline.get();
@@ -177,6 +180,7 @@ Template.livechatAppearance.onCreated(function() {
this.titleOffline = new ReactiveVar(null);
this.colorOffline = new ReactiveVar(null);
this.offlineEmail = new ReactiveVar(null);
+ this.conversationFinishedMessage = new ReactiveVar(null);
this.autorun(() => {
const setting = LivechatAppearance.findOne('Livechat_title');
@@ -218,6 +222,10 @@ Template.livechatAppearance.onCreated(function() {
const setting = LivechatAppearance.findOne('Livechat_offline_email');
this.offlineEmail.set(setting && setting.value);
});
+ this.autorun(() => {
+ const setting = LivechatAppearance.findOne('Livechat_conversation_finished_message');
+ this.conversationFinishedMessage.set(setting && setting.value);
+ });
});
Template.livechatAppearance.events({
@@ -260,6 +268,9 @@ Template.livechatAppearance.events({
const settingOfflineTitleColor = LivechatAppearance.findOne('Livechat_offline_title_color');
instance.colorOffline.set(settingOfflineTitleColor && settingOfflineTitleColor.value);
+
+ const settingConversationFinishedMessage = LivechatAppearance.findOne('Livechat_conversation_finished_message');
+ instance.conversationFinishedMessage.set(settingConversationFinishedMessage && settingConversationFinishedMessage.value);
},
'submit .rocket-form'(e, instance) {
e.preventDefault();
@@ -304,6 +315,10 @@ Template.livechatAppearance.events({
{
_id: 'Livechat_offline_email',
value: instance.$('#emailOffline').val()
+ },
+ {
+ _id: 'Livechat_conversation_finished_message',
+ value: s.trim(instance.conversationFinishedMessage.get())
}
];
diff --git a/packages/rocketchat-livechat/config.js b/packages/rocketchat-livechat/config.js
index e546f997c677..a8cbae7fa182 100644
--- a/packages/rocketchat-livechat/config.js
+++ b/packages/rocketchat-livechat/config.js
@@ -69,6 +69,14 @@ Meteor.startup(function() {
RocketChat.settings.add('Livechat_registration_form', true, { type: 'boolean', group: 'Livechat', public: true, i18nLabel: 'Show_preregistration_form' });
RocketChat.settings.add('Livechat_allow_switching_departments', true, { type: 'boolean', group: 'Livechat', public: true, i18nLabel: 'Allow_switching_departments' });
RocketChat.settings.add('Livechat_show_agent_email', true, { type: 'boolean', group: 'Livechat', public: true, i18nLabel: 'Show_agent_email' });
+
+ RocketChat.settings.add('Livechat_conversation_finished_message', '', {
+ type: 'string',
+ group: 'Livechat',
+ public: true,
+ i18nLabel: 'Conversation_finished_message'
+ });
+
RocketChat.settings.add('Livechat_guest_count', 1, { type: 'int', group: 'Livechat' });
RocketChat.settings.add('Livechat_Room_Count', 1, {
diff --git a/packages/rocketchat-livechat/server/lib/Livechat.js b/packages/rocketchat-livechat/server/lib/Livechat.js
index b614a7096bba..7ef7354ea383 100644
--- a/packages/rocketchat-livechat/server/lib/Livechat.js
+++ b/packages/rocketchat-livechat/server/lib/Livechat.js
@@ -275,7 +275,8 @@ RocketChat.Livechat = {
'Jitsi_Enabled',
'Language',
'Livechat_enable_transcript',
- 'Livechat_transcript_message'
+ 'Livechat_transcript_message',
+ 'Livechat_conversation_finished_message'
]).forEach((setting) => {
settings[setting._id] = setting.value;
});
diff --git a/packages/rocketchat-livechat/server/methods/getInitialData.js b/packages/rocketchat-livechat/server/methods/getInitialData.js
index bca2a9787764..01415950fc73 100644
--- a/packages/rocketchat-livechat/server/methods/getInitialData.js
+++ b/packages/rocketchat-livechat/server/methods/getInitialData.js
@@ -20,7 +20,8 @@ Meteor.methods({
offlineSuccessMessage: null,
offlineUnavailableMessage: null,
displayOfflineForm: null,
- videoCall: null
+ videoCall: null,
+ conversationFinishedMessage: null
};
const room = RocketChat.models.Rooms.findOpenByVisitorToken(visitorToken, {
@@ -67,6 +68,7 @@ Meteor.methods({
info.videoCall = initSettings.Livechat_videocall_enabled === true && initSettings.Jitsi_Enabled === true;
info.transcript = initSettings.Livechat_enable_transcript;
info.transcriptMessage = initSettings.Livechat_transcript_message;
+ info.conversationFinishedMessage = initSettings.Livechat_conversation_finished_message;
info.agentData = room && room[0] && room[0].servedBy && RocketChat.models.Users.getAgentInfo(room[0].servedBy._id);
diff --git a/packages/rocketchat-livechat/server/methods/saveAppearance.js b/packages/rocketchat-livechat/server/methods/saveAppearance.js
index 69fc5287f38d..a9aa4cccf98a 100644
--- a/packages/rocketchat-livechat/server/methods/saveAppearance.js
+++ b/packages/rocketchat-livechat/server/methods/saveAppearance.js
@@ -14,7 +14,8 @@ Meteor.methods({
'Livechat_offline_success_message',
'Livechat_offline_title',
'Livechat_offline_title_color',
- 'Livechat_offline_email'
+ 'Livechat_offline_email',
+ 'Livechat_conversation_finished_message'
];
const valid = settings.every((setting) => {
diff --git a/packages/rocketchat-livechat/server/publications/livechatAppearance.js b/packages/rocketchat-livechat/server/publications/livechatAppearance.js
index abb3aee63b37..db0a1788d0ba 100644
--- a/packages/rocketchat-livechat/server/publications/livechatAppearance.js
+++ b/packages/rocketchat-livechat/server/publications/livechatAppearance.js
@@ -19,7 +19,8 @@ Meteor.publish('livechat:appearance', function() {
'Livechat_offline_success_message',
'Livechat_offline_title',
'Livechat_offline_title_color',
- 'Livechat_offline_email'
+ 'Livechat_offline_email',
+ 'Livechat_conversation_finished_message'
]
}
};