"use strict"; // Class definition var KTLayoutBuilder = function() { var form = document.querySelector("#kt_layout_builder_form"); var actionInput = document.querySelector("#kt_layout_builder_action"); var tabInput = document.querySelector("#kt_layout_builder_tab"); var url = form.getAttribute("action"); var previewButton = document.querySelector("#kt_layout_builder_preview"); var exportButton = document.querySelector("#kt_layout_builder_export"); var resetButton = document.querySelector("#kt_layout_builder_reset"); var handleTab = function() { var tabs = [].slice.call(document.querySelectorAll('#kt_layout_builder_tabs a[data-bs-toggle="tab"]')); tabs.forEach(function (tab) { tab.addEventListener("shown.bs.tab", function (e) { tabInput.value = tab.getAttribute("href").substring(1); }); }); }; var handlePreview = function() { previewButton.addEventListener("click", function(e) { e.preventDefault(); // Set form action value actionInput.value = "preview"; // Show progress previewButton.setAttribute("data-kt-indicator", "on"); // Prepare form data var data = $(form).serialize(); // Submit $.ajax({ type: "POST", dataType: "html", url: url, data: data, success: function(response, status, xhr) { toastr.success( "Preview has been updated with current configured layout.", "Preview updated!", {timeOut: 0, extendedTimeOut: 0, closeButton: true, closeDuration: 0} ); setTimeout(function() { location.reload(); // reload page }, 1500); }, error: function(response) { toastr.error( "Please try it again later.", "Something went wrong!", {timeOut: 0, extendedTimeOut: 0, closeButton: true, closeDuration: 0} ); }, complete: function() { previewButton.removeAttribute("data-kt-indicator"); } }); }); }; var handleExport = function() { exportButton.addEventListener("click", function(e) { e.preventDefault(); toastr.success( "Process has been started and it may take a while.", "Generating HTML!", {timeOut: 0, extendedTimeOut: 0, closeButton: true, closeDuration: 0} ); // Show progress exportButton.setAttribute("data-kt-indicator", "on"); // Set form action value actionInput.value = "export"; // Prepare form data var data = $(form).serialize(); $.ajax({ type: "POST", dataType: "html", url: url, data: data, success: function(response, status, xhr) { var timer = setInterval(function() { $("