github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/assets/scripts/confirm-flagship.js (about) 1 ;(function (w, d) { 2 if (!w.fetch || !w.Headers) return 3 4 const form = d.getElementById('confirm-flagship-form') 5 const field = d.getElementById('code-field') 6 const submitButton = d.getElementById('confirm-flagship-submit') 7 const codeInput = d.getElementById('code-input') 8 const tokenInput = d.getElementById('confirm-token') 9 10 const onSubmitCode = function (event) { 11 event.preventDefault() 12 codeInput.setAttribute('disabled', true) 13 submitButton.setAttribute('disabled', true) 14 15 const data = new URLSearchParams() 16 data.append('code', codeInput.value) 17 data.append('token', tokenInput.value) 18 19 const headers = new Headers() 20 headers.append('Content-Type', 'application/x-www-form-urlencoded') 21 22 return fetch(form.action, { 23 method: 'POST', 24 headers: headers, 25 body: data, 26 credentials: 'same-origin', 27 }) 28 .then((response) => { 29 if (response.status < 400) { 30 const tooltip = field.querySelector('.invalid-tooltip') 31 if (tooltip) { 32 tooltip.classList.add('d-none') 33 } 34 submitButton.innerHTML = '<span class="icon icon-check"></span>' 35 submitButton.classList.add('btn-done') 36 w.location.reload() 37 } else { 38 return response.json().then(function (body) { 39 w.showError(field, body.error) 40 }) 41 } 42 }) 43 .catch((err) => w.showError(field, err)) 44 } 45 46 form.addEventListener('submit', onSubmitCode) 47 })(window, document)