headfoot.js 9.63 KB
Newer Older
1
var menu = [{'name':'Informationen', 'combos':[{'name':'Projekte', 'link':'/project'}, {'name':'Über das M4_LAB', 'link':'/index_Projektseite_M4_LAB.html'}], 'type':'dropdown', 'link':'#'},{'name':'Zusammenarbeit', 'combos':[{'name':'Mailinglisten', 'link':'#'},{'name':'Videokonferenzen', 'link':'/videoconference.html'}, {'name':'...', 'link':'#'}], 'type':'dropdown', 'link':'#'},{'name':'Events', 'combos':[{'name':'...', 'link':'#'}, {'name':'...', 'link':'#'}], 'type':'dropdown', 'link':'#'},{'name':'Bürgerbeteiligung', 'combos':[{'name':'...', 'link':'#'}, {'name':'...', 'link':'#'}], 'type':'dropdown', 'link':'#'},{'name':'Login', 'combos':[], 'type':'loginbutton', 'link':'/auth-server-DRAFT/login'}];
2
3
4
5
6

var hft_links = [{'url':'#', 'name':'Kontakt'},{'url':'#', 'name':'Impressum'},{'url':'#', 'name':'Datenschutz'}]

var socialmedias = [{'url':'https://twitter.com/HFT_Presse', 'name': 'fa-twitter'}, {'url':'https://www.facebook.com/HfTStuttgart/', 'name': 'fa-facebook-square'}, {'url':'https://www.instagram.com/hft_stuttgart/', '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'}];

Wolfgang Knopki's avatar
Wolfgang Knopki committed
7
var footer_images = [{'src':'/images/demo/bbf_logo.png', 'alt':'BMBF'}, {'src':'/images/demo/ihs_logo.jpg', 'alt':'Innovative Hochschule'}]
8
9
10
11
12

function prependChild(parent,child){
    parent.insertBefore(child, parent.childNodes[0]);
}

Wolfgang Knopki's avatar
Wolfgang Knopki committed
13
function userAuthenticated(){
14
15
16
    let params = new URLSearchParams(window.location.search);
    if(params.get('isAuthenticatedUser')){
        return true;
Wolfgang Knopki's avatar
Wolfgang Knopki committed
17
    }else if(document.getElementById('loginswitch').getAttribute('authenticated') == '1'){
Wolfgang Knopki's avatar
Wolfgang Knopki committed
18
        return true;
19
20
21
22
    }else{
        return false;
    }
}
Wolfgang Knopki's avatar
Wolfgang Knopki committed
23
24
25
26
27
28
29
30
31
32
33
34


function sendRequest(URL){
    let xhr = new XMLHttpRequest();
    xhr.open("POST", URL, true);
    let token = $("meta[name='_csrf']").attr("content");
    //Send the proper header information along with the request
    xhr.setRequestHeader('X-CSRF-TOKEN', token);
    xhr.send();
}


35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/* function head()
 * creates header and prepends it to the documents body
 */

