PageSourceSearch

https://desangosse.com.br/site/views/_assets/js/pages/newsletter/newsletter.js

js desangosse.com.br collected 2026-10-04 16:08:03 UTC 5,060 bytes, 159 lines download raw bytes

1var RECAPTCHA_SITE_KEY = '6LfI4dEsAAAAACd4_8lZ0Ar0fLechV2VxlZr7qys';
2
3var val = new Validate({
4    formID: 'form_newsletter',
5    fields:{
6        'name': "required",
7        'email': "email"
8    },
9    createMessage: false,
10    submithandler: function(form)
11    {
12        beforeSend(form);
13
14        if (typeof grecaptcha === 'undefined' || !grecaptcha.enterprise) {
15            sendNewsletter(form, '');
16            return;
17        }
18
19        grecaptcha.enterprise.ready(function() {
20            grecaptcha.enterprise.execute(RECAPTCHA_SITE_KEY, {action: 'newsletter'})
21                .then(function(token) {
22                    sendNewsletter(form, token);
23                })
24                .catch(function() {
25                    sendNewsletter(form, '');
26                });
27        });
28    }
29});
30
31function sendNewsletter(form, token)
32{
33    let data = new FormData(form);
34
35    if (token) {
36        data.append('recaptcha_token', token);
37        data.append('recaptcha_action', 'newsletter');
38    }
39
40    var request = new XMLHttpRequest();
41
42    request.open('POST', 'home/save-newsletter', true);
43
44    request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
45
46        request.onload = function()
47        {
48            if (request.status >= 200 && request.status < 400)
49            {
50                if(isJson(request.responseText))
51                {
52                    var json = JSON.parse(request.responseText);
53
54                    afterSend(form);
55
56                    let title = 'A assinatura não pode ser enviada!';
57                    let classDiv = 'envio text-center bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3';
58                    let btnTxt = 'TENTAR NOVAMENTE';
59                    let reset = false;
60
61                    if(json.status == 'success')
62                    {
63                        title = 'Assinatura enviada!';
64                        classDiv = 'envio text-center bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3';
65                        btnTxt = 'Voltar';
66                        reset = true;
67                    }
68
69                    let div = document.createElement('div');
70
71                    div.className = classDiv;
72
73                    div.innerHTML = `
74                        <h5 class="fs-11 fw-bold text-success text-white">${title}</h5>
75                        <a href="javascript:;" class="btn btn-green-200 fs-13 fw-bold px-4 py-2 rounded-1 text-white" onclick="show_form('${form.id}', ${reset});">${btnTxt}</a>
76                    `;
77
78                    form.appendChild(div);
79                }
80                else
81                {
82                    afterSend(form);
83
84                    let div = document.createElement('div');
85
86                    div.className = 'envio text-center bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3';
87
88                    div.innerHTML = `
89                        <h5 class="fs-11 fw-bold text-success text-white">A assinatura não pode ser enviada!</h5>
90                        <a href="javascript:;" class="btn btn-green-200 fs-13 fw-bold px-4 py-2 rounded-1 text-white" onclick="show_form('${form.id}');">TENTAR NOVAMENTE</a>
91                    `;
92
93                    form.appendChild(div);
94                }
95            }
96        };
97
98        request.onerror = function(a)
99        {
100            afterSend(form);
101
102            let div = document.createElement('div');
103
104            div.className = 'envio text-center bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3';
105
106            div.innerHTML = `
107            <h5 class="fs-11 fw-bold text-success text-white">A assinatura não pode ser enviada!</h5>
108            <a href="javascript:;" class="btn btn-green-200 fs-13 fw-bold px-4 py-2 rounded-1 text-white" onclick="show_form('${form.id}');">TENTAR NOVAMENTE</a>
109            `;
110
111            form.appendChild(div);
112        };
113
114        request.send(data);
115}
116
117function beforeSend(el)
118{
119    var fieldset = el.querySelector('fieldset');
120
121    if(!fieldset) return;
122
123    let div = document.createElement('div');
124
125    div.className = 'envio bg-primary-900 border border-2 shadow border-primary-700 p-3 rounded-3 d-flex justify-content-center align-items-center gap-2';
126
127    div.innerHTML = `
128        <svg class="svg-load" width="24" height="24" viewbox="0 0 100 100">
129            <use href="#load" stroke="#74b80a">
130        </svg>
131        <h5 class="text-white fs-10 mb-0">Carregando...</h5>
132    `;
133
134    fieldset.style.display = 'none';
135
136    el.appendChild(div);
137}
138
139function afterSend(el)
140{
141   var c = el.querySelector("div.envio");
142
143    if(c) c.remove();
144}
145
146function show_form(id, reset = false)
147{
148    let form = document.getElementById(id);
149
150    afterSend(form);
151
152    var fieldset = form.querySelector('fieldset');
153
154    if(!fieldset) return;
155
156    fieldset.style.display = '';
157
158    if(reset) form.reset();
159}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.