File: //home/arjun/projects/buyercall_new/buyercall/buyercall/assets/components/lead-sms.js
var utils = require('./utils');
var MAX_FILE_SIZE = 4 * 1024 * 1024;
const swal = require('sweetalert2');
//let {showConfirm, createFlashMsg} = utils;
//const { WhisperMessageView } = require('../backbone/whisper_message.js');
var leadSmsView = {
imageUrl: '',
agentsVisible: false,
phonenumber: '',
init: function() {
var loThat = this;
loThat.agentsVisible = false;
loThat.resetUI();
loThat.events();
loThat.initDropzones();
loThat.setupSMSUploadSection();
},
getModalFieldData: function(paLeadID) {
var loThat = this;
$.ajax('/api/contacts/message/' + paLeadID, {
method: 'GET'
}).done((data) => {
if (!data) {
console.error('Failed to retrieve lead call info.');
return;
}
var routineNumbers = data.allRoutingNumbers;
if (routineNumbers != null) {
$('.routing-number').html('').append('<option value="-1">Select number...</option>');
for(var i = 0; i < routineNumbers.length; i++) {
var lpNumber = routineNumbers[i];
$('.routing-number').append('<option value="'+ lpNumber.number + '">'+ lpNumber.friendlyName +'</option>');
}
}
if (data.routingNumber == undefined || data.routingNumber == null || data.routingNumber == "") {
$('.routing-number option:first-child').attr("selected", "selected");
} else {
$(".routing-number option:contains(" + data.routingNumber + ")").attr('selected', true);
}
if (data.name != undefined && data.name != null && data.name != "") {
$('.toleadDetails').html(data.name + " (" + data.phonenumber + ")");
} else {
$('.toleadDetails').html(data.phonenumber);
}
$('.toLeadDetailsSelect').val('lead');
loThat.phonenumber = data.phonenumber;
if (data.agentView == true) {
var agents = data.agents;
loThat.agentsVisible = data.agentView;
$('.routing-agent').html('').append('<option value="-1">Select agent...</option>');
for(var i = 0; i < agents.length; i++) {
var lpAgent = agents[i];
$('.routing-agent').append('<option value="'+ lpAgent[0] + '">'+ lpAgent[1] +'</option>');
}
$('.agent-select').show();
} else {
$('.agent-select').hide();
}
$('.btn-sms').attr('disabled', 'disabled');
});
},
resetUI: function() {
var loThat = this;
$('#chkSMSImage').prop('checked', false);
$("#attachment-upload-section, #remove-mms-attachment").hide();
$(".sms-attachements").hide();
$("#smsCharCount").text("500/500");
$(".smsText").val('');
loThat.imageUrl = '';
loThat.phonenumber = '';
$('.routing-number').children('option:not(:first)').remove();
$('.agent-select').hide();
$('.toleadDetails').html('');
},
events: function() {
var loThat = this;
$('.btn-sms').off().on('click', function() {
var loMediaUrl = '';
var loInbound = $('.routing-number').val();
var loAgentId = $('.routing-agent').val();
var loPhonenumber = loThat.phonenumber;
var loText = $(".smsText").val();
var loSATitle = 'Message Sent';
var loSAText = 'Your message was successfully sent.';
var loSAType = 'success';
var loAgentVisible = loThat.agentsVisible;
var loAgentProceed = true;
if (loThat.imageUrl != '') {
loMediaUrl = loThat.imageUrl;
}
if (loAgentVisible) {
if (loAgentId == "-1") {
loAgentProceed = false;
}
}
if (loInbound != "-1" && loText != "" && loPhonenumber != "" && loAgentProceed) {
$.ajax({
type: "POST",
url: '/api/contacts/message/' + loInbound,
contentType: 'application/json',
data: JSON.stringify({
"inbound_id": loInbound,
"to": loPhonenumber,
"agent_id": loAgentId,
"agents_visible": loThat.agentsVisible,
"text": loText,
"media": loMediaUrl
}),
success: function(data, textStatus) {
if (data == "OK") {
swal({
title: loSATitle,
text: loSAText,
type: loSAType
}).then((value) => {
loThat.resetUI();
$("#mySms").modal("hide");
});
}
}
});
}
});
$(".smsText").keyup(function () {
var maxLength = 500;
var smsText = $(".smsText").val().length;
$("#smsCharCount").text(500 - smsText + "/" + maxLength);
var smsText = maxLength - smsText;
$(".smsText").text(smsText);
if ($(".smsText").val().length > 5) {
var loItem = $('.routing-number').val();
var loAgent = $('.routing-agent').val();
var loAgentProceed = true;
if (loThat.agentsVisible) {
if (loAgent == "-1") {
loAgentProceed = false;
}
}
if (loItem != "-1" && loAgentProceed) {
$('.btn-sms').removeAttr('disabled');
}
} else {
$('.btn-sms').attr('disabled', 'disabled');
}
});
$('#mySms').on('shown.bs.modal', function (ev) {
var smsId = $("#smsModalData").val();
loThat.resetUI();
loThat.getModalFieldData(smsId);
});
$('.routing-number').on('change', function() {
var loItem = $(this).val();
var loAgentVisible = loThat.agentsVisible;
var loAgentProceed = true;
if (loAgentVisible) {
var agentId = $(".routing-agent").children("option:selected").val();
if (agentId > 0) {
loAgentProceed = true;
} else {
loAgentProceed = false;
}
}
if (loItem != "-1" && $(".smsText").val().length > 5 && loAgentProceed) {
$('.btn-sms').removeAttr('disabled');
} else {
$('.btn-sms').attr('disabled', 'disabled');
}
});
$('.routing-agent').on('change', function() {
if (loThat.agentsVisible) {
var loAgent = $(this).val();
var loNumber = $('.routing-number').children("option:selected").val();
if (loNumber != "-1" && $(".smsText").val().length > 5 && loAgent != "-1") {
$('.btn-sms').removeAttr('disabled');
} else {
$('.btn-sms').attr('disabled', 'disabled');
}
}
});
$("#chkSMSImage").on('change', function(e) {
var doAttachment = $("#chkSMSImage").prop('checked');
if (doAttachment) {
$("#attachment-upload-section").show();
$(".sms-attachements").show();
} else {
$("#attachment-upload-section").hide();
$(".sms-attachements").hide();
}
});
$('#remove-mms-attachment').on('click', function() {
loThat.handleRemoveMMSUpload();
});
},
initDropzones: function(){
$('#mySms .upload-music').each(function () {
let dropzoneControl = $(this)[0].dropzone;
if (dropzoneControl) {
dropzoneControl.destroy();
}
});
},
setupSMSUploadSection: function () {
var loThat = this;
$('#mySms .upload-music').dropzone({
url: '/inbound/sms-attachment',
headers: {
'X-CSRFToken': $('meta[name="csrf-token"]').attr('content')
},
init: function () {
this.on('addedfile', function (file) {
utils.flash('');
if (file.size > MAX_FILE_SIZE) {
utils.flash(__('File size must be less than 4 MB.'), 'danger');
this.removeAllFiles();
return;
}
});
},
success: function (file, response, xhr) {
loThat.imageUrl = response.image_url;
utils.flash(__('File uploaded successfully.'), 'success');
$('#attachment-files, #remove-mms-attachment').show();
$('#attachment-files').html('<div class="card-avatar"><a href="#" class="img"><img class="img" id="mms_image_thumb" src=""></a>');
$("#mms_image_thumb").attr("src", loThat.imageUrl);
$('#add-image-section').hide();
$('.sms-attachements').show();
},
error: function (file, response, xhr) {
utils.flash(__('File upload failed. Please try again.'), 'danger');
},
complete: function () { }
});
},
showSMSAttachments: function() {
if (this.model.get('SMSAutoReplyImageUrl')) {
this.$('.sms-attachements').show()
this.$('#add-image-section').hide();
this.$('#attachment-files').html('<div class="card-avatar"><a href="#" class="img"><img class="img" id="mms_image_thumb" src=""></a>')
var url = this.model.get('SMSAutoReplyImageUrl')
this.$("#mms_image_thumb").attr("src", url);
}
else {
this.$('#add-image-section').show();
this.$('.sms-attachements').hide()
}
if (this.model.get('SMSAutoReplyImage')) {
this.$('#SMSAutoReplyImage').prop('checked', true);
this.$('#attachment-upload-section').show();
}
else {
this.$('#attachment-upload-section').hide();
this.$('#SMSAutoReplyImage').prop('checked', false);
}
},
handleRemoveMMSUpload: function() {
var loThat = this;
$('#attachment-files, #remove-mms-attachment, .sms-attachements').hide()
loThat.imageUrl = '';
$('#SMSAutoReplyImage').prop('checked', true);
$('#attachment-upload-section, #add-image-section').show();
}
};
$(document).ready(function() {
leadSmsView.init();
});