$( document ).ready(function() { var clipboard = new Clipboard('.to_copy'); clipboard.on('success', function(e) { var selector = "#"; var copy_button_id = selector.concat(e.trigger.id); setTimeout(function(){ $(copy_button_id).tooltip('hide'); }, 1000); }); }); function VMTerminateStatus($container, url) { $.ajax({ url: url, type: 'GET', dataType: 'json', success: function(data) { VMTerminateSuccess($container, data); }, error: function() { setTimeout(function(){ VMTerminateStatus($container, url); }, 5000); } }); } function VMTerminateActive($container, altText) { $container.find('.alert-danger').addClass('hide'); $container.addClass('processing') .find('.vm-item-lg').attr('class', '') .addClass('vm-item-lg vm-color-failed') .text(altText); $container.find('.btn').prop('disabled', true); $('#confirm-cancel').modal('hide'); } function VMTerminateSuccess($container, data) { $container.addClass('terminate-success') .find('.vm-item-lg').text(data.text); $container.find('.btn').remove(); $('#terminate-success').modal('show'); } function VMTerminateFail($container, data, text) { $container.addClass('terminate-fail') .find('.vm-item-lg').text(text); $container.find('.btn').prop('disabled', false); $container.find('.alert-danger').text(data.text).removeClass('hide'); $container.removeClass('processing'); } $(document).ready(function() { $('#confirm-cancel').on('click', '.btn-ok', function(e) { var url = $('#virtual_machine_cancel_form').attr('action'); var $container = $('#terminate-VM'); var text = $container.find('.vm-item-lg').text(); var altText = $container.attr('data-alt'); VMTerminateActive($container, altText); $.post(url) .done(function(data) { if (data.status == true) { VMTerminateSuccess($container, data); } else { if ('text' in data) { VMTerminateFail($container, data, text); } else { VMTerminateStatus($container, url); } } }) .fail(function(data) { if (data.status==504) { VMTerminateStatus($container, url); } else { VMTerminateFail($container, data, text); } }) }); var hash = window.location.hash; hash && $('ul.nav a[href="' + hash + '"]').tab('show'); $('.nav-tabs a').click(function(e) { $(this).tab('show'); var scrollmem = $('body').scrollTop() || $('html').scrollTop(); window.location.hash = this.hash; $('html,body').scrollTop(scrollmem); }); var create_vm_form = $('#virtual_machine_create_form'); if (window.isSubscription) { create_vm_form.submit(function () { $('#btn-create-vm').prop('disabled', true); $.ajax({ url: create_vm_form.attr('action'), type: 'POST', data: create_vm_form.serialize(), init: function () { ok_btn = $('#createvm-modal-done-btn'); close_btn = $('#createvm-modal-close-btn'); ok_btn.addClass('btn btn-success btn-ok btn-wide hide'); close_btn.addClass('btn btn-danger btn-ok btn-wide hide'); }, success: function (data) { fa_icon = $('.modal-icon > .fa'); modal_btn = $('#createvm-modal-done-btn'); if (data.showSCA) { console.log("Show SCA"); var stripe = Stripe(data.STRIPE_PUBLISHABLE_KEY); stripe.confirmCardPayment(data.payment_intent_secret).then(function (result) { if (result.error) { // Display error.message in your UI. modal_btn.attr('href', data.error.redirect).removeClass('hide'); fa_icon.attr('class', 'fa fa-close'); modal_btn.attr('class', '').addClass('btn btn-danger btn-ok btn-wide'); $('#createvm-modal-title').text(data.error.msg_title); $('#createvm-modal-body').html(data.error.msg_body); } else { // The payment has succeeded. Display a success message. modal_btn.attr('href', data.success.redirect).removeClass('hide'); fa_icon.attr('class', 'checkmark'); $('#createvm-modal-title').text(data.success.msg_title); $('#createvm-modal-body').html(data.success.msg_body); } }); $('#3Dsecure-modal').show(); } else { $('#createvm-modal-title').text(data.msg_title); $('#createvm-modal-body').html(data.msg_body); if (data.redirect) { modal_btn.attr('href', data.redirect).removeClass('hide'); } else { modal_btn.attr('href', ""); } if (data.status === true) { fa_icon.attr('class', 'checkmark'); } else { fa_icon.attr('class', 'fa fa-close'); modal_btn.attr('class', '').addClass('btn btn-danger btn-ok btn-wide'); } } }, error: function (xmlhttprequest, textstatus, message) { fa_icon = $('.modal-icon > .fa'); fa_icon.attr('class', 'fa fa-close'); if (typeof (create_vm_error_message) !== 'undefined') { $('#createvm-modal-body').text(create_vm_error_message); } $('#btn-create-vm').prop('disabled', false); $('#createvm-modal-close-btn').removeClass('hide'); } }); return false; }); } else { create_vm_form.submit(placeOrderPaymentIntent); function placeOrderPaymentIntent(e) { e.preventDefault(); var stripe = Stripe(window.stripeKey); stripe.confirmCardPayment( window.paymentIntentSecret, { payment_method: window.pm_id } ).then(function(result) { window.result = result; fa_icon = $('.modal-icon > .fa'); modal_btn = $('#createvm-modal-done-btn'); if (result.error) { // Display error.message in your UI. modal_btn.attr('href', error_url).removeClass('hide'); fa_icon.attr('class', 'fa fa-close'); modal_btn.attr('class', '').addClass('btn btn-danger btn-ok btn-wide'); $('#createvm-modal-title').text(error_title); $('#createvm-modal-body').html(result.error.message + " " + error_msg); } else { // The payment has succeeded // Display a success message modal_btn.attr('href', success_url).removeClass('hide'); fa_icon.attr('class', 'checkmark'); $('#createvm-modal-title').text(success_title); $('#createvm-modal-body').html(success_msg); } }); } } $('#createvm-modal').on('hidden.bs.modal', function () { $(this).find('.modal-footer .btn').addClass('hide'); }); // Toggle subscription and one-time payments div $('#li-one-time-charges').click(function() { console.log("li-one-time-charges clicked"); $('#subscriptions').hide(); $('#one-time-charges').show(); }); $('#li-subscriptions').click(function() { console.log("li-subscriptions clicked"); $('#one-time-charges').hide(); $('#subscriptions').show(); }); }); window.onload = function () { var locale_dates = document.getElementsByClassName("locale_date"); var formats = ['YYYY-MM-DD hh:mm a']; var i; for (i = 0; i < locale_dates.length; i++) { var oldDate = moment.utc(locale_dates[i].textContent, formats); var outputFormat = locale_dates[i].getAttribute('data-format') || oldDate._f; locale_dates[i].innerHTML = oldDate.local().format(outputFormat); locale_dates[i].className += ' done'; } };