Skip to content

Commit

Permalink
Merge pull request #567 from Kommunicate-io/plugin-6.4
Browse files Browse the repository at this point in the history
RELEASE 6.4
  • Loading branch information
devashishmamgain authored Oct 15, 2020
2 parents 94eb3a5 + 7b33f13 commit b5a4452
Show file tree
Hide file tree
Showing 17 changed files with 338 additions and 104 deletions.
10 changes: 9 additions & 1 deletion webplugin/css/app/mck-sidebox-1.0.css
Original file line number Diff line number Diff line change
Expand Up @@ -5404,7 +5404,15 @@ div[name="message"]:last-child {
color: #676262;
font-size: 14px;
}

div#mck-waiting-queue {
color: #5C6677;
height: 40px;
font-size: 14px;
line-height: 20px;
text-align: center;
padding: 12px 5px 13px 5px;
border-top: 1px dashed #CAD3E3;
}

div#mck-rated {
text-align: center;
Expand Down
3 changes: 2 additions & 1 deletion webplugin/js/app/conversation/km-conversation-helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ Kommunicate.conversationHelper = {
"SPAM": 3,
"DUPLICATE": 4,
"ARCHIVE": 5,
"UNRESPONDED": 6
"UNRESPONDED": 6,
"WAITING":7
},

