From 81c063ce044f903141930a0abea6383bbd60a603 Mon Sep 17 00:00:00 2001 From: Renato Becker Date: Mon, 14 May 2018 17:22:00 -0300 Subject: [PATCH 1/4] Fix transcript request on client side. --- .../rocketchat-livechat/.app/.meteor/packages | 2 +- .../rocketchat-livechat/.app/.meteor/versions | 2 +- .../.app/client/lib/chatMessages.js | 2 ++ .../.app/client/lib/commands.js | 23 +++++++++---------- .../.app/client/views/options.js | 18 ++++++--------- .../.app/client/views/register.js | 1 + .../server/methods/registerGuest.js | 13 ++++++++++- 7 files changed, 35 insertions(+), 26 deletions(-) diff --git a/packages/rocketchat-livechat/.app/.meteor/packages b/packages/rocketchat-livechat/.app/.meteor/packages index e5bbaba49ea2..965017c69eb6 100644 --- a/packages/rocketchat-livechat/.app/.meteor/packages +++ b/packages/rocketchat-livechat/.app/.meteor/packages @@ -31,7 +31,6 @@ mizzao:timesync reactive-var@1.0.11 accounts-password@1.5.0 tap:i18n -smoral:sweetalert ecmascript@0.10.6 es5-shim@4.7.0 standard-minifier-css@1.4.0 @@ -40,3 +39,4 @@ shell-server@0.3.1 dynamic-import@0.3.0 konecty:user-presence +cleandersonlobo:sweetalert2 diff --git a/packages/rocketchat-livechat/.app/.meteor/versions b/packages/rocketchat-livechat/.app/.meteor/versions index 25dc26f932d8..52417c56e289 100644 --- a/packages/rocketchat-livechat/.app/.meteor/versions +++ b/packages/rocketchat-livechat/.app/.meteor/versions @@ -14,6 +14,7 @@ caching-html-compiler@1.1.2 callback-hook@1.1.0 cfs:http-methods@0.0.32 check@1.3.1 +cleandersonlobo:sweetalert2@1.5.0 coffeescript@1.0.17 ddp@1.4.0 ddp-client@2.3.2 @@ -78,7 +79,6 @@ session@1.1.7 sha@1.0.9 shell-server@0.3.1 shim-common@0.1.0 -smoral:sweetalert@1.1.1 socket-stream-client@0.1.0 spacebars@1.0.15 spacebars-compiler@1.1.3 diff --git a/packages/rocketchat-livechat/.app/client/lib/chatMessages.js b/packages/rocketchat-livechat/.app/client/lib/chatMessages.js index d2619ac69c62..245e998e5e98 100644 --- a/packages/rocketchat-livechat/.app/client/lib/chatMessages.js +++ b/packages/rocketchat-livechat/.app/client/lib/chatMessages.js @@ -154,6 +154,8 @@ this.ChatMessages = class ChatMessages { } visitor.setId(result.userId); + visitor.setData(result.visitor); + sendMessage(); }); } else { diff --git a/packages/rocketchat-livechat/.app/client/lib/commands.js b/packages/rocketchat-livechat/.app/client/lib/commands.js index 34631ba9e52d..6dd3bd1393c2 100644 --- a/packages/rocketchat-livechat/.app/client/lib/commands.js +++ b/packages/rocketchat-livechat/.app/client/lib/commands.js @@ -17,31 +17,30 @@ this.Commands = { if (Livechat.transcript) { const visitorData = visitor.getData(); const email = visitorData && visitorData.visitorEmails && visitorData.visitorEmails.length > 0 ? visitorData.visitorEmails[0].address : ''; - const transcriptMessage = (!_.isEmpty(Livechat.transcriptMessage)) ? Livechat.transcriptMessage : (TAPi18n.__('Would_you_like_a_copy_if_this_chat_emailed')); + const transcriptMessage = (Livechat.transcriptMessage) ? Livechat.transcriptMessage : (TAPi18n.__('Would_you_like_a_copy_if_this_chat_emailed')); swal({ title: t('Chat_ended'), text: transcriptMessage, - type: 'input', + input: 'email', inputValue: email, + inputPlaceholder: t('Type_your_email'), showCancelButton: true, cancelButtonText: t('no'), - confirmButtonText: t('yes'), - closeOnCancel: true, - closeOnConfirm: false - }, (response) => { - if ((typeof response === 'boolean') && !response) { + confirmButtonText: t('yes') + }).then((result) => { + if ((typeof result.value === 'boolean') && !response) { return true; } else { - if (!response) { - swal.showInputError(t('please enter your email')); + if (!result.value) { + swal.showValidationError(t('please enter your email')); return false; } - if (response.trim() === '') { - swal.showInputError(t('please enter your email')); + if (result.value.trim() === '') { + swal.showValidationError(t('please enter your email')); return false; } else { - Meteor.call('livechat:sendTranscript', visitor.getToken(), visitor.getRoom(), response, (err) => { + Meteor.call('livechat:sendTranscript', visitor.getToken(), visitor.getRoom(), result.value, (err) => { if (err) { console.error(err); } diff --git a/packages/rocketchat-livechat/.app/client/views/options.js b/packages/rocketchat-livechat/.app/client/views/options.js index c6c38c864c77..5ff980154a0a 100644 --- a/packages/rocketchat-livechat/.app/client/views/options.js +++ b/packages/rocketchat-livechat/.app/client/views/options.js @@ -23,19 +23,15 @@ Template.options.events({ confirmButtonColor: '#DD6B55', confirmButtonText: t('Yes'), cancelButtonText: t('No'), - closeOnConfirm: true, html: false - }, () => { - Meteor.call('livechat:closeByVisitor', { roomId: visitor.getRoom(), token: visitor.getToken() }, (error) => { - if (error) { - return console.log('Error ->', error); - } - swal({ - title: t('Chat_ended'), - type: 'success', - timer: 2000 + }).then((result) => { + if (result.value) { + Meteor.call('livechat:closeByVisitor', { roomId: visitor.getRoom(), token: visitor.getToken() }, (error) => { + if (error) { + return console.log('Error ->', error); + } }); - }); + } }); }, 'click .switch-department'() { diff --git a/packages/rocketchat-livechat/.app/client/views/register.js b/packages/rocketchat-livechat/.app/client/views/register.js index 19a6ffa8e5c9..627a32dc27ea 100644 --- a/packages/rocketchat-livechat/.app/client/views/register.js +++ b/packages/rocketchat-livechat/.app/client/views/register.js @@ -59,6 +59,7 @@ Template.register.events({ } parentCall('callback', ['pre-chat-form-submit', _.omit(guest, 'token')]); visitor.setId(result.userId); + visitor.setData(result.visitor); start(); }); } diff --git a/packages/rocketchat-livechat/server/methods/registerGuest.js b/packages/rocketchat-livechat/server/methods/registerGuest.js index 5cef4e7c19a4..efd240645a88 100644 --- a/packages/rocketchat-livechat/server/methods/registerGuest.js +++ b/packages/rocketchat-livechat/server/methods/registerGuest.js @@ -1,3 +1,5 @@ +import LivechatVisitors from '../models/LivechatVisitors'; + Meteor.methods({ 'livechat:registerGuest'({ token, name, email, department } = {}) { const userId = RocketChat.Livechat.registerGuest.call(this, { @@ -10,8 +12,17 @@ Meteor.methods({ // update visited page history to not expire RocketChat.models.LivechatPageVisited.keepHistoryForToken(token); + const visitor = LivechatVisitors.getVisitorByToken(token, { + fields: { + name: 1, + username: 1, + visitorEmails: 1 + } + }); + return { - userId + userId, + visitor }; } }); From 73112bae674e52a36010fd776e3ecc8e434efab6 Mon Sep 17 00:00:00 2001 From: Renato Becker Date: Mon, 21 May 2018 14:46:08 -0300 Subject: [PATCH 2/4] Fix swal conformation, it was being displayed behind the department switch form. Removed meteor swal package, start using npm version (2.x). --- packages/rocketchat-livechat/.app/.meteor/packages | 1 - packages/rocketchat-livechat/.app/.meteor/versions | 1 - .../rocketchat-livechat/.app/client/lib/commands.js | 3 ++- .../.app/client/stylesheets/main.less | 4 ++++ .../rocketchat-livechat/.app/client/views/options.js | 3 ++- .../rocketchat-livechat/.app/client/views/survey.js | 3 ++- .../.app/client/views/switchDepartment.js | 10 +++++++--- packages/rocketchat-livechat/.app/package.json | 1 + 8 files changed, 18 insertions(+), 8 deletions(-) diff --git a/packages/rocketchat-livechat/.app/.meteor/packages b/packages/rocketchat-livechat/.app/.meteor/packages index 965017c69eb6..6d785f8e1427 100644 --- a/packages/rocketchat-livechat/.app/.meteor/packages +++ b/packages/rocketchat-livechat/.app/.meteor/packages @@ -39,4 +39,3 @@ shell-server@0.3.1 dynamic-import@0.3.0 konecty:user-presence -cleandersonlobo:sweetalert2 diff --git a/packages/rocketchat-livechat/.app/.meteor/versions b/packages/rocketchat-livechat/.app/.meteor/versions index 52417c56e289..22c7812a2779 100644 --- a/packages/rocketchat-livechat/.app/.meteor/versions +++ b/packages/rocketchat-livechat/.app/.meteor/versions @@ -14,7 +14,6 @@ caching-html-compiler@1.1.2 callback-hook@1.1.0 cfs:http-methods@0.0.32 check@1.3.1 -cleandersonlobo:sweetalert2@1.5.0 coffeescript@1.0.17 ddp@1.4.0 ddp-client@2.3.2 diff --git a/packages/rocketchat-livechat/.app/client/lib/commands.js b/packages/rocketchat-livechat/.app/client/lib/commands.js index 6dd3bd1393c2..10e81b6aa5fa 100644 --- a/packages/rocketchat-livechat/.app/client/lib/commands.js +++ b/packages/rocketchat-livechat/.app/client/lib/commands.js @@ -1,4 +1,5 @@ -/* globals LivechatVideoCall, Livechat, swal */ +/* globals LivechatVideoCall, Livechat */ +import swal from 'sweetalert2'; import visitor from '../../imports/client/visitor'; // Functions to call on messages of type 'command' diff --git a/packages/rocketchat-livechat/.app/client/stylesheets/main.less b/packages/rocketchat-livechat/.app/client/stylesheets/main.less index 695ebb332081..96648a2dd66e 100644 --- a/packages/rocketchat-livechat/.app/client/stylesheets/main.less +++ b/packages/rocketchat-livechat/.app/client/stylesheets/main.less @@ -804,6 +804,10 @@ input:focus { border-top-left-radius: inherit; } +.swal2-container { + z-index: 10000 !important; +} + .video-call { position: fixed; top: @header-min-height; diff --git a/packages/rocketchat-livechat/.app/client/views/options.js b/packages/rocketchat-livechat/.app/client/views/options.js index 5ff980154a0a..bf5c6656b6d0 100644 --- a/packages/rocketchat-livechat/.app/client/views/options.js +++ b/packages/rocketchat-livechat/.app/client/views/options.js @@ -1,4 +1,5 @@ -/* globals Department, Livechat, swal */ +/* globals Department, Livechat */ +import swal from 'sweetalert2'; import visitor from '../../imports/client/visitor'; Template.options.helpers({ diff --git a/packages/rocketchat-livechat/.app/client/views/survey.js b/packages/rocketchat-livechat/.app/client/views/survey.js index c9c66add13a7..cf86c5418df4 100644 --- a/packages/rocketchat-livechat/.app/client/views/survey.js +++ b/packages/rocketchat-livechat/.app/client/views/survey.js @@ -1,4 +1,5 @@ -/* globals swal */ +/* globals */ +import swal from 'sweetalert2'; import visitor from '../../imports/client/visitor'; Template.survey.events({ diff --git a/packages/rocketchat-livechat/.app/client/views/switchDepartment.js b/packages/rocketchat-livechat/.app/client/views/switchDepartment.js index e6288ed920dd..d2a4aca88c26 100644 --- a/packages/rocketchat-livechat/.app/client/views/switchDepartment.js +++ b/packages/rocketchat-livechat/.app/client/views/switchDepartment.js @@ -1,4 +1,5 @@ -/* globals Department, Livechat, swal */ +/* globals Department, Livechat */ +import swal from 'sweetalert2'; import visitor from '../../imports/client/visitor'; Template.switchDepartment.helpers({ @@ -42,9 +43,12 @@ Template.switchDepartment.events({ confirmButtonColor: '#DD6B55', confirmButtonText: t('Yes'), cancelButtonText: t('No'), - closeOnConfirm: true, html: false - }, () => { + }).then((result) => { + if (!result.value) { + return; + } + Meteor.call('livechat:closeByVisitor', { roomId: visitor.getRoom(), token: visitor.getToken() }, (error) => { if (error) { return console.log('Error ->', error); diff --git a/packages/rocketchat-livechat/.app/package.json b/packages/rocketchat-livechat/.app/package.json index eecf2fc2578c..5d56f5d56d3b 100644 --- a/packages/rocketchat-livechat/.app/package.json +++ b/packages/rocketchat-livechat/.app/package.json @@ -26,6 +26,7 @@ "core-js": "^2.5.5", "jquery": "^3.3.1", "moment": "^2.22.1", + "sweetalert2": "^7.20.7", "toastr": "^2.1.4", "underscore": "^1.9.0", "underscore.string": "^3.3.4" From 22420f755715a14527fc5ea0669737bc95db3972 Mon Sep 17 00:00:00 2001 From: Renato Becker Date: Wed, 20 Jun 2018 12:14:56 -0300 Subject: [PATCH 3/4] Trailing whitespace removed. --- packages/rocketchat-livechat/.app/client/views/options.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/rocketchat-livechat/.app/client/views/options.js b/packages/rocketchat-livechat/.app/client/views/options.js index bf5c6656b6d0..c6a76d56af25 100644 --- a/packages/rocketchat-livechat/.app/client/views/options.js +++ b/packages/rocketchat-livechat/.app/client/views/options.js @@ -26,13 +26,13 @@ Template.options.events({ cancelButtonText: t('No'), html: false }).then((result) => { - if (result.value) { + if (result.value) { Meteor.call('livechat:closeByVisitor', { roomId: visitor.getRoom(), token: visitor.getToken() }, (error) => { if (error) { return console.log('Error ->', error); - } + } }); - } + } }); }, 'click .switch-department'() { From 93c125af2c3d6d43afd813b5b6b6f369fba131d5 Mon Sep 17 00:00:00 2001 From: Renato Becker Date: Wed, 20 Jun 2018 16:03:38 -0300 Subject: [PATCH 4/4] Code replaced. --- packages/rocketchat-livechat/.app/client/lib/commands.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rocketchat-livechat/.app/client/lib/commands.js b/packages/rocketchat-livechat/.app/client/lib/commands.js index 0dbbeb5388fc..8d2af23652c7 100644 --- a/packages/rocketchat-livechat/.app/client/lib/commands.js +++ b/packages/rocketchat-livechat/.app/client/lib/commands.js @@ -30,7 +30,7 @@ this.Commands = { cancelButtonText: t('no'), confirmButtonText: t('yes') }).then((result) => { - if ((typeof result.value === 'boolean') && !response) { + if ((typeof result.value === 'boolean') && !result.value) { return true; }