169 lines
3.8 KiB
TypeScript
169 lines
3.8 KiB
TypeScript
class WizardCategory {
|
|
DocumentID = "content"
|
|
|
|
createCategoryHeadline(value:string):any {
|
|
var element = document.createElement("H4")
|
|
element.innerHTML = value
|
|
return element
|
|
}
|
|
}
|
|
|
|
class WizardItem extends WizardCategory {
|
|
key:string
|
|
headline:string
|
|
|
|
constructor(key:string, headline:string) {
|
|
super()
|
|
this.headline = headline
|
|
this.key = key
|
|
}
|
|
|
|
createWizard():void {
|
|
var headline = this.createCategoryHeadline(this.headline)
|
|
var key = this.key
|
|
var content:PopupContent = new PopupContent()
|
|
var description:string
|
|
|
|
var doc = document.getElementById(this.DocumentID)
|
|
doc.innerHTML = ""
|
|
doc.appendChild(headline)
|
|
|
|
switch (key) {
|
|
case "tuner":
|
|
var text = new Array()
|
|
var values = new Array()
|
|
|
|
for (var i = 1; i <= 100; i++) {
|
|
text.push(i)
|
|
values.push(i)
|
|
}
|
|
|
|
var select = content.createSelect(text, values, "1", key)
|
|
select.setAttribute("class", "wizard")
|
|
select.id = key
|
|
doc.appendChild(select)
|
|
|
|
description = "{{.wizard.tuner.description}}"
|
|
|
|
break;
|
|
|
|
case "epgSource":
|
|
var text:any[] = ["PMS", "XEPG"]
|
|
var values:any[] = ["PMS", "XEPG"]
|
|
|
|
var select = content.createSelect(text, values, "XEPG", key)
|
|
select.setAttribute("class", "wizard")
|
|
select.id = key
|
|
doc.appendChild(select)
|
|
|
|
description = "{{.wizard.epgSource.description}}"
|
|
|
|
break
|
|
|
|
case "m3u":
|
|
var input = content.createInput("text", key, "")
|
|
input.setAttribute("class", "wizard")
|
|
input.id = key
|
|
doc.appendChild(input)
|
|
|
|
description = "{{.wizard.m3u.description}}"
|
|
|
|
break
|
|
|
|
case "xmltv":
|
|
var input = content.createInput("text", key, "")
|
|
input.setAttribute("class", "wizard")
|
|
input.id = key
|
|
doc.appendChild(input)
|
|
|
|
description = "{{.wizard.xmltv.description}}"
|
|
|
|
break
|
|
|
|
default:
|
|
console.log(key)
|
|
break;
|
|
}
|
|
|
|
var pre = document.createElement("PRE")
|
|
pre.innerHTML = description
|
|
doc.appendChild(pre)
|
|
|
|
console.log(headline, key)
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
function readyForConfiguration(wizard:number) {
|
|
|
|
var server:Server = new Server("getServerConfig")
|
|
server.request(new Object())
|
|
|
|
showElement("loading", false)
|
|
|
|
configurationWizard[wizard].createWizard()
|
|
|
|
}
|
|
|
|
function saveWizard() {
|
|
|
|
var cmd = "saveWizard"
|
|
var div = document.getElementById("content")
|
|
var config = div.getElementsByClassName("wizard")
|
|
|
|
var wizard = new Object()
|
|
|
|
for (var i = 0; i < config.length; i++) {
|
|
|
|
var name:string
|
|
var value:any
|
|
|
|
switch (config[i].tagName) {
|
|
case "SELECT":
|
|
name = (config[i] as HTMLSelectElement).name
|
|
value = (config[i] as HTMLSelectElement).value
|
|
|
|
// Wenn der Wert eine Zahl ist, wird dieser als Zahl gespeichert
|
|
if(isNaN(value)){
|
|
wizard[name] = value
|
|
} else {
|
|
wizard[name] = parseInt(value)
|
|
}
|
|
|
|
break
|
|
|
|
case "INPUT":
|
|
switch ((config[i] as HTMLInputElement).type) {
|
|
case "text":
|
|
name = (config[i] as HTMLInputElement).name
|
|
value = (config[i] as HTMLInputElement).value
|
|
|
|
wizard[name] = value
|
|
break
|
|
}
|
|
break
|
|
|
|
default:
|
|
// code...
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
var data = new Object()
|
|
data["wizard"] = wizard
|
|
|
|
var server:Server = new Server(cmd)
|
|
server.request(data)
|
|
|
|
console.log(data)
|
|
}
|
|
|
|
// Wizard
|
|
var configurationWizard = new Array()
|
|
configurationWizard.push(new WizardItem("tuner", "{{.wizard.tuner.title}}"))
|
|
configurationWizard.push(new WizardItem("epgSource", "{{.wizard.epgSource.title}}"))
|
|
configurationWizard.push(new WizardItem("m3u", "{{.wizard.m3u.title}}"))
|
|
configurationWizard.push(new WizardItem("xmltv", "{{.wizard.xmltv.title}}")) |