isConversationClosed : function(group){
Expand Down
3 changes: 3 additions & 0 deletions webplugin/js/app/events/applozic-event-handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ Kommunicate.KmEventHandler = {
if (!message.metadata || (validMessageMetadata)) {
// hiding away message when new message received from agents.
KommunicateUI.hideAwayMessage();
// Send the message for voice output
Kommunicate.mediaService.voiceOutputIncomingMessage(message);

}
},
'onMessageSent': function(message){
Expand Down
2 changes: 1 addition & 1 deletion webplugin/js/app/km-message-markup-1.0.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion webplugin/js/app/km-post-initialization.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ Kommunicate.getFaqList = function (data) {
KommunicateUI.adjustConversationTitleHeadingWidth(kommunicate._globals.popupWidget);
}
$applozic.each(response.data, function (i, faq) {
$applozic("#km-faq-list-container").append('<li class="km-faq-list" aria-disabled="false" role="button" tabindex="0" data-source="' + faq.source + '" data-articleId="' + faq.articleId + '"><a class="km-faqdisplay"><div class="km-faqimage">' + KommunicateUI.faqSVGImage + '</div> <div class="km-faqanchor">' + faq.title + '</div></a></li>');
var title = faq && faq.title && kommunicateCommons.formatHtmlTag(faq.title);
$applozic("#km-faq-list-container").append('<li class="km-faq-list" aria-disabled="false" role="button" tabindex="0" data-source="' + faq.source + '" data-articleId="' + faq.articleId + '"><a class="km-faqdisplay"><div class="km-faqimage">' + KommunicateUI.faqSVGImage + '</div> <div class="km-faqanchor">' + title + '</div></a></li>');
});
KommunicateUI.faqEvents(data);
}, error: function () { }
Expand Down
10 changes: 9 additions & 1 deletion webplugin/js/app/km-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ KommunicateConstants = {
CONVERSATION_CLOSED_STATUS : 'closed',
CONVERSATION_RESOLVED_STATUS : 'Resolved',
CONVERSATION_OPEN_STATUS : 'Open',
CONVERSATION_WAITING_STATUS:'Waiting',
MESSAGE_SOURCE: {
DEVICE: 0,
WEB: 1,
Expand Down Expand Up @@ -97,8 +98,14 @@ KommunicateConstants = {
DEVELOPER: 11
},
MESSAGE_TYPE: {
INBOX: 0,
OUTBOX: 1,
DRAFT: 2,
OUTBOX_SENT_FROM_DEVICE: 3,
RECEIVED: 4,
SENT: 5,
CALL_INCOMING: 6,
CALL_OUTGOING: 7,
},
DEFAULT_PROFILE_IMAGE: {
URL: "https://s3.amazonaws.com/kommunicate.io/default-avatar-image.png"
Expand Down Expand Up @@ -169,7 +176,8 @@ KommunicateConstants = {
POSITION: {
LEFT: 'left',
RIGHT: 'right'
}
},
KOMMUNICATE_DOMAINS: ["kommunicate.io"]
}

/**
Expand Down
1 change: 1 addition & 0 deletions webplugin/js/app/kommunicate-client.js
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ Kommunicate.client={
if (typeof callback == 'function') {
callback(response.data.value);
}
KommunicateUI.handleWaitingQueueMessage();
KommunicateUI.hideFaq();
KommunicateUI.showClosedConversationBanner(false);
/* conversation table migrated to Applozic
Expand Down
55 changes: 46 additions & 9 deletions webplugin/js/app/kommunicate-ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@ KommunicateUI={
populateAwayMessage:function(err,message){
var conversationWindowNotActive = $applozic("#mck-tab-individual").hasClass('n-vis');
var closedConversation = $applozic("#mck-conversation-status-box").hasClass('vis');
if(!err && message.code =="SUCCESS" &&message.data.messageList.length>0 &&!conversationWindowNotActive && !closedConversation){
awayMessage =message.data.messageList[0].message;
if (!err && message.code == "SUCCESS" && message.data.messageList.length > 0 && !conversationWindowNotActive && !closedConversation) {
awayMessage = message.data.messageList[0].message;
awayMessage = kommunicateCommons.formatHtmlTag(awayMessage);
$applozic("#mck-away-msg").html(awayMessage);
$applozic("#mck-away-msg").linkify({
target: '_blank'
Expand Down Expand Up @@ -190,8 +191,11 @@ KommunicateUI={
var source = $(this).attr('data-source');
KommunicateKB.getArticle({
data: { appId: data.appId, articleId: articleId, source: source }, success: function (response) {
if ($applozic("#km-faqanswer .km-faqanswer-list").length == 0) {
$applozic("#km-faqanswer").append('<div class="km-faqanswer-list km-faqanswerscroll ql-snow"><div class="km-faqquestion">' + response.data.title + '</div> <div class="km-faqanchor km-faqanswer ql-editor">' + response.data.body + '</div></div>');
var faqDetails = response && response.data;
if (faqDetails && $applozic("#km-faqanswer .km-faqanswer-list").length == 0) {
var faqTitle = faqDetails.title && kommunicateCommons.formatHtmlTag(faqDetails.title);
// FAQ description is already coming in formatted way from the dashboard FAQ editor.
$applozic("#km-faqanswer").append('<div class="km-faqanswer-list km-faqanswerscroll ql-snow"><div class="km-faqquestion">' + faqTitle + '</div> <div class="km-faqanchor km-faqanswer ql-editor">' + faqDetails.body + '</div></div>');
$applozic('#km-contact-search-input-box').removeClass("vis").addClass("n-vis");
$applozic('#km-faqdiv').removeClass("vis").addClass("n-vis");
$applozic('#km-faqanswer').removeClass("n-vis").addClass("vis");
Expand All @@ -203,7 +207,9 @@ KommunicateUI={
});
}
}
, error: function () { }
, error: function (error) {
throw new Error('Error while fetching faq details', error);
}
});
$applozic('.km-contact-input-container').removeClass("vis").addClass("n-vis");
});
Expand Down Expand Up @@ -346,6 +352,7 @@ searchFaqUI: function (response) {
$applozic.each(response.data, function (i, faq) {
var id = faq.id || faq.articleId;
var title = faq.name || faq.title;
title = title && kommunicateCommons.formatHtmlTag(title);
document.getElementById("km-faq-list-container").innerHTML += '<li class="km-faq-list" data-articleId="' + id + '"><a class="km-faqdisplay"> <div class="km-faqimage">' + KommunicateUI.faqSVGImage + '</div><div class="km-faqanchor">' + title + '</div></a></li>';
});
},
Expand Down Expand Up @@ -500,11 +507,10 @@ handleAttachmentIconVisibility : function(enableAttachment, msg, groupReloaded)
}
},
displayPopupChatTemplate: function(popupChatContent, chatWidget, mckChatPopupNotificationTone) {

var isPopupEnabled = kommunicateCommons.isObject(chatWidget) && chatWidget.popup;
var enableGreetingMessage = kommunicateCommons.isObject(chatWidget) && chatWidget.hasOwnProperty('enableGreetingMessageInMobile') ? chatWidget.enableGreetingMessageInMobile : true;
var isPopupEnabled = kommunicateCommons.isObject(chatWidget) && chatWidget.popup && (kommunicateCommons.checkIfDeviceIsHandheld() ? enableGreetingMessage : true);
var delay = popupChatContent && popupChatContent.length ? popupChatContent[0].delay : -1;
var popupTemplateKey = (popupChatContent && popupChatContent.length && popupChatContent[0].templateKey) || KommunicateConstants.CHAT_POPUP_TEMPLATE.HORIZONTAL;

if(isPopupEnabled && delay > -1) {
MCK_CHAT_POPUP_TEMPLATE_TIMER = setTimeout(function() {
KommunicateUI.togglePopupChatTemplate(popupTemplateKey, true, mckChatPopupNotificationTone);
Expand Down Expand Up @@ -588,7 +594,38 @@ handleAttachmentIconVisibility : function(enableAttachment, msg, groupReloaded)
startConversationButton.classList.add('force-n-vis');
hasMultipleConversations ? backButton.classList.remove('force-n-vis') : backButton.classList.add('force-n-vis')
}
}
},
handleWaitingQueueMessage: function () {
var group = CURRENT_GROUP_DATA;
var groupId = group && group.tabId;
var waitingStatus = group && group.conversationStatus == Kommunicate.conversationHelper.status.WAITING;
window.Applozic.ALApiService.ajax({
type: 'GET',
url: MCK_BASE_URL + '/rest/ws/group/waiting/list',
global: false,
contentType: 'application/json',
success: function (res) {
if (res.status === "success") {
WAITING_QUEUE = res.response;
var waitingQueueNumber = document.getElementById('waiting-queue-number');
if (waitingQueueNumber && waitingStatus && WAITING_QUEUE.length) {
waitingQueueNumber.innerHTML = "#" + parseInt(WAITING_QUEUE.indexOf(parseInt(groupId)) + 1);
kommunicateCommons.modifyClassList({
id: ["mck-waiting-queue"]
}, "vis", "n-vis");
} else {
kommunicateCommons.modifyClassList({
id: ["mck-waiting-queue"]
}, "n-vis", "vis");
}
}

},
error: function (err) {
throw new Error('Error while fetching waiting list', err);
}
});
},


}
23 changes: 23 additions & 0 deletions webplugin/js/app/kommunicate.js
Original file line number Diff line number Diff line change
Expand Up @@ -513,5 +513,28 @@ $applozic.extend(true,Kommunicate,{
displayKommunicateWidget: function(display) {
var kommunicateIframe = parent.document.getElementById('kommunicate-widget-iframe');
display ? kommunicateIframe.classList.remove("kommunicate-hide-custom-iframe") : kommunicateIframe.classList.add("kommunicate-hide-custom-iframe");
},
// check if the message needs to be processed by addMessage
visibleMessage: function(msg){
if(!msg) return false;
if(msg.metadata && msg.metadata.feedback){
return false;
}
if (!msg.message && msg.metadata.hasOwnProperty("KM_ASSIGN_TO")) { // KM_ASSIGN_TO parameter comes when we change assignee by bot message.
return false;
}
if (msg.type === KommunicateConstants.MESSAGE_TYPE.CALL_INCOMING || msg.type === KommunicateConstants.MESSAGE_TYPE.CALL_OUTGOING) {
return false;
}
if ((msg.metadata && msg.metadata.category === 'HIDDEN') || msg.contentType === KommunicateConstants.MESSAGE_CONTENT_TYPE.AUDIO_VIDEO_CALL) {
return false;
}
if(msg.metadata && (msg.metadata.KM_ASSIGN || msg.metadata.KM_STATUS)){
return false;
}
if (msg.contentType === KommunicateConstants.MESSAGE_CONTENT_TYPE.NOTIFY_MESSAGE && (msg.metadata && msg.metadata.hide === 'true')) {
return false;
}
return true;
}
});
15 changes: 14 additions & 1 deletion webplugin/js/app/labels/default-labels.js
Original file line number Diff line number Diff line change
Expand Up @@ -152,5 +152,18 @@ Kommunicate.defaultLabels = {
'mins.ago': 'mins ago',
'hr.ago': 'hr ago',
'hrs.ago': 'hrs ago'
}
},
'voice.output': {
'location': {
'init': 'A location has been shared with you.',
'lat': 'Latitude is ',
'lon': 'and Longitude is '

},
'attachment': 'You have an attachment.'
},
'waiting.queue.message':{
'first.Part':'You are currently',
'waiting.queue.number':'5',
'last.part': ' in the waiting queue, our agents will get back you shortly.'},
}
23 changes: 20 additions & 3 deletions webplugin/js/app/mck-app.js
Original file line number Diff line number Diff line change
Expand Up @@ -309,9 +309,24 @@ function ApplozicSidebox() {
var options = applozic._globals;
var widgetSettings = data.chatWidget;
var disableChatWidget = options.disableChatWidget != null ? options.disableChatWidget : widgetSettings.disableChatWidget; // Give priority to appOptions over API data.


var allowedDomains = widgetSettings.allowedDomains;
var hostname = parent.window.location.hostname.toLowerCase();

// check if the current hostname is equal to or a subdomain
// e.g. www.google.com is a subdomain of google.com
var isSubDomain = function (domain) {
return ((hostname == domain) || ((hostname.length > domain.length) && (hostname.substr(hostname.length - domain.length - 1) == "." + domain)));
}

// Remove scripts if chatwidget is restricted by domains
var isCurrentDomainDisabled = Array.isArray(allowedDomains) && allowedDomains.length && !allowedDomains.some(isSubDomain);
// exclude kommunicate.io from restricted domains for
// the chatbot preview feature
var isCurrentDomainKommunicate = KommunicateConstants.KOMMUNICATE_DOMAINS.some(isSubDomain);
// Remove scripts if disableChatWidget property is enabled
if (disableChatWidget) {
// or domain restrictions are enabled
if ((disableChatWidget || isCurrentDomainDisabled) && !isCurrentDomainKommunicate) {
parent.window && parent.window.removeKommunicateScripts();
return false;
}
Expand All @@ -331,9 +346,11 @@ function ApplozicSidebox() {
options.metadata = typeof options.metadata == 'object' ? options.metadata : {};
options.fileUpload = options.fileUpload || (widgetSettings && widgetSettings.fileUpload);
options.connectSocketOnWidgetClick = options.connectSocketOnWidgetClick != null ? options.connectSocketOnWidgetClick : (widgetSettings && widgetSettings.connectSocketOnWidgetClick);
options.voiceInput = options.voiceInput != null ? options.voiceInput : (widgetSettings && widgetSettings.voiceInput);
options.voiceOutput = options.voiceOutput != null ? options.voiceOutput : (widgetSettings && widgetSettings.voiceOutput);
KommunicateUtils.deleteDataFromKmSession("settings");

if(sessionTimeout != null && !(options.preLeadCollection || options.askUserDetails)){
if (sessionTimeout != null && !(options.preLeadCollection || options.askUserDetails)) {
logoutAfterSessionExpiry(sessionTimeout);
var details = KommunicateUtils.getItemFromLocalStorage(applozic._globals.appId) || {};
!details.sessionStartTime && (details.sessionStartTime = new Date().getTime());
Expand Down
Loading

0 comments on commit b5a4452

Please sign in to comment.