First commit of homework assistant. Only contains vocabulary base functionality
This commit is contained in:
78
javascript/homeworkSession.js
Normal file
78
javascript/homeworkSession.js
Normal file
@@ -0,0 +1,78 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user