function head(){
    let headerdiv = document.createElement('div');
    let alertdiv = document.createElement('div');
    headerdiv.classList.add("wrapper","row1");
    let navheader = document.createElement('header');
    navheader.id = "header";
    navheader.classList.add("clear");
    let alertbutton = document.createElement('button');
    alertbutton.type = "button";
    alertbutton.classList.add("close");
    alertbutton.setAttribute("data-dismiss", "alert");
    alertbutton.innerHTML = "×";
    alertdiv.innerHTML="<strong>Disclaimer</strong> 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');
    alertdiv.style = "text-align:center;";
    navheader.appendChild(alertdiv);
    let navbar = document.createElement('nav');
    navbar.classList.add("navbar", "navbar-default");
    let fluiddiv = document.createElement('div');
    fluiddiv.classList.add("container-fluid");
    let navbardiv = document.createElement('div');
    navbardiv.classList.add("navbar-header");
    let navelements = document.createElement('ul');
    navelements.id="navelemente";
    let logos = document.createElement('li');
    let link_m4lab = document.createElement('a');
66
    link_m4lab.href = "/";
Wolfgang Knopki's avatar
Wolfgang Knopki committed
67
    link_m4lab.innerHTML = "<img src='/images/demo/m4lab_logo.jpg' alt='Logo Innovationslabor M4_LAB'>";
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
    logos.appendChild(link_m4lab);
    navelements.appendChild(logos);
    for(let j = 0; j<menu.length; j++){
        let headitem = document.createElement('li');
        let itemtype = menu[j].type;
        headitem.classList.add("nav-item")
        let 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'){
            let combodiv = document.createElement('div');
89
            combodiv.id=headlink.id+"_par";
90
91
92
93
94
            combodiv.setAttribute("aria-labelledby",headlink.id);
            combodiv.classList.add("dropdown-menu");
            for(let k = 0; k< menu[j].combos.length; k++){
                let combolink = document.createElement('a');
                combolink.classList.add("dropdown-item");
95
                if(menu[j].combos[k].name == "Projekte" && userAuthenticated()){
96
                    combolink.href = menu[j].combos[k].link + "?isAuthenticatedUser=true";
97
98
99
                }else{
                    combolink.href = menu[j].combos[k].link;
                }
100
101
102
                combolink.innerHTML = menu[j].combos[k].name;
                combodiv.appendChild(combolink);
            }
103
            headitem.appendChild(combodiv);
104
105
106
107
        }else if(itemtype=='loginbutton'){
            if(userAuthenticated()){
                headlink.innerHTML="Account";
                headlink.href="/account/";
Wolfgang Knopki's avatar
Wolfgang Knopki committed
108
            }else if(document.getElementById('loginswitch').getAttribute('authenticated') == '2'){
Wolfgang Knopki's avatar
Wolfgang Knopki committed
109
                headlink.setAttribute("onclick","sendRequest('./logout');");
Wolfgang Knopki's avatar
Wolfgang Knopki committed
110
                headlink.href="#";
Wolfgang Knopki's avatar
Wolfgang Knopki committed
111
112
                headlink.innerHTML="Logout";
                
113
114
            }
            
115
116
117
118
119
120
121
122
123
124
125
126
127
128
        }
        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"
Wolfgang Knopki's avatar
Wolfgang Knopki committed
129
    magnifier.src="/images/Lupe_grau.png";
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
    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(){
    let footerdiv = document.createElement('div');
    footerdiv.id="homepage";
    footerdiv.classList.add("last", "clear");
    footerdiv.innerHTML = "<hr>";
    let containerdiv = document.createElement('div');
    containerdiv.classList.add('flex-container');
    let hftlink = document.createElement('a');
    hftlink.classList.add("col-md-3");
    hftlink.setAttribute('style','flex-basis: 400px;');
    hftlink.href="https://www.hft-stuttgart.de";
    let hftimage = document.createElement('img');
Wolfgang Knopki's avatar
Wolfgang Knopki committed
161
    hftimage.src="/images/demo/hft_logo.jpg"; 
162
163
164
165
166
167
168
169
170
171
172
173
    hftimage.alt="Logo der Hochschule für Technik Stuttgart";
    hftimage.height= '75';
    hftlink.appendChild(hftimage);
    containerdiv.appendChild(hftlink);
    let 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";
    let rowdiv = document.createElement('div');
    rowdiv.classList.add("row");
    for(let i = 0; i<hft_links.length; i++){
        let coldiv = document.createElement('div');
Wolfgang Knopki's avatar
Wolfgang Knopki committed
174
        coldiv.classList.add("contactrow", "footer-unten");
175
176
        let collink = document.createElement('a');
        collink.innerHTML = hft_links[i].name;
Wolfgang Knopki's avatar
Wolfgang Knopki committed
177
        collink.classList.add("contact-lower")
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
        collink.href = hft_links[i].url;
        coldiv.appendChild(collink)
        rowdiv.appendChild(coldiv);
    }
    contactdiv.appendChild(rowdiv);
    containerdiv.appendChild(contactdiv);
    let socialdiv = document.createElement('div');
    socialdiv.classList.add("col-md-3");
    socialdiv.setAttribute('style','flex-basis: 400px;');
    let socialrow = document.createElement('div');
    socialrow.id="socialmediabuttons";
    for(let j = 0; j< socialmedias.length; j++){
        let sociallink = document.createElement('a');
        sociallink.href = socialmedias[j].url;
        let socialcontent = document.createElement('i');
        socialcontent.classList.add("fab", socialmedias[j].name);
        sociallink.appendChild(socialcontent);
        socialrow.appendChild(sociallink);
196
        socialrow.innerHTML+="&nbsp;";
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
    }
    socialdiv.appendChild(socialrow);
    containerdiv.appendChild(socialdiv);
    let 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++){
        let image = document.createElement('img');
        image.src = footer_images[k].src;
        image.width="100";
        image.height= "50";
        image.alt = footer_images[k].alt;
        imagediv.appendChild(image);
    }
    containerdiv.appendChild(imagediv);
    footerdiv.appendChild(containerdiv);
    document.body.appendChild(footerdiv);
};


head();
foot();