diff --git a/package-lock.json b/package-lock.json index cdef413604d4..4bccc97faab1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4473,7 +4473,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "optional": true, "requires": { "prr": "1.0.1" } @@ -9478,8 +9477,7 @@ "natives": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz", - "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg==", - "optional": true + "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg==" }, "natural-compare": { "version": "1.4.0", @@ -11211,8 +11209,7 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "optional": true + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, "pseudomap": { "version": "1.0.2", diff --git a/packages/rocketchat-livechat/.app/.meteor/packages b/packages/rocketchat-livechat/.app/.meteor/packages index e5bbaba49ea2..6d785f8e1427 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 diff --git a/packages/rocketchat-livechat/.app/.meteor/versions b/packages/rocketchat-livechat/.app/.meteor/versions index 834e899c1a16..0f5c8885fda2 100644 --- a/packages/rocketchat-livechat/.app/.meteor/versions +++ b/packages/rocketchat-livechat/.app/.meteor/versions @@ -78,7 +78,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 0e5c1dd1f234..8d2af23652c7 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' @@ -22,38 +23,33 @@ this.Commands = { 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') && !result.value) { return true; - } else { - if (!response) { - swal.showInputError(t('please enter your email')); - return false; - } - if (response.trim() === '') { - swal.showInputError(t('please enter your email')); - return false; - } else { - Meteor.call('livechat:sendTranscript', visitor.getToken(), visitor.getRoom(), response, (err) => { - if (err) { - console.error(err); - } - swal({ - title: t('transcript_sent'), - type: 'success', - timer: 1000, - showConfirmButton: false - }); - }); - } } + + if (!result.value || result.value.trim() === '') { + swal.showValidationError(t('please enter your email')); + return false; + } + + Meteor.call('livechat:sendTranscript', visitor.getToken(), visitor.getRoom(), result.value, (err) => { + if (err) { + console.error(err); + } + swal({ + title: t('transcript_sent'), + type: 'success', + timer: 1000, + showConfirmButton: false + }); + }); }); } }, diff --git a/packages/rocketchat-livechat/.app/client/stylesheets/main.less b/packages/rocketchat-livechat/.app/client/stylesheets/main.less index 695ebb332081..dfdfa835b829 100644 --- a/packages/rocketchat-livechat/.app/client/stylesheets/main.less +++ b/packages/rocketchat-livechat/.app/client/stylesheets/main.less @@ -709,13 +709,13 @@ input:focus { position: fixed; height: 100%; width: 100%; - z-index: 9990; + z-index: 990; top: 0; left: 0; } .wrapper { - z-index: 9999; + z-index: 999; background: white; position: fixed; height: 80%; diff --git a/packages/rocketchat-livechat/.app/client/views/options.js b/packages/rocketchat-livechat/.app/client/views/options.js index c6c38c864c77..c6a76d56af25 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({ @@ -23,19 +24,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 85ea78181175..df4d27ace9a8 100644 --- a/packages/rocketchat-livechat/.app/client/views/register.js +++ b/packages/rocketchat-livechat/.app/client/views/register.js @@ -79,6 +79,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/.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 09dfa2a6fd7c..6455409767d1 100644 --- a/packages/rocketchat-livechat/.app/package.json +++ b/packages/rocketchat-livechat/.app/package.json @@ -26,6 +26,7 @@ "core-js": "^2.5.7", "jquery": "^3.3.1", "moment": "^2.22.2", + "sweetalert2": "^7.20.7", "toastr": "^2.1.4", "underscore": "^1.9.1", "underscore.string": "^3.3.4" diff --git a/packages/rocketchat-livechat/server/methods/registerGuest.js b/packages/rocketchat-livechat/server/methods/registerGuest.js index 0e021d5e6bcb..ebad101c5d9b 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.Messages.keepHistoryForToken(token); + const visitor = LivechatVisitors.getVisitorByToken(token, { + fields: { + name: 1, + username: 1, + visitorEmails: 1 + } + }); + return { - userId + userId, + visitor }; } });