From 0225bdb772d1334cc1aa7ab0fc3678df0864df6b Mon Sep 17 00:00:00 2001 From: AlisaLinUwU Date: Sun, 26 Jan 2025 10:42:28 +0500 Subject: Initialize --- .../main/static/js/jquery.ajaxchimp.min.js | 120 +++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 build/resources/main/static/js/jquery.ajaxchimp.min.js (limited to 'build/resources/main/static/js/jquery.ajaxchimp.min.js') diff --git a/build/resources/main/static/js/jquery.ajaxchimp.min.js b/build/resources/main/static/js/jquery.ajaxchimp.min.js new file mode 100644 index 0000000..72b5c0f --- /dev/null +++ b/build/resources/main/static/js/jquery.ajaxchimp.min.js @@ -0,0 +1,120 @@ +(function ($) { + 'use strict'; + + $.ajaxChimp = { + responses: { + 'We have sent you a confirmation email' : 0, + 'Please enter a valid email' : 1, + 'An email address must contain a single @' : 2, + 'The domain portion of the email address is invalid (the portion after the @: )' : 3, + 'The username portion of the email address is invalid (the portion before the @: )' : 4, + 'This email address looks fake or invalid. Please enter a real email address' : 5 + }, + translations: { + 'en': null + }, + init: function (selector, options) { + $(selector).ajaxChimp(options); + } + }; + + $.fn.ajaxChimp = function (options) { + $(this).each(function(i, elem) { + var form = $(elem); + var email = form.find('input[type=email]'); + var label = form.find('.info'); + + var settings = $.extend({ + 'url': form.attr('action'), + 'language': 'en' + }, options); + + var url = settings.url.replace('/post?', '/post-json?').concat('&c=?'); + + form.attr('novalidate', 'true'); + email.attr('name', 'EMAIL'); + + form.submit(function () { + var msg; + function successCallback(resp) { + if (resp.result === 'success') { + msg = 'We have sent you a confirmation email'; + label.removeClass('error').addClass('valid'); + email.removeClass('error').addClass('valid'); + } else { + email.removeClass('valid').addClass('error'); + label.removeClass('valid').addClass('error'); + var index = -1; + try { + var parts = resp.msg.split(' - ', 2); + if (parts[1] === undefined) { + msg = resp.msg; + } else { + var i = parseInt(parts[0], 10); + if (i.toString() === parts[0]) { + index = parts[0]; + msg = parts[1]; + } else { + index = -1; + msg = resp.msg; + } + } + } + catch (e) { + index = -1; + msg = resp.msg; + } + } + + // Translate and display message + if ( + settings.language !== 'en' + && $.ajaxChimp.responses[msg] !== undefined + && $.ajaxChimp.translations + && $.ajaxChimp.translations[settings.language] + && $.ajaxChimp.translations[settings.language][$.ajaxChimp.responses[msg]] + ) { + msg = $.ajaxChimp.translations[settings.language][$.ajaxChimp.responses[msg]]; + } + label.html(msg); + + label.show(2000); + if (settings.callback) { + settings.callback(resp); + } + } + + var data = {}; + var dataArray = form.serializeArray(); + $.each(dataArray, function (index, item) { + data[item.name] = item.value; + }); + + $.ajax({ + url: url, + data: data, + success: successCallback, + dataType: 'jsonp', + error: function (resp, text) { + console.log('mailchimp ajax submit error: ' + text); + } + }); + + // Translate and display submit message + var submitMsg = 'Submitting...'; + if( + settings.language !== 'en' + && $.ajaxChimp.translations + && $.ajaxChimp.translations[settings.language] + && $.ajaxChimp.translations[settings.language]['submit'] + ) { + submitMsg = $.ajaxChimp.translations[settings.language]['submit']; + } + label.html(submitMsg).show(2000); + + return false; + }); + }); + return this; + }; +})(jQuery); \ No newline at end of file -- cgit v1.2.3