var chataurafront = {}; chataurafront.settings = {}; chataurafront.settings.selectors = {}; chataurafront.functions = {}; chataurafront.settings.template = {}; chataurafront.settings.url = 'https://pro-aura-front-vivo.azurewebsites.net'; var chatBehavior = { "default": [ "portal-b2c-desktop", "portal-web-mobile-b2c", "lojas", "portal-b2b-desktop-gdes-empresas", "portal-b2b-desktop-pme", "portal-b2b-desktop-operadoras", "b2b-dealers", "proj-beatrix", "ti-web" ], "menu": [ "meu-vivo-movel-web-mobile", "mvf-app-vivo1", "mvf-app-vivo2", "mvf-app-new", "mvf-b2c-web-mobile", "beatrix-mobile", "app-movel-b2b", "app-movel-b2b-new" ], "throughFunction": [ "portal-assine-desktop", "portal-assine-mobile", "beatrix-desktop", "mvf-web-desktop", "mvm-web-desktop" ], "ouvidoria": [ "mvm-web-desktop-chat", "mvm-web-desktop-email", "mvm-web-desktop-ouvidoria", "mvf-web-desktop-chat", "mvm-web-mobile-chat", "beatrix-desktop-faleconosco", "beatrix-mobile-faleconosco", "mvf-web-desktop-email", "mvf-web-desktop-ouvidoria" ] } //Principal objeto para conter funções, configurações, templates, etc.. var anim; var animData; var crackerClosesOnly = false; var introBox = false; chataurafront.settings.withIntroBox = false; var surveySatisfaction = false; var auraUserInteraction = false; var $welcomeMessage; var surveyObject = {}; chataurafront.settings.device = {}; //EJS PARAMETROS TESTE var channel = 'portal-b2c-desktop'; console.log('Canal que está chamando: ' + channel); var pocluis = '' || false; //console.log('IS POCLUIS:' + pocluis); var businesskey = '0'; //console.log('Business Key Informada: ' + businesskey); //Código do canal para resgatar token var channelName = ""; var apiStatus = true; var TokenStartConversationStatus = true; //Start Conversation Response var botConversationResponse = {}; var clientActivityId = 0; var botFrameworkAnswered = 0; var quickReplyAppears = false; var slowReplyAppears = false; var ouvidoriaChat = false; var boxChatPosition = false; var boxChatTop = 0; var boxChatRight = 0; var msisdn = ""; //settings chataurafront.settings.getChannel = channel; chataurafront.settings.pocLuis = pocluis; chataurafront.settings.getBusinessKey = businesskey; chataurafront.settings.screenHeight = 0; chataurafront.settings.countRequestToken = 0; chataurafront.functions.focusElementAndOut = function(element) { element.focus(); } chataurafront.functions.clickByEnter = function(elementId) { $(elementId).keypress(function (event) { if (event.which === 13) { event.preventDefault(); $(this).click(); if (elementId === "#launch_button") chataurafront.functions.focusElementAndOut($('.chat_container')) } }); } // chataurafront.functions.loadChannelRules = function(){ if (chatBehavior.menu.indexOf(chataurafront.settings.getChannel) >= 0) { //console.log('menu type'); chataurafront.settings.channelType = 'menu'; surveySatisfaction = true; chataurafront.settings.withIntroBox = false; } else if (chatBehavior.throughFunction.indexOf(chataurafront.settings.getChannel) >= 0) { //console.log('throughFunction type'); chataurafront.settings.channelType = 'throughFunction'; if (chataurafront.settings.getChannel != 'portal-assine-mobile') chataurafront.settings.launch_button_element = '
'; else $('body').append('= 0) { //console.log('ouvidoria type'); chataurafront.settings.channelType = 'ouvidoria'; surveySatisfaction = true; chataurafront.settings.withIntroBox = false; ouvidoriaChat = true; } else { if (chataurafront.settings.getChannel == 'ti-web') { surveySatisfaction = true; chataurafront.settings.withIntroBox = false; }else if(chataurafront.settings.getChannel == 'proj-beatrix'){ //console.log('proj-beatrix type'); chataurafront.settings.withIntroBox = false; chataurafront.settings.launch_button_element = '
'; chataurafront.settings.launch_button_element += ''; chataurafront.settings.launch_button_element += ''; chataurafront.settings.launch_button_element += 'Olá! Sou a Trix.
Como posso te ajudar?

'; chataurafront.settings.launch_button_element += '
'; chataurafront.settings.launch_button_element += '
'; }else{ //console.log('default type'); chataurafront.settings.launch_button_element = '
'; chataurafront.settings.launch_button_element += ''; chataurafront.settings.launch_button_element += ''; chataurafront.settings.launch_button_element += ''; chataurafront.settings.launch_button_element += '

Olá! Eu sou a Aura.
Posso te ajudar?

'; chataurafront.settings.launch_button_element += '
'; chataurafront.settings.launch_button_element += '
'; } } if (chataurafront.settings.getChannel == 'portal-web-mobile-b2c' || chataurafront.settings.getChannel == 'portal-assine-mobile'){ surveySatisfaction = true; chataurafront.settings.device.mobile = true; } var dynamicContent = null; chataurafront.functions.readFromJson = $.getJSON(chataurafront.settings.url + "/scripts/dynamic-content.json") .success(function(data) { dynamicContent = data; }); chataurafront.functions.filterMessageFromJson = function(dynamic, cName, msgTag) { return (dynamic.messages.channel[cName][msgTag]) ? dynamic.messages.channel[cName][msgTag] : dynamic.messages.channel.default[msgTag]; } /* CONSTRUÇÃO DO CHAT - BACKGROUND */ if (!ouvidoriaChat){ // chataurafront.settings.template.boxChat = ''; chataurafront.settings.template.boxChat = '
'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += 'Fechar chat'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += 'Dicas sobre o que perguntar para Aura'; chataurafront.settings.template.boxChat += 'Dicas sobre o que perguntar para Aura'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += '
'; var msgJsonWelcome; if(dynamicContent) msgJsonWelcome = chataurafront.functions.filterMessageFromJson(dynamicContent, channel, "welcome"); else{ $.when(chataurafront.functions.readFromJson).then(function(){ msgJsonWelcome = chataurafront.functions.filterMessageFromJson(dynamicContent, channel, "welcome"); chataurafront.settings.template.boxChat += '

'+msgJsonWelcome[0]+'

'; chataurafront.settings.template.boxChat += '

'+msgJsonWelcome[1]+' '+msgJsonWelcome[2]+'

'; chataurafront.settings.template.boxChat += '

'+msgJsonWelcome[3]+'

'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += ''; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += ''; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat += '
'; }); } } else { chataurafront.settings.template.boxChat = '
'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat +=''; chataurafront.settings.template.boxChat +='Pesquisar'; chataurafront.settings.template.boxChat += '
'; chataurafront.settings.template.boxChat +='
Resposta Aura
'; chataurafront.settings.template.boxChat +='
'; chataurafront.settings.template.boxChat +='
'; chataurafront.settings.template.boxChat +='
'; chataurafront.settings.template.boxChat +='
'; } /* UTILS FUNCTIONS */ //load script chataurafront.functions.dynamicallyLoadScript = function (url, target) { var script = document.createElement("script"); script.src = url; if (target == 'body') { document.body.appendChild(script); } else { document.head.appendChild(script); } } //remove scripts chataurafront.functions.dynamicallyRemoveScript = function (url) { $('script[src="' + url + '"]').remove(); } //add css style chataurafront.functions.dynamicallyLoadStyle = function (url, mediaAttr, relAttr, target) { var link = document.createElement("link"); link.rel = relAttr; if (mediaAttr !== undefined || mediaAttr !== null) { link.media = mediaAttr; } link.href = url; if (target !== null && target !== undefined && target == "body" && target !=="head") { document.body.insertBefore(link, document.body.firstChild); } else { document.head.insertBefore(link, document.head.firstChild); } } //remove css style chataurafront.functions.dynamicallyRemoveStyle = function (url) { $('link[href="' + url + '"]').remove(); } //utils chataurafront.functions.isIE = function () { var ua = window.navigator.userAgent; if (ua.indexOf("MSIE ") != -1 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) { return true; } else { return false; } } //wait chataurafront.functions.wait = function (funcao, tempo) { setTimeout(function () { funcao }, tempo); } chataurafront.settings.template.aurathink = '
'; chataurafront.settings.template.aurathink += '
'; chataurafront.settings.template.aurathink += '
'; chataurafront.settings.template.aurathink += '
'; chataurafront.settings.template.aurathink += '
'; chataurafront.settings.template.auracross = '
'; chataurafront.settings.template.auracross += '
'; chataurafront.settings.template.auracross += '
'; chataurafront.settings.template.auracross += '
'; chataurafront.settings.template.auracross += '
'; /* CONTROLE E ENVIO DO ALFRED */ chataurafront.functions.scroll = function(element) { if ($(element)[0] != null) $(element).scrollTop($(element)[0].scrollHeight); } chataurafront.functions.showHideAlfred = function(operation) { switch (operation) { case 'show': $("#alfred-ativo").fadeIn('fast', function() { $("#alfred-inativo").hide(); }); break; case 'hide': $("#alfred-ativo").fadeOut('fast', function() { $("#alfred-inativo").show(); }); break; } } chataurafront.functions.sendAlfred = function() { $alfred_ativo = $("#alfred-ativo"); $alfred_inativo = $("#alfred-inativo"); if ($alfred_ativo.css('display') == 'inline' || $alfred_ativo.css('display') == 'inline-block' || $alfred_ativo.css('display') == 'block') { var delay = 0.1; $("#alfred-message ul").children().each(function() { delay += 0.1; $(this).css({ 'animation': 'bottomToNegTop ' + delay + 's', 'animation-fill-mode': 'both' }); }); setTimeout(function() { chataurafront.functions.showHideAlfred('hide'); $('[id="alfred-message"]').remove(); $(".latest_message, .previous_message").css('display', 'block'); if ($('.chat_container').children().size() == 0) $('.chat_container').append($welcomeMessage); chataurafront.functions.scrollToDown(); }, 850); } else { var msgJson; var alfredMsg = "Oi sou o alfred"; if (dynamicContent) msgJson = chataurafront.functions.filterMessageFromJson(dynamicContent, chataurafront.settings.getChannel, "alfred"); else { $.when(chataurafront.functions.readFromJson).then(function() { msgJson = chataurafront.functions.filterMessageFromJson(dynamicContent, chataurafront.settings.getChannel, "alfred"); }); } alfredMsg = "
" alfredMsg += "

"; alfredMsg += msgJson[0]; alfredMsg += "

"; alfredMsg += ""; alfredMsg += "
"; chataurafront.functions.showHideAlfred('show'); if ($('#aura-welcome-msg').html() != null) { $('.chat_body').addClass('chat_converse'); $('#aura-welcome-msg').remove(); } $(".latest_message, .previous_message").css('display', 'none') $(".chat_container").append(alfredMsg); } } chataurafront.settings.template.message = function(message) { var botFrameworkResponse = '' return '
' + (message ? message : botFrameworkResponse) + '
'; } /* FUNÇÕES DE ENVIO DE MENSAGEM */ chataurafront.functions.animateAuraThink = function() { var elem = document.getElementById('thinking') animData = { container: elem, renderer: 'svg', loop: true, autoplay: true, rendererSettings: { progressiveLoad: false }, path: chataurafront.settings.url + '/scripts/json/thinking.json' }; if(chataurafront.settings.getChannel !='proj-beatrix'){ $("#fab_send img").hide(); anim = bodymovin.loadAnimation(animData); } } chataurafront.functions.waitAnimLoad = function(anim){ if (!anim.isLoaded) setTimeout(function(){ chataurafront.functions.waitAnimLoad(anim); },1000); else setTimeout(function() { bodymovin.togglePause(); }, 50); } chataurafront.functions.waitForAnim = function(animData){ if(typeof bodymovin !== "undefined"){ anim = bodymovin.loadAnimation(animData); chataurafront.functions.waitAnimLoad(anim); }else{ setTimeout(function(){ //console.log('waiting element load'); chataurafront.functions.waitForAnim(animData); }, 4000); } } chataurafront.functions.animateAuraCross = function() { var elem = document.getElementById('aura2cross') animData = { container: elem, renderer: 'svg', loop: true, autoplay: true, rendererSettings: { progressiveLoad: false }, path: chataurafront.settings.url + '/scripts/json/aura2cross.json' }; $("#launch_button i").hide(); chataurafront.functions.waitForAnim(animData); } chataurafront.functions.scrollToDown = function() { if (ouvidoriaChat) { var ps = new PerfectScrollbar('.chat_converse'); } var scrollHeightTotal = $('.chat_converse')[0].scrollHeight var lastMemberHeight = $('.chat_container').children().last()[0].scrollHeight // $('.chat_converse').scrollTop(scrollHeightTotal - lastMemberHeight - 20); var screenHeight = window.screen.height; //console.log(screenHeight); if (chataurafront.settings.getChannel == 'mvf-app-new') { if (screenHeight < 668) { $('.chat_converse').scrollTop(scrollHeightTotal - lastMemberHeight - 40); }else{ $('.chat_converse').scrollTop(scrollHeightTotal - lastMemberHeight - 20); } } else { $('.chat_converse').scrollTop(scrollHeightTotal - lastMemberHeight - 20); } } chataurafront.functions.sendMessage = function() { $('#fab_send').click(function() { if ($("#chatSend").val() != "") { filterText = $("#chatSend").val(); if(ouvidoriaChat){ $(".divBotoes").show(); $(".divBotoesViviChat").show(); } $("#chatSend").attr('placeholder', 'Por favor aguarde...') filterText = filterText.replace(/[<>]/g, " "); filterText = filterText.replace(/script/g, " "); var userMessage = filterText ; if (chataurafront.settings.noerase != '' && chataurafront.settings.noerase != undefined){ userMessage = chataurafront.settings.noerase; chataurafront.settings.noerase = ''; }else{ filterText = filterText.replace(/[<>]/g, " "); filterText = filterText.replace(/script/g, " "); var userMessage = filterText; } $("#chatSend").val('').attr('disabled', 'disabled').height(21); chataurafront.functions.showHideAlfred('hide'); if ($('#alfred-message').html()) $('[id="alfred-message"]').remove(); if ($('#aura-welcome-msg').html() != null) { $('.chat_body').addClass('chat_converse'); $('#aura-welcome-msg').remove(); } if (ouvidoriaChat) { $('.chat_body').addClass('chat_converse'); $(".latest_message").remove(); $(".faixa-aura").css("display", "block"); //console.log("Mostra header ouvidoria!"); } //Controle de última mensagem enviada $(".latest_message, .previous_message").css('display', 'block') $(".latest_message").css('padding-bottom', '0px'); $('.latest_message').append('
') $(".latest_message").children().last().removeClass('aura_responseBody') $('.chat_container').children().last().removeClass('latest_message'); $('.chat_container').children().last().addClass('previous_message'); $(".previous_message>.aura_responseBody").attr('style', 'padding-bottom: 0px'); //Esconde mensagens anteriores // $('.previous_message').css('display','none'); // $('').children().last().css('margin-top','10px'); if(chataurafront.settings.attachmentButtonTitle != '' && chataurafront.settings.attachmentButtonTitle != undefined){ $(".chat_container").append('
Você enviou:

' + chataurafront.settings.attachmentButtonTitle + '

'); chataurafront.functions.focusElementAndOut($(".latest_message .user_questionBody")) }else{ $(".chat_container").append('
Você enviou:

' + userMessage.replace(/[<>]/g, " ").replace(/script/g, " ") + '

'); chataurafront.functions.focusElementAndOut($(".latest_message .user_questionBody")) } setTimeout(function() { if ($("#chatSend").attr('disabled')) $(".latest_message").append('
Estou pensando ...
'); chataurafront.functions.focusElementAndOut($("#aura_thinking")) }, 5000); if (chataurafront.settings.screenHeight <= 0) { chataurafront.settings.screenHeight = $('.chat_converse').height(); } //console.log(chataurafront.settings.screenHeight); // console.log($('.latest_message .user_questionBody')[0].scrollHeight) if ($('.latest_message .user_questionBody')[0].scrollHeight > chataurafront.settings.screenHeight * 0.8) { $(".latest_message").css('padding-bottom', 0); // SimpleScrollbar.initAll(); // console.log('teste1'); } else { $(".latest_message").css('padding-bottom', chataurafront.settings.screenHeight * 0.95 - $('.latest_message .user_questionBody')[0].scrollHeight); // SimpleScrollbar.initAll(); // console.log('teste2'); $('.chat_converse').css('overflow', 'hidden'); $("#fab_send").append(chataurafront.settings.template.aurathink); chataurafront.functions.animateAuraThink(); } if ($('.chat_container').children().length > 1) $('.chat_container').children().last().css('margin-top', '25px'); chataurafront.functions.scrollToDown(); chataurafront.functions.sendActivity(userMessage.replace(/[<>]/g, " ").replace(/script/g, " ")); } else { if(ouvidoriaChat) msgAlert("Por favor, digite uma pergunta no campo indicado.", "alert"); } }); } chataurafront.functions.enableUser = function(response) { $("#aura_thinking").remove(); if(chataurafront.settings.getChannel !='proj-beatrix'){ $("#fab_send img").toggle(); } $("#fab_send .canvas").remove(); $('#chatSend').attr('placeholder', 'Digite sua mensagem...') if(response != 'responseTimeout' && response != 'apiError'){ response.forEach(function(element){ if (element.text != null) { //$('.aura_desambiguacao').parent('.aura_responseBody').css('display', 'none'); if (element.value != null) { //console.log('entities/value diferente de null'); var quickReply = "
"+ element.text +"
" $(".latest_message").append('
Resposta da Aura:' + quickReply + '
'); chataurafront.functions.focusElementAndOut($(".latest_message .aura_responseBody")) chataurafront.functions.clickByEnter("#quick_reply_option"); } else { // response.text = response.text.replace(/style="[a-zA-Z0-9:;\.\s\(\)\-\,]*"/gi, ""); // remove todas as propriedades style element.text = element.text.replace(/background-color:(.*?);/gm, ""); // remove todos os background $(".latest_message").append('
Resposta da Aura:' + element.text + '
'); chataurafront.functions.focusElementAndOut($(".latest_message .aura_responseBody")) } // if(element.attachments) { // $(".aura_responseBody").css('padding-bottom', '20px'); // console.log('entrou no if attachments'); // console.log(element.attachments[0].content.buttons); // var btnLuis = "
"; // $(".latest_message").append('
' + btnLuis + '
'); // } } else { if(element.attachments) { $(".aura_responseBody").css('padding-bottom', '20px'); //console.log('entrou no if attachments'); //console.log(element.attachments[0].content.buttons); var btnLuis = "
" + element.attachments[0].content.title + "
"; $(".latest_message").append('
Resposta da Aura:' + btnLuis + '
'); chataurafront.functions.focusElementAndOut($(".latest_message .aura_responseBody")) chataurafront.functions.clickByEnter("#slow_reply_option") }else{ $(".latest_message").append('
Resposta da Aura:' + chataurafront.functions.filterMessageFromJson(dynamicContent, 'default', element) + '
'); chataurafront.functions.focusElementAndOut($(".latest_message .aura_responseBody")) } } }); }else if(response != 'apiError'){ //element.text = element.text.replace(/background-color:(.*?);/gm, ""); // remove todos os background $(".latest_message").append('
Resposta da Aura:' + 'Desculpe não pude realizar esta operação, tente novamente!' + '
'); chataurafront.functions.focusElementAndOut($(".latest_message .aura_responseBody")) }else{ $(".latest_message").append('
Resposta da Aura:' + 'Desculpe não pude realizar esta operação, tente novamente!' + '
'); chataurafront.functions.focusElementAndOut($(".latest_message .aura_responseBody")) } // } // if ($('.latest_message').height() < $('.chat_converse').height() * 0.90) { $(".latest_message").css('padding-bottom', $('.chat_converse').height() * 0.93 - $('.latest_message').height()); } else { $(".latest_message").css('padding-bottom', '0px'); } $('.chat_converse').css('overflow', 'auto'); $("#chatSend").removeAttr('disabled'); chataurafront.functions.scrollToDown(); if (!slowReplyAppears) { chataurafront.functions.sendSlowReplyReponse(); slowReplyAppears = true; } if (!quickReplyAppears) { chataurafront.functions.sendQuickReplyResponse(); quickReplyAppears = true; } } chataurafront.functions.sendSlowReplyReponse = function() { $('.chat_converse').delegate('#slow_reply_option', 'click', function(e) { chataurafront.settings.attachmentButtonTitle = e.currentTarget.innerText; $("#chatSend").val(e.currentTarget.dataset.intent); $("#fab_send").click(); chataurafront.settings.attachmentButtonTitle = ''; }); } chataurafront.functions.sendQuickReplyResponse = function() { $('.chat_converse').delegate('#quick_reply_option', 'click', function() { var text = $(this).data('text'); var title = $(this).data('title'); $(".latest_message").css('display', 'block'); $(".latest_message").css('padding-bottom', '0px'); if (ouvidoriaChat) { $(".latest_message").remove(); } $('.latest_message').append('
'); $(".latest_message").children().last().removeClass('aura_responseBody'); $('.chat_container').children().last().addClass('previous_message'); $('.chat_container').children().last().removeClass('latest_message'); $(".chat_container").append('
Você enviou:

' + title + '

'); chataurafront.functions.focusElementAndOut($(".latest_message .user_questionBody")) // $('.chat_container').children().last().css('margin-top','25px'); setTimeout(() => { $(".latest_message").append('
Resposta da Aura:' + text + '
'); chataurafront.functions.focusElementAndOut($(".latest_message .aura_responseBody")) }, 1500); if ($('.latest_message').height() < $('.chat_converse').height() * 0.90) { $(".latest_message").css('padding-bottom', $('.chat_converse').height() * 0.98 - $('.latest_message').height()); } else { $(".latest_message").css('padding-bottom', '0px'); } $(".previous_message>.aura_responseBody").attr('style', 'padding-bottom: 0px'); chataurafront.functions.scrollToDown(); }) } /* BOT FRAMEWORK APIS */ var credentials = { surveyUrl: "https://pro-aura-customer-survey.telefonicabigdata.com/api/v1", urlGetTokenDefault: "https://svc-br-pro.auracognitive.com/aura-services/v1/token", apiKey: "bbc71501a7228fe7c1cd6c7e72183a88f1e4333964b5aa60ab06ddc12bad29321dbed291cdc4e15cd2bc2d31fd807a65c62b10db6a22bc247e168799721ee34d77c057b58f4862b8aca9e06009f58fc7a697fddf9296b2f452c92fb2bc9270a8cdd95682e56c837cfff24a6ec7112449aebb0515674e6563f912f9d9e355102f3a32f0e6a397067e868c0854af20037fecc47afa71f95f0e1c84e340b8ade55c75c79cfbff398f8428fd1185ce72521eefd290b8c3091e53221a8b9275869d31445a725b66e84e0cbff0eb292c7b66b1", directlineUrl: "https://directline.botframework.com/v3/directline/conversations", }; chataurafront.functions.sendSurvey = function () { $.ajax({ //one aura dev satisfaction url: credentials.surveyUrl, headers: { "Content-Type": "application/json", accept: "application/json", }, type: "POST", crossDomain: true, data: JSON.stringify(surveyObject), dataType: "json", async: true, success: function (data) { ////console.log(data); }, error: function (data) { ////console.log(data); }, }); }; chataurafront.functions.requestSurveySatisfaction = function (msisdn) { if (!botConversationResponse.conversationId) { setTimeout(function () { if (!botConversationResponse.conversationId) { chataurafront.functions.requestSurveySatisfaction(msisdn); } else { surveyObject.conversationId = botConversationResponse.conversationId; surveyObject = { conversationId: botConversationResponse.conversationId, msisdn: msisdn, channel: chataurafront.settings.getChannel, }; chataurafront.functions.sendSurvey(); surveyObject = {}; } }, 2000); } }; chataurafront.functions.getToken = function (channel) { //get channel ids - same to dev/pre and prod chataurafront.settings.getChannelId = chataurafront.functions.filterMessageFromJson( dynamicContent, "config", "channelId" ); //tests one aura chataurafront.settings.getChannelName = chataurafront.functions.filterMessageFromJson( dynamicContent, "config", "channelName" ); // new token api dev/pre and prod //get channel apikeys dev/pre -- chataurafront.settings.getChannelAPIKeyDev = chataurafront.functions.filterMessageFromJson( dynamicContent, "config", "channelAPIKeyDev" ); $.when(chataurafront.functions.readFromJson).then(function () { if (channel) chataurafront.settings.getChannel = channel; $.ajax({ url: chataurafront.settings.pocLuis ? urlGetTokenPocLuis : credentials.urlGetTokenDefault, // dev/pre headers new headers: { Authorization: `APIKEY ${credentials.apiKey}`, "Content-Type": "application/json", }, // prod headers new // headers: { // Authorization: // "APIKEY " + // chataurafront.settings.getChannelAPIKeyProd[ // chataurafront.settings.getChannel // ], // "Content-Type": "application/json", // }, type: "GET", crossDomain: true, dataType: "json", success: function (data) { //console.log(data); chataurafront.functions.startConversation(data.token); }, error: function (data) { //console.log(data); TokenStartConversationStatus = false; }, }); }); }; chataurafront.functions.startConversation = function (token) { $.ajax({ url: credentials.directlineUrl, headers: { Authorization: "Bearer " + token, }, type: "POST", crossDomain: true, dataType: "json", async: true, success: function (data) { //console.log(data); botConversationResponse = data; }, error: function (data) { //console.log(data); TokenStartConversationStatus = false; }, }); }; chataurafront.functions.sendActivity = function (userMessage) { if (botConversationResponse.token == null) { if (!TokenStartConversationStatus) { chataurafront.functions.enableUser("apiError"); } else { //console.log('Waiting for Token and StartConversation'); setTimeout(function () { chataurafront.settings.countRequestToken++; if (chataurafront.settings.countRequestToken > 5) { chataurafront.settings.countRequestToken = 0; //console.log('responseTimeout-sendactivity'); chataurafront.functions.enableUser("responseTimeout"); } else { chataurafront.functions.sendActivity(userMessage); } }, 2000); } } else { clientActivityId += 1; if (chataurafront.settings.getChannel == "mvf-web-desktop-email") { chataurafront.settings.getchannel = "mvm-web-desktop-email"; } if (chataurafront.settings.getChannel == "mvf-web-desktop-chat") { chataurafront.settings.getchannel = "mvm-web-desktop-chat"; } if (chataurafront.settings.getChannel == "mvf-web-desktop-ouvidoria") { chataurafront.settings.getchannel = "mvm-web-desktop-ouvidoria"; } var reqObject = { type: "message", text: userMessage.replace(/\n/g, ""), from: { // "id": chataurafront.settings.getChannel, // "id": chataurafront.settings.getChannelId[chataurafront.settings.getChannel], id: chataurafront.settings.getChannelName[ chataurafront.settings.getChannel ], }, // "locale": "pt-BR", // "textFormat": "plain", // "timestamp": "2018-06-16T22:46:41.133Z", channelData: { clientActivityId: clientActivityId, msisdn: chataurafront.settings.getBusinessKey, appContext: { channel: { // app id update appId: chataurafront.settings.getChannelId[ chataurafront.settings.getChannel ], }, }, }, }; $.ajax({ url: `${credentials.directlineUrl}/` + botConversationResponse.conversationId + "/activities", headers: { Authorization: "Bearer " + botConversationResponse.token, "Content-Type": "application/json", }, type: "POST", crossDomain: true, data: JSON.stringify(reqObject), dataType: "json", async: true, success: function (data) { //console.log(data); chataurafront.functions.ReceiveActivity(data.id.split("|")[1]); }, error: function (data) { //console.log(data); if (JSON.stringify(data).toLowerCase().indexOf("tokenexpired") >= 0) { console.log("ERROR: Token Expired"); botConversationResponse = {}; clientActivityId = 0; $.when(chataurafront.functions.getToken()).then( chataurafront.functions.sendActivity(userMessage) ); } else { console.log("ERROR: API Error"); chataurafront.functions.enableUser("apiError"); } }, }); } }; chataurafront.functions.ReceiveActivity = function (messageId) { botFrameworkAnswered += 1; //console.log(messageId) $.ajax({ url: `${credentials.directlineUrl}/` + botConversationResponse.conversationId + "/activities?watermark=" + messageId, headers: { Authorization: "Bearer " + botConversationResponse.token, "Content-Type": "application/json", }, type: "GET", crossDomain: true, async: true, success: function (data) { //console.log(data); if (data.activities.length > 0) { //chataurafront.functions.enableUser(data.activities[0]); chataurafront.functions.enableUser(data.activities); botFrameworkAnswered = 0; auraUserInteraction = true; } else if (botFrameworkAnswered <= 8) { setTimeout(function () { chataurafront.functions.ReceiveActivity(messageId); }, 1500); } else { //console.log('responseTimeout-receiveactivity'); chataurafront.functions.enableUser("responseTimeout"); botFrameworkAnswered = 0; } }, error: function (data) { //console.log(data); chataurafront.functions.enableUser(JSON.stringify(data)); chataurafront.functions.enableUser("apiError"); }, }); }; /* FUNÇÃO PRINCIPAL QUE CONSTRÓI TUDO NO HTML DO CLIENT */ //init launch chataurafront.functions.launchCracker = function() { //ADICIONANDO ELEMENTOS DINAMICAMENTE NO HTML if (!ouvidoriaChat) { chataurafront.functions.dynamicallyLoadStyle(chataurafront.settings.url + '/styles/min/main.min.css', 'all', 'stylesheet', 'head'); chataurafront.functions.dynamicallyLoadStyle(chataurafront.settings.url + '/styles/min/channel/'+ chataurafront.settings.getChannel +'.min.css', 'all', 'stylesheet', 'head'); } else { chataurafront.functions.dynamicallyLoadStyle(chataurafront.settings.url + '/styles/min/ouvidoria.min.css', 'all', 'stylesheet', 'head'); chataurafront.functions.dynamicallyLoadStyle(chataurafront.settings.url + '/styles/min/channel/'+ chataurafront.settings.getChannel +'.min.css', 'all', 'stylesheet', 'head'); } if (ouvidoriaChat) { chataurafront.functions.dynamicallyLoadStyle(chataurafront.settings.url + '/scripts/perfect-scrollbar/css/perfect-scrollbar.css', 'all', 'stylesheet', 'head'); chataurafront.functions.dynamicallyLoadScript(chataurafront.settings.url + '/scripts/perfect-scrollbar/dist/perfect-scrollbar.js', 'body'); } if (chataurafront.settings.getChannel == 'portal-web-mobile-b2c' || chataurafront.settings.getChannel == 'portal-b2c-desktop' || chataurafront.settings.getChannel == 'portal-b2b-operadoras' || chataurafront.settings.getChannel == 'portal-b2b-desktop-pme'){ chataurafront.functions.dynamicallyLoadScript(chataurafront.settings.url + '/scripts/main.js', 'head'); chataurafront.functions.dynamicallyLoadScript(chataurafront.settings.url + '/scripts/bodyanim.js', 'head'); chataurafront.functions.dynamicallyLoadScript(chataurafront.settings.url + '/scripts/jquery-3.3.1.min.js', 'head'); }else{ chataurafront.functions.dynamicallyLoadScript(chataurafront.settings.url + '/scripts/main.js', 'body'); chataurafront.functions.dynamicallyLoadScript(chataurafront.settings.url + '/scripts/bodyanim.js', 'body'); chataurafront.functions.dynamicallyLoadScript(chataurafront.settings.url + '/scripts/jquery-3.3.1.min.js', 'body'); } // waiting the last script loaded var lastScript = chataurafront.settings.url + '/styles/min/' + (ouvidoriaChat ? 'ouvidoria' : 'main') + '.min.css' $('link[href="' + lastScript + '"]').load(function() { setTimeout(function() { let auraStart = $('#aura-start'); let toAppend = auraStart.length ? auraStart : $('body'); if(!toAppend.children().hasClass('tag')) { toAppend.append(chataurafront.settings.launch_button_element); chataurafront.functions.openChat('#launch_button'); chataurafront.functions.clickByEnter("#launch_button") } }, 700); }); chataurafront.functions.actionTag(); } chataurafront.functions.tagHoverBehaviour = function() { chataurafront.jquery(".chamada").animate({ width: "toggle" }, { complete: function() { chataurafront.jquery(".texto").fadeOut( "slow" ); chataurafront.jquery("#launch_button").removeClass("shadow_tag"); }, duration: 200, easing: "linear", done: function() { chataurafront.jquery("#launch_button").click(function(){ if (chataurafront.jquery(".aura").hasClass("is-visible")) { chataurafront.jquery(".chamada") .stop(true, true) .delay(2000) .animate({ width: "toggle" }, { queue: false }, { complete: function() { chataurafront.jquery(".texto").fadeIn(1500); } }) } if (chataurafront.jquery(window).width() <= 480) { chataurafront.jquery(".chamada").css("display", "none"); chataurafront.jquery(".chamada").css("opacity", "0"); chataurafront.jquery(".chamada").hide(); } }) chataurafront.jquery(".tag").hover( function(event) { // console.log("in"); chataurafront.jquery("#launch_button").addClass("shadow_tag"); if (!chataurafront.jquery(".aura").hasClass("is-visible")) { // console.log("Hover: Abriu chamada"); const chamada = chataurafront.jquery(".chamada") chamada.stop(true, true) // .delay(500) .animate({ width: "toggle" }, { complete: function() { chataurafront.jquery(".texto").fadeIn(1500); } }) chamada.css('outline', 'none !important') .attr("tabindex", 0) .focus(); } event.preventDefault(); }, function(event) { // console.log("out"); if (!chataurafront.jquery(".aura").hasClass("is-visible")) { // console.log("Hover: Fechou chamada"); chataurafront.jquery(".chamada") .stop(true, true) .delay(500) .animate({ width: "toggle" }, { complete: function() { chataurafront.jquery("#launch_button").removeClass("shadow_tag"); //console.log("complete out"); }, done: function () { //console.log("done out"); } }) } }); } }, "slow"); } document.onkeydown = function(event) { const closeButton = $("#launch_button"); if (closeButton && closeButton.attr('class').includes('close-tag')) return event = event || window.event; let isEscape = false; if ("key" in event) { isEscape = (event.key === "Escape" || event.key === "Esc"); } else { isEscape = (event.keyCode === 27); } if (isEscape) { $("#launch_button").click() } }; var pointerOpen = false; chataurafront.functions.actionTag = function() { setTimeout(function() { chataurafront.jquery("#launch_button").on("click", function(){ if (chataurafront.jquery('.aura').html() == null && !pointerOpen) { clearTimeout(chataurafront.settings.openTagTimeout); chataurafront.functions.tagHoverBehaviour(); // console.log('executando por click'); } if (chataurafront.jquery(window).width() <= 480) { chataurafront.jquery(".chamada").css("display", "none"); chataurafront.jquery(".chamada").css("opacity", "0"); chataurafront.jquery( ".chamada" ).hide(); // console.log("fecha 3"); } }); chataurafront.jquery("#launch_button").addClass("shadow_tag"); chataurafront.jquery(".chamada").animate({ width: "toggle" }, { complete: function() { chataurafront.jquery(".texto").fadeIn(1500); // console.log("Abriu chamada"); chataurafront.settings.openTagTimeout = setTimeout(function() { pointerOpen = true; // console.log('executando setTimeout') chataurafront.functions.tagHoverBehaviour(); }, 5000); } }, "slow"); }, 2000); } chataurafront.functions.initChat = function(operatorToOpen) { $('#chatSend').focus(); if (chataurafront.settings.withIntroBox) { if (!introBox) { chataurafront.functions.buildIntroBox(operatorToOpen); introBox = true; } else { if ($('#introBoxContainer').css('display') == 'flex') { $('#introBoxContainer').trigger('click'); } else chataurafront.functions.buildBoxChat(operatorToOpen); } } else { if (businesskey != 0) chataurafront.functions.requestSurveySatisfaction(businesskey); else chataurafront.functions.requestSurveySatisfaction(""); chataurafront.functions.buildBoxChat(operatorToOpen); chataurafront.functions.focusElementAndOut($('.chat_container')) if (!introBox) { $(operatorToOpen).removeClass("close-tag").attr('title', "Encerrar chat"); $(operatorToOpen).append(chataurafront.settings.template.auracross); chataurafront.functions.animateAuraCross(); introBox = true; } } } chataurafront.functions.openChat = function(operatorToOpen) { if (chataurafront.settings.channelType == 'menu' || chataurafront.settings.channelType == 'ouvidoria') { if (businesskey != 0) chataurafront.functions.requestSurveySatisfaction(businesskey); else chataurafront.functions.requestSurveySatisfaction(""); chataurafront.functions.buildBoxChat(); } else { $(operatorToOpen).click(function() { $('html').addClass("html-mobile"); chataurafront.functions.initChat(operatorToOpen); chataurafront.functions.focusElementAndOut($('.chat_container')) }); } } chataurafront.functions.buildIntroBox = function(operatorToOpen) { chataurafront.settings.introbox_element = "
"; chataurafront.settings.introbox_element += "
"; chataurafront.settings.introbox_element += "
"; chataurafront.settings.introbox_element += "
"; chataurafront.settings.introbox_element += ""; chataurafront.settings.introbox_element +=""; // condicional para tipo input modal mobile if(chataurafront.settings.getChannel == 'portal-web-mobile-b2c' || chataurafront.settings.getChannel == 'portal-assine-mobile'){ chataurafront.settings.introbox_element += ""; } if(chataurafront.settings.getChannel != 'portal-web-mobile-b2c' && chataurafront.settings.getChannel != 'portal-assine-mobile'){ chataurafront.settings.introbox_element += ""; chataurafront.settings.boxsatisfaction_element += "
"; chataurafront.settings.boxsatisfaction_element += "
"; chataurafront.settings.boxsatisfaction_element += ""; chataurafront.settings.boxsatisfaction_element += "
"; chataurafront.settings.boxsatisfaction_element += "
"; chataurafront.settings.boxsatisfaction_element += "
"; chataurafront.settings.boxsatisfaction_element += "

Até a próxima!

"; chataurafront.settings.boxsatisfaction_element += "
"; chataurafront.settings.boxsatisfaction_element += ""; $.when($(chataurafront.settings.boxsatisfaction_element).insertAfter('body')).then(function() { var radioValue = false; chataurafront.settings.step = 1; function closeSatisfaction() { $('#feedback-satisfaction, #box-satisfaction, #box-satisfaction2').hide(); chataurafront.functions.sendSurvey(); $('.final-message-survey').show(); }; function showSurveyQuestion2(){ $('#box-satisfaction2').fadeIn(50); $('#box-satisfaction').hide(); chataurafront.settings.step = 2; } function showSurveyTextArea() { $('#feedback-satisfaction').fadeIn(50); $('#box-satisfaction2').hide(); radioValue = false; chataurafront.settings.step = 3; }; function getSurveyValues() { // surveyObject = { // "conversationId": botConversationResponse.conversationId, // "msisdn": msisdn, // "evaluation": $('input[name="satisf"]:checked').val(), // "answered": $('input[name="seguin"]:checked').val() == "SIM" ? true : false, // "comment": $('.text-area-satisfaction').val() // } //satisfaction v2 surveyObject = { "conversationId": botConversationResponse.conversationId, "msisdn": msisdn, "channel": chataurafront.settings.getChannel, "evaluation": $('input[name="satisf"]:checked').val(), "answered": $('input[name="seguin"]:checked').val() == "SIM" ? true : false, "comment": $('.text-area-satisfaction').val() } }; $('.satisfaction-close-icon').click(function() { $(".box-satisfaction").remove(); }); $('input[name="seguin"]').click(function() { radioValue = $('input[value="NAO"]:checked').val(); // }); // $('#button-satisfaction-back').click(function() { // $('#feedback-satisfaction').hide(); // $('#box-satisfaction').fadeIn(50); // radioValue = true; // }); $('#button-satisfaction-send, #button-satisfaction').click(function() { getSurveyValues(); if ($('input[name="satisf"]:checked').val() == null) { // console.log('não selecionou nada de evaluate!'); } else if (chataurafront.settings.step === 1) { showSurveyQuestion2(); // console.log('question2 -step:' + chataurafront.settings.step); } else if ($('input[name="seguin"]:checked').val() == null) { // console.log('não selecionou nada de sim nao!'); } else if (chataurafront.settings.step === 2) { if (!radioValue) { closeSatisfaction(); // console.log('bye step:' + chataurafront.settings.step); } else { showSurveyTextArea(); // console.log('text-area step:' + chataurafront.settings.step); } } else if ($('.text-area-satisfaction').val() === null || $('.text-area-satisfaction').val() === "" ){ // console.log('não escreveu nada em comment!'); } else if (chataurafront.settings.step === 3) { closeSatisfaction(); // console.log('bye after text area- step:' + chataurafront.settings.step); } // getSurveyValues(); // if ( chataurafront.settings.step === 1) { // showSurveyQuestion2(); // console.log('question2 -step:'+chataurafront.settings.step); // } else if( chataurafront.settings.step === 2){ // if(!radioValue){ // closeSatisfaction(); // console.log('bye step:'+chataurafront.settings.step); // }else{ // showSurveyTextArea(); // console.log('text-area step:'+chataurafront.settings.step); // } // }else if( chataurafront.settings.step === 3){ // closeSatisfaction(); // console.log('bye after text area- step:'+chataurafront.settings.step); // } }); surveySatisfaction = true; }); } chataurafront.functions.minimizeChat = function() { $('.popup-chat').animate({ 'width': '0', 'height': '0' }, function() { $(this).css('display', 'none').removeClass('show-state').addClass('hidden-state'); }); } chataurafront.functions.getQParam = function(param) { var url = window.location.search.substring(1); var params = url.split('&'); for (i in params) { var value = params[i].split('='); if (param == value[0]) { return value[1]; } } } $(document).ready(function() { chataurafront.functions.launchCracker(); $(document).keyup(function(e) { if (e.keyCode == 27) { if ($('#introBox').css('display')) $('#introBoxContainer').trigger('click'); } }); function getQuestion(){ if ($("#launch_button").size() < 1){ setTimeout(function(){ if(chataurafront.settings.channelType != 'menu' && !ouvidoriaChat){ getQuestion(); } },4000) } else { if (chataurafront.functions.getQParam('question')) { $('#launch_button').click(); $('#introBoxContainer').click(); var question = chataurafront.functions.getQParam('question'); question = decodeURI(question); $('#chatSend').val(question); $('.seta_envio').click(); } } } getQuestion(); });