fs-quiz-tool/web/share.js

97 lines
1.6 KiB
JavaScript

function showLink() {
var link = location.origin + '/?id=' + state.id
history.pushState(state.id, '', link)
var linkEl = document.getElementById('shareLink')
linkEl.href = link
linkEl.innerHTML = link
document.querySelector('#sharing input').style.display = 'none'
}
function removeLink() {
var linkEl = document.getElementById('shareLink')
linkEl.href = ''
linkEl.innerHTML = ''
document.querySelector('#sharing input').style.display = 'inline-block'
}
async function shareQuiz() {
if (state.id) {
console.log('Showing saved local link')
showLink()
return
}
console.log('Saving quiz to server. QuizData:')
var quizData = {
title: state.title,
questions: state.questions
}
console.log(quizData)
console.log('Waiting for id')
var db = location.origin + '/db'
var response = await fetch(db, {
method: 'POST',
headers: {'Content-Type': 'text/plain'},
body: JSON.stringify(quizData)
})
if (response.ok == false) {
alert('Something went wrong while sharing')
return
}
var responseBody = await response.text()
console.log('Received id: ' + responseBody)
state.id = responseBody
showLink()
}
function idFromUrl() {
var s = window.location.search.split('id=')
if (s.length <= 1)
return null
return s[1].split('&')[0]
}
async function fetchQuiz(id) {
console.log('Fetching quiz')
var url = location.origin + '/db/' + id
var response = await fetch(url)
if (response.ok == false) {
alert('Something went wrong while loading this quiz')
return
}
var json = await response.json()
console.log('Quiz fetched. Response:')
console.log(json)
return json
}