79 lines
2.2 KiB
JavaScript
79 lines
2.2 KiB
JavaScript
class HomeworkSession extends HomeworkElement {
|
|
|
|
constructor() {
|
|
super()
|
|
this.addEventListener('texts-loaded', this.updateTexts.bind(this))
|
|
}
|
|
|
|
connectedCallback() {
|
|
let top = new HomeworkLayout()
|
|
this.append(top)
|
|
console.log("Session added to DOM")
|
|
}
|
|
|
|
static get observedAttributes () {
|
|
return [ 'language' ]
|
|
}
|
|
|
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
if(name == 'language') {
|
|
if(oldValue === null) {
|
|
console.log("Language initiated to " + newValue)
|
|
} else {
|
|
console.log("Language changed to " + newValue + " from " + oldValue)
|
|
}
|
|
this.changeLanguage(newValue)
|
|
} else {
|
|
console.log("Unknown property", name)
|
|
}
|
|
}
|
|
|
|
get language() {
|
|
let languageCode = this.getAttribute("language")
|
|
return languageCode
|
|
}
|
|
|
|
set language(languageCode) {
|
|
this.setAttribute("language", languageCode)
|
|
}
|
|
|
|
async changeLanguage(languageCode) {
|
|
let languageFile = "/resources/" + languageCode + ".json"
|
|
let response = await fetch(languageFile)
|
|
HomeworkSession.texts = await response.json()
|
|
this.dispatchEvent(new CustomEvent('texts-loaded', { bubbles: true }))
|
|
}
|
|
|
|
updateTexts() {
|
|
HomeworkElement.updateTexts(this)
|
|
}
|
|
|
|
/*
|
|
|
|
homeworkTypeChanged(event) {
|
|
let homeworkType = event.target.value
|
|
console.log("Changed homework type to " + homeworkType )
|
|
let pages = this.querySelectorAll('.page')
|
|
pages.forEach((page) => {
|
|
page.classList.remove('active')
|
|
})
|
|
let page = null
|
|
switch(homeworkType) {
|
|
case 'math':
|
|
page = this.querySelector('homework-page-math')
|
|
page.classList.add('active')
|
|
break
|
|
case 'englishVocabulary':
|
|
page = this.querySelector('homework-page-english-vocabulary')
|
|
page.classList.add('active')
|
|
break
|
|
default:
|
|
console.warn("Unknown type " + homeworkType)
|
|
break
|
|
}
|
|
}
|
|
*/
|
|
}
|
|
HomeworkSession.texts = { }
|
|
customElements.define('homework-session', HomeworkSession)
|