const menu = [{ name: 'Informationen', combos: [{ name: 'Projekte', link: '/project' }, { name: 'Über das M4_LAB', link: '/projectoverview?projectID=1' }], type: 'dropdown', link: '#' }, { name: 'Zusammenarbeit', combos: [{ name: 'Mailinglisten', link: '/mailinglists' }, { name: 'Videokonferenzen', link: '/videoconference.html' }/* {'name':'...', 'link':'#'} */], type: 'dropdown', link: '#' }, { name: 'Events', combos: [{ name: 'Veranstaltungen der HfT', link: 'http://www.hft-stuttgart.de/Aktuell/Veranstaltungen/' }/*, {'name':'...', 'link':'#'} */], type: 'dropdown', link: '#' }, /* {'name':'Bürgerbeteiligung', 'combos':[{'name':'...', 'link':'#'}, {'name':'...', 'link':'#'}], 'type':'dropdown', 'link':'#'}, */{ name: 'Logout', combos: [], type: 'logoutbutton', link: '/logout' }] const hft_links = [{ url: 'http://www.hft-stuttgart.de/Forschung/M4-Lab/Team/index.html/de', name: 'Kontakt' }, { url: 'http://www.hft-stuttgart.de/Hochschule/Impressum.html/de', name: 'Impressum' }, { url: 'http://www.hft-stuttgart.de/Einrichtungen/Datenschutz/Datenschutz-Homepage', name: 'Datenschutz' }] const socialmedias = [{ url: 'https://twitter.com/InnolabM4', name: 'fa-twitter' }, { url: 'https://www.facebook.com/HfTStuttgart/', name: 'fa-facebook-square' }, { url: 'https://www.instagram.com/m4_lab/', name: 'fa-instagram' }, { url: 'https://de.linkedin.com/school/hochschule-f%C3%BCr-technik-stuttgart-%E2%80%93-university-of-applied-sciences/', name: 'fa-linkedin' }, { url: 'https://www.youtube.com/channel/UCi0_JfF2qMZbOhOnNH5PyHA', name: 'fa-youtube' }] const footer_images = [{ src: '/images/demo/Innovative_Hochschule_Initiative_BMBF_GWK_RGB.jpg', alt: 'Innovative Hochschule' }] function prependChild (parent, child) { parent.insertBefore(child, parent.childNodes[0]) } function userAuthenticated () { const params = new URLSearchParams(window.location.search) if (params.get('isAuthenticatedUser')) { return true } else if (document.getElementById('loginswitch')) { // relikt login via OAuth if (document.getElementById('loginswitch').getAttribute('authenticated') == '1') { return true } } else { return false } } function readCookie (cname) { const name = cname + '=' const decodedCookie = decodeURIComponent(document.cookie) const ca = decodedCookie.split(';') for (let i = 0; i < ca.length; i++) { let c = ca[i] while (c.charAt(0) == ' ') { c = c.substring(1) } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length) } } return '' } function sendRequest (URL) { console.log(document.cookie) const xhr = new XMLHttpRequest() xhr.open('POST', URL, true) const token = readCookie('XSRF-TOKEN') // Send the proper header information along with the request xhr.setRequestHeader('X-CSRF-TOKEN', token) xhr.send() } /* function head() * creates header and prepends it to the documents body */ function head () { const headerdiv = document.createElement('div') const alertdiv = document.createElement('div') headerdiv.classList.add('wrapper', 'row1') const navheader = document.createElement('header') navheader.id = 'header' navheader.classList.add('clear') const alertbutton = document.createElement('button') alertbutton.type = 'button' alertbutton.classList.add('close') alertbutton.setAttribute('data-dismiss', 'alert') alertbutton.innerHTML = '×' alertdiv.innerHTML = 'Disclaimer This website is under construction and in prototype-phase. It is not for public use.' prependChild(alertdiv, alertbutton) alertdiv.classList.add('alert', 'alert-danger', 'alert-dismissible', 'fade', 'show', 'text-center') // alertdiv.style = "text-align:center;"; navheader.appendChild(alertdiv) const navbar = document.createElement('nav') navbar.classList.add('navbar', 'navbar-default') const fluiddiv = document.createElement('div') fluiddiv.classList.add('container-fluid') const navbardiv = document.createElement('div') navbardiv.classList.add('navbar-header') const navelements = document.createElement('ul') navelements.id = 'navelemente' const logos = document.createElement('li') const link_m4lab = document.createElement('a') link_m4lab.href = '/' link_m4lab.innerHTML = "Logo Innovationslabor M4_LAB" logos.appendChild(link_m4lab) navelements.appendChild(logos) for (let j = 0; j < menu.length; j++) { const headitem = document.createElement('li') const itemtype = menu[j].type headitem.classList.add('nav-item') const headlink = document.createElement('a') headlink.href = menu[j].link headlink.id = 'navbarDropdown' + j headlink.classList.add('nav-link') headlink.setAttribute('role', 'button') if (itemtype == 'dropdown') { headitem.classList.add('dropdown') headlink.classList.add('dropdown-toggle') headlink.setAttribute('data-toggle', 'dropdown') headlink.setAttribute('aria-haspopup', 'true') headlink.setAttribute('aria-expanded', 'false') } headlink.innerHTML = menu[j].name if (itemtype == 'dropdown') { const combodiv = document.createElement('div') combodiv.id = headlink.id + '_par' combodiv.setAttribute('aria-labelledby', headlink.id) combodiv.classList.add('dropdown-menu') for (let k = 0; k < menu[j].combos.length; k++) { const combolink = document.createElement('a') combolink.classList.add('dropdown-item') if (userAuthenticated() || typeof user !== 'undefined') { // either logged in the old way or logged in using SAML if (menu[j].combos[k].link.includes('?')) { combolink.href = menu[j].combos[k].link + '&isAuthenticatedUser=true' } else { combolink.href = menu[j].combos[k].link + '?isAuthenticatedUser=true' } } else { combolink.href = menu[j].combos[k].link } combolink.innerHTML = menu[j].combos[k].name combodiv.appendChild(combolink) } headitem.appendChild(combodiv) } else if (itemtype == 'logoutbutton') { /* if(userAuthenticated()){ headlink.innerHTML="Account"; headlink.href="/account/"; } */ headlink.innerHTML = 'Logout' headlink.href = '/logout' headlink.classList.remove('nav-link') headlink.classList.add('btn') headlink.classList.add('btn-outline-danger') } headitem.appendChild(headlink) navelements.appendChild(headitem) } /* let searchitem = document.createElement('li'); searchitem.classList.add("nav-item"); let searchinput = document.createElement('input'); searchinput.value='Suche...' searchinput.type="text"; searchinput.classList.add("nav-item-suchfeld"); searchinput.setAttribute('onFocus', "this.value=(this.value=='search...')? '' : this.value"); searchitem.appendChild(searchinput); let magnifier = document.createElement('input'); magnifier.type="image" magnifier.src="/images/Lupe_grau.png"; magnifier.width="25"; magnifier.height="25"; magnifier.alt=""; magnifier.id="sf_submit"; magnifier.value="search"; searchitem.appendChild(magnifier); navelements.appendChild(searchitem); */ navbardiv.appendChild(navelements) fluiddiv.appendChild(navbardiv) navbar.appendChild(fluiddiv) navheader.appendChild(navbar) headerdiv.appendChild(navheader) prependChild(document.body, headerdiv) }; /* function foot() * creates footer and appends it to the documents body */ function foot () { const footerdiv = document.createElement('div') footerdiv.id = 'homepage' footerdiv.classList.add('last', 'clear') footerdiv.innerHTML = '
' const containerdiv = document.createElement('div') containerdiv.classList.add('flex-container') const hftlink = document.createElement('a') hftlink.classList.add('col-md-3') hftlink.setAttribute('style', 'flex-basis: 400px;') hftlink.href = 'https://www.hft-stuttgart.de' const hftimage = document.createElement('img') hftimage.src = '/images/demo/hft_logo.jpg' hftimage.alt = 'Logo der Hochschule für Technik Stuttgart' hftimage.height = '75' hftlink.appendChild(hftimage) containerdiv.appendChild(hftlink) const contactdiv = document.createElement('div') contactdiv.classList.add('col-md-3', 'footer-unten') contactdiv.setAttribute('style', 'flex-basis:400px') contactdiv.innerHTML = 'Hochschule für Technik Stuttgart' const rowdiv = document.createElement('div') rowdiv.classList.add('row') for (let i = 0; i < hft_links.length; i++) { const coldiv = document.createElement('div') coldiv.classList.add('contactrow', 'footer-unten') const collink = document.createElement('a') collink.innerHTML = hft_links[i].name collink.classList.add('contact-lower') collink.href = hft_links[i].url coldiv.appendChild(collink) rowdiv.appendChild(coldiv) } contactdiv.appendChild(rowdiv) containerdiv.appendChild(contactdiv) const socialdiv = document.createElement('div') socialdiv.classList.add('col-md-3') socialdiv.setAttribute('style', 'flex-basis: 400px;') const socialrow = document.createElement('div') socialrow.id = 'socialmediabuttons' for (let j = 0; j < socialmedias.length; j++) { const sociallink = document.createElement('a') sociallink.href = socialmedias[j].url const socialcontent = document.createElement('i') socialcontent.classList.add('fab', socialmedias[j].name) sociallink.appendChild(socialcontent) socialrow.appendChild(sociallink) socialrow.innerHTML += ' ' } socialdiv.appendChild(socialrow) containerdiv.appendChild(socialdiv) const imagediv = document.createElement('div') imagediv.classList.add('col-md-3') imagediv.setAttribute('style', 'flex-basis:400px;') for (let k = 0; k < footer_images.length; k++) { const image = document.createElement('img') image.src = footer_images[k].src image.width = '300' image.height = '73' image.alt = footer_images[k].alt imagediv.appendChild(image) } containerdiv.appendChild(imagediv) footerdiv.appendChild(containerdiv) document.body.appendChild(footerdiv) }; head() foot()