Buchhaltung/js/main.js

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);
});
}*/