var text = null; var logo = null; var logo_remove_background = null; var placeholder = "https://genqrcode.com"; var style = null; var inner_eye_style = null; var outer_eye_style = null; var color = null; var background_color = null; var inner_eye_color = null; var outer_eye_color = null; var frame_style = null; var frame_text = null; var frame_color = null; var invert_colors = null; var transparent_background = null; var gradient_style = null; var gradient_color_start = null; var gradient_color_end = null; var gradient_start_offset = null; var gradient_end_offset =null; var selectedDynamicID = null; var dynamicShortURL = null; var dynamicFileId = null; var dynamicFileName = null; var customLogoId = null; var isDownloading = false; var lastArguments = {"logo":logo, "language":document.documentElement.lang, "imageformat":"svg", "type":0, "text":placeholder, "style":style, "inner_eye_style":inner_eye_style, "outer_eye_style":outer_eye_style}; var csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute("content"); $(document).ready(function() { loadSessionAfterReload(); $("input[name='stl-format-select']").change(function() { var selectedValue = $("input[name='stl-format-select']:checked").attr("id"); if (selectedValue === "stl-radio-with-base") { $("#magnet-option-div").removeClass("d-none"); } else { $("#magnet-option-div").addClass("d-none"); } }); $("input[name='vcard-format-select']").change(function() { //var selectedValue = $("input[name='vcard-format-select']:checked").attr("id"); var selectedValue = $("input[name='vcard-format-select']:checked").attr("id"); if (selectedValue !== "vcard-radio-text") { $("#vcard-radio-text").prop('checked',true); openDynamicVCardInfoModal(); } else { } }); $("#dynamic-checkbox-vcard").change(function() { var checked = $("#dynamic-checkbox-vcard").prop("checked"); if (checked) { $("#dynamic-checkbox-vcard").prop('checked', false); openDynamicVCardInfoModal(); } }); $("#stl-option-magnet").change(function() { $("#magnet-round-content-div").toggleClass("d-none", $(this).val() != 1); $("#magnet-square-content-div").toggleClass("d-none", $(this).val() != 2); }); if (gradient_style != 0) { $("#color-picker-normal").addClass("d-none"); $("#color-picker-gradient").removeClass("d-none"); $("#gradient-selector-div").removeClass("d-none"); let element = document.getElementById('gradient-selector'); element.value = gradient_style; } else { $("#color-picker-normal").removeClass("d-none"); $("#color-picker-gradient").addClass("d-none"); $("#gradient-selector-div").addClass("d-none"); } const fileInput = document.getElementById('file'); fileInput.onchange = () => { var fd = new FormData(); var files = $('#file')[0].files; // Check file selected or not if(files.length > 0 ){ $("#custom-image").removeClass("d-none"); fd.append('file',files[0]); $.ajax({ url: '/uploadImage', type: 'post', data: fd, contentType: false, headers: { 'genqrcode-api-language': "br", "X-CSRF-TOKEN": csrfToken}, processData: false, success: function(data){ tmpPath = data['result']; if(data != 0){ customLogoId = tmpPath; logo = tmpPath; replaceCustomImage(tmpPath); lastArguments["logo"] = logo; replaceImage(true); }else{ alert('file not uploaded'); } }, error: function (data) { if (data.status === 419) { saveSessionBeforeReload(); window.location.reload(); } else { const result = JSON.parse(data.responseText); if (null != result.display_message) { alert(result.display_message); } else { alert('file not uploaded'); } } } }); } } const pdfFileInput = document.getElementById('pdffile'); pdfFileInput.onchange = () => { var files = $('#pdffile')[0].files; uploadFile(files); } const vCardFileInput = document.getElementById('vcardfile'); vCardFileInput.onchange = () => { var files = $('#vcardfile')[0].files; uploadFile(files); } function uploadFile(files) { var fd = new FormData(); // Check file selected or not if(files.length > 0 ){ fd.append('file',files[0]); $.ajax({ url: '/uploadFile', type: 'post', data: fd, contentType: false, headers: { 'genqrcode-api-language': "br", "X-CSRF-TOKEN": csrfToken}, processData: false, success: function(data){ fileId = data['result']; if(data != 0){ dynamicFileId = fileId; replaceImage(true); } else { alert('file not uploaded'); } }, error: function (data) { if (data.status === 419) { saveSessionBeforeReload(); window.location.reload(); } else { $('#pdffile').val(""); $('#vcardfile').val(""); const result = JSON.parse(data.responseText); if (null != result.display_message) { alert(result.display_message); } else { alert('file not uploaded'); } } } }); } } $('.shapes-list').on("click", "button.select-shapes-button", function() { if (style != this.id) { style = this.id; lastArguments["style"] = style; replaceImage(true); } }); $('.shapes-inner-eye-list').on("click", "button.select-inner-eye-shapes-button", function() { if (inner_eye_style != this.id) { inner_eye_style = this.id; lastArguments["inner_eye_style"] = inner_eye_style; replaceImage(true); } }); $('.shapes-outer-eye-list').on("click", "button.select-outer-eye-shapes-button", function() { if (outer_eye_style != this.id) { outer_eye_style = this.id; lastArguments["outer_eye_style"] = outer_eye_style; replaceImage(true); } }); $('.shapes-frame-list').on("click", "button.select-frame-shapes-button", function() { if (frame_style != this.id) { frame_style = this.id; lastArguments["frame_style"] = frame_style; replaceImage(true); } }); $('.template-button-ukrain').on("click", function() { var parameters = {}; parameters['gradient_style'] = 2; parameters['gradient_color_start'] = "#0057B8"; parameters['gradient_color_end'] = "#FFD700"; parameters['gradient_start_offset'] = 50; parameters['gradient_end_offset'] = 50; clickTemplate(parameters, -1); }); $('.template-button-video').on("click", function() { var parameters = {}; parameters['outer_eye_style'] = 1; parameters['inner_eye_style'] = 1; parameters['logo'] = "youtube"; parameters['style'] = 19; parameters['logo_remove_background'] = true; parameters['gradient_style'] = 1; parameters['gradient_color_start'] = "#FF0000" parameters['gradient_color_end'] = "#A30505" parameters['gradient_start_offset'] = 5; parameters['gradient_end_offset'] = 95; clickTemplate(parameters, -1); }); $('#url-data').focusout(function() { replaceImage(true); }); $('#text-body').focusout(function() { replaceImage(true); }); $('.frame-text').focusout(function() { if (frame_text != this.value) { frame_text = this.value; lastArguments["frame_text"] = frame_text; replaceImage(true); } }); $('#gradient-start-offset').focusout(function() { if (gradient_start_offset != this.value) { gradient_start_offset = this.value; lastArguments["gradient_start_offset"] = gradient_start_offset; replaceImage(true); } }); $('#gradient-end-offset').focusout(function() { if (gradient_end_offset != this.value) { gradient_end_offset = this.value; lastArguments["gradient_end_offset"] = gradient_end_offset; replaceImage(true); } }); $('.logo-list').on("click", "img.select-logo-button", function() { if (logo != this.id) { logo = this.id; lastArguments["logo"] = logo; replaceImage(true); } }); $('#invert-colors').click(function() { if (invert_colors != $('#invert-colors').is(':checked')) { invert_colors = $('#invert-colors').is(':checked'); lastArguments["invert_colors"] = invert_colors; lastArguments["color"] = color + (invert_colors ? (transparent_background ? "00" : "FF") : "FF"); lastArguments["background_color"] = background_color + (invert_colors ? "FF" : (transparent_background ? "00" : "FF")); replaceImage(true); } }) $('#transparent-background').click(function() { if (transparent_background != $('#transparent-background').is(':checked')) { transparent_background = $('#transparent-background').is(':checked'); lastArguments["color"] = color + (invert_colors ? (transparent_background ? "00" : "FF") : "FF"); lastArguments["background_color"] = background_color + (invert_colors ? "FF" : (transparent_background ? "00" : "FF")); replaceImage(true); } }) $('#remove-logo-button').click(function() { logo = null; lastArguments["logo"] = null; replaceImage(true); }) $('#logo-remove-background').click(function() { if (logo_remove_background != $('#logo-remove-background').is(':checked')) { logo_remove_background = $('#logo-remove-background').is(':checked'); lastArguments["logo_remove_background"] = logo_remove_background; replaceImage(true); } }) $('#enable-gradient').click(function() { changeGradient(); if (gradient_style != 0) { $("#color-picker-normal").addClass("d-none"); $("#color-picker-gradient").removeClass("d-none"); $("#gradient-selector-div").removeClass("d-none"); } else { $("#color-picker-normal").removeClass("d-none"); $("#color-picker-gradient").addClass("d-none"); $("#gradient-selector-div").addClass("d-none"); } }) $('#gradient-selector').change(function() { changeGradient(); }) function changeGradient() { if ($('#enable-gradient').is(':checked')) { var select = document.getElementById('gradient-selector'); gradient_style = select.options[select.selectedIndex].value; lastArguments["gradient_style"] = gradient_style; replaceImage(true); } else { gradient_style = 0; lastArguments["gradient_style"] = gradient_style; replaceImage(true); } } $('#loginFromPopup').click(function() { openLoginFromDynamicInfoModal(); }) $('#registerFromPopup').click(function() { openRegisterFromDynamicInfoModal(); }) $('#openRegisterFromDynamicInfoModal').click(function() { openRegisterFromDynamicInfoModal(); }) $('#loginFromPopupPDF').click(function() { openLoginFromDynamicPDFInfoModal(); }) $('#registerFromPopupPDF').click(function() { openRegisterFromDynamicPDFInfoModal(); }) $('#loginFromPopupVCard').click(function() { openLoginFromDynamicVCardInfoModal(); }) $('#registerFromPopupVCard').click(function() { openRegisterFromDynamicVCardInfoModal(); }) $('#qrgen').click(function() { replaceImage(false); }) $("#custom-image").click(function () { logo = customLogoId; lastArguments["logo"] = logo; replaceImage(true); }); $('#colorpicker1').focusout(function(){ color = this.value; lastArguments["color"] = color + (invert_colors ? (transparent_background ? "00" : "FF") : "FF"); replaceImage(true); }); $('#colorpicker4').focusout(function(){ background_color = this.value; lastArguments["background_color"] = background_color + (invert_colors ? "FF" : (transparent_background ? "00" : "FF")); replaceImage(true); }); $('#colorpicker2').focusout(function(){ inner_eye_color = this.value; lastArguments["inner_eye_color"] = inner_eye_color; replaceImage(true); }); $('#colorpicker3').focusout(function(){ outer_eye_color = this.value; lastArguments["outer_eye_color"] = outer_eye_color; replaceImage(true); }); $('#colorpickerGradientStart').focusout(function() { gradient_color_start = this.value; lastArguments["gradient_color_start"] = gradient_color_start; replaceImage(true); }); $('#colorpickerGradientEnd').focusout(function() { gradient_color_end = this.value; lastArguments["gradient_color_end"] = gradient_color_end; replaceImage(true); }); $('#colorpickerFrame').focusout(function() { frame_color = this.value; lastArguments["frame_color"] = frame_color; replaceImage(true); }); $('#embed_imagesize').focusout(function() { if (this.value < 100) { this.value = 100; } if (this.value > 2000) { this.value = 2000; } setEmbeddedLinks(); }); $('#embed_bordersize').focusout(function() { if (this.value < 0) { this.value = 0; } if (this.value > 10) { this.value = 10; } setEmbeddedLinks(); }); }) function saveSessionBeforeReload() { var id = $('.tab-content .active').attr('id'); sessionStorage.setItem("tab", id); switch(id) { case 'url': sessionStorage.setItem("url-data", $('input[name="url-data"]').val()); break; case 'text': sessionStorage.setItem("text-body", $('textarea[name="text-body"]').val()); break; case 'wifi': sessionStorage.setItem("wifi-ssid", $('input[name="wifi-ssid"]').val()); sessionStorage.setItem("wifi-password", $('input[name="wifi-password"]').val()); sessionStorage.setItem("wifi-networktype", $('input[name="wifi-networktype"]').val()); sessionStorage.setItem("wifi-ishidden", $('input[name="wifi-ishidden"]').is(':checked')); break; case 'sms': sessionStorage.setItem("sms-phone-number", $('input[name="sms-phone-number"]').val()); sessionStorage.setItem("sms-message", $('textarea[name="sms-message"]').val()); break; case 'email': sessionStorage.setItem("email-address", $('input[name="email-address"]').val()); sessionStorage.setItem("email-subject", $('input[name="email-subject"]').val()); sessionStorage.setItem("email-body", $('textarea[name="email-body"]').val()); break; case 'phone': sessionStorage.setItem("phone-number", $('input[name="phone-number"]').val()); break; case 'crypto': sessionStorage.setItem("crypto-type-select", $('input[name = "crypto-type-select"]:checked').val()); sessionStorage.setItem("crypto-address", $('input[name="crypto-address"]').val()); sessionStorage.setItem("crypto-amount", $('input[name="crypto-amount"]').val()); break; case 'vcard': sessionStorage.setItem("vc-firstname", $('input[name="vc-firstname"]').val()); sessionStorage.setItem("vc-lastname", $('input[name="vc-lastname"]').val()); sessionStorage.setItem("vc-lastname", $('input[name="vc-lastname"]').val()); sessionStorage.setItem("vc-mobileNumber", $('input[name="vc-mobileNumber"]').val()); sessionStorage.setItem("vc-phoneNumber", $('input[name="vc-phoneNumber"]').val()); sessionStorage.setItem("vc-fax", $('input[name="vc-fax"]').val()); sessionStorage.setItem("vc-email", $('input[name="vc-email"]').val()); sessionStorage.setItem("vc-company", $('input[name="vc-company"]').val()); sessionStorage.setItem("vc-title", $('input[name="vc-title"]').val()); sessionStorage.setItem("vc-street", $('input[name="vc-street"]').val()); sessionStorage.setItem("vc-city", $('input[name="vc-city"]').val()); sessionStorage.setItem("vc-zipcode", $('input[name="vc-zipcode"]').val()); sessionStorage.setItem("vc-state", $('input[name="vc-state"]').val()); sessionStorage.setItem("vc-country", $('input[name="vc-country"]').val()); sessionStorage.setItem("vc-website", $('input[name="vc-website"]').val()); break; case 'whatsapp': sessionStorage.setItem("whatsapp-phone-number", $('input[name="whatsapp-phone-number"]').val()); sessionStorage.setItem("whatsapp-message", $('textarea[name="whatsapp-message"]').val()); break; case 'calendar': sessionStorage.setItem("calendar-title", $("#calendar-title").val()); sessionStorage.setItem("calendar-location", $("#calendar-location").val()); sessionStorage.setItem("calendar-description", $("#calendar-description").val()); sessionStorage.setItem("calendar-startdate", $("#calendar-startdate").val()); sessionStorage.setItem("calendar-enddate", $("#calendar-enddate").val()); break; case 'geo': sessionStorage.setItem("geo-latitude", $("#geo-latitude").val()); sessionStorage.setItem("geo-longitude", $("#geo-longitude").val()); break; case 'socialmedia': sessionStorage.setItem("url-socialmedia", $("#url-socialmedia").val()); break; } } function loadSessionAfterReload() { var id = sessionStorage.getItem("tab"); if (id != null) { $('a[href="#' + id + '"]').click(); switch(id) { case 'url': $('input[name="url-data"]').val(sessionStorage.getItem("url-data")); break; case 'text': $('textarea[name="text-body"]').val(sessionStorage.getItem("text-body")); break; case 'wifi': $('input[name="wifi-ssid"]').val(sessionStorage.getItem("wifi-ssid")); $('input[name="wifi-password"]').val(sessionStorage.getItem("wifi-password")); $('input[name="wifi-networktype"]').val(sessionStorage.getItem("wifi-networktype")); $('input[name="wifi-ishidden"]').prop('checked', sessionStorage.getItem("wifi-ishidden")); break; case 'sms': $('input[name="sms-phone-number"]').val(sessionStorage.getItem("sms-phone-number")); $('textarea[name="sms-message"]').val(sessionStorage.getItem("sms-message")); break; case 'email': $('input[name="email-address"]').val(sessionStorage.getItem("email-address")); $('input[name="email-subject"]').val(sessionStorage.getItem("email-subject")); $('textarea[name="email-body"]').val(sessionStorage.getItem("email-body")); break; case 'phone': $('input[name="phone-number"]').val(sessionStorage.getItem("phone-number")); break; case 'crypto': $('input[name="crypto-type-select"][value="' + sessionStorage.getItem("crypto-type-select") + '"]').prop('checked', true); $('input[name="crypto-address"]').val(sessionStorage.getItem("crypto-address")); $('input[name="crypto-amount"]').val(sessionStorage.getItem("crypto-amount")); break; case 'vcard': $('input[name="vc-firstname"]').val(sessionStorage.getItem("vc-firstname")); $('input[name="vc-lastname"]').val(sessionStorage.getItem("vc-lastname")); $('input[name="vc-mobileNumber"]').val(sessionStorage.getItem("vc-mobileNumber")); $('input[name="vc-phoneNumber"]').val(sessionStorage.getItem("vc-phoneNumber")); $('input[name="vc-fax"]').val(sessionStorage.getItem("vc-fax")); $('input[name="vc-email"]').val(sessionStorage.getItem("vc-email")); $('input[name="vc-company"]').val(sessionStorage.getItem("vc-company")); $('input[name="vc-title"]').val(sessionStorage.getItem("vc-title")); $('input[name="vc-street"]').val(sessionStorage.getItem("vc-street")); $('input[name="vc-city"]').val(sessionStorage.getItem("vc-city")); $('input[name="vc-zipcode"]').val(sessionStorage.getItem("vc-zipcode")); $('input[name="vc-state"]').val(sessionStorage.getItem("vc-state")); $('input[name="vc-country"]').val(sessionStorage.getItem("vc-country")); $('input[name="vc-website"]').val(sessionStorage.getItem("vc-website")); break; case 'whatsapp': $('input[name="whatsapp-phone-number"]').val(sessionStorage.getItem("whatsapp-phone-number")); $('textarea[name="whatsapp-message"]').val(sessionStorage.getItem("whatsapp-message")); break; case 'calendar': $("#calendar-title").val(sessionStorage.getItem("calendar-title")); $("#calendar-location").val(sessionStorage.getItem("calendar-location")); $("#calendar-description").val(sessionStorage.getItem("calendar-description")); $("#calendar-startdate").val(sessionStorage.getItem("calendar-startdate")); $("#calendar-enddate").val(sessionStorage.getItem("calendar-enddate")); break; case 'geo': $("#geo-latitude").val(sessionStorage.getItem("geo-latitude")); $("#geo-longitude").val(sessionStorage.getItem("geo-longitude")); break; case 'socialmedia': $("#url-socialmedia").val(sessionStorage.getItem("url-socialmedia")); break; } } sessionStorage.clear(); } function allRequiredFieldsCorrect() { var magnetOption = $("#stl-option-magnet").val(); if (magnetOption == "1") { var magnetDepth = parseFloat($('#stl_round_magnet_depth').val()); var baseHeight = parseFloat($('#stl_base_height').val()); if (magnetDepth >= baseHeight) { alert("A profundidade do \u00EDm\u00E3 deve ser menor que a profundidade da base"); return false } var magnetDiameter = parseFloat($('#stl_round_magnet_diameter').val()); var imageSize = parseFloat($('#stl_size').val()); if (magnetDiameter >= imageSize) { alert("O di\u00E2metro do \u00EDm\u00E3 deve ser menor que o tamanho da imagem"); return false } }; if (magnetOption == "2") { var magnetDepth = parseFloat($('#stl_square_magnet_depth').val()); var baseHeight = parseFloat($('#stl_base_height').val()); if (magnetDepth >= baseHeight) { alert("A profundidade do \u00EDm\u00E3 deve ser menor que a profundidade da base"); return false } var magnetWidth = parseFloat($('#stl_square_magnet_width').val()); var magnetHeight = parseFloat($('#stl_square_magnet_height').val()); var imageSize = parseFloat($('#stl_size').val()); if (magnetWidth >= imageSize || magnetHeight >= imageSize) { alert("A largura e a altura do \u00EDm\u00E3 devem ser menores que o tamanho da imagem"); return false } } switch($('.tab-content .active').attr('id')) { case 'url': return $('input[name="url-data"]').val().trim().length > 0; case 'text': return $('textarea[name="text-body"]').val().trim().length > 0; case 'wifi': return ( $('input[name="wifi-ssid"]').val() && $('input[name="wifi-password"]').val()); case 'sms': return ( $('input[name="sms-phone-number"]').val() && $('textarea[name="sms-message"]').val()); case 'email': return ( $('input[name="email-address"]').val() && $('input[name="email-subject"]').val() && $('textarea[name="email-body"]').val()); case 'phone': return $('input[name="phone-number"]').val(); case 'crypto': return $('input[name="crypto-address"]').val(); case 'dynamic-url': return $('input[name="dynamic-target-url"]').val().trim().length > 0; case 'dynamic-pdf': return null != dynamicFileId; case 'vcard': var selectedValue = $("input[name='vcard-format-select']:checked").attr("id"); if (selectedValue === "vcard-radio-text") { return true; } else { return null != dynamicFileId; } case 'whatsapp': return $('input[name="whatsapp-phone-number"]').val(); case 'calendar': return ( $("#calendar-title").val() && $("#calendar-startdate").val() && $("#calendar-enddate").val()); case 'geo': return $("#geo-latitude").val() && $("#geo-longitude").val(); case 'socialmedia': return $("#url-socialmedia").val(); } return false } function getArguments() { var id = $('.tab-content .active').attr('id'); var arguments = {}; arguments["style"] = style; arguments["inner_eye_style"] = inner_eye_style; arguments["outer_eye_style"] = outer_eye_style; arguments["logo"] = logo; arguments["color"] = color + (invert_colors ? (transparent_background ? "00" : "FF") : "FF"); arguments["background_color"] = background_color + (invert_colors ? "FF" : (transparent_background ? "00" : "FF")); arguments["inner_eye_color"] = inner_eye_color; arguments["outer_eye_color"] = outer_eye_color; arguments["imageformat"] = "svg"; arguments["language"] = document.documentElement.lang; arguments["frame_style"] = frame_style; arguments["frame_text"] = frame_text; arguments["frame_color"] = frame_color; arguments["invert_colors"] = invert_colors; arguments["gradient_style"] = gradient_style; arguments["gradient_color_start"] = gradient_color_start; arguments["gradient_color_end"] = gradient_color_end; arguments["gradient_start_offset"] = gradient_start_offset; arguments["gradient_end_offset"] = gradient_end_offset; arguments['stl_type'] = $('input[name = "stl-format-select"]:checked').val(); arguments['logo_remove_background'] = logo_remove_background; arguments['stl_size'] = $('#stl_size').val(); arguments['stl_qr_height'] = $('#stl_qr_code_height').val(); arguments['stl_base_height'] = $('#stl_base_height').val(); arguments['stl_include_stands'] = $('#stl-include-stands').is(':checked'); var magnetOption = $("#stl-option-magnet").val(); arguments['stl_qr_magnet_type'] = magnetOption; if (magnetOption == "1") { arguments['stl_qr_magnet_count'] = $('select[name="stl_round_magnet_count"]').val(); arguments['stl_qr_magnet_diameter'] = $('#stl_round_magnet_diameter').val(); arguments['stl_qr_magnet_depth'] = $('#stl_round_magnet_depth').val(); } else if (magnetOption == "2") { arguments['stl_qr_magnet_count'] = $('select[name="stl_square_magnet_count"]').val(); arguments['stl_qr_magnet_width'] = $('#stl_square_magnet_width').val(); arguments['stl_qr_magnet_height'] = $('#stl_square_magnet_height').val(); arguments['stl_qr_magnet_depth'] = $('#stl_square_magnet_depth').val(); } else { arguments['stl_qr_magnet_count'] = "0"; } switch(id) { case 'url': arguments["type"] = 0 arguments["text"] = $('input[name="url-data"]').val(); break; case 'text': arguments["type"] = 0; arguments["text"] = $('textarea[name="text-body"]').val(); break; case 'socialmedia': arguments["type"] = 0; arguments["text"] = $('#url-socialmedia').val(); break; case 'wifi': arguments["type"] = 1; arguments["network"] = $('input[name="wifi-ssid"]').val(); arguments["password"] = $('input[name="wifi-password"]').val(); arguments["encryption"] = $('select[name="wifi-networktype"]').val(); arguments["hidden"] = $('input[name="wifi-ishidden"]').is(':checked'); break; case 'sms': arguments["type"] = 2; arguments["number"] = $('input[name="sms-phone-number"]').val(); arguments["text"] = $('textarea[name="sms-message"]').val(); break; case 'email': arguments["type"] = 3; arguments["email"] = $('input[name="email-address"]').val(); arguments["subject"] = $('input[name="email-subject"]').val(); arguments["message"] = $('textarea[name="email-body"]').val(); break; case 'phone': arguments["type"] = 4; arguments["number"] = $('input[name="phone-number"]').val(); break; case 'crypto': arguments["type"] = 5; arguments["cryptotype"] = $('input[name = "crypto-type-select"]:checked').val(); arguments["address"] = $('input[name="crypto-address"]').val(); arguments["amount"] = $('input[name="crypto-amount"]').val(); break; case 'vcard': var selectedValue = $("input[name='vcard-format-select']:checked").attr("id"); if (selectedValue === "vcard-radio-text" && !$("#dynamic-checkbox-vcard").prop("checked")) { arguments["type"] = 6; arguments["vc_first_name"] = $('input[name="vc-firstname"]').val(); arguments["vc_last_name"] = $('input[name="vc-lastname"]').val(); arguments["vc_mobile"] = $('input[name="vc-mobileNumber"]').val(); arguments["vc_phone"] = $('input[name="vc-phoneNumber"]').val(); arguments["vc_fax"] = $('input[name="vc-fax"]').val(); arguments["vc_email"] = $('input[name="vc-email"]').val(); arguments["vc_company"] = $('input[name="vc-company"]').val(); arguments["vc_job"] = $('input[name="vc-title"]').val(); arguments["vc_street"] = $('input[name="vc-street"]').val(); arguments["vc_city"] = $('input[name="vc-city"]').val(); arguments["vc_zip"] = $('input[name="vc-zipcode"]').val(); arguments["vc_state"] = $('input[name="vc-state"]').val(); arguments["vc_country"] = $('input[name="vc-country"]').val(); arguments["vc_website"] = $('input[name="vc-website"]').val(); } else { arguments["type"] = 0; arguments["text"] = dynamicShortURL != null ? dynamicShortURL : placeholder; } break; case 'whatsapp': arguments["type"] = 7; arguments["number"] = $('input[name="whatsapp-phone-number"]').val(); arguments["text"] = $('textarea[name="whatsapp-message"]').val(); break; case 'calendar': arguments["type"] = 8; arguments["ve_summary"] = $("#calendar-title").val(); arguments["ve_location"] = $("#calendar-location").val(); arguments["ve_description"] = $("#calendar-description").val(); arguments["ve_timezone"] = Intl.DateTimeFormat().resolvedOptions().timeZone; arguments["ve_start"] = formatDate($("#calendar-startdate").val()); arguments["ve_end"] = formatDate($("#calendar-enddate").val()); break; case 'geo': arguments["type"] = 9; arguments["ge_latitude"] = $("#geo-latitude").val(); arguments["ge_longitude"] = $("#geo-longitude").val(); break; case 'dynamic-url': arguments["type"] = 0; arguments["text"] = dynamicShortURL != null ? dynamicShortURL : placeholder; var utmEnabled = $("#url-qr-utm-enabled").is(':checked'); if (utmEnabled) { arguments["utm_source"] = $("#url-qr-utm-source").val(); arguments["utm_medium"] = $("#url-qr-utm-medium").val(); arguments["utm_campaign"] = $("#url-qr-utm-campaign").val(); arguments["utm_term"] = $("#url-qr-utm-term").val(); arguments["utm_content"] = $("#url-qr-utm-content").val(); } case 'dynamic-pdf': arguments["type"] = 0; arguments["text"] = dynamicShortURL != null ? dynamicShortURL : placeholder; } return arguments } function formatDate(input) { if (!input) { return null; } var [datePart, timePart] = input.split("T"); var date = datePart.replace(/-/g, ""); var time = timePart.replace(/:/g, ""); var formattedDateTime = `${date}T${time}00`; return formattedDateTime; } function argumentsToUrl(arguments, generate) { var url = generate ? "generate" : "preview"; var firstProp = true; for (var prop in arguments) { if (!arguments.hasOwnProperty(prop)) { //The current property is not a direct property of p continue; } if (firstProp) { url += "?"; } else { url += "&"; } firstProp = false; url += prop; url += "="; url += encodeURIComponent(arguments[prop]); } return url; } function replaceCustomImage(path) { $.ajax({ type: "GET", url: '/tmp/' + path, dataType: 'text', headers: { 'genqrcode-api-language': "br", "X-CSRF-TOKEN": csrfToken}, success: function(data) { $("#custom-image").attr("src", "data:image/png;base64,"+data); $(".preview img").show(); // Display image element }, error: function (data) { if (data.status === 419) { saveSessionBeforeReload(); window.location.reload(); } else { const result = JSON.parse(data.responseText); alert(result["errors"][0]); } } }); } function replaceImage(displayLast) { if (allRequiredFieldsCorrect()) { lastArguments = getArguments(); replaceImageWithArguments(lastArguments); } else if (displayLast) { replaceImageWithArguments(lastArguments); } } var previewCache = {}; var runningRequests = {}; var previewCacheSize = 0; function replaceImageWithArguments(arguments) { var sortedArguments = Object.keys(arguments) .sort() .reduce((sortedObj, key) => { sortedObj[key] = arguments[key]; return sortedObj; }, {}); var hash = simpleHash(sortedArguments); if (previewCache[hash] != null) { $('#previewsvgwrapper').children().replaceWith(previewCache[hash]); return; } if (runningRequests[hash] != null && runningRequests[hash] + 2000 > Date.now()) { return; } runningRequests[hash] = Date.now(); $.ajax({ type: "POST", url: '/preview', data: JSON.stringify(sortedArguments), contentType:"application/json", headers: { 'genqrcode-api-language': "br", "X-CSRF-TOKEN": csrfToken}, dataType: 'text', success: function(data) { previewCache[hash] = data; delete runningRequests[hash]; previewCacheSize += data.length; $('#previewsvgwrapper').children().replaceWith(data); //Reset cache if bigger than 150MB if (previewCacheSize > 157286400) { previewCache = {}; previewCacheSize = 0; } }, error: function (data) { delete runningRequests[hash]; if (data.status === 419) { saveSessionBeforeReload(); window.location.reload(); } else { const result = JSON.parse(data.responseText); alert(result["errors"][0]); } } }); } function simpleHash(data) { var string = Object.keys(data) .map(key => `${key}:${data[key]}`) .join(''); var hash = 0; if (string.length == 0) return hash; for (i = 0; i < string.length; i++) { char = string.charCodeAt(i); hash = ((hash << 5) - hash) + char; hash = hash & hash; } return hash; } function downloadFile(format, element) { if (isDownloading) { return; } $('#qrgen').click(); if (allRequiredFieldsCorrect()) { isDownloading = true; element.prepend(''); var postArguments = getArguments(); postArguments["imageformat"] = format; postArguments["width"] = 1000; postArguments["height"] = 1000; $.ajax({ type: "POST", url: '/generate', data: JSON.stringify(postArguments), contentType:"application/json", headers: { 'genqrcode-api-language': "br", "X-CSRF-TOKEN": csrfToken}, dataType: 'text', success: function(data) { const jsonData = JSON.parse(data); var link = document.createElement('a'); var path = "tmp/" + jsonData.result; link.href = path; link.download ="qrcode."+format; link.click(); isDownloading = false; const element = document.getElementById('download-spinner'); element.remove(); }, error: function () { if (data.status === 419) { saveSessionBeforeReload(); window.location.reload(); } else { isDownloading = false; const element = document.getElementById('download-spinner'); element.remove(); } } }); } } function openDynamicVCardInfoModal() { setTimeout(function(){ $('#dynamicVCardInfoModal').modal('show'); }, 230); } function openDynamicInfoModal(){ setTimeout(function(){ $('#dynamicInfoModal').modal('show'); }, 230); } function openRegisterFromDynamicInfoModal(){ setTimeout(function(){ $('#dynamicInfoModal').modal('hide'); }, 230); openRegisterModal(); } function openLoginFromDynamicInfoModal() { setTimeout(function(){ $('#dynamicInfoModal').modal('hide'); }, 230); openLoginModal(); } function openDynamicPDFInfoModal(){ setTimeout(function(){ $('#dynamicPDFInfoModal').modal('show'); }, 230); } function openRegisterFromDynamicPDFInfoModal(){ setTimeout(function(){ $('#dynamicPDFInfoModal').modal('hide'); }, 230); openRegisterModal(); } function openLoginFromDynamicPDFInfoModal() { setTimeout(function(){ $('#dynamicPDFInfoModal').modal('hide'); }, 230); openLoginModal(); } function openRegisterFromDynamicVCardInfoModal(){ setTimeout(function(){ $('#dynamicVCardInfoModal').modal('hide'); }, 230); openRegisterModal(); } function openLoginFromDynamicVCardInfoModal() { setTimeout(function(){ $('#dynamicVCardInfoModal').modal('hide'); }, 230); openLoginModal(); } function openWebsiteEmbedModal() { setEmbeddedLinks(); setTimeout(function(){ $('#embedWebsiteModal').modal('show'); }, 230); } function openSTLDownloadModal() { $("#stl").show(); $("#3d-modal-title-stl").show(); $("#3mf").hide(); $("#3d-modal-title-3mf").hide(); $("#disclaimer-3mf").hide(); $("#obj").hide(); $("#3d-modal-title-obj").hide(); $('#qrgen').click(); setTimeout(function(){ $('#download3DModal').modal('show'); }, 230); } function open3MFDownloadModal() { $("#stl").hide(); $("#3d-modal-title-stl").hide(); $("#3mf").show(); $("#3d-modal-title-3mf").show(); $("#disclaimer-3mf").show(); $("#obj").hide(); $("#3d-modal-title-obj").hide(); $('#qrgen').click(); setTimeout(function(){ $('#download3DModal').modal('show'); }, 230); } function openOBJDownloadModal() { $("#stl").hide(); $("#obj").show(); $("#3d-modal-title-stl").hide(); $("#3d-modal-title-obj").show(); $("#3mf").hide(); $("#3d-modal-title-3mf").hide(); $("#disclaimer-3mf").hide(); $('#qrgen').click(); setTimeout(function(){ $('#download3DModal').modal('show'); }, 230); } function setEmbeddedLinks() { var arguments = getArguments(); arguments['width'] = $('#embed_imagesize').val(); arguments['height'] = $('#embed_imagesize').val(); arguments['bordersize'] = $('#embed_bordersize').val(); var urlArguments = encodeData(arguments); var url = "https://genqrcode.com/embedded?" + urlArguments; var htmlImage = 'qr code'; $('input[name="embed_other"]').val(url); $('input[name="embed_website"]').val(htmlImage); $('img[name="embed_preview_qrcode"]').attr('src', url); } function encodeData(data) { return Object.keys(data).map(function(key) { return [key, data[key]].map(encodeURIComponent).join("="); }).join("&"); } $('#jpeg').click(function() { downloadFile('jpeg', $('#jpeg')); }) $('#png').click(function() { downloadFile('png', $('#png')); }) $('#svg').click(function() { downloadFile('svg', $('#svg')); }) $('#eps').click(function() { downloadFile('eps', $('#eps')); }) $('#tiff').click(function() { downloadFile('tiff', $('#tiff')); }) $('#gif').click(function() { downloadFile('gif', $('#gif')); }) $('#stl').click(function() { downloadFile('stl', $('#stl')); }) $('#3mf').click(function() { downloadFile('3mf', $('#3mf')); }) $('#obj').click(function() { downloadFile('obj', $('#obj')); }) $('#webp').click(function() { downloadFile('webp', $('#webp')); }) $('#openSTLDownloadModal').click(function() { openSTLDownloadModal(); }) $('#open3MFDownloadModal').click(function() { open3MFDownloadModal(); }) $('#openOBJDownloadModal').click(function() { openOBJDownloadModal(); }) $('#openWebsiteEmbedModal').click(function() { openWebsiteEmbedModal(); }) $('#openDynamicInfoModal').click(function() { openDynamicInfoModal(); }) $('#openDynamicPDFInfoModal').click(function() { openDynamicPDFInfoModal(); }) $('#save-as-template').click(function() { saveAsTemplate(); }) $(document).on("keypress", "input.form-control", function(e) { if (e.which == 13) { $('#qrgen').click(); } }); var lastTemplateId = -1; function clickTemplate(a, id) { lastTemplateId = id; $("#delete-template").prop('disabled',lastTemplateId == -1) logo = a["logo"] ? a["logo"] : null; logo_remove_background = a['logo_remove_background'] ? a['logo_remove_background'] : false; style = a["style"] ? a["style"] : 0; outer_eye_style = a["outer_eye_style"] ? a["outer_eye_style"] : 0; inner_eye_style = a["inner_eye_style"] ? a["inner_eye_style"] : 0; color = a["color"] ? a["color"].slice(0,7) : "#000000"; background_color = a["background_color"] ? a["background_color"].slice(0, 7) : "#FFFFFF"; inner_eye_color = a["inner_eye_color"] ? a["inner_eye_color"].slice(0, 7) : "#000000"; outer_eye_color = a["outer_eye_color"] ? a["outer_eye_color"].slice(0, 7) : "#000000"; frame_style = a["frame_style"] ? a["frame_style"] : 0; frame_text = a["frame_text"] ? a["frame_text"] : "SCAN ME"; frame_color = a["frame_color"] ? a["frame_color"].slice(0, 7) : "#000000"; invert_colors = a["invert_colors"] ? a['invert_colors'] : false; transparent_background = a["color"] ? a["color"].slice(7, 9) == "00" : false; gradient_style = a["gradient_style"] ? a["gradient_style"] : 0; gradient_color_start = a["gradient_color_start"] ? a["gradient_color_start"] : "#FF00FF"; gradient_color_end = a["gradient_color_end"] ? a["gradient_color_end"] : "#FF0000"; gradient_start_offset = a["gradient_start_offset"] ? a["gradient_start_offset"] : 5; gradient_end_offset = a["gradient_end_offset"] ? a["gradient_end_offset"] : 95; lastArguments['logo'] = logo; lastArguments['logo_remove_background'] = logo_remove_background; lastArguments['style'] = style; lastArguments['outer_eye_style'] = outer_eye_style; lastArguments['inner_eye_style'] = inner_eye_style; lastArguments['color'] = color; lastArguments['background_color'] = background_color; lastArguments['inner_eye_color'] = inner_eye_color; lastArguments['outer_eye_color'] = outer_eye_color; lastArguments['frame_style'] = frame_style; lastArguments['frame_text'] = frame_text; lastArguments['frame_color'] = frame_color; lastArguments['invert_colors'] = invert_colors; lastArguments['transparent_background'] = transparent_background; lastArguments['gradient_style'] = gradient_style; lastArguments['gradient_color_start'] = gradient_color_start; lastArguments['gradient_color_end'] = gradient_color_end; lastArguments['gradient_start_offset'] = gradient_start_offset; lastArguments['gradient_end_offset'] = gradient_end_offset; if (gradient_style != 0) { document.getElementById('enable-gradient').checked = true; $("#color-picker-normal").addClass("d-none"); $("#color-picker-gradient").removeClass("d-none"); $("#gradient-selector-div").removeClass("d-none"); let element = document.getElementById('gradient-selector'); element.value = gradient_style; } else { document.getElementById('enable-gradient').checked = false; $("#color-picker-normal").removeClass("d-none"); $("#color-picker-gradient").addClass("d-none"); $("#gradient-selector-div").addClass("d-none"); } $('#colorpicker1').val(color); $('#colorpicker4').val(background_color); $('#colorpicker2').val(inner_eye_color); $('#colorpicker3').val(outer_eye_color); $('#transparent-background').prop('checked', transparent_background); $('#invert-colors').prop('checked', invert_colors); $('#gradient-selector').val(gradient_style); $('#colorpickerGradientStart').val(gradient_color_start); $('#colorpickerGradientEnd').val(gradient_color_end); $('#gradient-start-offset').val(gradient_start_offset); $('#gradient-end-offset').val(gradient_end_offset); $('#logo-remove-background').prop('checked', logo_remove_background); $('.frame-text').val(frame_text); $('#colorpickerFrame').val(frame_color); replaceImage(true); } function saveAsTemplate() { setTimeout(function(){ $('#templateInfoModal').modal('show'); }, 230); } function openLoginFromTemplateInfoModal() { setTimeout(function(){ $('#templateInfoModal').modal('hide'); }, 230); openLoginModal(); } function openRegisterFromTemplateInfoModal(){ setTimeout(function(){ $('#templateInfoModal').modal('hide'); }, 230); openRegisterModal(); } $('#loginFromTemplatePopup').click(function() { openLoginFromTemplateInfoModal(); }) $('#registerFromTemplatePopup').click(function() { openRegisterFromTemplateInfoModal(); })