206 lines
4.6 KiB
JavaScript
206 lines
4.6 KiB
JavaScript
|
let example = [
|
||
|
{
|
||
|
number: "123",
|
||
|
devices: [
|
||
|
{
|
||
|
name: "Beamer LG 123456",
|
||
|
type: "Beamer",
|
||
|
count: 1,
|
||
|
},
|
||
|
{
|
||
|
name: "Overheadprojektor",
|
||
|
type: "Overhead",
|
||
|
count: 3,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
number: "124",
|
||
|
devices: [
|
||
|
{
|
||
|
name: "Beamer SM 143456",
|
||
|
type: "Beamer",
|
||
|
count: 1,
|
||
|
},
|
||
|
{
|
||
|
name: "Overheadprojektor",
|
||
|
type: "Overhead",
|
||
|
count: 1,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
number: "238",
|
||
|
devices: [
|
||
|
{
|
||
|
name: "ZIEH001",
|
||
|
type: "PC",
|
||
|
count: 1,
|
||
|
},
|
||
|
{
|
||
|
name: "ZIEH002",
|
||
|
type: "PC",
|
||
|
count: 1,
|
||
|
},
|
||
|
{
|
||
|
name: "ZIEH003",
|
||
|
type: "PC",
|
||
|
count: 1,
|
||
|
},
|
||
|
{
|
||
|
name: "ZIEH004",
|
||
|
type: "PC",
|
||
|
count: 1,
|
||
|
},
|
||
|
{
|
||
|
name: "ZIEH005",
|
||
|
type: "PC",
|
||
|
count: 1,
|
||
|
},
|
||
|
{
|
||
|
name: "ZIEH006",
|
||
|
type: "PC",
|
||
|
count: 1,
|
||
|
},
|
||
|
{
|
||
|
name: "ZIEH007",
|
||
|
type: "PC",
|
||
|
count: 1,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
number: "254",
|
||
|
devices: [
|
||
|
{
|
||
|
name: "Smartboard",
|
||
|
type: "Smartboard",
|
||
|
count: 1,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
];
|
||
|
/*###########################################*/
|
||
|
document.addEventListener("DOMContentLoaded", init);
|
||
|
|
||
|
function init() {
|
||
|
console.log("loaded");
|
||
|
registerEventlistener();
|
||
|
let daten = fetchData({ extend: "all" });
|
||
|
generateTable(daten);
|
||
|
}
|
||
|
|
||
|
function postData(dataobject) {
|
||
|
|
||
|
}
|
||
|
|
||
|
function fetchData(config) {
|
||
|
let result = [];
|
||
|
switch (config.extend) {
|
||
|
case "all":
|
||
|
result = example;
|
||
|
break;
|
||
|
case "room":
|
||
|
console.log('To be implemented');
|
||
|
break;
|
||
|
default:
|
||
|
console.log('wrong extend');
|
||
|
console.log(config.extend);
|
||
|
break;
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
function editRoom(room) {
|
||
|
alert('edit Room ' + room);
|
||
|
}
|
||
|
|
||
|
function addRoom() {
|
||
|
alert('add Room');
|
||
|
}
|
||
|
|
||
|
function addDevice(room) {
|
||
|
alert('add Device ' + room);
|
||
|
}
|
||
|
|
||
|
function registerEventlistener() {
|
||
|
document.querySelector('.new').addEventListener('click', (event) => {
|
||
|
console.log(event.target.value);
|
||
|
addRoom();
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function generateTable(daten) {
|
||
|
let container = document.querySelector(".container");
|
||
|
daten.forEach(room => {
|
||
|
let roomHeading = document.createElement('h2');
|
||
|
let roomNumber = document.createElement('span');
|
||
|
let roomNumberText = document.createTextNode(room.number);
|
||
|
let roomText = document.createTextNode("Raum ");
|
||
|
let box = document.createElement("div");
|
||
|
let list = document.createElement('ul');
|
||
|
room.devices.forEach((device) => {
|
||
|
let listItem = document.createElement('li');
|
||
|
let text = document.createTextNode(device.name)
|
||
|
listItem.append(text);
|
||
|
list.append(listItem);
|
||
|
});
|
||
|
let button = document.createElement('button');
|
||
|
roomHeading.append(roomText);
|
||
|
roomNumber.append(roomNumberText);
|
||
|
roomHeading.append(roomNumber);
|
||
|
roomHeading.addEventListener('click', (event) => {
|
||
|
console.log(event.target.querySelector('span').textContent);
|
||
|
editRoom(event.target.querySelector("span").textContent);
|
||
|
})
|
||
|
button.textContent = "+";
|
||
|
button.value = room.number;
|
||
|
button.addEventListener('click', (event) => {
|
||
|
console.log(event.target.value);
|
||
|
addDevice(event.target.value);
|
||
|
})
|
||
|
box.setAttribute('class', 'room')
|
||
|
box.append(roomHeading);
|
||
|
box.append(list);
|
||
|
box.append(button);
|
||
|
container.append(box);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
/*function generateTable(daten) {
|
||
|
let count = 0;
|
||
|
daten.forEach((element) => {
|
||
|
let edit = document.createElement('td');
|
||
|
let button = document.createElement('button');
|
||
|
let buttontext = document.createTextNode("Bearbeiten");
|
||
|
let zelle = document.createElement("td");
|
||
|
let zeile = document.createElement("tr");
|
||
|
let text = document.createTextNode(element.room);
|
||
|
zelle.append(text);
|
||
|
button.append(buttontext);
|
||
|
button.setAttribute("value", element.room);
|
||
|
button.addEventListener('click', (event) => {
|
||
|
let value = event.target.getAttribute('value');
|
||
|
console.log(value);
|
||
|
})
|
||
|
edit.append(button);
|
||
|
zeile.append(edit);
|
||
|
zeile.append(zelle);
|
||
|
let index = 0;
|
||
|
element.devices.forEach((device) => {
|
||
|
index++;
|
||
|
let text = document.createTextNode(device.name);
|
||
|
let zelle = document.createElement("td");
|
||
|
zelle.append(text);
|
||
|
zeile.append(zelle);
|
||
|
if (index > count) {
|
||
|
count = index;
|
||
|
}
|
||
|
});
|
||
|
console.log(count);
|
||
|
|
||
|
document.querySelector("table").append(zeile);
|
||
|
document.querySelector(".devices").setAttribute("colspan", count);
|
||
|
});
|
||
|
}*/
|