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)