File: //home/arjun/projects/buyercall_forms/buyercall/buyercall/assets/components/forms/autopay.js
import {template, showConfirm} from '../utils';
const settings = {
urls: {
application: template`/api/form_leads/${'leadId'}/external_api_provider/${'providerId'}`
}
}
export function postApplication(leadId, providerId) {
return $.ajax({
method: "POST",
url: `/api/form_leads/${leadId}/external_api_provider/${providerId}`
})
}
export function wireButton($container, selector, options) {
$container.on('click', selector, function(e) {
e.preventDefault();
let yesCallback = function() {
var $btn = $(this),
$icon = $btn.find('i');
var leadId = $btn.data('leadId');
var providerId = $btn.attr('data-service-provider-id');
var providerName = $btn.attr('data-service-provider-name');
var errorPopupContainer = options.errorPopupContainer ? $(options.errorPopupContainer) : $container;
if (leadId) {
// checking if in progress already
if (!$btn.data('isBusy')) $btn.data('isBusy', true);
else return;
$icon.removeClass('material-icons').html('').addClass('fa fa-refresh fa-spin');
postApplication(leadId, providerId)
.done(function(result, textStatus, jqXHR) {
if (jqXHR.status === 200 || jqXHR.status === 201) {
$btn.addClass(`autopay-sent ${options.willBeDisabled ? 'disabled' : ''}`);
if (options.createErrorPopup) {
$('#flash-messages .autopay').remove();
createFlashMsg(errorPopupContainer, 'Application has been successfully submitted', 'success', providerName);
}
}
})
// .error(function(jqXHR, textStatus, result) {
// if (options.createErrorPopup) {
// try {
// var xhrMessage = JSON.parse(jqXHR.responseText).message;
// }
// catch(error) {
// xhrMessage = jqXHR.message
// }
// $('#flash-messages .autopay').remove();
// createFlashMsg(errorPopupContainer, xhrMessage, 'danger', providerName);
// }
// })
.always(function(result, textStatus, jqXHR) {
// returning to previous state
$btn.data('isBusy', false);
$icon.removeClass('fa fa-refresh fa-spin').html('file_upload').addClass('material-icons');
if ((jqXHR.status === 200 || jqXHR.status === 201) && options.sentBtnText) $btn.html($btn.html().replace(/Send to Autopay/, options.sentBtnText));
});
}
}.bind(this);
showConfirm({
yesCb: yesCallback,
title: 'CONFIRM',
body: '<p>Are you sure you want to send this application?</p>'
});
})
}
function createFlashMsg($container, message, status, providerName) {
var $flashMsgContainer = $('#flash-messages');
var $autopayAlertContainer = $('#flash-messages .autopay.alert');
var $providerName = providerName;
if ($providerName.length > 0) {
$providerName = $providerName + ": ";
}
if (!$flashMsgContainer[0]) {
$container.before('<div id="flash-messages">'+
'<div class="autopay alert alert-'+status+'" role="alert">'+
$providerName + `${message}` +
'</div>'+
'</div>');
} else if (!$autopayAlertContainer[0]) {
$flashMsgContainer.append('<div class="autopay alert alert-'+status+'" role="alert">'+
$providerName + ` ${message}` +
'</div>');
} else {
$autopayAlertContainer.html($providerName + `${message}`);
}
$('#flash-messages').show();
window.setTimeout(function() { $('#flash-messages').hide('slow') }, 10000);
}