/* eslint-disable no-unused-vars */ init() async function init() { hideLoading() } async function submit() { setLoadingDesc('Collecting\nData') showLoading() var browserData = await getBrowserData() setLoadingDesc('Reading\nForm') var formData = await getFormData() preflight({browserData: browserData, formData: formData}) } async function getFormData() { let data = {} data.subject = document.getElementById('subject').value data.message = document.getElementById('message').value return data } async function getBrowserData() { let data = {} data.userAgent = navigator.userAgent data.userAgentData = JSON.stringify(navigator.userAgentData) data.localStorage = JSON.stringify(await storageAvailable('localStorage')) data.sessionStorage = JSON.stringify(await storageAvailable('sessionStorage')) data.viewport = `${window.innerWidth} x ${window.innerHeight}` return data } async function preflight(data) { document.getElementById('pre_subject').textContent = data.formData.subject pre_msg = `UserAgent: ${data.browserData.userAgent} \nUserAgentData: ${data.browserData.userAgentData} \nlocalStorage Avail: ${data.browserData.localStorage} \nsessionStorage Avail: ${data.browserData.sessionStorage} \nViewport size: ${data.browserData.viewport} \nUser message:\n\n${data.formData.message}` document.getElementById('pre_message').innerText = pre_msg hideLoading() document.getElementById('preflight').style = 'display: block' sessionStorage.setItem('preflight_subject', data.formData.subject) sessionStorage.setItem('preflight_msg', pre_msg) } async function cancel() { document.getElementById('preflight').style = 'display: none' } async function send() { setLoadingDesc('Sending\nData') document.getElementById('preflight').style = 'display: none' showLoading() var subject = sessionStorage.getItem('preflight_subject') var msg = sessionStorage.getItem('preflight_msg') if (typeof subject != 'string') { subject = document.getElementById('preflight_subject').innerText } if (typeof msg != 'string') { msg = document.getElementById('preflight_msg') } var payload = JSON.stringify({subject: subject, msg: msg}) console.log(payload) let opt = { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, redirect: 'follow', body: payload } var res = await fetch(`${apiEndpoint}/v1/issue`, opt) if (res.status == 200) { setLoadingDesc('Success') vibe('ok') await delay(2500) window.location.replace('/') } else { setLoadingDesc('Error') vibe('err') await delay(2500) hideLoading() document.getElementById('preflight').style = 'display: none;' } }