From 3bfcbafc84312e5dabf3818ed8502fecd4938e55 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Tue, 26 May 2020 10:09:10 +0200 Subject: [PATCH 01/40] Separate development and testing configuration --- app.js | 2 +- config/config.js | 41 +++++++++++++++++++++++++++++++++++++---- routes/dbconn.js | 2 +- routes/mailer.js | 2 +- 4 files changed, 40 insertions(+), 7 deletions(-) diff --git a/app.js b/app.js index 68d3e944..3e4b3a6f 100644 --- a/app.js +++ b/app.js @@ -16,7 +16,7 @@ i18n.configure({ directory: './locales' }); -var env = process.env.NODE_ENV || 'development'; +var env = process.env.NODE_ENV || 'testing'; const config = require('./config/config')[env]; var app = express(); diff --git a/config/config.js b/config/config.js index b4c47761..201291a1 100644 --- a/config/config.js +++ b/config/config.js @@ -2,14 +2,48 @@ module.exports = { development: { app: { name: 'User Account Management', - port: process.env.PORT || 9989 + port: process.env.PORT || 9989, + host: 'http://localhost:9989' + }, + passport: { + strategy: 'saml', + saml: { + path: process.env.SAML_PATH || '/saml/SSO', + entryPoint: process.env.SAML_ENTRY_POINT || 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SSOService.php', + issuer: 'sp-account.m4lab.hft-stuttgart.de', //local metadata + logoutUrl: 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SingleLogoutService.php' + } + }, + database: { + host: 'localhost', // DB host + user: 'DBManager', // DB username + password: 'Stuttgart2019', // DB password + port: 3306, // MySQL port + dbUser: 'userdb', // User DB + host_project: 'localhost', // DB host project db + dbProject: 'projectDB' // Project DB + }, + mailer: { + host: 'mail.hft-stuttgart.de', // hostname + secureConnection: false, // TLS requires secureConnection to be false + port: 587, // port for secure SMTP + authUser: 'ad\\support-transfer', + authPass: '6laumri2', + tlsCiphers: 'SSLv3', + from: 'support-transfer@hft-stuttgart.de', + } + }, + testing: { + app: { + name: 'User Account Management', + port: process.env.PORT || 9989, + host: 'https://m4lab.hft-stuttgart.de/account' }, passport: { strategy: 'saml', saml: { path: process.env.SAML_PATH || '/saml/SSO', entryPoint: process.env.SAML_ENTRY_POINT || 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SSOService.php', - //issuer: 'sp-account.m4lab.hft-stuttgart.de', //local metadata issuer: 'sp-account-testing.m4lab.hft-stuttgart.de', //testing metadata //issuer: 'sp-account-prod.m4lab.hft-stuttgart.de', //production metadata logoutUrl: 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SingleLogoutService.php' @@ -22,7 +56,6 @@ module.exports = { port: 3306, // MySQL port dbUser: 'userdb', // User DB host_project: 'm4lab.hft-stuttgart.de', // DB host project db - //host_project: 'localhost', // local dbProject: 'projectDB' // Project DB }, mailer: { @@ -35,4 +68,4 @@ module.exports = { from: 'support-transfer@hft-stuttgart.de', } } -} +} \ No newline at end of file diff --git a/routes/dbconn.js b/routes/dbconn.js index 834eb1aa..a39f7368 100644 --- a/routes/dbconn.js +++ b/routes/dbconn.js @@ -1,6 +1,6 @@ const mysql = require('mysql') -var env = process.env.NODE_ENV || 'development'; +var env = process.env.NODE_ENV || 'testing'; const config = require('../config/config')[env] // ==== USER ACOOUNT DB CONNECTION ==== diff --git a/routes/mailer.js b/routes/mailer.js index 510b5bb1..2c51bd7d 100644 --- a/routes/mailer.js +++ b/routes/mailer.js @@ -1,6 +1,6 @@ const nodemailer = require('nodemailer') -var env = process.env.NODE_ENV || 'development'; +var env = process.env.NODE_ENV || 'testing'; const config = require('../config/config')[env] var smtpTransport = nodemailer.createTransport({ -- GitLab From e7931881df484091d562e0dcd8e978d8ce530263 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Tue, 26 May 2020 13:45:25 +0200 Subject: [PATCH 02/40] MLAB-129: add user verification mechanism --- routes/methods.js | 102 +++++++++-- routes/routes-account.js | 291 ++++++++++++++++++++++-------- views/DE/account/home.pug | 90 ++++++--- views/DE/account/profile.pug | 18 +- views/DE/account/registration.pug | 22 +-- views/DE/account/security.pug | 18 +- views/DE/account/services.pug | 16 +- views/DE/account/verification.pug | 35 ++++ 8 files changed, 415 insertions(+), 177 deletions(-) create mode 100644 views/DE/account/verification.pug diff --git a/routes/methods.js b/routes/methods.js index 9864273b..2ba550d3 100644 --- a/routes/methods.js +++ b/routes/methods.js @@ -42,14 +42,26 @@ var methods = { throw err }); } - // COMMIT - dbconn.user.commit(function(err) { + // MLAB-129: INSERT verification token + let verificationData = { + user_id: newUserId, + token: data.verificationToken + } + dbconn.user.query('INSERT INTO verification SET ?', verificationData, function (err, results, fields) { if (err) { return dbconn.user.rollback(function() { throw err }); } - }); + // COMMIT + dbconn.user.commit(function(err) { + if (err) { + return dbconn.user.rollback(function() { + throw err + }) + } + }) + }) }) }); }); @@ -57,7 +69,7 @@ var methods = { }) }, getUserByEmail: function(email, callback) { - dbconn.user.query('SELECT salutation, title, firstname, lastname, industry, organisation, speciality FROM user WHERE email = "' +email+'"', function (err, rows, fields) { + dbconn.user.query('SELECT verificationStatus, salutation, title, firstname, lastname, industry, organisation, speciality FROM user WHERE email = "' +email+'"', function (err, rows, fields) { if (err) { throw err; } @@ -70,7 +82,7 @@ var methods = { }); }, checkUserEmail: function(email, callback) { - var user; + let user dbconn.user.query('SELECT id, email FROM user WHERE email = "' +email+'"', function (err, rows, fields) { if (err) { throw err; @@ -84,7 +96,7 @@ var methods = { }); }, getUserByToken: function(token, callback) { - var user; + let user dbconn.user.query('SELECT t1.user_id, t2.email FROM userdb.credential AS t1 INNER JOIN userdb.user AS t2 ON t1.user_id = t2.id AND t1.resetPasswordToken = "' +token+'" and resetPasswordExpires > '+Date.now(), function (err, rows, fields) { if (err) { @@ -100,42 +112,92 @@ var methods = { } ); }, - updateUser: function(userData, callback) { - dbconn.user.query('UPDATE user SET ? WHERE email = "' +userData.email+'"', userData, function (err, rows, fields) { - if (err) throw err; - callback(err); + updateUserById: function(userData, callback) { + dbconn.user.query('UPDATE user SET ? WHERE id = ' +userData.id, userData, function (err, rows, fields) { + if (err) throw err + callback(err) }) }, updateCredential: function(data, callback) { dbconn.user.query('UPDATE credential SET ? WHERE user_id = ' +data.user_id, data, function (err, rows, fields) { - if (err) throw err; - callback(err); + if (err) throw err + callback(err) }) }, getUserIdByEmail: function(email, callback) { - var userId + let userId dbconn.user.query('SELECT id FROM user WHERE email = "' +email+'"', function (err, rows, fields) { if (err) { - throw err; + throw err } else { if ( rows.length > 0) { - userId = rows[0].id; + userId = rows[0].id } } - callback(userId, err); + callback(userId, err) }); }, getUserProjectRole: function(userId, callback) { dbconn.user.query('SELECT project_id, role_id FROM user_project_role WHERE user_id = "' +userId+'"', function (err, rows, fields) { - if (err) throw err; - callback(rows, err); + if (err) throw err + callback(rows, err) }); }, addUserProjectRole: function(data, callback) { dbconn.user.query('INSERT INTO user_project_role SET ?', data, function (err, results, fields){ - if (err) throw err; - callback(err); + if (err) throw err + callback(err) + }) + }, + getVerificationTokenByUserId: function(userId, callback) { + let token + dbconn.user.query('SELECT token FROM verification WHERE user_id = "' +userId+'"', function (err, rows, fields) { + if (err) { + throw err + } + else { + if (rows.length > 0) { + token = rows[0].token + } + } + callback(token, err) + }) + }, + getUserIdByVerificationToken: function(token, callback) { + let userId + dbconn.user.query('SELECT user_id FROM verification WHERE token = "' +token+'"', function (err, rows, fields) { + if (err) { + throw err + } + else if(rows[0]) { + userId = rows[0].user_id + } + callback(userId, err) + }) + }, + verifyUserAccount: function(userData, callback) { + dbconn.user.beginTransaction(function(err) { // START TRANSACTION + if (err) { throw err } + // update user status + dbconn.user.query('UPDATE user SET ? WHERE id =' +userData.id, userData, function (err, rows, fields) { + if (err) { + return dbconn.user.rollback(function() { throw err }) + } + // delete verification token + dbconn.user.query('DELETE FROM verification WHERE user_id = '+userData.id, function (err, rows, fields) { + if (err) { + return dbconn.user.rollback(function() { throw err }) + } + // COMMIT + dbconn.user.commit(function(err) { + if (err) { + return dbconn.user.rollback(function() { throw err }) + } + }) + }) + }) + callback(err) }) }, // ======================= project db ======================= diff --git a/routes/routes-account.js b/routes/routes-account.js index 43394cac..fa97820f 100644 --- a/routes/routes-account.js +++ b/routes/routes-account.js @@ -142,10 +142,18 @@ module.exports = function (app, config, passport, i18n) { if (req.isAuthenticated()) { methods.getUserByEmail(req.user.email, function(data, err){ if (!err) { - res.render(lang+'/account/profile', { - user: data, - email: req.user.email - }); + if (data.verificationStatus == 1) { + console.log(data) + res.render(lang+'/account/profile', { + user: data, + email: req.user.email + }) + } + else { + res.render(lang+'/account/home', { + user: data + }); + } } }) } else { @@ -155,63 +163,74 @@ module.exports = function (app, config, passport, i18n) { app.get('/services', function (req, res) { if (req.isAuthenticated()) { - async.waterfall([ - // get userId by email from userdb - function(done) { - methods.getUserIdByEmail(req.user.email, function(userId, err) { - if (!err) { - done(err, userId) - } - }) - }, - // get user-project-role from userdb - function(userId, done) { - methods.getUserProjectRole(userId, function(userProjects, err) { - if (!err) { - done(err, userProjects) - } - }) - }, - // get all projects from projectdb - function(userProjects, done) { - methods.getAllProjects(function(projectsOverview, err) { - if (!err) { - done(err, userProjects, projectsOverview) - } - }) - }, - // create JSON object of projects and user status for front-end - function(userProjects, projectsOverview, done) { - var allProjects = [] // JSON object - - var userProjectId = [] // array of user's project_id - for (var i = 0; i < userProjects.length; i++) { - userProjectId.push(userProjects[i].project_id) + methods.getUserByEmail(req.user.email, function(data, err){ + if (!err) { + if (data.verificationStatus == 1) { + async.waterfall([ + // get userId by email from userdb + function(done) { + methods.getUserIdByEmail(req.user.email, function(userId, err) { + if (!err) { + done(err, userId) + } + }) + }, + // get user-project-role from userdb + function(userId, done) { + methods.getUserProjectRole(userId, function(userProjects, err) { + if (!err) { + done(err, userProjects) + } + }) + }, + // get all projects from projectdb + function(userProjects, done) { + methods.getAllProjects(function(projectsOverview, err) { + if (!err) { + done(err, userProjects, projectsOverview) + } + }) + }, + // create JSON object of projects and user status for front-end + function(userProjects, projectsOverview, done) { + var allProjects = [] // JSON object + + var userProjectId = [] // array of user's project_id + for (var i = 0; i < userProjects.length; i++) { + userProjectId.push(userProjects[i].project_id) + } + + for (var i = 0; i < projectsOverview.length; i++) { + // check if projectId is exist in userProjectId[] + var status = false + if (userProjectId.indexOf(projectsOverview[i].id) > -1) { + status = true + } + // add data to JSON object + allProjects.push({ + id: projectsOverview[i].id, + title: projectsOverview[i].title, + summary: projectsOverview[i].onelinesummary, + cp: projectsOverview[i].contact_email, + userStatus: status + }); + } + + // render the page + res.render(lang+'/account/services', { + user: data, + project: allProjects + }); + } + ]) } - - for (var i = 0; i < projectsOverview.length; i++) { - // check if projectId is exist in userProjectId[] - var status = false - if (userProjectId.indexOf(projectsOverview[i].id) > -1) { - status = true - } - // add data to JSON object - allProjects.push({ - id: projectsOverview[i].id, - title: projectsOverview[i].title, - summary: projectsOverview[i].onelinesummary, - cp: projectsOverview[i].contact_email, - userStatus: status + else { + res.render(lang+'/account/home', { + user: data }); } - - // render the page - res.render(lang+'/account/services', { - user: req.user, - project: allProjects - }); } - ]) + }) } else { res.redirect('/login'); } @@ -219,9 +238,21 @@ module.exports = function (app, config, passport, i18n) { app.get('/security', function (req, res) { if (req.isAuthenticated()) { - res.render(lang+'/account/security', { - user: req.user // useful for view engine, useless for HTML - }); + methods.getUserByEmail(req.user.email, function(data, err){ + if (!err) { + if (data.verificationStatus == 1) { + console.log(data) + res.render(lang+'/account/security', { + user: data + }) + } + else { + res.render(lang+'/account/home', { + user: data + }); + } + } + }) } else { res.redirect('/login'); } @@ -474,16 +505,11 @@ module.exports = function (app, config, passport, i18n) { }); - // todo: user registration with captcha + // ============= NEW USERS REGISTRATION =========================== app.get('/registration', function(req, res) { res.render(lang+'/account/registration') }) - app.post('/registration', function(req, res) { - // TODO: - // create gitlab account? - // send email to activate profile? - // user data var curDate = new Date() var userData = { @@ -497,27 +523,132 @@ module.exports = function (app, config, passport, i18n) { speciality: req.body.inputSpeciality, createdDate: curDate.toISOString().slice(0,10) } - // encrypt password - bcrypt.genSalt(saltRounds, function(err, salt) { - bcrypt.hash(req.body.inputPassword, salt, function(err, hash) { - // create account - var newAccount = { - profile: userData, - password: hash - } + + let token + async.waterfall([ + function(done) { + crypto.randomBytes(20, function(err, buf) { + token = buf.toString('hex'); + done(err, token); + }); + }, + // encrypt password + function(token, done) { + bcrypt.genSalt(saltRounds, function(err, salt) { + bcrypt.hash(req.body.inputPassword, salt, function(err, hash) { + var newAccount = { + profile: userData, + password: hash, + verificationToken: token + } + done(err, newAccount) + }); + }); + }, + // save data + function(newAccount, err) { methods.registerNewUser(newAccount, function(err){ if (err) { - //req.flash('error', "Failed") req.flash('error', "Fehlgeschlagen") } else { - //req.flash('success', 'Your account has been created. Please log in.') - req.flash('success', 'Ihr Benutzerkonto wurde angelegt. Bitte melden Sie sich an.') + // send email + var emailSubject = "Bitte bestätigen Sie Ihr M4_LAB Benutzerkonto" + var emailContent = "Lieber Nutzer,\n\n"+ + "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart. "+ + "\nUm Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+ + "\n\nOhne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+mailSignature + + mailer.options.to = req.body.inputEmail; + mailer.options.subject = emailSubject; + mailer.options.text = emailContent; + mailer.transport.sendMail(mailer.options, function(err) { + if (err) { + console.log('cannot send email') + throw err + } + }) + // user feedback + req.flash('success', 'Wir haben Ihnen eine E-Mail an Ihre verwendete Adresse gesendet. Diese enthält einen Link zur Bestätigung Ihres Accounts.\r\n' + + 'Wenn Sie die Mail nicht in ihrem Postfach vorfinden, prüfen Sie bitte auch Ihren Spam-Ordner.\r\n \r\n'+ + 'Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.') } - res.redirect('/account/registration'); + res.redirect('/account/registration') }) - }); - }); + } + ]) + }) + + // ============= USER VERIFICATION ================================ + app.get("/verifyAccount", function(req, res){ + methods.getUserIdByVerificationToken(req.query.token, function(userId, err){ + console.log(err) + console.log(userId) + if (userId) { + let userData = { + id: userId, + verificationStatus: 1 + } + methods.verifyUserAccount(userData, function(err){ + if (err) { + console.log("Error: "+err) + res.render(lang+'/account/verification', { + status: false + }); + } + else { + res.render(lang+'/account/verification', { + status: true + }); + } + }) + } + else { + res.render(lang+'/account/verification', { + status: null + }); + } + }) + }) + app.get("/resendVerificationEmail", function(req, res){ + if (req.isAuthenticated()) { + var emailAddress = req.user.email + + methods.getUserIdByEmail(req.user.email, function(userId, err) { + if (!err) { + // get token + methods.getVerificationTokenByUserId(userId, function(token, err){ + if (!err) { + if (token) { + // send email + var emailSubject = "Bitte bestätigen Sie Ihr M4_LAB Benutzerkonto" + var emailContent = "Lieber Nutzer,\n\n"+ + "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart. "+ + "\nUm Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+ + "\n\nOhne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+mailSignature + + mailer.options.to = emailAddress; + mailer.options.subject = emailSubject; + mailer.options.text = emailContent; + mailer.transport.sendMail(mailer.options, function(err) { + if (err) { + console.log('cannot send email') + throw err + } + }) + res.send(true) + } + else { + res.send(false) + } + } + else { + console.log(err) + } + }) + } + }) + } }) app.get('/email/:email', function(req, res) { diff --git a/views/DE/account/home.pug b/views/DE/account/home.pug index fa11d3f7..cf284f1a 100644 --- a/views/DE/account/home.pug +++ b/views/DE/account/home.pug @@ -7,35 +7,44 @@ html(lang="de") link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body - div(class="container-fluid") - div(class="row min-vh-100 flex-column flex-md-row") - aside(class="col-12 col-md-2 p-0 flex-shrink-1") - nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2") - div(class="collapse navbar-collapse") - ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between") - li(class="nav-item") - a(class="nav-link pl-0 text-nowrap" href="#") - span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname} - li(class="nav-item") - a(class="nav-link pl-0" href="/account/profile") - i(class="fa fa-user fa-fw") - span(class="d-none d-md-inline") Benutzerprofil - li(class="nav-item") - a(class="nav-link pl-0" href="/account/security") - i(class="fa fa-lock fa-fw") - span(class="d-none d-md-inline") Sicherheitseinstellungen - li(class="nav-item") - a(class="nav-link pl-0" href="/account/services") - i(class="fa fa-tasks fa-fw") - span(class="d-none d-md-inline") Projekte und Dienste - li(class="nav-item") - a(class="nav-link pl-0" href="/logout") - i(class="fa fa-sign-out-alt fa-fw") - span(class="d-none d-md-inline") Logout - main(class="col bg-faded py-3 flex-grow-1") - p Willkommen im Benutzerkonto-Bereich des HFT Transferportals - p In diesem Bereich können Sie Ihr Benutzerkonto pflegen.<br/> Dazu finden Sie auf der linken Seite verschiedene Menüs. - p Bei Rückfragen kontaktieren Sie uns bitte unter: <a href="mailto:support-transfer@hft-stuttgart.de">support-transfer@hft-stuttgart.de</a> + div(class="container") + if user.verificationStatus == 0 + div.alert.alert-warning.alert-dismissible + | Willkommen im Benutzerkonto-Bereich des HFT Transferportals + | <br/><br/> + | Wir haben Ihnen eine E-Mail an Ihre verwendete Adresse gesendet. Diese enthält einen Link zur Bestätigung Ihres Accounts. + | Wenn Sie die Mail nicht in ihrem Postfach vorfinden, prüfen Sie bitte auch Ihren Spam-Ordner. + | <br >Falls Sie keine E-Mail von uns erhalten haben, können Sie <a href="javascript:void(0);" onclick="verify();">diese hier</a> erneut anfordern. + div(class="spinner-border text-secondary", role="status", style="display: none") + else + div(class="row min-vh-100 flex-column flex-md-row") + aside(class="col-12 col-md-3 p-0 flex-shrink-1") + nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2") + div(class="collapse navbar-collapse") + ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between") + li(class="nav-item") + a(class="nav-link pl-0 text-nowrap" href="#") + span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname} + li(class="nav-item") + a(class="nav-link pl-0" href="/profile") + i(class="fa fa-user fa-fw") + span(class="d-none d-md-inline") Benutzerprofil + li(class="nav-item") + a(class="nav-link pl-0" href="/security") + i(class="fa fa-lock fa-fw") + span(class="d-none d-md-inline") Sicherheitseinstellungen + li(class="nav-item") + a(class="nav-link pl-0" href="/services") + i(class="fa fa-tasks fa-fw") + span(class="d-none d-md-inline") Projekte und Dienste + li(class="nav-item") + a(class="nav-link pl-0" href="/logout" style="color:red;") + i(class="fa fa-sign-out-alt fa-fw") + span(class="d-none d-md-inline") Logout + main(class="col bg-faded py-3 flex-grow-1") + p Willkommen im Benutzerkonto-Bereich des HFT Transferportals + p In diesem Bereich können Sie Ihr Benutzerkonto pflegen.<br/> Dazu finden Sie auf der linken Seite verschiedene Menüs. + p Bei Rückfragen kontaktieren Sie uns bitte unter: <a href="mailto:support-transfer@hft-stuttgart.de">support-transfer@hft-stuttgart.de</a> // jQuery script(src="https://code.jquery.com/jquery-3.3.1.min.js") @@ -43,4 +52,25 @@ html(lang="de") // Bootstrap script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") // M4_LAB - script(src="/js/headfoot.js") \ No newline at end of file + script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js") + script. + // call verifyAccount + function verify() { + $(".spinner-border").show() + $.get( "/resendVerificationEmail", function( data ) { + console.log(data) + if (data) { + alert( "Email sent!" ) + } + else { + alert("Please contact support-transfer@hft-stuttgart.de to verify your account.") + } + }) + .fail(function() { + alert( "Something went wrong. Please try again." ) // todo: to DE + }) + .always(function() { + $(".spinner-border").hide() + }) + + } \ No newline at end of file diff --git a/views/DE/account/profile.pug b/views/DE/account/profile.pug index 12f78989..c69b3479 100644 --- a/views/DE/account/profile.pug +++ b/views/DE/account/profile.pug @@ -7,29 +7,29 @@ html(lang="de") link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body - div(class="container-fluid") + div(class="container") div(class="row min-vh-100 flex-column flex-md-row") - aside(class="col-12 col-md-2 p-0 flex-shrink-1") + aside(class="col-12 col-md-3 p-0 flex-shrink-1") nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2") div(class="collapse navbar-collapse") ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between") li(class="nav-item") - a(class="nav-link pl-0 text-nowrap" href="#") + a(class="nav-link pl-0 text-nowrap" href="/") span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname} li(class="nav-item") - a(class="nav-link pl-0" href="/account/profile") + a(class="nav-link pl-0" href="/profile") i(class="fa fa-user fa-fw" style="color:black;") span(class="d-none d-md-inline" style="color:black;") Benutzerprofil li(class="nav-item") - a(class="nav-link pl-0" href="/account/security") + a(class="nav-link pl-0" href="/security") i(class="fa fa-lock fa-fw") span(class="d-none d-md-inline") Sicherheitseinstellungen li(class="nav-item") - a(class="nav-link pl-0" href="/account/services") + a(class="nav-link pl-0" href="/services") i(class="fa fa-tasks fa-fw") span(class="d-none d-md-inline") Projekte und Dienste li(class="nav-item") - a(class="nav-link pl-0" href="/logout") + a(class="nav-link pl-0" href="/logout" style="color:red;") i(class="fa fa-sign-out-alt fa-fw") span(class="d-none d-md-inline") Logout main(class="col bg-faded py-3 flex-grow-1") @@ -45,7 +45,7 @@ html(lang="de") div(class="form-row") div(class='form-group col-md-2') label(for="title") Anrede - select#inputSalutation(name="inputSalutation", class="form-control", , value=user.salutation) + select#inputSalutation(name="inputSalutation", class="form-control", value=user.salutation) option(value="") - Anrede - option(value="Herr") Herr option(value="Frau") Frau @@ -99,4 +99,4 @@ html(lang="de") // Bootstrap script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") // M4_LAB - script(src="/js/headfoot.js") \ No newline at end of file + script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js") \ No newline at end of file diff --git a/views/DE/account/registration.pug b/views/DE/account/registration.pug index 3de3ed5a..64c796ea 100644 --- a/views/DE/account/registration.pug +++ b/views/DE/account/registration.pug @@ -7,26 +7,6 @@ html(lang="de") link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } .warning { color: red; font-size: 11px; @@ -94,4 +74,4 @@ html(lang="de") // M4_LAB script(src="/js/generalFunction.js") script(src="/js/registration.js") - script(src="/js/headfoot.js") \ No newline at end of file + script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js") \ No newline at end of file diff --git a/views/DE/account/security.pug b/views/DE/account/security.pug index 15c43887..16b9458a 100644 --- a/views/DE/account/security.pug +++ b/views/DE/account/security.pug @@ -11,29 +11,29 @@ html(lang="de") font-size: 11px; } body - div(class="container-fluid") + div(class="container") div(class="row min-vh-100 flex-column flex-md-row") - aside(class="col-12 col-md-2 p-0 flex-shrink-1") + aside(class="col-12 col-md-3 p-0 flex-shrink-1") nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2") div(class="collapse navbar-collapse") ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between") li(class="nav-item") - a(class="nav-link pl-0 text-nowrap" href="#") + a(class="nav-link pl-0 text-nowrap" href="/") span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname} li(class="nav-item") - a(class="nav-link pl-0" href="/account/profile") + a(class="nav-link pl-0" href="/profile") i(class="fa fa-user fa-fw") span(class="d-none d-md-inline") Benutzerprofil li(class="nav-item") - a(class="nav-link pl-0" href="/account/security") + a(class="nav-link pl-0" href="/security") i(class="fa fa-lock fa-fw" style="color:black;") span(class="d-none d-md-inline" style="color:black;") Sicherheitseinstellungen li(class="nav-item") - a(class="nav-link pl-0" href="/account/services") + a(class="nav-link pl-0" href="/services") i(class="fa fa-tasks fa-fw") span(class="d-none d-md-inline") Projekte und Dienste li(class="nav-item") - a(class="nav-link pl-0" href="/logout") + a(class="nav-link pl-0" href="/logout" style="color:red;") i(class="fa fa-sign-out-alt fa-fw") span(class="d-none d-md-inline") Logout main(class="col bg-faded py-3 flex-grow-1") @@ -64,7 +64,7 @@ html(lang="de") span#message div(class="invalid-feedback") Bitte füllen Sie dieses Feld aus. input#updateBtn(type="submit", class="btn btn-primary", value="Passwort ändern" disabled) - + // jQuery script(src="https://code.jquery.com/jquery-3.3.1.min.js") script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") @@ -73,7 +73,7 @@ html(lang="de") // M4_LAB script(src="/js/security.js") script(src="/js/generalFunction.js") - script(src="/js/headfoot.js") + script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js") script. // check input fields 'use strict'; diff --git a/views/DE/account/services.pug b/views/DE/account/services.pug index 8b99f630..e1b65887 100644 --- a/views/DE/account/services.pug +++ b/views/DE/account/services.pug @@ -7,29 +7,29 @@ html(lang="de") link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body - div(class="container-fluid") + div(class="container") div(class="row min-vh-100 flex-column flex-md-row") - aside(class="col-12 col-md-2 p-0 flex-shrink-1") + aside(class="col-12 col-md-3 p-0 flex-shrink-1") nav(class="navbar navbar-expand flex-md-column flex-row align-items-start py-2") div(class="collapse navbar-collapse") ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between") li(class="nav-item") - a(class="nav-link pl-0 text-nowrap" href="#") + a(class="nav-link pl-0 text-nowrap" href="/") span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname} li(class="nav-item") - a(class="nav-link pl-0" href="/account/profile") + a(class="nav-link pl-0" href="/profile") i(class="fa fa-user fa-fw") span(class="d-none d-md-inline") Benutzerprofil li(class="nav-item") - a(class="nav-link pl-0" href="/account/security") + a(class="nav-link pl-0" href="/security") i(class="fa fa-lock fa-fw") span(class="d-none d-md-inline") Sicherheitseinstellungen li(class="nav-item") - a(class="nav-link pl-0" href="/account/services") + a(class="nav-link pl-0" href="/services") i(class="fa fa-tasks fa-fw" style="color:black;") span(class="d-none d-md-inline" style="color:black;") Projekte und Dienste li(class="nav-item") - a(class="nav-link pl-0" href="/logout") + a(class="nav-link pl-0" href="/logout" style="color:red;") i(class="fa fa-sign-out-alt fa-fw") span(class="d-none d-md-inline") Logout main(class="col bg-faded py-3 flex-grow-1") @@ -41,4 +41,4 @@ html(lang="de") // Bootstrap script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") // M4_LAB - script(src="/js/headfoot.js") \ No newline at end of file + script(src="https://m4lab.hft-stuttgart.de/js/headfoot.js") \ No newline at end of file diff --git a/views/DE/account/verification.pug b/views/DE/account/verification.pug new file mode 100644 index 00000000..575e8e74 --- /dev/null +++ b/views/DE/account/verification.pug @@ -0,0 +1,35 @@ +doctype html +html(lang="de") + head + title= "User Verification" + meta(charset="UTF-8") + meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + style. + .container { + height: 400px; + position: relative; + } + .center { + margin: 0; + position: absolute; + top: 50%; + left: 50%; + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + } + body + div(class="container") + div(class="center", align="center") + a(href="https://m4lab.hft-stuttgart.de") + img(src="https://transfer.hft-stuttgart.de/images/demo/m4lab_logo.jpg", class="img-responsive center-block", width="185", height="192") + br + br + if status == true + p(class="h5") Ihr Benutzerkonto wurde bestätigt. Bitte <a href="https://m4lab.hft-stuttgart.de/account/">melden Sie sich an</a>. + else if status == false + p(class="h5") Ihr Benutzerkonto konnte nicht bestätigt werden, bitte versuchen Sie es erneut. + else + p(class="h5") Ihr Benutzerkonto wude nicht gefunden. + // Bootstrap + script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") \ No newline at end of file -- GitLab From 424fc8a462acd2f5e92e9ecce476ed114d6a53ed Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Tue, 26 May 2020 14:18:52 +0200 Subject: [PATCH 03/40] MLAB-129: add welcome email after successful verification --- routes/methods.js | 13 +++++++++++++ routes/routes-account.js | 27 +++++++++++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/routes/methods.js b/routes/methods.js index 2ba550d3..2bafb470 100644 --- a/routes/methods.js +++ b/routes/methods.js @@ -80,6 +80,19 @@ var methods = { } callback(user, err); }); + }, + getUserById: function(userId, callback) { + dbconn.user.query('SELECT verificationStatus, email, salutation, title, firstname, lastname, industry, organisation, speciality FROM user WHERE id = ' +userId, function (err, rows, fields) { + if (err) { + throw err; + } + else { + if ( rows.length > 0) { + user = rows[0]; + } + } + callback(user, err); + }); }, checkUserEmail: function(email, callback) { let user diff --git a/routes/routes-account.js b/routes/routes-account.js index fa97820f..9b6c9ae8 100644 --- a/routes/routes-account.js +++ b/routes/routes-account.js @@ -581,9 +581,8 @@ module.exports = function (app, config, passport, i18n) { // ============= USER VERIFICATION ================================ app.get("/verifyAccount", function(req, res){ + console.log(req.query) methods.getUserIdByVerificationToken(req.query.token, function(userId, err){ - console.log(err) - console.log(userId) if (userId) { let userData = { id: userId, @@ -597,6 +596,30 @@ module.exports = function (app, config, passport, i18n) { }); } else { + // send welcome email after successful account verification + methods.getUserById(userId, function(data, err){ + if (err) { + console.log("Error: "+err) + } + else { + // send email + var emailSubject = "Herzlich willkommen" + var emailContent = "Lieber Nutzer,\n\n"+ + "herzlich willkommen beim Transferportal der HFT Stuttgart!\n"+ + "Sie können nun alle Dienste des Portals nutzen.\n\n"+mailSignature + + mailer.options.to = data.email; + mailer.options.subject = emailSubject; + mailer.options.text = emailContent; + mailer.transport.sendMail(mailer.options, function(err) { + if (err) { + console.log('cannot send email') + throw err + } + }) + } + }) + res.render(lang+'/account/verification', { status: true }); -- GitLab From 2560776afdc973aba12eafe94b0c4a5fb2d67c0e Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Tue, 26 May 2020 14:31:22 +0200 Subject: [PATCH 04/40] MLAB-129: correcting user feedback and email content upon registration --- routes/routes-account.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/routes/routes-account.js b/routes/routes-account.js index 9b6c9ae8..676796ba 100644 --- a/routes/routes-account.js +++ b/routes/routes-account.js @@ -555,9 +555,10 @@ module.exports = function (app, config, passport, i18n) { // send email var emailSubject = "Bitte bestätigen Sie Ihr M4_LAB Benutzerkonto" var emailContent = "Lieber Nutzer,\n\n"+ - "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart. "+ - "\nUm Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+ - "\n\nOhne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+mailSignature + "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart.\n"+ + "Um Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+"\n"+ + "Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+ + "Sollten Sie sich selbst nicht mit Ihren Daten am Transferportal registriert haben, ignorieren Sie diese E-Mail bitte.\n\n"+mailSignature mailer.options.to = req.body.inputEmail; mailer.options.subject = emailSubject; @@ -569,9 +570,9 @@ module.exports = function (app, config, passport, i18n) { } }) // user feedback - req.flash('success', 'Wir haben Ihnen eine E-Mail an Ihre verwendete Adresse gesendet. Diese enthält einen Link zur Bestätigung Ihres Accounts.\r\n' + - 'Wenn Sie die Mail nicht in ihrem Postfach vorfinden, prüfen Sie bitte auch Ihren Spam-Ordner.\r\n \r\n'+ - 'Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.') + req.flash('success', 'Vielen Dank für Ihre Registrierung!'+'\r\n\r\n'+ + 'Wir haben Ihnen eine E-Mail an Ihre verwendete Adresse gesendet. Diese enthält einen Link zur Bestätigung Ihres Accounts.'+'\r\n'+ + 'Wenn Sie die Mail nicht in ihrem Postfach vorfinden, prüfen Sie bitte auch Ihren Spam-Ordner.') } res.redirect('/account/registration') }) -- GitLab From 1a5ef222b098e4b38e1b46d55bbeba1508da6f53 Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Tue, 26 May 2020 15:01:30 +0200 Subject: [PATCH 05/40] fixed sidebar links --- views/DE/account/profile.pug | 8 ++++---- views/DE/account/security.pug | 8 ++++---- views/DE/account/services.pug | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/views/DE/account/profile.pug b/views/DE/account/profile.pug index c69b3479..ae666c9d 100644 --- a/views/DE/account/profile.pug +++ b/views/DE/account/profile.pug @@ -14,18 +14,18 @@ html(lang="de") div(class="collapse navbar-collapse") ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between") li(class="nav-item") - a(class="nav-link pl-0 text-nowrap" href="/") + a(class="nav-link pl-0 text-nowrap" href="/account/") span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname} li(class="nav-item") - a(class="nav-link pl-0" href="/profile") + a(class="nav-link pl-0" href="/account/profile") i(class="fa fa-user fa-fw" style="color:black;") span(class="d-none d-md-inline" style="color:black;") Benutzerprofil li(class="nav-item") - a(class="nav-link pl-0" href="/security") + a(class="nav-link pl-0" href="/account/security") i(class="fa fa-lock fa-fw") span(class="d-none d-md-inline") Sicherheitseinstellungen li(class="nav-item") - a(class="nav-link pl-0" href="/services") + a(class="nav-link pl-0" href="/account/services") i(class="fa fa-tasks fa-fw") span(class="d-none d-md-inline") Projekte und Dienste li(class="nav-item") diff --git a/views/DE/account/security.pug b/views/DE/account/security.pug index 16b9458a..e768359c 100644 --- a/views/DE/account/security.pug +++ b/views/DE/account/security.pug @@ -18,18 +18,18 @@ html(lang="de") div(class="collapse navbar-collapse") ul(class="flex-md-column flex-row navbar-nav w-100 justify-content-between") li(class="nav-item") - a(class="nav-link pl-0 text-nowrap" href="/") + a(class="nav-link pl-0 text-nowrap" href="/account/") span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname} li(class="nav-item") - a(class="nav-link pl-0" href="/profile") + a(class="nav-link pl-0" href="/account/profile") i(class="fa fa-user fa-fw") span(class="d-none d-md-inline") Benutzerprofil li(class="nav-item") - a(class="nav-link pl-0" href="/security") + a(class="nav-link pl-0" href="/account/security") i(class="fa fa-lock fa-fw" style="color:black;") span(class="d-none d-md-inline" style="color:black;") Sicherheitseinstellungen li(class="nav-item") - a(class="nav-link pl-0" href="/services") + a(class="nav-link pl-0" href="/account/services") i(class="fa fa-tasks fa-fw") span(class="d-none d-md-inline") Projekte und Dienste li(class="nav-item") diff --git a/views/DE/account/services.pug b/views/DE/account/services.pug index e1b65887..49497ca1 100644 --- a/views/DE/account/services.pug +++ b/views/DE/account/services.pug @@ -17,15 +17,15 @@ html(lang="de") a(class="nav-link pl-0 text-nowrap" href="/") span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname} li(class="nav-item") - a(class="nav-link pl-0" href="/profile") + a(class="nav-link pl-0" href="/account/profile") i(class="fa fa-user fa-fw") span(class="d-none d-md-inline") Benutzerprofil li(class="nav-item") - a(class="nav-link pl-0" href="/security") + a(class="nav-link pl-0" href="/account/security") i(class="fa fa-lock fa-fw") span(class="d-none d-md-inline") Sicherheitseinstellungen li(class="nav-item") - a(class="nav-link pl-0" href="/services") + a(class="nav-link pl-0" href="/account/services") i(class="fa fa-tasks fa-fw" style="color:black;") span(class="d-none d-md-inline" style="color:black;") Projekte und Dienste li(class="nav-item") -- GitLab From 21807ab9bf58f08f4c515fbda6661a3c0401d7eb Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Tue, 26 May 2020 15:05:56 +0200 Subject: [PATCH 06/40] fixed sidebar links home.pug --- views/DE/account/home.pug | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/views/DE/account/home.pug b/views/DE/account/home.pug index cf284f1a..68004228 100644 --- a/views/DE/account/home.pug +++ b/views/DE/account/home.pug @@ -26,15 +26,15 @@ html(lang="de") a(class="nav-link pl-0 text-nowrap" href="#") span(class="font-weight-bold" style="color:black;") #{user.firstname} #{user.lastname} li(class="nav-item") - a(class="nav-link pl-0" href="/profile") + a(class="nav-link pl-0" href="/account/profile") i(class="fa fa-user fa-fw") span(class="d-none d-md-inline") Benutzerprofil li(class="nav-item") - a(class="nav-link pl-0" href="/security") + a(class="nav-link pl-0" href="/account/security") i(class="fa fa-lock fa-fw") span(class="d-none d-md-inline") Sicherheitseinstellungen li(class="nav-item") - a(class="nav-link pl-0" href="/services") + a(class="nav-link pl-0" href="/account/services") i(class="fa fa-tasks fa-fw") span(class="d-none d-md-inline") Projekte und Dienste li(class="nav-item") -- GitLab From 2d63274c3ab811fcf9c81b22ac2f4ef0ad8fad50 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Tue, 26 May 2020 15:49:24 +0200 Subject: [PATCH 07/40] MLAB-227: prevent HFT account to access "security" page --- routes/methods.js | 2 +- routes/routes-account.js | 3 +-- views/DE/account/home.pug | 9 +++++---- views/DE/account/profile.pug | 9 +++++---- views/DE/account/services.pug | 9 +++++---- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/routes/methods.js b/routes/methods.js index 2bafb470..7b34268a 100644 --- a/routes/methods.js +++ b/routes/methods.js @@ -69,7 +69,7 @@ var methods = { }) }, getUserByEmail: function(email, callback) { - dbconn.user.query('SELECT verificationStatus, salutation, title, firstname, lastname, industry, organisation, speciality FROM user WHERE email = "' +email+'"', function (err, rows, fields) { + dbconn.user.query('SELECT verificationStatus, salutation, title, firstname, lastname, industry, organisation, speciality, m4lab_idp FROM user WHERE email = "' +email+'"', function (err, rows, fields) { if (err) { throw err; } diff --git a/routes/routes-account.js b/routes/routes-account.js index 676796ba..10f9ae7e 100644 --- a/routes/routes-account.js +++ b/routes/routes-account.js @@ -240,8 +240,7 @@ module.exports = function (app, config, passport, i18n) { if (req.isAuthenticated()) { methods.getUserByEmail(req.user.email, function(data, err){ if (!err) { - if (data.verificationStatus == 1) { - console.log(data) + if (data.verificationStatus == 1 && data.m4lab_idp == 1) { res.render(lang+'/account/security', { user: data }) diff --git a/views/DE/account/home.pug b/views/DE/account/home.pug index 68004228..f20eafc9 100644 --- a/views/DE/account/home.pug +++ b/views/DE/account/home.pug @@ -29,10 +29,11 @@ html(lang="de") a(class="nav-link pl-0" href="/account/profile") i(class="fa fa-user fa-fw") span(class="d-none d-md-inline") Benutzerprofil - li(class="nav-item") - a(class="nav-link pl-0" href="/account/security") - i(class="fa fa-lock fa-fw") - span(class="d-none d-md-inline") Sicherheitseinstellungen + if user.m4lab_idp == 1 + li(class="nav-item") + a(class="nav-link pl-0" href="/account/security") + i(class="fa fa-lock fa-fw") + span(class="d-none d-md-inline") Sicherheitseinstellungen li(class="nav-item") a(class="nav-link pl-0" href="/account/services") i(class="fa fa-tasks fa-fw") diff --git a/views/DE/account/profile.pug b/views/DE/account/profile.pug index ae666c9d..e66e4eca 100644 --- a/views/DE/account/profile.pug +++ b/views/DE/account/profile.pug @@ -20,10 +20,11 @@ html(lang="de") a(class="nav-link pl-0" href="/account/profile") i(class="fa fa-user fa-fw" style="color:black;") span(class="d-none d-md-inline" style="color:black;") Benutzerprofil - li(class="nav-item") - a(class="nav-link pl-0" href="/account/security") - i(class="fa fa-lock fa-fw") - span(class="d-none d-md-inline") Sicherheitseinstellungen + if user.m4lab_idp == 1 + li(class="nav-item") + a(class="nav-link pl-0" href="/account/security") + i(class="fa fa-lock fa-fw") + span(class="d-none d-md-inline") Sicherheitseinstellungen li(class="nav-item") a(class="nav-link pl-0" href="/account/services") i(class="fa fa-tasks fa-fw") diff --git a/views/DE/account/services.pug b/views/DE/account/services.pug index 49497ca1..cb911250 100644 --- a/views/DE/account/services.pug +++ b/views/DE/account/services.pug @@ -20,10 +20,11 @@ html(lang="de") a(class="nav-link pl-0" href="/account/profile") i(class="fa fa-user fa-fw") span(class="d-none d-md-inline") Benutzerprofil - li(class="nav-item") - a(class="nav-link pl-0" href="/account/security") - i(class="fa fa-lock fa-fw") - span(class="d-none d-md-inline") Sicherheitseinstellungen + if user.m4lab_idp == 1 + li(class="nav-item") + a(class="nav-link pl-0" href="/account/security") + i(class="fa fa-lock fa-fw") + span(class="d-none d-md-inline") Sicherheitseinstellungen li(class="nav-item") a(class="nav-link pl-0" href="/account/services") i(class="fa fa-tasks fa-fw" style="color:black;") -- GitLab From 354419d8cfe80f5abf8b4c6477a08089345919e5 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Fri, 19 Jun 2020 16:30:24 +0200 Subject: [PATCH 08/40] MLAB 249: Prevent HFT accounts to create an account from the registration page. --- routes/routes-account.js | 115 ++++++++++++++++-------------- views/DE/account/registration.pug | 9 ++- 2 files changed, 69 insertions(+), 55 deletions(-) diff --git a/routes/routes-account.js b/routes/routes-account.js index 10f9ae7e..40c54b58 100644 --- a/routes/routes-account.js +++ b/routes/routes-account.js @@ -523,60 +523,71 @@ module.exports = function (app, config, passport, i18n) { createdDate: curDate.toISOString().slice(0,10) } - let token - async.waterfall([ - function(done) { - crypto.randomBytes(20, function(err, buf) { - token = buf.toString('hex'); - done(err, token); - }); - }, - // encrypt password - function(token, done) { - bcrypt.genSalt(saltRounds, function(err, salt) { - bcrypt.hash(req.body.inputPassword, salt, function(err, hash) { - var newAccount = { - profile: userData, - password: hash, - verificationToken: token - } - done(err, newAccount) + var userEmail = userData.email + var pos = userEmail.indexOf('@') + var emailLength = userEmail.length + var emailDomain = userEmail.slice(pos, emailLength); + + if ( emailDomain.toLowerCase() == "@hft-stuttgart.de") { + req.flash('error', "Fehlgeschlagen: HFT-Account") + res.redirect('/account/registration'); + } + else { + let token + async.waterfall([ + function(done) { + crypto.randomBytes(20, function(err, buf) { + token = buf.toString('hex'); + done(err, token); }); - }); - }, - // save data - function(newAccount, err) { - methods.registerNewUser(newAccount, function(err){ - if (err) { - req.flash('error', "Fehlgeschlagen") - } - else { - // send email - var emailSubject = "Bitte bestätigen Sie Ihr M4_LAB Benutzerkonto" - var emailContent = "Lieber Nutzer,\n\n"+ - "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart.\n"+ - "Um Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+"\n"+ - "Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+ - "Sollten Sie sich selbst nicht mit Ihren Daten am Transferportal registriert haben, ignorieren Sie diese E-Mail bitte.\n\n"+mailSignature - - mailer.options.to = req.body.inputEmail; - mailer.options.subject = emailSubject; - mailer.options.text = emailContent; - mailer.transport.sendMail(mailer.options, function(err) { - if (err) { - console.log('cannot send email') - throw err + }, + // encrypt password + function(token, done) { + bcrypt.genSalt(saltRounds, function(err, salt) { + bcrypt.hash(req.body.inputPassword, salt, function(err, hash) { + var newAccount = { + profile: userData, + password: hash, + verificationToken: token } - }) - // user feedback - req.flash('success', 'Vielen Dank für Ihre Registrierung!'+'\r\n\r\n'+ - 'Wir haben Ihnen eine E-Mail an Ihre verwendete Adresse gesendet. Diese enthält einen Link zur Bestätigung Ihres Accounts.'+'\r\n'+ - 'Wenn Sie die Mail nicht in ihrem Postfach vorfinden, prüfen Sie bitte auch Ihren Spam-Ordner.') - } - res.redirect('/account/registration') - }) - } - ]) + done(err, newAccount) + }); + }); + }, + // save data + function(newAccount, err) { + methods.registerNewUser(newAccount, function(err){ + if (err) { + req.flash('error', "Fehlgeschlagen") + } + else { + // send email + var emailSubject = "Bitte bestätigen Sie Ihr M4_LAB Benutzerkonto" + var emailContent = "Lieber Nutzer,\n\n"+ + "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart.\n"+ + "Um Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+"\n"+ + "Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+ + "Sollten Sie sich selbst nicht mit Ihren Daten am Transferportal registriert haben, ignorieren Sie diese E-Mail bitte.\n\n"+mailSignature + + mailer.options.to = req.body.inputEmail; + mailer.options.subject = emailSubject; + mailer.options.text = emailContent; + mailer.transport.sendMail(mailer.options, function(err) { + if (err) { + console.log('cannot send email') + throw err + } + }) + // user feedback + req.flash('success', 'Vielen Dank für Ihre Registrierung!'+'\r\n\r\n'+ + 'Wir haben Ihnen eine E-Mail an Ihre verwendete Adresse gesendet. Diese enthält einen Link zur Bestätigung Ihres Accounts.'+'\r\n'+ + 'Wenn Sie die Mail nicht in ihrem Postfach vorfinden, prüfen Sie bitte auch Ihren Spam-Ordner.') + } + res.redirect('/account/registration') + }) + } + ]) + } }) // ============= USER VERIFICATION ================================ diff --git a/views/DE/account/registration.pug b/views/DE/account/registration.pug index 64c796ea..dc42f50c 100644 --- a/views/DE/account/registration.pug +++ b/views/DE/account/registration.pug @@ -14,9 +14,12 @@ html(lang="de") body div(class="container-fluid") div(class="row") - div(class="col-md-6 offset-md-2") + div(class="pt-4 pb-4 col-md-6 offset-md-2") h3(class="mb-3 font-weight-bold") Neues Benutzerkonto anlegen div(class="col-md-6 offset-md-3") + div(class="alert alert-info" role="alert") + | Auf dieser Seite können sich Benutzer, die keinen Account an der HFT haben, registrieren.<br/> + | Um sich mit ihrem HFT-Account anzumelden, klicken Sie <a class="font-weight-bold" href="https://transfer.hft-stuttgart.de/account/">hier</a>. if successes for success in successes div.alert.alert-success.alert-dismissible #{ success } @@ -26,7 +29,7 @@ html(lang="de") div.alert.alert-danger.alert-dismissible.fade.show #{ error } a(class="close", href="#", data-dismiss="alert", aria-label="close") × form(method="POST") - h5(class="mb-3 font-weight-bold") Anmeldedaten + h5(class="pt-2 mb-3 font-weight-bold") Anmeldedaten div(class='form-row') div(class='form-group col-md-6') input#inputEmail(name="inputEmail", type="email", class="form-control", placeholder="E-Mail-Adresse*", maxlength="45" required) @@ -34,7 +37,7 @@ html(lang="de") div(class="form-group col-md-6") input#inputPassword(name="inputPassword", type="password", class="form-control", data-toggle="password", placeholder="Passwort*", maxlength="45" required) span#passwordWarning(class='warning') - h5(class="mb-3 font-weight-bold") Benutzerprofil + h5(class="pt-2 mb-3 font-weight-bold") Benutzerprofil div(class="form-row") div(class='form-group col-md-2') select#inputSalutation(name="inputSalutation", class="form-control") -- GitLab From eccdf3f41b2e7d51eedb9118a8d597a58400bb32 Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 22 Jun 2020 11:15:50 +0000 Subject: [PATCH 09/40] Update projects.pug, adjusted bootstrap.css link --- views/DE/project/projects.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/DE/project/projects.pug b/views/DE/project/projects.pug index c2730b80..09d3a93b 100644 --- a/views/DE/project/projects.pug +++ b/views/DE/project/projects.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { -- GitLab From 62d0f795dc0d8e2a191d5fdf2c6cca8c77bab07a Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 22 Jun 2020 11:17:17 +0000 Subject: [PATCH 10/40] Update projectOverview.pug, adjusted bootstrap.css link --- views/DE/project/projectOverview.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/DE/project/projectOverview.pug b/views/DE/project/projectOverview.pug index e015d1e6..b7d9c9ee 100644 --- a/views/DE/project/projectOverview.pug +++ b/views/DE/project/projectOverview.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { -- GitLab From 555d339121d2db408febc4c040d2b21d2dbb62e0 Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 22 Jun 2020 11:18:04 +0000 Subject: [PATCH 11/40] Update addProjectOverview.pug, adjusted /css/bootstrap.css link --- views/DE/project/addProjectOverview.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/DE/project/addProjectOverview.pug b/views/DE/project/addProjectOverview.pug index f6517d29..6894c88f 100644 --- a/views/DE/project/addProjectOverview.pug +++ b/views/DE/project/addProjectOverview.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Add Project Overview" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") // jQuery UI - Datepicker link(rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css") -- GitLab From be0d94e84178ae67b048867fa8c3b678ea56f54a Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 22 Jun 2020 13:23:25 +0200 Subject: [PATCH 12/40] replaced /css/booststrap/bootstrap.css with /css/bootstrap.css --- views/DE/404.pug | 2 +- views/DE/500.pug | 2 +- views/DE/account/contact.pug | 2 +- views/DE/account/forgotPwd.pug | 2 +- views/DE/account/home.pug | 2 +- views/DE/account/profile.pug | 2 +- views/DE/account/registration.pug | 2 +- views/DE/account/reset.pug | 2 +- views/DE/account/security.pug | 2 +- views/DE/account/services.pug | 2 +- views/DE/account/verification.pug | 2 +- views/DE/project/landingpage.pug | 2 +- views/DE/project/mailinglists.pug | 2 +- views/DE/project/project-simplified.pug | 2 +- views/DE/project/videoconferences.pug | 2 +- views/EN/account/forgotPwd.pug | 2 +- views/EN/account/home.pug | 2 +- views/EN/account/profile.pug | 2 +- views/EN/account/registration.pug | 2 +- views/EN/account/reset.pug | 2 +- views/EN/account/security.pug | 2 +- views/EN/account/services.pug | 2 +- views/EN/project/addProjectOverview.pug | 2 +- views/EN/project/mailinglists.pug | 2 +- views/EN/project/projects.pug | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/views/DE/404.pug b/views/DE/404.pug index c4178253..575cfc99 100644 --- a/views/DE/404.pug +++ b/views/DE/404.pug @@ -4,7 +4,7 @@ html(lang="de") title= "404 - Page not found" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") style. .container { height: 400px; diff --git a/views/DE/500.pug b/views/DE/500.pug index 70457339..5f19f51a 100644 --- a/views/DE/500.pug +++ b/views/DE/500.pug @@ -4,7 +4,7 @@ html(lang="de") title= "500 - Internal Server Error" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") style. .container { height: 400px; diff --git a/views/DE/account/contact.pug b/views/DE/account/contact.pug index 25e4dc9c..508ca7af 100644 --- a/views/DE/account/contact.pug +++ b/views/DE/account/contact.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Kontakt" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") link(rel="stylesheet", type="text/css", href="/fonts/ionicons.min.css") link(rel="stylesheet", type="text/css", href="/css/Contact-Form-Clean.css") diff --git a/views/DE/account/forgotPwd.pug b/views/DE/account/forgotPwd.pug index 46210a02..292572a4 100644 --- a/views/DE/account/forgotPwd.pug +++ b/views/DE/account/forgotPwd.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Forgot Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. diff --git a/views/DE/account/home.pug b/views/DE/account/home.pug index f20eafc9..1b3729c7 100644 --- a/views/DE/account/home.pug +++ b/views/DE/account/home.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="container") diff --git a/views/DE/account/profile.pug b/views/DE/account/profile.pug index e66e4eca..fb114770 100644 --- a/views/DE/account/profile.pug +++ b/views/DE/account/profile.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="container") diff --git a/views/DE/account/registration.pug b/views/DE/account/registration.pug index dc42f50c..2e0a1eee 100644 --- a/views/DE/account/registration.pug +++ b/views/DE/account/registration.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Create New Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .warning { diff --git a/views/DE/account/reset.pug b/views/DE/account/reset.pug index 56aa2d92..ef8693e5 100644 --- a/views/DE/account/reset.pug +++ b/views/DE/account/reset.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Reset Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. diff --git a/views/DE/account/security.pug b/views/DE/account/security.pug index e768359c..523ee199 100644 --- a/views/DE/account/security.pug +++ b/views/DE/account/security.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .warning { diff --git a/views/DE/account/services.pug b/views/DE/account/services.pug index cb911250..1a525556 100644 --- a/views/DE/account/services.pug +++ b/views/DE/account/services.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="container") diff --git a/views/DE/account/verification.pug b/views/DE/account/verification.pug index 575e8e74..34250834 100644 --- a/views/DE/account/verification.pug +++ b/views/DE/account/verification.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Verification" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") style. .container { height: 400px; diff --git a/views/DE/project/landingpage.pug b/views/DE/project/landingpage.pug index a835ec04..5ff093f2 100644 --- a/views/DE/project/landingpage.pug +++ b/views/DE/project/landingpage.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/DE/project/mailinglists.pug b/views/DE/project/mailinglists.pug index c38c8042..16df2b40 100644 --- a/views/DE/project/mailinglists.pug +++ b/views/DE/project/mailinglists.pug @@ -3,7 +3,7 @@ html(lang="de") title= "Mailinglisten" meta(charset="UTF-8") meta(name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") link(rel="stylesheet" href="/fonts/ionicons.min.css") link(rel="stylesheet" href="assets/css/Testimonials.css") diff --git a/views/DE/project/project-simplified.pug b/views/DE/project/project-simplified.pug index cb868f9a..fdda3403 100644 --- a/views/DE/project/project-simplified.pug +++ b/views/DE/project/project-simplified.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .help .card-title > a:before { diff --git a/views/DE/project/videoconferences.pug b/views/DE/project/videoconferences.pug index e6ee7b69..91ba82c2 100644 --- a/views/DE/project/videoconferences.pug +++ b/views/DE/project/videoconferences.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/forgotPwd.pug b/views/EN/account/forgotPwd.pug index 1cde0888..6b14d985 100644 --- a/views/EN/account/forgotPwd.pug +++ b/views/EN/account/forgotPwd.pug @@ -4,7 +4,7 @@ html(lang="en") title= "Forgot Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. diff --git a/views/EN/account/home.pug b/views/EN/account/home.pug index d2f3875a..82390276 100644 --- a/views/EN/account/home.pug +++ b/views/EN/account/home.pug @@ -4,7 +4,7 @@ html(lang="en") title= "User Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/profile.pug b/views/EN/account/profile.pug index 47c1f7e8..838bca98 100644 --- a/views/EN/account/profile.pug +++ b/views/EN/account/profile.pug @@ -4,7 +4,7 @@ html(lang="en") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/registration.pug b/views/EN/account/registration.pug index 88ef5a93..1e549e67 100644 --- a/views/EN/account/registration.pug +++ b/views/EN/account/registration.pug @@ -4,7 +4,7 @@ html(lang="en") title= "Create New Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/reset.pug b/views/EN/account/reset.pug index b8939ea2..0b964959 100644 --- a/views/EN/account/reset.pug +++ b/views/EN/account/reset.pug @@ -4,7 +4,7 @@ html(lang="en") title= "Reset Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. diff --git a/views/EN/account/security.pug b/views/EN/account/security.pug index 2a5c248c..e8d8be5b 100644 --- a/views/EN/account/security.pug +++ b/views/EN/account/security.pug @@ -4,7 +4,7 @@ html(lang="en") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/services.pug b/views/EN/account/services.pug index f095144b..7ad5e503 100644 --- a/views/EN/account/services.pug +++ b/views/EN/account/services.pug @@ -4,7 +4,7 @@ html(lang="en") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/project/addProjectOverview.pug b/views/EN/project/addProjectOverview.pug index 7b40b54f..42375dad 100644 --- a/views/EN/project/addProjectOverview.pug +++ b/views/EN/project/addProjectOverview.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Add Project Overview" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/project/mailinglists.pug b/views/EN/project/mailinglists.pug index f2ddbd8b..43a4a436 100644 --- a/views/EN/project/mailinglists.pug +++ b/views/EN/project/mailinglists.pug @@ -3,7 +3,7 @@ html(lang="en") title= "Mailinglisten" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/project/projects.pug b/views/EN/project/projects.pug index 56f65c10..720bc8fc 100644 --- a/views/EN/project/projects.pug +++ b/views/EN/project/projects.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap/bootstrap.css") + link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { -- GitLab From 5c9626575f55c8ba11ed7268bac6297a39401b0d Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 22 Jun 2020 13:30:42 +0200 Subject: [PATCH 13/40] replaced /css/ calls with relative links instead of calls to transfer --- views/DE/404.pug | 2 +- views/DE/500.pug | 2 +- views/DE/account/contact.pug | 4 ++-- views/DE/account/forgotPwd.pug | 4 ++-- views/DE/account/home.pug | 2 +- views/DE/account/profile.pug | 2 +- views/DE/account/registration.pug | 2 +- views/DE/account/reset.pug | 4 ++-- views/DE/account/security.pug | 2 +- views/DE/account/services.pug | 2 +- views/DE/account/verification.pug | 2 +- views/DE/project/addProjectOverview.pug | 2 +- views/DE/project/landingpage.pug | 2 +- views/DE/project/mailinglists.pug | 2 +- views/DE/project/project-simplified.pug | 2 +- views/DE/project/projectOverview.pug | 2 +- views/DE/project/projects.pug | 2 +- views/DE/project/videoconferences.pug | 2 +- views/EN/account/forgotPwd.pug | 4 ++-- views/EN/account/home.pug | 2 +- views/EN/account/profile.pug | 2 +- views/EN/account/registration.pug | 2 +- views/EN/account/reset.pug | 4 ++-- views/EN/account/security.pug | 2 +- views/EN/account/services.pug | 2 +- views/EN/project/addProjectOverview.pug | 2 +- views/EN/project/mailinglists.pug | 2 +- views/EN/project/projects.pug | 2 +- 28 files changed, 33 insertions(+), 33 deletions(-) diff --git a/views/DE/404.pug b/views/DE/404.pug index 575cfc99..28d105ae 100644 --- a/views/DE/404.pug +++ b/views/DE/404.pug @@ -4,7 +4,7 @@ html(lang="de") title= "404 - Page not found" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") style. .container { height: 400px; diff --git a/views/DE/500.pug b/views/DE/500.pug index 5f19f51a..b18e630c 100644 --- a/views/DE/500.pug +++ b/views/DE/500.pug @@ -4,7 +4,7 @@ html(lang="de") title= "500 - Internal Server Error" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") style. .container { height: 400px; diff --git a/views/DE/account/contact.pug b/views/DE/account/contact.pug index 508ca7af..ddf00d4f 100644 --- a/views/DE/account/contact.pug +++ b/views/DE/account/contact.pug @@ -4,12 +4,12 @@ html(lang="de") title= "Kontakt" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") link(rel="stylesheet", type="text/css", href="/fonts/ionicons.min.css") link(rel="stylesheet", type="text/css", href="/css/Contact-Form-Clean.css") link(rel="stylesheet", type="text/css", href="/css/Testimonials.css") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/custom/login.css") + link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/DE/account/forgotPwd.pug b/views/DE/account/forgotPwd.pug index 292572a4..a0e333ba 100644 --- a/views/DE/account/forgotPwd.pug +++ b/views/DE/account/forgotPwd.pug @@ -4,8 +4,8 @@ html(lang="de") title= "Forgot Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/custom/login.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/DE/account/home.pug b/views/DE/account/home.pug index 1b3729c7..0d427232 100644 --- a/views/DE/account/home.pug +++ b/views/DE/account/home.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="container") diff --git a/views/DE/account/profile.pug b/views/DE/account/profile.pug index fb114770..5ea7640a 100644 --- a/views/DE/account/profile.pug +++ b/views/DE/account/profile.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="container") diff --git a/views/DE/account/registration.pug b/views/DE/account/registration.pug index 2e0a1eee..5d169e73 100644 --- a/views/DE/account/registration.pug +++ b/views/DE/account/registration.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Create New Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .warning { diff --git a/views/DE/account/reset.pug b/views/DE/account/reset.pug index ef8693e5..ede0800c 100644 --- a/views/DE/account/reset.pug +++ b/views/DE/account/reset.pug @@ -4,8 +4,8 @@ html(lang="de") title= "Reset Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/custom/login.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/DE/account/security.pug b/views/DE/account/security.pug index 523ee199..d060e233 100644 --- a/views/DE/account/security.pug +++ b/views/DE/account/security.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .warning { diff --git a/views/DE/account/services.pug b/views/DE/account/services.pug index 1a525556..bb9dba43 100644 --- a/views/DE/account/services.pug +++ b/views/DE/account/services.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="container") diff --git a/views/DE/account/verification.pug b/views/DE/account/verification.pug index 34250834..a5518385 100644 --- a/views/DE/account/verification.pug +++ b/views/DE/account/verification.pug @@ -4,7 +4,7 @@ html(lang="de") title= "User Verification" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") style. .container { height: 400px; diff --git a/views/DE/project/addProjectOverview.pug b/views/DE/project/addProjectOverview.pug index 6894c88f..5752e8b9 100644 --- a/views/DE/project/addProjectOverview.pug +++ b/views/DE/project/addProjectOverview.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Add Project Overview" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") // jQuery UI - Datepicker link(rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css") diff --git a/views/DE/project/landingpage.pug b/views/DE/project/landingpage.pug index 5ff093f2..d00050e9 100644 --- a/views/DE/project/landingpage.pug +++ b/views/DE/project/landingpage.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/DE/project/mailinglists.pug b/views/DE/project/mailinglists.pug index 16df2b40..5f24660f 100644 --- a/views/DE/project/mailinglists.pug +++ b/views/DE/project/mailinglists.pug @@ -3,7 +3,7 @@ html(lang="de") title= "Mailinglisten" meta(charset="UTF-8") meta(name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") link(rel="stylesheet" href="/fonts/ionicons.min.css") link(rel="stylesheet" href="assets/css/Testimonials.css") diff --git a/views/DE/project/project-simplified.pug b/views/DE/project/project-simplified.pug index fdda3403..a7f317b7 100644 --- a/views/DE/project/project-simplified.pug +++ b/views/DE/project/project-simplified.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .help .card-title > a:before { diff --git a/views/DE/project/projectOverview.pug b/views/DE/project/projectOverview.pug index b7d9c9ee..beacda4a 100644 --- a/views/DE/project/projectOverview.pug +++ b/views/DE/project/projectOverview.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/DE/project/projects.pug b/views/DE/project/projects.pug index 09d3a93b..f3693d92 100644 --- a/views/DE/project/projects.pug +++ b/views/DE/project/projects.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/DE/project/videoconferences.pug b/views/DE/project/videoconferences.pug index 91ba82c2..20706244 100644 --- a/views/DE/project/videoconferences.pug +++ b/views/DE/project/videoconferences.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/forgotPwd.pug b/views/EN/account/forgotPwd.pug index 6b14d985..985793b0 100644 --- a/views/EN/account/forgotPwd.pug +++ b/views/EN/account/forgotPwd.pug @@ -4,8 +4,8 @@ html(lang="en") title= "Forgot Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/custom/login.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/home.pug b/views/EN/account/home.pug index 82390276..df71fe18 100644 --- a/views/EN/account/home.pug +++ b/views/EN/account/home.pug @@ -4,7 +4,7 @@ html(lang="en") title= "User Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/profile.pug b/views/EN/account/profile.pug index 838bca98..60788795 100644 --- a/views/EN/account/profile.pug +++ b/views/EN/account/profile.pug @@ -4,7 +4,7 @@ html(lang="en") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/registration.pug b/views/EN/account/registration.pug index 1e549e67..2e1aba4c 100644 --- a/views/EN/account/registration.pug +++ b/views/EN/account/registration.pug @@ -4,7 +4,7 @@ html(lang="en") title= "Create New Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/reset.pug b/views/EN/account/reset.pug index 0b964959..606b304f 100644 --- a/views/EN/account/reset.pug +++ b/views/EN/account/reset.pug @@ -4,8 +4,8 @@ html(lang="en") title= "Reset Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/custom/login.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/security.pug b/views/EN/account/security.pug index e8d8be5b..c2c997b0 100644 --- a/views/EN/account/security.pug +++ b/views/EN/account/security.pug @@ -4,7 +4,7 @@ html(lang="en") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/account/services.pug b/views/EN/account/services.pug index 7ad5e503..c70d729f 100644 --- a/views/EN/account/services.pug +++ b/views/EN/account/services.pug @@ -4,7 +4,7 @@ html(lang="en") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/project/addProjectOverview.pug b/views/EN/project/addProjectOverview.pug index 42375dad..d0a4b0eb 100644 --- a/views/EN/project/addProjectOverview.pug +++ b/views/EN/project/addProjectOverview.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Add Project Overview" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/project/mailinglists.pug b/views/EN/project/mailinglists.pug index 43a4a436..fdc0ef23 100644 --- a/views/EN/project/mailinglists.pug +++ b/views/EN/project/mailinglists.pug @@ -3,7 +3,7 @@ html(lang="en") title= "Mailinglisten" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { diff --git a/views/EN/project/projects.pug b/views/EN/project/projects.pug index 720bc8fc..f1ecc579 100644 --- a/views/EN/project/projects.pug +++ b/views/EN/project/projects.pug @@ -4,7 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .collapse { -- GitLab From c2c7f24ffc7d51cbcc8cd341fe4a9928d4fe77cc Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 22 Jun 2020 11:39:07 +0000 Subject: [PATCH 14/40] Update mailinglists.pug, replaced assets/css/Testimonials.css with /css/Testimonials.css --- views/DE/project/mailinglists.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/DE/project/mailinglists.pug b/views/DE/project/mailinglists.pug index 5f24660f..3f8c8f6e 100644 --- a/views/DE/project/mailinglists.pug +++ b/views/DE/project/mailinglists.pug @@ -6,7 +6,7 @@ html(lang="de") link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") link(rel="stylesheet" href="/fonts/ionicons.min.css") - link(rel="stylesheet" href="assets/css/Testimonials.css") + link(rel="stylesheet" href="/css/Testimonials.css") style. .collapse { display: none; -- GitLab From 742c74f69d6d2cca5bf3394ea1dabadeb2dcad3e Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Fri, 26 Jun 2020 11:08:02 +0200 Subject: [PATCH 15/40] MLAB-225: fixing button position --- views/DE/project/mailinglists.pug | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/views/DE/project/mailinglists.pug b/views/DE/project/mailinglists.pug index 3f8c8f6e..a676a7f8 100644 --- a/views/DE/project/mailinglists.pug +++ b/views/DE/project/mailinglists.pug @@ -7,27 +7,6 @@ html(lang="de") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") link(rel="stylesheet" href="/fonts/ionicons.min.css") link(rel="stylesheet" href="/css/Testimonials.css") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } body div(class="container") div(class="row") @@ -79,9 +58,9 @@ html(lang="de") p() Ãœber das Transferportal können Sie selbst eine Liste zu Ihrem Projekt anlegen, um mit Ihren Partnern in Verbindung zu bleiben. p() Folgen Sie hierzu der Anleitung des DFN. - div(class="col-md-4 col-lg-6" style="background-color: #ffffff;") - a(class="btn btn-primary text-center d-inline-flex d-lg-flex flex-column flex-grow-1 flex-shrink-1 flex-fill justify-content-between align-items-baseline align-content-center align-self-baseline flex-wrap justify-content-md-center align-items-md-end align-items-lg-center justify-content-xl-center mx-auto" role="button" style="background-color: #E0001B; margin-top:10px; margin-top:10px;" href="/downloads/Handout_Mailinglisten_Erstellen.pdf") <strong>Erste Schritte (Anleitung als PDF)</strong> - a(class="btn btn-primary text-center d-lg-flex justify-content-center align-items-center align-content-center align-self-center align-items-lg-end mx-auto" role="button" style="background-color: #E0001B;" href="https://www.listserv.dfn.de/sympa/help/admin") <strong>Gesamtes Tutorial bei DFN (externer Link)</strong> + div(class="col-md-4 col-lg-6 justify-content-between flex-wrap" style="background-color: #ffffff;") + a(class="btn btn-primary text-center d-inline-flex d-lg-flex flex-column flex-grow-1 flex-shrink-1 flex-fill justify-content-between align-items-baseline align-content-center align-self-baseline flex-wrap order-3 justify-content-md-center align-items-md-end align-items-lg-center justify-content-xl-center mx-auto" role="button" style="background-color: #E0001B; margin-top:10px; margin-top:10px;" href="/downloads/Handout_Mailinglisten_Erstellen.pdf") <strong>Erste Schritte (Anleitung als PDF)</strong> + a(class="btn btn-primary text-center d-inline-flex d-lg-flex flex-column flex-grow-1 flex-shrink-1 flex-fill justify-content-between align-items-baseline align-content-center align-self-baseline flex-wrap order-3 justify-content-md-center align-items-md-end align-items-lg-center justify-content-xl-center mx-auto" role="button" style="background-color: #E0001B; margin-top:10px; margin-top:10px;" href="https://www.listserv.dfn.de/sympa/help/admin") <strong>Gesamtes Tutorial bei DFN (externer Link)</strong> div(id="addListText" style="background-color: #dadada;margin-top: 0px;") div(class="container") -- GitLab From a3aca3db6bae9db94249a075f6aa2a1ec519b287 Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 29 Jun 2020 14:48:42 +0200 Subject: [PATCH 16/40] [bugfix] added bootstrap.min.css as well to fix nonworking mobile version --- views/DE/project/projects.pug | 1 + 1 file changed, 1 insertion(+) diff --git a/views/DE/project/projects.pug b/views/DE/project/projects.pug index f3693d92..6611eb81 100644 --- a/views/DE/project/projects.pug +++ b/views/DE/project/projects.pug @@ -4,6 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. -- GitLab From d3557f93ca58a19cd05557b58085199f007dfb1f Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 29 Jun 2020 14:53:31 +0200 Subject: [PATCH 17/40] [bugfix] added bootstrap.min.css to projectOverview --- views/DE/project/projectOverview.pug | 1 + 1 file changed, 1 insertion(+) diff --git a/views/DE/project/projectOverview.pug b/views/DE/project/projectOverview.pug index beacda4a..87f0092e 100644 --- a/views/DE/project/projectOverview.pug +++ b/views/DE/project/projectOverview.pug @@ -4,6 +4,7 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. -- GitLab From 1a59bf45bc24968606d46efae8428c651bcdbb43 Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 29 Jun 2020 15:05:50 +0200 Subject: [PATCH 18/40] [bugfix] jquery-3.3.1.slim.min.js replaces jquery-3.3.1.min.js --- views/DE/project/projectOverview.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/DE/project/projectOverview.pug b/views/DE/project/projectOverview.pug index 87f0092e..edccc860 100644 --- a/views/DE/project/projectOverview.pug +++ b/views/DE/project/projectOverview.pug @@ -155,7 +155,7 @@ html(lang="de") img(src="./images/M4_LAB_Projekt/Innovative_Hochschule_Initiative_BMBF_GWK_RGB.png" width="100%") //jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") + script(src="https://code.jquery.com/jquery-3.3.1.slim.min.js") script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") // Bootstrap script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") -- GitLab From ba8d45532badf14f6ee738937aade12d3b472f2d Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 29 Jun 2020 15:22:47 +0200 Subject: [PATCH 19/40] [bugfix] removed inline styling --- views/DE/project/projectOverview.pug | 29 ++-------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/views/DE/project/projectOverview.pug b/views/DE/project/projectOverview.pug index edccc860..5d759bd1 100644 --- a/views/DE/project/projectOverview.pug +++ b/views/DE/project/projectOverview.pug @@ -4,34 +4,9 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } - .warning { - color: red; - font-size: 11px; - } + body div for project in projectOV @@ -155,7 +130,7 @@ html(lang="de") img(src="./images/M4_LAB_Projekt/Innovative_Hochschule_Initiative_BMBF_GWK_RGB.png" width="100%") //jQuery - script(src="https://code.jquery.com/jquery-3.3.1.slim.min.js") + script(src="https://code.jquery.com/jquery-3.3.1.min.js") script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") // Bootstrap script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") -- GitLab From ca7cfce1b80f840aed6e79eca9dc34b79235d0fc Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 29 Jun 2020 15:31:43 +0200 Subject: [PATCH 20/40] [bugfix] removed any and all inline styling --- views/DE/project/landingpage.pug | 26 +------------------------- views/DE/project/projects.pug | 26 +------------------------- views/DE/project/videoconferences.pug | 25 ------------------------- 3 files changed, 2 insertions(+), 75 deletions(-) diff --git a/views/DE/project/landingpage.pug b/views/DE/project/landingpage.pug index d00050e9..f5263243 100644 --- a/views/DE/project/landingpage.pug +++ b/views/DE/project/landingpage.pug @@ -6,31 +6,7 @@ html(lang="de") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } - .warning { - color: red; - font-size: 11px; - } + body include landingpage.html diff --git a/views/DE/project/projects.pug b/views/DE/project/projects.pug index 6611eb81..95ec98e6 100644 --- a/views/DE/project/projects.pug +++ b/views/DE/project/projects.pug @@ -7,31 +7,7 @@ html(lang="de") link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } - .warning { - color: red; - font-size: 11px; - } + body div(class="container-fluid") if isUserAuthenticated diff --git a/views/DE/project/videoconferences.pug b/views/DE/project/videoconferences.pug index 20706244..6c82511f 100644 --- a/views/DE/project/videoconferences.pug +++ b/views/DE/project/videoconferences.pug @@ -6,31 +6,6 @@ html(lang="de") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } - .warning { - color: red; - font-size: 11px; - } body div(class="flex-container") div(class="main") -- GitLab From 97fdd304ccec7c1368a21c0a90c1eddce043aa2a Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Wed, 1 Jul 2020 13:15:42 +0200 Subject: [PATCH 21/40] MLAB-223: delete collapse css --- views/DE/account/contact.pug | 21 --------------------- views/DE/account/forgotPwd.pug | 21 --------------------- views/DE/account/reset.pug | 21 --------------------- 3 files changed, 63 deletions(-) diff --git a/views/DE/account/contact.pug b/views/DE/account/contact.pug index ddf00d4f..68dc8f03 100644 --- a/views/DE/account/contact.pug +++ b/views/DE/account/contact.pug @@ -11,27 +11,6 @@ html(lang="de") link(rel="stylesheet", type="text/css", href="/css/Testimonials.css") link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } body div(class="container") div(class="row") diff --git a/views/DE/account/forgotPwd.pug b/views/DE/account/forgotPwd.pug index a0e333ba..8b8669f6 100644 --- a/views/DE/account/forgotPwd.pug +++ b/views/DE/account/forgotPwd.pug @@ -7,27 +7,6 @@ html(lang="de") link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } body div(class="container-fluid") div(class="row") diff --git a/views/DE/account/reset.pug b/views/DE/account/reset.pug index ede0800c..bfc3251d 100644 --- a/views/DE/account/reset.pug +++ b/views/DE/account/reset.pug @@ -7,27 +7,6 @@ html(lang="de") link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } body div(class="container-fluid") div(class="row") -- GitLab From 86f64bfee5e6a1a339c13afe3a85d2842b45106d Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Thu, 2 Jul 2020 10:56:34 +0200 Subject: [PATCH 22/40] MLAB-253: use the original bootstrap CSS --- views/DE/404.pug | 2 +- views/DE/500.pug | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/views/DE/404.pug b/views/DE/404.pug index 28d105ae..5a16f086 100644 --- a/views/DE/404.pug +++ b/views/DE/404.pug @@ -4,7 +4,7 @@ html(lang="de") title= "404 - Page not found" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") style. .container { height: 400px; diff --git a/views/DE/500.pug b/views/DE/500.pug index b18e630c..aea0e76c 100644 --- a/views/DE/500.pug +++ b/views/DE/500.pug @@ -4,7 +4,7 @@ html(lang="de") title= "500 - Internal Server Error" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") style. .container { height: 400px; -- GitLab From a7f46e4e45ff69627369a71639afd2333f30179d Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Thu, 2 Jul 2020 11:12:27 +0200 Subject: [PATCH 23/40] MLAB-253: replace bootstrap.css with m4lab.css on Account Pages --- views/DE/account/contact.pug | 2 +- views/DE/account/forgotPwd.pug | 3 ++- views/DE/account/home.pug | 3 ++- views/DE/account/profile.pug | 3 ++- views/DE/account/registration.pug | 3 ++- views/DE/account/reset.pug | 3 ++- views/DE/account/security.pug | 3 ++- views/DE/account/services.pug | 3 ++- views/DE/account/verification.pug | 3 ++- 9 files changed, 17 insertions(+), 9 deletions(-) diff --git a/views/DE/account/contact.pug b/views/DE/account/contact.pug index 68dc8f03..67107cf9 100644 --- a/views/DE/account/contact.pug +++ b/views/DE/account/contact.pug @@ -4,8 +4,8 @@ html(lang="de") title= "Kontakt" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", type="text/css", href="/fonts/ionicons.min.css") link(rel="stylesheet", type="text/css", href="/css/Contact-Form-Clean.css") link(rel="stylesheet", type="text/css", href="/css/Testimonials.css") diff --git a/views/DE/account/forgotPwd.pug b/views/DE/account/forgotPwd.pug index 8b8669f6..75390a80 100644 --- a/views/DE/account/forgotPwd.pug +++ b/views/DE/account/forgotPwd.pug @@ -4,7 +4,8 @@ html(lang="de") title= "Forgot Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body diff --git a/views/DE/account/home.pug b/views/DE/account/home.pug index 0d427232..54c4ced0 100644 --- a/views/DE/account/home.pug +++ b/views/DE/account/home.pug @@ -4,7 +4,8 @@ html(lang="de") title= "User Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="container") diff --git a/views/DE/account/profile.pug b/views/DE/account/profile.pug index 5ea7640a..190fc1c7 100644 --- a/views/DE/account/profile.pug +++ b/views/DE/account/profile.pug @@ -4,7 +4,8 @@ html(lang="de") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="container") diff --git a/views/DE/account/registration.pug b/views/DE/account/registration.pug index 5d169e73..39fc405d 100644 --- a/views/DE/account/registration.pug +++ b/views/DE/account/registration.pug @@ -4,7 +4,8 @@ html(lang="de") title= "Create New Account" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .warning { diff --git a/views/DE/account/reset.pug b/views/DE/account/reset.pug index bfc3251d..a6ef872a 100644 --- a/views/DE/account/reset.pug +++ b/views/DE/account/reset.pug @@ -4,7 +4,8 @@ html(lang="de") title= "Reset Password" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", type="text/css", href="/css/custom/login.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body diff --git a/views/DE/account/security.pug b/views/DE/account/security.pug index d060e233..81da0660 100644 --- a/views/DE/account/security.pug +++ b/views/DE/account/security.pug @@ -4,7 +4,8 @@ html(lang="de") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .warning { diff --git a/views/DE/account/services.pug b/views/DE/account/services.pug index bb9dba43..a2015cd9 100644 --- a/views/DE/account/services.pug +++ b/views/DE/account/services.pug @@ -4,7 +4,8 @@ html(lang="de") title= "User Profile" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="container") diff --git a/views/DE/account/verification.pug b/views/DE/account/verification.pug index a5518385..10cdea08 100644 --- a/views/DE/account/verification.pug +++ b/views/DE/account/verification.pug @@ -4,7 +4,8 @@ html(lang="de") title= "User Verification" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") style. .container { height: 400px; -- GitLab From d6b0a60d1ecb5f638e7f3be239707ebc9a5a46e4 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Thu, 2 Jul 2020 11:16:32 +0200 Subject: [PATCH 24/40] MLAB-253: replace boostrap.css with m4lab.css on Project Pages --- views/DE/project/addProjectOverview.pug | 3 ++- views/DE/project/landingpage.pug | 3 ++- views/DE/project/mailinglists.pug | 3 ++- views/DE/project/project-simplified.pug | 3 ++- views/DE/project/projectOverview.pug | 3 ++- views/DE/project/projects.pug | 2 +- views/DE/project/videoconferences.pug | 3 ++- 7 files changed, 13 insertions(+), 7 deletions(-) diff --git a/views/DE/project/addProjectOverview.pug b/views/DE/project/addProjectOverview.pug index 5752e8b9..8119c861 100644 --- a/views/DE/project/addProjectOverview.pug +++ b/views/DE/project/addProjectOverview.pug @@ -4,7 +4,8 @@ html(lang="de") title= "Add Project Overview" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") // jQuery UI - Datepicker link(rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css") diff --git a/views/DE/project/landingpage.pug b/views/DE/project/landingpage.pug index f5263243..5aaf31a5 100644 --- a/views/DE/project/landingpage.pug +++ b/views/DE/project/landingpage.pug @@ -4,7 +4,8 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body diff --git a/views/DE/project/mailinglists.pug b/views/DE/project/mailinglists.pug index a676a7f8..bf3c747b 100644 --- a/views/DE/project/mailinglists.pug +++ b/views/DE/project/mailinglists.pug @@ -3,7 +3,8 @@ html(lang="de") title= "Mailinglisten" meta(charset="UTF-8") meta(name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") link(rel="stylesheet" href="/fonts/ionicons.min.css") link(rel="stylesheet" href="/css/Testimonials.css") diff --git a/views/DE/project/project-simplified.pug b/views/DE/project/project-simplified.pug index a7f317b7..5219c290 100644 --- a/views/DE/project/project-simplified.pug +++ b/views/DE/project/project-simplified.pug @@ -4,7 +4,8 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") style. .help .card-title > a:before { diff --git a/views/DE/project/projectOverview.pug b/views/DE/project/projectOverview.pug index 5d759bd1..512534c2 100644 --- a/views/DE/project/projectOverview.pug +++ b/views/DE/project/projectOverview.pug @@ -4,7 +4,8 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body diff --git a/views/DE/project/projects.pug b/views/DE/project/projects.pug index 95ec98e6..44748f8a 100644 --- a/views/DE/project/projects.pug +++ b/views/DE/project/projects.pug @@ -5,7 +5,7 @@ html(lang="de") meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body diff --git a/views/DE/project/videoconferences.pug b/views/DE/project/videoconferences.pug index 6c82511f..de48a2a4 100644 --- a/views/DE/project/videoconferences.pug +++ b/views/DE/project/videoconferences.pug @@ -4,7 +4,8 @@ html(lang="de") title= "Project List" meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") + link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") + link(rel="stylesheet", type="text/css", href="/css/m4lab.css") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body div(class="flex-container") -- GitLab From bd831d5b4a3749bfb2d3f8e2b5ce80e91a6b83b5 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Thu, 2 Jul 2020 13:02:09 +0200 Subject: [PATCH 25/40] MLAB-251: responsive page --- views/DE/project/projectOverview.pug | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/views/DE/project/projectOverview.pug b/views/DE/project/projectOverview.pug index 512534c2..e12d5f42 100644 --- a/views/DE/project/projectOverview.pug +++ b/views/DE/project/projectOverview.pug @@ -11,29 +11,25 @@ html(lang="de") body div for project in projectOV - div(class="flex-container") - div(class="main") + div(class="row") + div(class="col-sm-8 pt-3") h1 #{project.title} div(style="float:right; margin-left:30px; margin-bottom:0px; width:50%;") img(src=project.src, width="100%") p(style="text-align:right") #{project.caption} - h2 Projektüberblick + h2(class="pt-4") Projektüberblick p !{project.overview} br b keywords: span #{project.keywords} - br - h2 Fragestellung + h2(class="pt-4") Fragestellung p !{project.question} - p - h2 Vorgehensweise + h2(class="pt-4") Vorgehensweise p !{project.approach} - br - br - h2 Ergebnis und Nutzung + h2(class="pt-4") Ergebnis und Nutzung p !{project.result} - div(class="side") + div(class="col-sm-4 pt-3" style="background-color: #f1f1f1") for image in projectImgs if image.pos == '2' || image.pos == '3' div(class="projectimg") -- GitLab From d0cd5be6683bacf043acfffc638b268671fe7cf4 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Thu, 2 Jul 2020 13:09:37 +0200 Subject: [PATCH 26/40] MLAB-251: add container --- views/DE/project/projectOverview.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/DE/project/projectOverview.pug b/views/DE/project/projectOverview.pug index e12d5f42..8c9ab406 100644 --- a/views/DE/project/projectOverview.pug +++ b/views/DE/project/projectOverview.pug @@ -9,7 +9,7 @@ html(lang="de") link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") body - div + div(class="container") for project in projectOV div(class="row") div(class="col-sm-8 pt-3") -- GitLab From 694f15b286c961d1a4d521fba3742a45bac6ed73 Mon Sep 17 00:00:00 2001 From: Varun Srivastava <92srva1mst@hft-stuttgart.de> Date: Fri, 3 Jul 2020 13:57:22 +0200 Subject: [PATCH 27/40] email signature changes --- config/config.js | 3 +- routes/routes-account.js | 99 ++++++++++++++++++++++++++-------------- 2 files changed, 67 insertions(+), 35 deletions(-) diff --git a/config/config.js b/config/config.js index 201291a1..30cd6a8d 100644 --- a/config/config.js +++ b/config/config.js @@ -44,7 +44,8 @@ module.exports = { saml: { path: process.env.SAML_PATH || '/saml/SSO', entryPoint: process.env.SAML_ENTRY_POINT || 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SSOService.php', - issuer: 'sp-account-testing.m4lab.hft-stuttgart.de', //testing metadata + issuer: 'sp-account.m4lab.hft-stuttgart.de', //local metadata + //issuer: 'sp-account-testing.m4lab.hft-stuttgart.de', //testing metadata //issuer: 'sp-account-prod.m4lab.hft-stuttgart.de', //production metadata logoutUrl: 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SingleLogoutService.php' } diff --git a/routes/routes-account.js b/routes/routes-account.js index 40c54b58..f7a83d9e 100644 --- a/routes/routes-account.js +++ b/routes/routes-account.js @@ -22,6 +22,20 @@ module.exports = function (app, config, passport, i18n) { done(null, user); }); + const mailSignature = 'Mit den besten Grüßen,<br/>das Transferportal-Team der HFT Stuttgart<br/><br/>' + + 'Transferportal der Hochschule für Technik Stuttgart<br/>' + + 'Schellingstr. 24 70174 Stuttgart<br/>' + + 'm4lab@hft-stuttgart.de<br/>' + + 'https://transfer.hft-stuttgart.de<br/>' + + '<a href="http://www.hft-stuttgart.de/Aktuell/"><img border="0" alt="HFT" src="HFT_logo.png"></a> ' + + '<a href="http://www.facebook.com/hftstuttgart"><img border="0" alt="Facebook" src="facebook.png"></a> ' + + '<a href="https://www.instagram.com/hft_stuttgart/"><img border="0" alt="Instagram" src="instagram.png"></a> ' + + '<a href="https://twitter.com/hft_presse"><img border="0" alt="Twitter" src="twitter.png"></a> ' + + '<a href="https://www.youtube.com/channel/UCi0_JfF2qMZbOhOnNH5PyHA"><img border="0" alt="Youtube" src="youtube.png"></a> ' + + '<a href="http://www.hft-stuttgart.de/Aktuell/Presse-Marketing/SocialMedia/Snapcode HFT_Stuttgart.jpg/photo_view">' + + '<img border="0" alt="Snapchat" src="snapchat.png"></a>' + + '<br/><img border="0" src="Innovative_Hochschule.png">' + var samlStrategy = new SamlStrategy({ // URL that goes from the Identity Provider -> Service Provider callbackUrl: config.passport.saml.path, @@ -86,13 +100,13 @@ module.exports = function (app, config, passport, i18n) { // ======== APP ROUTES - ACCOUNT ==================== var updatePasswordMailSubject = "Ihr Passwort für das Transferportal wurde gespeichert." - var mailSignature = "Mit den besten Grüßen,\ndas Transferportal-Team der HFT Stuttgart\n\n"+ - "Transferportal der Hochschule für Technik Stuttgart\n"+ - "Schellingstr. 24\n"+ - "70174 Stuttgart\n"+ - "m4lab@hft-stuttgart.de\n"+ - "https://transfer.hft-stuttgart.de" - var updatePasswordMailContent = "Lieber Nutzer,\n\n"+"Ihr Passwort wurde erfolgreich geändert.\n\n"+mailSignature + // var mailSignature = "Mit den besten Grüßen,\ndas Transferportal-Team der HFT Stuttgart\n\n"+ + // "Transferportal der Hochschule für Technik Stuttgart\n"+ + // "Schellingstr. 24\n"+ + // "70174 Stuttgart\n"+ + // "m4lab@hft-stuttgart.de\n"+ + // "https://transfer.hft-stuttgart.de" + var updatePasswordMailContent = '<div>Lieber Nutzer,<br/><br/>Ihr Passwort wurde erfolgreich geändert.<br/><br/>' + mailSignature + '</div>'; app.get('/', function (req, res) { if (req.isAuthenticated()) { @@ -346,7 +360,7 @@ module.exports = function (app, config, passport, i18n) { mailer.options.to = req.user.email //mailOptions.subject = "Your M4_LAB Password has been updated." mailer.options.subject = updatePasswordMailSubject - mailer.options.text = updatePasswordMailContent + mailer.options.html = updatePasswordMailContent mailer.transport.sendMail(mailer.options, function(err) { if (err) { console.log(err) @@ -402,12 +416,17 @@ module.exports = function (app, config, passport, i18n) { "Otherwise, you can reset your password using this link: http://m4lab.hft-stuttgart.de/account/reset/" + token + "\n" + "This password reset is only valid for 1 hour.\n\n"+ "Thanks,\nM4_LAB Team" */ - var emailContent = "Lieber Nutzer,\n\n"+ - "wir haben Ihre Anfrage zur Erneuerung Ihres Passwortes erhalten. Falls Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese E-Mail.\n\n"+ - "Sie können Ihr Passwort mit dem Klick auf diesen Link ändern: http://m4lab.hft-stuttgart.de/account/reset/" + token + "\n" + // test server - //"Sie können Ihr Passwort mit dem Klick auf diesen Link ändern: http://localhost:9989/reset/" + token + "\n" + // localhost - "Dieser Link ist aus Sicherheitsgründen nur für 1 Stunde gültig.\n\n"+mailSignature - + // var emailContent = "Lieber Nutzer,\n\n"+ + // "wir haben Ihre Anfrage zur Erneuerung Ihres Passwortes erhalten. Falls Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese E-Mail.\n\n"+ + // "Sie können Ihr Passwort mit dem Klick auf diesen Link ändern: http://m4lab.hft-stuttgart.de/account/reset/" + token + "\n" + // test server + // //"Sie können Ihr Passwort mit dem Klick auf diesen Link ändern: http://localhost:9989/reset/" + token + "\n" + // localhost + // "Dieser Link ist aus Sicherheitsgründen nur für 1 Stunde gültig.\n\n"+mailSignature + + var emailContent = '<div>Lieber Nutzer, Varun<br/><br/>' + + '<p>wir haben Ihre Anfrage zur Erneuerung Ihres Passwortes erhalten. Falls Sie diese Anfrage nicht gesendet haben, ignorieren Sie bitte diese E-Mail.<br/><br/>' + + 'Sie können Ihr Passwort mit dem Klick auf diesen Link ändern: http://m4lab.hft-stuttgart.de/account/reset/' + token + '<br/>' + // test server + 'Dieser Link ist aus Sicherheitsgründen nur für 1 Stunde gültig.<br/></p>' + mailSignature + '</div>'; + var credentialData = { user_id: user.id, resetPasswordToken: token, @@ -420,7 +439,7 @@ module.exports = function (app, config, passport, i18n) { // send email mailer.options.to = emailAddress; mailer.options.subject = emailSubject; - mailer.options.text = emailContent; + mailer.options.html = emailContent; mailer.transport.sendMail(mailer.options, function(err) { done(err, 'done'); }); @@ -483,7 +502,7 @@ module.exports = function (app, config, passport, i18n) { // send notifiaction email mailer.options.to = user.email mailer.options.subject = updatePasswordMailSubject - mailer.options.text = updatePasswordMailContent + mailer.options.html = updatePasswordMailContent mailer.transport.sendMail(mailer.options, function(err) { if (err) { console.log(err) @@ -563,15 +582,20 @@ module.exports = function (app, config, passport, i18n) { else { // send email var emailSubject = "Bitte bestätigen Sie Ihr M4_LAB Benutzerkonto" - var emailContent = "Lieber Nutzer,\n\n"+ - "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart.\n"+ - "Um Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+"\n"+ - "Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+ - "Sollten Sie sich selbst nicht mit Ihren Daten am Transferportal registriert haben, ignorieren Sie diese E-Mail bitte.\n\n"+mailSignature - + // var emailContent = "Lieber Nutzer,\n\n"+ + // "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart.\n"+ + // "Um Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+"\n"+ + // "Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+ + // "Sollten Sie sich selbst nicht mit Ihren Daten am Transferportal registriert haben, ignorieren Sie diese E-Mail bitte.\n\n"+mailSignature + var emailContent = '<div>Lieber Nutzer,<br/><br/>' + + '<p>vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart. <br/>' + + 'Um Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: ' + config.app.host + '/verifyAccount?token=' + token + + '<br/><br/>' + + 'Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.</p><br/>' + mailSignature + + '</div>'; mailer.options.to = req.body.inputEmail; mailer.options.subject = emailSubject; - mailer.options.text = emailContent; + mailer.options.html = emailContent; mailer.transport.sendMail(mailer.options, function(err) { if (err) { console.log('cannot send email') @@ -615,13 +639,15 @@ module.exports = function (app, config, passport, i18n) { else { // send email var emailSubject = "Herzlich willkommen" - var emailContent = "Lieber Nutzer,\n\n"+ - "herzlich willkommen beim Transferportal der HFT Stuttgart!\n"+ - "Sie können nun alle Dienste des Portals nutzen.\n\n"+mailSignature - + // var emailContent = "Lieber Nutzer,\n\n"+ + // "herzlich willkommen beim Transferportal der HFT Stuttgart!\n"+ + // "Sie können nun alle Dienste des Portals nutzen.\n\n"+mailSignature + var emailContent = '<div>Lieber Nutzer,<br/><br/>' + + '<p>herzlich willkommen beim Transferportal der HFT Stuttgart!<br/>' + + 'Sie können nun alle Dienste des Portals nutzen.<p/><br/>' + mailSignature; mailer.options.to = data.email; mailer.options.subject = emailSubject; - mailer.options.text = emailContent; + mailer.options.html = emailContent; mailer.transport.sendMail(mailer.options, function(err) { if (err) { console.log('cannot send email') @@ -656,14 +682,19 @@ module.exports = function (app, config, passport, i18n) { if (token) { // send email var emailSubject = "Bitte bestätigen Sie Ihr M4_LAB Benutzerkonto" - var emailContent = "Lieber Nutzer,\n\n"+ - "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart. "+ - "\nUm Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+ - "\n\nOhne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+mailSignature - + // var emailContent = "Lieber Nutzer,\n\n"+ + // "vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart. "+ + // "\nUm Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: "+config.app.host+"/verifyAccount?token="+token+ + // "\n\nOhne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.\n\n"+mailSignature + var emailContent = '<div>Lieber Nutzer,<br/><br/>' + + '<p>vielen Dank für Ihre Anmeldung am Transferportal der HFT Stuttgart. <br/>' + + 'Um Ihre Anmeldung zu bestätigen, klicken Sie bitte diesen Link: ' + config.app.host + '/verifyAccount?token=' + token + + '<br/><br/>' + + 'Ohne Bestätigung Ihres Kontos müssen wir Ihr Konto leider nach 7 Tagen löschen.</p><br/>' + mailSignature + + '</div>'; mailer.options.to = emailAddress; mailer.options.subject = emailSubject; - mailer.options.text = emailContent; + mailer.options.html = emailContent; mailer.transport.sendMail(mailer.options, function(err) { if (err) { console.log('cannot send email') -- GitLab From fb9e8971362acfddf995980552a1ec1309d2f7cf Mon Sep 17 00:00:00 2001 From: Varun Srivastava <92srva1mst@hft-stuttgart.de> Date: Fri, 3 Jul 2020 13:59:19 +0200 Subject: [PATCH 28/40] reverting config changes --- config/config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.js b/config/config.js index 30cd6a8d..1535c914 100644 --- a/config/config.js +++ b/config/config.js @@ -44,8 +44,8 @@ module.exports = { saml: { path: process.env.SAML_PATH || '/saml/SSO', entryPoint: process.env.SAML_ENTRY_POINT || 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SSOService.php', - issuer: 'sp-account.m4lab.hft-stuttgart.de', //local metadata - //issuer: 'sp-account-testing.m4lab.hft-stuttgart.de', //testing metadata + //issuer: 'sp-account.m4lab.hft-stuttgart.de', //local metadata + issuer: 'sp-account-testing.m4lab.hft-stuttgart.de', //testing metadata //issuer: 'sp-account-prod.m4lab.hft-stuttgart.de', //production metadata logoutUrl: 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SingleLogoutService.php' } -- GitLab From b21bf6a15c3ff56f2cd1cab919c0074bcec4f0a1 Mon Sep 17 00:00:00 2001 From: Varun Srivastava <92srva1mst@hft-stuttgart.de> Date: Fri, 3 Jul 2020 14:10:37 +0200 Subject: [PATCH 29/40] updated the links for images in signature --- routes/routes-account.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/routes/routes-account.js b/routes/routes-account.js index f7a83d9e..66f44bfa 100644 --- a/routes/routes-account.js +++ b/routes/routes-account.js @@ -27,14 +27,14 @@ module.exports = function (app, config, passport, i18n) { 'Schellingstr. 24 70174 Stuttgart<br/>' + 'm4lab@hft-stuttgart.de<br/>' + 'https://transfer.hft-stuttgart.de<br/>' + - '<a href="http://www.hft-stuttgart.de/Aktuell/"><img border="0" alt="HFT" src="HFT_logo.png"></a> ' + - '<a href="http://www.facebook.com/hftstuttgart"><img border="0" alt="Facebook" src="facebook.png"></a> ' + - '<a href="https://www.instagram.com/hft_stuttgart/"><img border="0" alt="Instagram" src="instagram.png"></a> ' + - '<a href="https://twitter.com/hft_presse"><img border="0" alt="Twitter" src="twitter.png"></a> ' + - '<a href="https://www.youtube.com/channel/UCi0_JfF2qMZbOhOnNH5PyHA"><img border="0" alt="Youtube" src="youtube.png"></a> ' + + '<a href="http://www.hft-stuttgart.de/Aktuell/"><img border="0" alt="HFT" src="https://m4lab.hft-stuttgart.de/img/signature/hft_logo.png" width="30" height="30"></a> ' + + '<a href="http://www.facebook.com/hftstuttgart"><img border="0" alt="Facebook" src="https://m4lab.hft-stuttgart.de/img/signature/fb_bw.png" width="30" height="30"></a> ' + + '<a href="https://www.instagram.com/hft_stuttgart/"><img border="0" alt="Instagram" src="https://m4lab.hft-stuttgart.de/img/signature/instagram_bw.png" width="30" height="30"></a> ' + + '<a href="https://twitter.com/hft_presse"><img border="0" alt="Twitter" src="https://m4lab.hft-stuttgart.de/img/signature/twitter_bw.png" width="30" height="30"></a> ' + + '<a href="https://www.youtube.com/channel/UCi0_JfF2qMZbOhOnNH5PyHA"><img border="0" alt="Youtube" src="https://m4lab.hft-stuttgart.de/img/signature/youtube_bw.png" width="30" height="30"></a> ' + '<a href="http://www.hft-stuttgart.de/Aktuell/Presse-Marketing/SocialMedia/Snapcode HFT_Stuttgart.jpg/photo_view">' + - '<img border="0" alt="Snapchat" src="snapchat.png"></a>' + - '<br/><img border="0" src="Innovative_Hochschule.png">' + '<img border="0" alt="Snapchat" src="https://m4lab.hft-stuttgart.de/img/signature/snapchat_bw.png" width="30" height="30"></a>' + + '<br/><img border="0" src="https://m4lab.hft-stuttgart.de/img/signature/inno_bw.png" width="150" height="100">' var samlStrategy = new SamlStrategy({ // URL that goes from the Identity Provider -> Service Provider -- GitLab From 8726c4af11ca3ae0bda8080608da77d45ec08a88 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Fri, 3 Jul 2020 15:41:52 +0200 Subject: [PATCH 30/40] add link to portal URL --- routes/routes-account.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/routes-account.js b/routes/routes-account.js index 66f44bfa..f0477561 100644 --- a/routes/routes-account.js +++ b/routes/routes-account.js @@ -26,7 +26,7 @@ module.exports = function (app, config, passport, i18n) { 'Transferportal der Hochschule für Technik Stuttgart<br/>' + 'Schellingstr. 24 70174 Stuttgart<br/>' + 'm4lab@hft-stuttgart.de<br/>' + - 'https://transfer.hft-stuttgart.de<br/>' + + '<a href="https://transfer.hft-stuttgart.de">https://transfer.hft-stuttgart.de</a><br/>' + '<a href="http://www.hft-stuttgart.de/Aktuell/"><img border="0" alt="HFT" src="https://m4lab.hft-stuttgart.de/img/signature/hft_logo.png" width="30" height="30"></a> ' + '<a href="http://www.facebook.com/hftstuttgart"><img border="0" alt="Facebook" src="https://m4lab.hft-stuttgart.de/img/signature/fb_bw.png" width="30" height="30"></a> ' + '<a href="https://www.instagram.com/hft_stuttgart/"><img border="0" alt="Instagram" src="https://m4lab.hft-stuttgart.de/img/signature/instagram_bw.png" width="30" height="30"></a> ' + -- GitLab From 715c0c5a4f5c7de0654751f2805b0b6875bf4054 Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Mon, 13 Jul 2020 07:46:35 +0000 Subject: [PATCH 31/40] Update .gitlab-ci.yml --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 273c37c2..80cb7c29 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -pages-devel: +pages-testing: stage: deploy script: - npm install -- GitLab From 0031c8a3b1818cb05d7f1644f370d04e632fdf1c Mon Sep 17 00:00:00 2001 From: sanny <rosanny.sihombing@hft-stuttgart.de> Date: Wed, 15 Jul 2020 12:13:46 +0200 Subject: [PATCH 32/40] delete unused files --- routes/routes-project.js | 362 ------------------------ views/DE/project/addProjectOverview.pug | 144 ---------- views/DE/project/landingpage.html | 68 ----- views/DE/project/landingpage.pug | 24 -- views/DE/project/mailinglists.pug | 79 ------ views/DE/project/project-simplified.pug | 52 ---- views/DE/project/project.html | 220 -------------- views/DE/project/projectOverview.pug | 135 --------- views/DE/project/projects.pug | 91 ------ views/DE/project/videoconferences.pug | 43 --- views/EN/error.pug | 6 - views/EN/layout.pug | 12 - views/EN/project/addProjectOverview.pug | 115 -------- views/EN/project/mailinglists.pug | 61 ---- views/EN/project/projects.pug | 117 -------- 15 files changed, 1529 deletions(-) delete mode 100644 routes/routes-project.js delete mode 100644 views/DE/project/addProjectOverview.pug delete mode 100644 views/DE/project/landingpage.html delete mode 100644 views/DE/project/landingpage.pug delete mode 100644 views/DE/project/mailinglists.pug delete mode 100644 views/DE/project/project-simplified.pug delete mode 100644 views/DE/project/project.html delete mode 100644 views/DE/project/projectOverview.pug delete mode 100644 views/DE/project/projects.pug delete mode 100644 views/DE/project/videoconferences.pug delete mode 100644 views/EN/error.pug delete mode 100644 views/EN/layout.pug delete mode 100644 views/EN/project/addProjectOverview.pug delete mode 100644 views/EN/project/mailinglists.pug delete mode 100644 views/EN/project/projects.pug diff --git a/routes/routes-project.js b/routes/routes-project.js deleted file mode 100644 index d34bab48..00000000 --- a/routes/routes-project.js +++ /dev/null @@ -1,362 +0,0 @@ -const methods = require('./methods') -const async = require('async') -const helpers = require('./helpers') - -const pictSizeLimit = 1000000 // 1 MB - -module.exports = function (app) { - - // ======== APP ROUTES - PROJECT ==================== - var lang = 'DE' - - app.get('/mailinglists', function (req, res) { - async.waterfall([ - function(done) { - methods.getAllMailinglists(function(mailinglistOverview, err) { - if (!err) { - done(err, mailinglistOverview) - } - }) - }, - // create JSON object of mailinglists for front-end - function(mailinglistOverview, done) { - var allMailingLists = [] // JSON object - for (let i = 0; i < mailinglistOverview.length; i++) { - // add data to JSON object - allMailingLists.push({ - id: mailinglistOverview[i].id, - name: mailinglistOverview[i].name, - src: mailinglistOverview[i].src, - projectstatus: mailinglistOverview[i].projectstatus, - project_title: mailinglistOverview[i].project_title, - keywords: mailinglistOverview[i].keywords - }); - } - - res.render(lang+'/project/mailinglists', { - isUserAuthenticated: req.isAuthenticated(), - user: req.user, - mailinglists: allMailingLists - }); - } - ]) - }); - - app.get('/project_', function (req, res) { - async.waterfall([ - // get all projects from projectdb - function(done) { - methods.getAllProjects(function(projectsOverview, err) { - if (!err) { - done(err, projectsOverview) - } - }) - }, - // create JSON object for front-end - function(projectsOverview, done) { - var activeProjects = [] - var nonActiveProjects = [] - - for (var i = 0; i < projectsOverview.length; i++) { - var project = { - id: projectsOverview[i].id, - logo: projectsOverview[i].logo, - akronym: projectsOverview[i].pname, - title: projectsOverview[i].title, - summary: projectsOverview[i].onelinesummary, - category: projectsOverview[i].category, - cp: projectsOverview[i].contact_email, - gitlab: projectsOverview[i].gitlab - } - if (projectsOverview[i].projectstatus == 0) { - nonActiveProjects.push(project) - } - else if (projectsOverview[i].projectstatus == 1) { - activeProjects.push(project) - } - } - - // render the page - if (req.isAuthenticated()) { - res.render(lang+'/project/projects', { - isUserAuthenticated: true, - nonActive: nonActiveProjects, - active: activeProjects - }); - } - else { - res.render(lang+'/project/projects', { - isUserAuthenticated: false, - nonActive: nonActiveProjects, - active: activeProjects - }); - } - } - ]) - }) - - app.get('/project', function (req, res) { - res.render(lang+'/project/project-simplified', { - isUserAuthenticated: req.isAuthenticated(), - user: req.user - }); - }) - - app.get('/addprojectoverview', function (req, res) { - if (req.isAuthenticated()) { - res.render(lang+'/project/addProjectOverview') - } - else { - res.redirect('/login') - } - }) - - app.post('/addprojectoverview__', function (req, res) { - if (req.isAuthenticated()) { - var wiki = 0 - if (req.body.wiki) - wiki = 1 - - var projectTerm = req.body.termForm + " - " + req.body.termTo - var projectOverviewData = { - pname: req.body.pname, - title: req.body.title, - onelinesummary: req.body.summary, - category: req.body.category, - logo: req.body.logo, - gitlab: req.body.gitlabURL, - wiki: wiki, - overview: req.body.overview, - question: req.body.question, - approach: req.body.approach, - result: req.body.result, - keywords: req.body.keywords, - announcement: req.body.announcement, - term: projectTerm, - further_details: req.body.furtherDetails, - website: req.body.website, - src: req.body.src, - caption: req.body.caption, - contact_lastname: req.body.contactName, - contact_email: req.body.contactEmail, - leader_lastname: req.body.leaderName, - leader_email: req.body.leaderEmail - } - - methods.addProjectOverview(projectOverviewData, function(err){ - if (err) { - //req.flash('error', "Failed") - req.flash('error', "Fehlgeschlagen") - res.redirect('/addProjectOverview'); - } - else { - req.flash('success', 'Your project has been created.') - res.redirect('/project'); - } - }) - } - }) - - app.post('/addprojectoverview', function (req, res) { - if (req.isAuthenticated()) { - var wiki = 0 - if (req.body.wiki) - wiki = 1 - - var projectLogo = req.files.logo - var projectPicture = req.files.src - var projectLogoPath, projectPicturePath - - if (projectLogo) { - // raise error if size limit is exceeded - if (projectLogo.size === pictSizeLimit) { - req.flash('error', 'Projektlogo exceeds 1 MB'); - res.redirect('/addprojectoverview'); - } - else { - // TEST PATH FOR DEVELOPMENT (LOCALHOST) - projectLogoPath = './folder-in-server-to-save-projektlogo/'+req.body.pname+'/'+projectLogo.name - // PATH FOR TEST/LIVE SERVER - // var projectLogoPath = to-be-defined - } - } - if (projectPicture) { - // raise error if size limit is exceeded - if (projectPicture.size === pictSizeLimit) { - req.flash('error', 'Projektbild exceeds 1 MB'); - res.redirect('/addprojectoverview'); - } - else { - // TEST PATH FOR DEVELOPMENT (LOCALHOST) - projectPicturePath = './folder-in-server-to-save-projektbild/'+req.body.pname+'/'+projectPicture.name - // PATH FOR TEST/LIVE SERVER - // var projectPicturePath = to-be-defined - } - - } - - var projectTerm = req.body.termForm + " - " + req.body.termTo - var projectOverviewData = { - pname: req.body.pname, - title: req.body.title, - onelinesummary: req.body.summary, - category: req.body.category, - logo: projectLogoPath, - gitlab: req.body.gitlabURL, - wiki: wiki, - overview: req.body.overview, - question: req.body.question, - approach: req.body.approach, - result: req.body.result, - keywords: req.body.keywords, - announcement: req.body.announcement, - term: projectTerm, - further_details: req.body.furtherDetails, - website: req.body.website, - src: projectPicturePath, - caption: req.body.caption, - contact_lastname: req.body.contactName, - contact_email: req.body.contactEmail, - leader_lastname: req.body.leaderName, - leader_email: req.body.leaderEmail - } - - // save pictures - if (projectLogo) { - projectLogo.mv(projectLogoPath, function(err) { - if (err) { - console.error(err) - res.status(500).render(lang+'/500', { - error: err - }) - } - }); - } - if (projectPicture) { - projectPicture.mv(projectPicturePath, function(err) { - if (err) { - console.error(err) - res.status(500).render(lang+'/500', { - error: err - }) - } - }); - } - - /* RS: Temporary solution while Project DB is still in early phase. - When User DB and Project DB are integrated and quite stabil, this operation should be done in 1 transaction. - */ - var userId // todo: make this global variable? - async.waterfall([ - // get userId by email from userdb - function(done) { - methods.getUserIdByEmail(req.user.email, function(id, err) { - if (!err) { - userId = id - done(err) - } - }) - }, - // add project overview - function(done) { - methods.addProjectOverview(projectOverviewData, function(data, err){ - if (err) { - res.status(500).render(lang+'/500', { - error: err - }) - } - else { - done(err, data.insertId) - } - }) - }, - // assign the created overview to logged-in user - function(projectOverviewId, done) { - var userProjectRoleData = { - project_id: projectOverviewId, - user_id: userId, - role_id: 3 // OVERVIEW_CREATOR - } - methods.addUserProjectRole(userProjectRoleData, function(userProjects, err) { - if (err) { - //req.flash('error', "Failed") - req.flash('error', "Fehlgeschlagen") - res.redirect('/addProjectOverview'); - } - else { - req.flash('success', 'Your project has been created.') - res.redirect('/project'); - } - }) - } - ]) - } - }) - - app.get('/updateprojectoverview', function (req, res) { - // only their own project - }) - - app.post('/updateprojectoverview', function (req, res) { - // only their own project - }) - - app.get('/projectoverview', function(req, res){ - async.waterfall([ - function(done) { - methods.getProjectOverviewById(req.query.projectID, function(projectOverview, err) { - if (!err) { - done(err, projectOverview) - } - }) - }, - function(projectOverview,done){ - methods.getProjectImagesById(req.query.projectID, function(projectImages, err) { - if (!err) { - done(err, projectImages, projectOverview) - } - }) - }, - // render projectOverview page - function(projectImages, projectOverview, done) { - - console.log(projectImages); - partnerWebsites = helpers.stringToArray(projectOverview[0].partner_website); - partnerNames = helpers.stringToArray(projectOverview[0].partner_name); - awardSites = helpers.stringToArray(projectOverview[0].award_website); - awardNames = helpers.stringToArray(projectOverview[0].award_name); - sponsorWebsites = helpers.stringToArray(projectOverview[0].sponsor_website); - sponsorImgs = helpers.stringToArray(projectOverview[0].sponsor_img); - sponsorNames = helpers.stringToArray(projectOverview[0].sponsor_name); - - res.render(lang+'/project/projectOverview', { - isUserAuthenticated: req.isAuthenticated(), - user: req.user, - projectOV: projectOverview, - projectImgs: projectImages, - partnerWS: partnerWebsites, - partnerN: partnerNames, - awardWS: awardSites, - awardN: awardNames, - sponsorWS: sponsorWebsites, - sponsorIMG: sponsorImgs, - sponsorN: sponsorNames - }); - } - ]) - }) - - app.get('/videoconferences', function(req, res){ - res.render(lang+'/project/videoconferences', { - isUserAuthenticated: req.isAuthenticated(), - user: req.user, - }); - }) - - app.get('/landingpage', function(req, res){ - res.render(lang+'/project/landingpage', { - isUserAuthenticated: req.isAuthenticated(), - user: req.user, - }); - }) -}; \ No newline at end of file diff --git a/views/DE/project/addProjectOverview.pug b/views/DE/project/addProjectOverview.pug deleted file mode 100644 index 8119c861..00000000 --- a/views/DE/project/addProjectOverview.pug +++ /dev/null @@ -1,144 +0,0 @@ -doctype html -html(lang="de") - head - title= "Add Project Overview" - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") - link(rel="stylesheet", type="text/css", href="/css/m4lab.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - // jQuery UI - Datepicker - link(rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } - .warning { - color: red; - font-size: 11px; - } - body - div(class="container-fluid") - div(class="row") - div(class="col-md-6 offset-md-2") - h4(class="mb-3 font-weight-bold") Neues Projekt - div(class="col-md-6 offset-md-3") - if errors - for error, i in errors - div.alert.alert-danger.alert-dismissible.fade.show #{ error } - a(class="close", href="#", data-dismiss="alert", aria-label="close") × - form(method="POST" encType="multipart/form-data") - div(class='form-row') - div(class='form-group col-md-12') - input#inputPname(name="title" class="form-control" type="text" placeholder="Projekttitel*" required) - div(class="form-group col-md-12") - input#inputTitle(name="pname" class="form-control" type="text" placeholder="Akronym*" required) - div(class="form-group col-md-12") - input#inputSummary(name="summary" class="form-control" type="text" placeholder="Kurzbeschreibung") - div(class='form-group col-md-12') - select#inputCategory(name="category", class="form-control") - option(value="") - Projektkategorie - - option(value="Experten-Gruppe") Experten-Gruppe - option(value="Student-Projekt") Student-Projekt - option(value="Lehr Projekt") Lehr Projekt - option(value="Transfer-projekt") Transfer-projekt - div(class="form-group col-md-12") - div(class='form-group row') - label(for="projectLogo" class="col-sm-3 col-form-label") Projektlogo (max. 1 MB) - div(class="col-md-9") - input#inputLogo(name="logo" class="form-control" type="file") - div(class="form-group col-md-12") - div(class="input-group mb-3") - input#inputGitlabURL(name="gitlabURL" type="text" class="form-control" placeholder="M4_LAB GitLab Project URL, z.B. https://transfer.hft-stuttgart.de/gitlab/username/projectname") - div(class="input-group-prepend") - div(class="input-group-text") - input#inputWiki(name="wiki" type="checkbox") - | Wiki - - h5(class="mb-3 font-weight-bold") Inhalte - div(class='form-row') - div(class='form-group col-md-12') - textarea#inputOverview(name="overview" class="form-control" type="text" rows="5" placeholder="Projektüberblick") - div(class="form-group col-md-12") - textarea#inputQuestion(name="question" class="form-control" type="text" rows="5" placeholder="Fragestellung") - div(class='form-group col-md-12') - textarea#inputApproach(name="approach" class="form-control" type="text" rows="5" placeholder="Vorgehensweise") - div(class="form-group col-md-12") - textarea#inputResult(name="result" class="form-control" type="text" rows="5" placeholder="Ergebnis und Nutzung") - div(class="form-group col-md-12") - input#inputKeywords(name="keywords" class="form-control" type="text" placeholder="keywords") - h5(class="mb-3 font-weight-bold") Projektinformationen - div(class='form-row') - div(class='form-group col-md-12') - input#inputAnnouncement(name="announcement" class="form-control" type="text" rows="5" placeholder="Ausschreibung") - div(class="form-group col-md-12") - div(class='form-group row') - label(for="projectLogo" class="col-sm-2 col-form-label") Laufzeit - div(class="col-md-5") - input#inputTermFrom(name="termForm" class="form-control" type="text" placeholder="von (dd.mm.yyyy)") - div(class="col-md-5") - input#inputTermTo(name="termTo" class="form-control" type="text" placeholder="bis (dd.mm.yyyy)") - div(class='form-group col-md-12') - textarea#inputFurtherDetails(name="furtherDetails" class="form-control" type="text" rows="5" placeholder="Weitere Informationen (bspw. Links zu Berichten)") - div(class="form-group col-md-12") - input#inputWebsite(name="website" class="form-control" type="text" placeholder="Projekt-Website") - h5(class="mb-3 font-weight-bold") Bilder - div(class='form-row') - div(class="form-group col-md-12") - div(class='form-group row') - label(for="projectPicture" class="col-sm-3 col-form-label") Projektbild (max. 1 MB) - div(class="col-md-9") - input#inputSrc(name="src" class="form-control" type="file") - div(class="form-group col-md-12") - input#inputCaption(name="caption" class="form-control" type="text" placeholder="Bildunterschrift/Bildquelle") - h5(class="mb-3 font-weight-bold") Kontakt - div(class='form-row') - div(class="form-group col-md-2") - <p class="font-weight-normal">Ansprechperson</p> - div(class="form-group col-md-5") - input#inputContactName(name="contactName" class="form-control" type="text" placeholder="Anrede, Titel, Vorname, Nachname") - div(class="form-group col-md-5") - input#inputContactEmail(name="contactEmail" class="form-control" type="email" placeholder="E-Mail-Adresse") - div(class="form-group col-md-2") - <p class="font-weight-normal">Projektleitung</p> - div(class="form-group col-md-5") - input#inputLeaderName(name="leaderName" class="form-control" type="text" placeholder="Anrede, Titel, Vorname, Nachname") - div(class="form-group col-md-5") - input#inputLeaderEmail(name="leaderEmail" class="form-control" type="email" placeholder="E-Mail-Adresse") - p <em><small>* Pflichtfeld</small></em> - input#submitBtn(type="submit", class="btn btn-outline-dark btn-block", value="Projekt Anlegen") - - // jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // jQuery UI - Datepicker - script(src="https://code.jquery.com/ui/1.12.1/jquery-ui.js") - script(src="/js/jquery-ui/i18n/datepicker-de.js") - //script(src="i18n/datepicker-de.js") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - script(src="/js/headfoot.js") - script. - $( function() { - $.datepicker.setDefaults( $.datepicker.regional["de"] ); - $("#inputTermFrom").datepicker(); - $("#inputTermTo").datepicker(); - }); \ No newline at end of file diff --git a/views/DE/project/landingpage.html b/views/DE/project/landingpage.html deleted file mode 100644 index d9c19d49..00000000 --- a/views/DE/project/landingpage.html +++ /dev/null @@ -1,68 +0,0 @@ - <!-- content --> - - <div class="flex-container" style="align-items:flex-start"> - - <div id="Textblock-startseite" class="text" style="flex-basis:600px"> - <div style="flex-grow: 1"> - <p> - <h1>Als innovative Hochschule wollen wir den Wandel in der Gesellschaft zukunftsfähig und verantwortungsvoll mitgestalten.</h1> - <br/> - <h2>Unser Ziel ist die Beantwortung gesellschaftlich relevanter Zukunftsfragen.</h2> - - Diese bearbeiten wir durch Forschungs-, Innovations- und Transferprojekte und entwickeln dabei anwendungsbezogene Lösungen. - Als Impulsgeber ermöglichen wir den Transfer innovativer Ideen, indem wir Kooperationen fördern und Räume für kreativen Austausch schaffen. - <br/> - Dabei verknüpfen wir unsere Expertise mit Partnern innerhalb und außerhalb der Region Stuttgart. Wir informieren und involvieren Interessierte und Beteiligte durch die unterschiedlichsten Events und Formate. - <br/> - <h2>Willst du dabei sein?</h2> - - Dann findest du unter <span onclick="event.stopPropagation();hint_navbar('0')" ><i class="fas fa-chevron-right"></i> Informationen</span> mehr über unsere Expertise, Projekte, Publikationen und Lösungen. - <br/> - Erfahre mehr über unsere <span onclick="event.stopPropagation();hint_navbar('2')" ><i class="fas fa-chevron-right"></i> Events</span> und über die Möglichkeiten zur <span onclick="event.stopPropagation();hint_navbar('1')" ><i class="fas fa-chevron-right"></i> Zusammenarbeit</span>. - </p> - </div> - </div> - - - <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel" style="flex-basis: 50%" style="flex-grow: 1"> - <ol class="carousel-indicators"> - <li data-target="#carouselExampleIndicators" data-slide-to="0"></li> - <li data-target="#carouselExampleIndicators" data-slide-to="1" class="active"></li> - <li data-target="#carouselExampleIndicators" data-slide-to="2"></li> - </ol> - <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev"> - <i class="fas fa-chevron-left"></i> - <!-- <span class="carousel-control-prev-icon" aria-hidden="true"></span>--> - <span class="sr-only">Previous</span> - </a> - <div class="carousel-inner" role="listbox"> - <div class="carousel-item"> - <img class="d-block w-100" src="/images/3DModell_Wermelskirchen_Startseite.jpg" alt="First slide"> - <div id="Bildunterschrift-slide1" class="Bildunterschrift"> - <br> - <p><a href="/projectoverview?projectID=3" ><i class="fas fa-chevron-right"></i> AG Qualität zur Definition von 3D-Stadtmodellen</a></p>  - </div> - </div> - <div class="carousel-item active"> - <img class="d-block w-100" src="/images/M4_LAB_Vision.gif" alt="Second slide"> - <div id="Bildunterschrift-slide2" class="Bildunterschrift"> - <br> - <p><a href="/projectoverview?projectID=1" ><i class="fas fa-chevron-right"></i> Innovationslabor M4_LAB</a></p>  - </div> - </div> - <div class="carousel-item"> - <img class="d-block w-100" src="/images/SmartPollen_Projekt/SmartPollenM2GIF.gif" alt="Third slide"> - <div id="Bildunterschrift-slide3" class="Bildunterschrift"> - <br> - <p><a href="/projectoverview?projectID=2" ><i class="fas fa-chevron-right"></i> Studierendenprojekt Smart-Pollen</a></p>  - </div> - </div> - </div> - <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next"> - <i class="fas fa-chevron-right"></i> - <!-- <span class="carousel-control-next-icon" aria-hidden="true"></span>--> - <span class="sr-only">Next</span> - </a> - </div> - - </div> \ No newline at end of file diff --git a/views/DE/project/landingpage.pug b/views/DE/project/landingpage.pug deleted file mode 100644 index 5aaf31a5..00000000 --- a/views/DE/project/landingpage.pug +++ /dev/null @@ -1,24 +0,0 @@ -doctype html -html(lang="de") - head - title= "Project List" - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") - link(rel="stylesheet", type="text/css", href="/css/m4lab.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - - body - include landingpage.html - - - // jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - if isUserAuthenticated - script(src="/js/headfootLogout.js") - else - script(src="/js/headfoot.js") \ No newline at end of file diff --git a/views/DE/project/mailinglists.pug b/views/DE/project/mailinglists.pug deleted file mode 100644 index bf3c747b..00000000 --- a/views/DE/project/mailinglists.pug +++ /dev/null @@ -1,79 +0,0 @@ -html(lang="de") - head - title= "Mailinglisten" - meta(charset="UTF-8") - meta(name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") - link(rel="stylesheet", type="text/css", href="/css/m4lab.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - link(rel="stylesheet" href="/fonts/ionicons.min.css") - link(rel="stylesheet" href="/css/Testimonials.css") - body - div(class="container") - div(class="row") - div(class="col-md-12" style="margin-bottom: 40px;") - img(class="mx-auto" src="/img/Mailinglisten.jpg" width="100%") - div(class="container") - div(class="row") - div(class="col-md-12" style="margin-bottom: 30px;") - h4(class="text-center") Durch Mailinglisten können Sie interessierten Personen<br/> <strong>regelmäßig Informationen</strong> zu Ihrem Projekt oder Thema zukommen lassen.<br/> Ebenso können Sie über ein Abonnement in einer Mailingliste Mitglied des Verteilers<br/>werden und so <strong>im Austausch</strong> bleiben. <br/> - div(class="col-md-12" style="margin-bottom: 30px;") - h2(class="text-center" style="color: #708090;") <strong>Aktive Mailinglisten</strong> - div(class="table-responsive table-borderless") - table(class="table table-striped table-bordered table-hover") - thead() - tr() - th Name - th Zum Abonnement der Mailingliste - th Zum zugehörigen Projekt - th Keywords - tbody() - for item in mailinglists - if item.projectstatus == '1' - tr - td #{item.name} - td <a href="#{item.src}">#{item.src}</a> - td <a href='projectoverview?projectID=#{item.id}'>#{item.project_title}</a> - td #{item.keywords} - div(id="aboText" style="background-color: #dadada;margin-top: 40px;") - div(class="container") - div(class="row" style="margin-bottom: 0;padding-top: 20px;padding-bottom: 20px;") - div(class="col-lg-12" style="background-color: #ffffff;") - h2(class="text-center" style="color: #708090;margin-top: 15px;") <strong> Mailingliste abonnieren </strong> - div(class="col-md-4 col-lg-6" style="background-color: #ffffff;") - p() Das Deutsche Forschungsnetz (DFN) bietet Mailinglisten für Wissenschaft und Forschung an. Mailinglisten sind E-Mail-Verteilerlisten, d.h. Personen, die sich für Ihr Forschungsthema interessieren, können sich über das DFN registrieren und erhalten im Anschluss daran regelmäßig die über die Mailinglisten geteilten Informationen. - p() Sie als Verteiler senden die zu versendende Mail folglich nur noch an die festgelegte Mailinglistenadresse und das Programm leitet die Nachricht an alle registrierten Personen weiter. - div(class="col-md-4 col-lg-6 justify-content-between flex-wrap" style="background-color: #ffffff;") - div(class="justify-content-between order-2" style="background-color: rgba(255,255,255,0);") - p(class="text-left d-flex d-md-flex flex-row flex-grow-1 flex-shrink-1 flex-fill justify-content-between align-items-start align-content-start align-self-start flex-wrap order-1 justify-content-md-center align-items-md-start justify-content-lg-start") Oben finden Sie eine Ãœbersicht über die aktiven Mailinglisten. Wenn Sie sich in eine Mailingliste eintragen wollen, dann klicken Sie auf den entsprechend hinterlegten Link. - p() Es öffnet sich daraufhin die Hauptseite der Liste. Nach der Auswahl des Buttons "Abonnieren", können Sie Ihre Mailadresse hinterlegen und sich in die Liste eintragen. - a(class="btn btn-primary text-center d-inline-flex d-lg-flex flex-column flex-grow-1 flex-shrink-1 flex-fill justify-content-between align-items-baseline align-content-center align-self-baseline flex-wrap order-3 justify-content-md-center align-items-md-end align-items-lg-center justify-content-xl-center mx-auto" role="button" style="background-color: #E0001B; margin-top:10px; margin-bottom:10px;" href="/downloads/Handout_Mailinglisten_Abonnieren.pdf") <strong>Erste Schritte (Anleitung als PDF)</strong> - a(class="btn btn-primary text-center d-inline-flex d-lg-flex flex-column flex-grow-1 flex-shrink-1 flex-fill justify-content-between align-items-baseline align-content-center align-self-baseline flex-wrap mb-auto justify-content-md-center align-items-md-end align-items-lg-center justify-content-xl-center mx-auto" role="button" style="background-color: #E0001B;" href="https://www.listserv.dfn.de/sympa/help") <strong>Weitergehende Dokumentation bei DFN (externer Link)</strong> - - div(id="newListText" style="background-color: #dadada;margin-top: 0px;") - div(class="container") - div(class="row" style="margin-bottom: 0;padding-top: 20px;padding-bottom: 20px;") - div(class="col-lg-12" style="background-color: #ffffff;") - h2(class="text-center" style="color: #708090;margin-top: 15px;") <strong>Neue Mailingliste erstellen</strong> - div(class="col-md-4 col-lg-6" style="background-color: #ffffff;") - p() Ãœber das Transferportal können Sie selbst eine Liste zu Ihrem Projekt anlegen, um mit Ihren Partnern in Verbindung zu bleiben. - p() Folgen Sie hierzu der Anleitung des DFN. - - div(class="col-md-4 col-lg-6 justify-content-between flex-wrap" style="background-color: #ffffff;") - a(class="btn btn-primary text-center d-inline-flex d-lg-flex flex-column flex-grow-1 flex-shrink-1 flex-fill justify-content-between align-items-baseline align-content-center align-self-baseline flex-wrap order-3 justify-content-md-center align-items-md-end align-items-lg-center justify-content-xl-center mx-auto" role="button" style="background-color: #E0001B; margin-top:10px; margin-top:10px;" href="/downloads/Handout_Mailinglisten_Erstellen.pdf") <strong>Erste Schritte (Anleitung als PDF)</strong> - a(class="btn btn-primary text-center d-inline-flex d-lg-flex flex-column flex-grow-1 flex-shrink-1 flex-fill justify-content-between align-items-baseline align-content-center align-self-baseline flex-wrap order-3 justify-content-md-center align-items-md-end align-items-lg-center justify-content-xl-center mx-auto" role="button" style="background-color: #E0001B; margin-top:10px; margin-top:10px;" href="https://www.listserv.dfn.de/sympa/help/admin") <strong>Gesamtes Tutorial bei DFN (externer Link)</strong> - - div(id="addListText" style="background-color: #dadada;margin-top: 0px;") - div(class="container") - div(class="row" style="margin-bottom: 0;padding-top: 20px;padding-bottom: 20px;") - div(class="col-lg-12" style="background-color: #ffffff;") - h2(class="text-center" style="color: #708090;margin-top: 15px;") <strong>Neue Mailingliste eintragen</strong> - div(class="col-xl" style="background-color: #ffffff;") - p() Um Ihre beim DFN angelegte Mailingliste hier aufzunehmen, schicken Sie uns bitte eine Email an <a href="mailto:support-transfer@hft-stuttgart.de">support-transfer@hft-stuttgart.de</a> - // jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - script(src="/js/headfoot.js") \ No newline at end of file diff --git a/views/DE/project/project-simplified.pug b/views/DE/project/project-simplified.pug deleted file mode 100644 index 5219c290..00000000 --- a/views/DE/project/project-simplified.pug +++ /dev/null @@ -1,52 +0,0 @@ -doctype html -html(lang="de") - head - title= "Project List" - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") - link(rel="stylesheet", type="text/css", href="/css/m4lab.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .help .card-title > a:before { - float: right !important; - content: "-"; - padding-right: 5px; - } - .help .card-title > a.collapsed:before { - float: right !important; - content: "+"; - } - .help h3 > a { - color: #708090; - text-decoration: none; - display: block; - } - .help a { - display: inline; - } - .help .card > .card-header { - color: #fff; - } - .card-title { - margin-bottom: 0.5rem; - margin-top: 0.5rem; - } - #infoicon { - color: #708090; - } - .heading { - color: #708090; - } - body - include project.html - - - // jQuery - - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - script(src="/js/headfoot.js") diff --git a/views/DE/project/project.html b/views/DE/project/project.html deleted file mode 100644 index 73cd0ee5..00000000 --- a/views/DE/project/project.html +++ /dev/null @@ -1,220 +0,0 @@ -<div> - <div class="container"> - <div class="row"> - <div class="col-md-12" style="margin-bottom: 40px;"><img class="mx-auto" src="/img/Projekte.png" - width="100%"></div> - </div> - </div> -</div> -<div> - <div class="container"> - <div class="row"> - <div class="col-md-12" style="margin-bottom: 30px;"> - <h4 class="text-center">Diese Seite bietet den Einstieg zu den Inhalten der unterschiedlichen Projekte, - die über das Portal zur Verfügung gestellt werden.</h4> - </div> - </div> - </div> -</div> -<div> - <div class="container"> - <div class="row"> - <div class="col-lg-1"></div> - <div class="col-md-6 col-lg-4" style="padding-right: 5px;padding-left: 5px;"> - <img class="d-flex d-lg-flex justify-content-center align-items-center align-content-center align-self-center mx-auto" - src="/img/Icon_Haken.png" height="150" /> - <br /> - <h2 class="text-center heading"><small><strong>Open-Source-/Open-Data-Projekte</strong></small><br></h2> - <p class="text-left">Für die Veröffentlichung von Open-Source-Projekten steht Ihnen eine von der HFT - Stuttgart selbstverwaltete Gitlab-Instanz bereit. - <br /> <br /> - Eine Ãœbersicht der aktuellen Open-Source-/Open-Data-Projekte erreichen Sie über diesen <a - href="https://transfer.hft-stuttgart.de/gitlab/explore/projects"> - <i class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>.<br /> - </p> - </div> - <div class="col-lg-2"></div> - <div class="col-md-6 col-lg-4" style="padding-right: 5px;padding-left: 5px;"> - <img src="/img/Icon_Sandclock.png" - class="d-flex d-lg-flex justify-content-center align-items-center align-content-center align-self-center mx-auto" - height="150px" /> - <br /> - <h2 class="text-center heading"><small><strong>Andere Projekte</strong></small><br></h2> - <p class="text-left">Aktuell unterstützt das Transferportal Projekte, die einer Open-Source bzw. - Open-Data-Lizenz - unterliegen. Die Gründe hierfür liegen in den Lizenzbedingungen unserer Gitlab-Instanz als - Plattform. - <br /> <br /> - Künftig möchten wir auch andere Projekttypen unterstützen. Es soll dann beispielsweise möglich sein, - Projektergebnisse zu veröffentlichen ohne die dazugehörigen Quellcodes oder Rohdaten offenzulegen. - <br /> <br /> - Wir entwickeln das Portal kontinuierlich weiter und prüfen dabei auch andere Plattformen zur - Nutzung. - </p> - </div> - <div class="col-lg-1"></div> - </div> - <hr /> - <!-- text: Zweck dieser Seite / purpose of this page --> - <div> - <p class="text-justify"><i id="infoicon" class="fas fa-info-circle fa-lg"></i> Falls Sie mehr über die - Weiterentwicklung des Portals - erfahren wollen oder sich mit Anregungen auch aktiv einbringen - wollen, regen wir an, unsere Mailingliste <a href="https://www.listserv.dfn.de/sympa/info/transferportalhft"> - <i class="fas fa-chevron-right">transferportalhft</i></a> zu abonnieren. Sie können uns aber auch - jederzeit - direkt unter <a href="/account/contact"><i class="fas fa-chevron-right">Kontakt</i></a> anschreiben. - </p> - </div> - </div> -</div> - - - - - - -<div class="container"> - <!-- text: Hilfestellung zu Gitlab / short help about Gitlab --> - <hr /> - - <h2 class="text-center heading"><small><strong>Hilfestellung zu GitLab</strong></small></h2> - - <br /> - - <div class="help"> - <div class="card"> - <div class="card-header"> - <h3 class="card-title"> - <a class="collapsed" data-toggle="collapse" href="#collapse1" aria-expanded="false" - aria-controls="collapse1"> - <small>Möchten Sie die Projektinhalte ansehen oder herunterladen?</small></a> - </h3> - </div> - <div id="collapse1" class="card-body collapse"> - <p> - Dann klicken Sie auf diesen - <a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects"><i - class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a> - um die Liste aller im Gitlab erfassten Projekte zu sehen. Vor dort können Sie dann auf die einzelnen - Projekte zugreifen. - Ein Anmelden am Portal ist dazu nicht nötig. - </p> - </div> - </div> - - <br /> - - <div class="card"> - <div class="card-header"> - <h3 class="card-title"> - <a class="collapsed" data-toggle="collapse" href="#collapse2" aria-expanded="false" - aria-controls="collapse2"> - <small>Möchten Sie zu einem Projekt beitragen?</small></a> - </h3> - </div> - <div id="collapse2" class="card-body collapse"> - <p> - Sie können mittels Issues dem Projekteigentümer eine Rückmeldung geben bzw. einen Fehler melden. - Darüberhinaus können Sie sich auch aktiv beteiligen. Dazu müssen Sie im Portal als Nutzer - registriert sein. - </p> - <p> - Wenn Sie noch kein Benutzerkonto haben, klicken Sie bitte oben auf den Link Benutzerkonto und folgen - Sie dem System durch die Registrierungsprozedur. - </p> - <p> - Haben Sie ein Benutzerkonto, befolgen Sie bitte folgende Schritte: - </p> - <ol> - <li> - Folgen Sie dem <a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects"> - <i class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>, um zum Gitlab zu - gelangen. - </li> - <li> - Melden Sie sich bei Gitlab an, indem Sie im Gitlab auf den Link Sign-In klicken. - </li> - <li> - Sie werden dann auf eine Anmeldeseite von unserem Portal geführt. Geben Sie dort bitte ihre - Benutzerdaten vom Portal ein. - </li> - <li> - Nach erfolgreichem Anmelden werden Sie zum Gitlab zurückgeführt. - </li> - <li> - Navigieren Sie dann zum Projekt Ihrer Wahl. - </li> - <li> - Abhängig davon wie der Projekteigentümer das Projekt konfiguriert hat, können Sie entweder - direkt loslegen, oder Sie müssen zunächst noch beim Projekteigentümer Zugang zum Projekt - anfragen, indem Sie im Gitlab bei der entsprechende Projektseite auf den Link Request Access - klicken. - </li> - </ol> - </div> - </div> - - <br /> - - <div class="card"> - <div class="card-header"> - <h3 class="card-title"> - <a class="collapsed" data-toggle="collapse" href="#collapse3" aria-expanded="false" - aria-controls="collapse3"> - <small>Möchten Sie selbst ein Projekt anlegen, um es der Öffentlichkeit - bereitzustellen?</small></a> - </h3> - </div> - <div id="collapse3" class="card-body collapse"> - <p> - Vorraussetzung dazu ist, dass Sie aktives oder ehemaliges Mitglied der Hochschule für Technik sind, - d.h. eine (noch) gültige HFT-Emailadresse haben, und zudem im Portal als Nutzer registriert sein. - </p> - <p> - Wenn Sie noch kein Benutzerkonto haben, klicken Sie bitte oben auf den Link Benutzerkonto und folgen - Sie dem System durch die Registrierungsprozedur. - </p> - <p> - Haben Sie ein Benutzerkonto, befolgen Sie bitte folgende Schritte: - </p> - <ol> - <li> - Folgen Sie dem <a href="https://transfer.hft-stuttgart.de/gitlab/explore/projects"> - <i class="fas fa-chevron-right">Link zu den Gitlab-Projekten</i></a>, um zum Gitlab zu - gelangen. - </li> - <li> - Melden Sie sich bei Gitlab an, indem Sie im Gitlab auf den Link Sign-In klicken. - </li> - <li> - Sie werden dann auf eine Anmeldeseite von unserem Portal geführt. Geben Sie dort bitte ihre - Benutzerdaten vom Portal ein. - </li> - <li> - Nach erfolgreichem Anmelden werden Sie zum Gitlab zurückgeführt. - </li> - <li> - Erstellen Sie dann in Gitlab ein neues Projekt durch Klicken auf den grünen New Project-Knopf - und anschließendem Befolgen der Eingabemaske von Gitlab. - </li> - </ol> - <p> - Weitere Hilfestellung zum Anlegen von Projekten in Gitlab finden Sie in der <a - href="https://docs.gitlab.com/ee/gitlab-basics/create-project.html" - target="_blank">Gitlab-Dokumentation</a>. - </p> - <p> - Hinweis: Um Inhalte zum Gitlab "pushen" zu können, verwendet die Gitlab-Instanz unseres Portals die - s.g. "SSH Keys". - Weitere Informationen dazu finden Sie in der <a - href="https://transfer.hft-stuttgart.de/gitlab/help/ssh/README" target="_blank"> - <i class="fas fa-chevron-right">Gitlab-Dokumentation zu SSH Keys</i></a>. - </p> - </div> - </div> - </div> - - <hr /> - <!-- / content body --> -</div> \ No newline at end of file diff --git a/views/DE/project/projectOverview.pug b/views/DE/project/projectOverview.pug deleted file mode 100644 index 8c9ab406..00000000 --- a/views/DE/project/projectOverview.pug +++ /dev/null @@ -1,135 +0,0 @@ -doctype html -html(lang="de") - head - title= "Project List" - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") - link(rel="stylesheet", type="text/css", href="/css/m4lab.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - - body - div(class="container") - for project in projectOV - div(class="row") - div(class="col-sm-8 pt-3") - h1 #{project.title} - div(style="float:right; margin-left:30px; margin-bottom:0px; width:50%;") - img(src=project.src, width="100%") - p(style="text-align:right") #{project.caption} - - h2(class="pt-4") Projektüberblick - p !{project.overview} - br - b keywords: - span #{project.keywords} - h2(class="pt-4") Fragestellung - p !{project.question} - h2(class="pt-4") Vorgehensweise - p !{project.approach} - h2(class="pt-4") Ergebnis und Nutzung - p !{project.result} - div(class="col-sm-4 pt-3" style="background-color: #f1f1f1") - for image in projectImgs - if image.pos == '2' || image.pos == '3' - div(class="projectimg") - <img src="#{image.src}", width="100%"> - if image.caption - span #{image.caption} - </img> - - div(class="fakeimg") - if project.leader_lastname - p - b Projektleitung HfT: - <a href="mailto: #{project.leader_email}">#{project.leader_lastname}</a> - div(class="fakeimg") - if project.contact_lastname - p - b Ansprechperson: - <a href="mailto: #{project.contact_email}">#{project.contact_lastname} </a> - div(class="fakeimg") - if project.announcement - p - b Ausschreibung: - span !{project.announcement} - - div(class="fakeimg") - if project.partner_name - p - b Projektpartner: - br - for website, i in partnerWS - if website - <a href="#{website}">#{partnerN[i]}</a> - br - else - #{partnerN[i]} - br - - div(class="fakeimg") - if project.term - p - b Projektlaufzeit: - span #{project.term} - - div(class="fakeimg") - if project.award_name - p - b Preise: - br - for awardsite, i in awardWS - if awardsite - <a href="#{awardsite}">#{awardN[i]}</a> - br - else - #{awardN[i]} - br - - div(class="fakeimg") - if project.administrator - p - b Projektträger: - span #{project.administrator} - - div(class="fakeimg") - if project.sponsor_name - p - b Geldgeber: - br - for website, i in sponsorWS - if website - <a href="#{website}">#{sponsorN[i]}</a> - br - else - #{sponsorN[i]} - br - - div(class="fakeimg") - if project.website || project.further_details - p - b Mehr Informationen: - if project.website - <a href="#{project.website}">#{project.website}</a> - br - span !{project.further_details} - - if project.pname == 'M4LAB' - div(class="Downloads" style="height:200px;") - h5 Downloads - - div(class="Projektlogos") - img(src="./images/M4_LAB_Projekt/WRS_Logo.jpg" width="32%") - img(src="./images/M4_LAB_Projekt/IBA2027_Logo.jpg" width="32%") - img(src="./images/M4_LAB_Projekt/GWK_Logo.jpg" width="32%") - br - br - img(src="./images/M4_LAB_Projekt/Innovative_Hochschule_Initiative_BMBF_GWK_RGB.png" width="100%") - - //jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - script(src="/js/headfoot.js") \ No newline at end of file diff --git a/views/DE/project/projects.pug b/views/DE/project/projects.pug deleted file mode 100644 index 44748f8a..00000000 --- a/views/DE/project/projects.pug +++ /dev/null @@ -1,91 +0,0 @@ -doctype html -html(lang="de") - head - title= "Project List" - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") - link(rel="stylesheet", type="text/css", href="/css/m4lab.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - - body - div(class="container-fluid") - if isUserAuthenticated - p Auf dieser Seite sehen Sie die Liste der über dieses Portal veröffentlichten Projekte. - a(href="/addprojectoverview" class="btn btn-primary" role="button" aria-pressed="true") Projekt anlegen - else - p Auf dieser Seite sehen Sie die Liste der über dieses Portal veröffentlichten Projekte. - p Möchten Sie ein neues Projekt anlegen, dann klicken Sie bitte auf #[a(href="/addprojectoverview") Anmelden und Projekt anlegen] - if successes - for success in successes - div.alert.alert-success.alert-dismissible #{ success } - a(class="close", href="#", data-dismiss="alert", aria-label="close") × - // Active projects - h3(class="mb-3 font-weight-bold") Aktive Projekte - table(class="table table-striped") - thead - tr - th Logo - th Akronym - th Title - th Kernziel - th Kategorie - th Ansprechpartner - th Projektinhalte - tbody - for item in active - tr - //td #{item.status} - td - img(src=item.logo, width="40", height="40") - td #{item.akronym} - td #{item.title} - td #{item.summary} - td #{item.category} - td #[a(class="nav-link", href="mailto:"+ item.cp) #{item.cp}] - td #[a(class="nav-link", href="https://m4lab.hft-stuttgart.de/projectoverview?projectID="+item.id) Zur Projektübersicht] - if item.gitlab - a(class="nav-link", href="https://transfer.hft-stuttgart.de/gitlab/"+item.gitlab+"/tree/master") Projektdateien - a(class="nav-link", href="https://transfer.hft-stuttgart.de/gitlab/"+item.gitlab+"/wikis/home") Projektwiki - else - a(class="nav-link", href="#") Projektdateien - a(class="nav-link", href="#") Projektwiki - br - // Non-active projects - h3(class="mb-3 font-weight-bold") Abgeschlossene Projekte - table(class="table table-striped") - thead - tr - th Logo - th Akronym - th Title - th Kernziel - th Kategorie - th Ansprechpartner - th Projektinhalte - tbody - for item in nonActive - tr - //td #{item.status} - td - img(src=item.logo, width="40", height="40") - td #{item.akronym} - td #{item.title} - td #{item.summary} - td #{item.category} - td #[a(class="nav-link", href="mailto:"+ item.cp) #{item.cp}] - td #[a(class="nav-link", href="https://m4lab.hft-stuttgart.de/projectoverview?projectID="+item.id) Zur Projektübersicht] - if item.gitlab - a(class="nav-link", href="https://transfer.hft-stuttgart.de/gitlab/"+item.gitlab+"/tree/master") Projektdateien - a(class="nav-link", href="https://transfer.hft-stuttgart.de/gitlab/"+item.gitlab+"/wikis/home") Projektwiki - else - a(class="nav-link", href="#") Projektdateien - a(class="nav-link", href="#") Projektwiki - - // jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - script(src="/js/headfoot.js") \ No newline at end of file diff --git a/views/DE/project/videoconferences.pug b/views/DE/project/videoconferences.pug deleted file mode 100644 index de48a2a4..00000000 --- a/views/DE/project/videoconferences.pug +++ /dev/null @@ -1,43 +0,0 @@ -doctype html -html(lang="de") - head - title= "Project List" - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css") - link(rel="stylesheet", type="text/css", href="/css/m4lab.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - body - div(class="flex-container") - div(class="main") - h1 Videokonferenzen - - p Wir bieten grundsätzlich zwei Möglichkeiten an, Viodeokonferenzen abzuhalten: - - h2 Jitsi - - p - <a href="https://jitsi.org">Jitsi</a> ist ein Opensource Videokonferenz-System, welches es ermöglicht, direkt über den Browser Videokonferenzen abzuhalten. - br - span Da die Hauptlast bei diesem System Clientseitig getragen wird, raten wir zu einer Nutzung auf Desktopsystemen bzw. Laptops. - - p Um eine Videokonferenz starten zu können, muss sich zunächst ein Organisator am Portal anmelden und die Videokonferenz eröffnen. Weitere Teilnehmer können dann ohne Anmeldung einfach über einen Link hinzugefügt werden. - - p Der Zugang zu Jitsi findet sich <a href="https://telemeeting.hft-stuttgart.de">hier</a> - - h2 GoToMeeting - - p Eine weitere Option, die wir anbieten werden, ist die Organisation von Videokonferenzen via GoToMeeting - - p Mehr Informationen darüber erhalten Sie zu gegebener Zeit an dieser Stelle - - - - - //jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - script(src="/js/headfoot.js") \ No newline at end of file diff --git a/views/EN/error.pug b/views/EN/error.pug deleted file mode 100644 index bf750c00..00000000 --- a/views/EN/error.pug +++ /dev/null @@ -1,6 +0,0 @@ -html - head - title Error - body - h1 An error occurred! - block content \ No newline at end of file diff --git a/views/EN/layout.pug b/views/EN/layout.pug deleted file mode 100644 index 32d27e01..00000000 --- a/views/EN/layout.pug +++ /dev/null @@ -1,12 +0,0 @@ -doctype html -html - head - title PassportJS SAML example - block links - link(rel='stylesheet', href='bower_components/bootstrap/dist/css/bootstrap.css') - body - div.container - block content - script(src='bower_components/jquery/dist/jquery.min.js') - script(src='bower_components/bootstrap/dist/js/bootstrap.min.js') - block scripts diff --git a/views/EN/project/addProjectOverview.pug b/views/EN/project/addProjectOverview.pug deleted file mode 100644 index d0a4b0eb..00000000 --- a/views/EN/project/addProjectOverview.pug +++ /dev/null @@ -1,115 +0,0 @@ -doctype html -html(lang="de") - head - title= "Add Project Overview" - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } - .warning { - color: red; - font-size: 11px; - } - body - div(class="container-fluid") - div(class="row") - div(class="col-md-6 offset-md-2") - h4(class="mb-3 font-weight-bold") Neues Projekt - div(class="col-md-6 offset-md-3") - if errors - for error, i in errors - div.alert.alert-danger.alert-dismissible.fade.show #{ error } - a(class="close", href="#", data-dismiss="alert", aria-label="close") × - form(method="POST") - div(class='form-row') - div(class='form-group col-md-12') - input#inputPname(name="pname" class="form-control" type="text" placeholder="human-readable short project name*" required) - div(class="form-group col-md-12") - input#inputTitle(name="title" class="form-control" type="text" placeholder="official title of the project*" required) - div(class="form-group col-md-12") - input#inputSummary(name="summary" class="form-control" type="text" placeholder="one line summary of the project") - div(class="form-group col-md-12") - input#inputCategory(name="category" class="form-control" type="text" placeholder="category of the project") - div(class="form-group col-md-12") - input#inputLogo(name="logo" class="form-control" type="text" placeholder="official logo of the project") - div(class="form-group col-md-12") - div(class="input-group mb-3") - input#inputGitlabURL(name="gitlabURL" type="text" class="form-control" placeholder="M4_LAB GitLab Project URL, z.B. https://transfer.hft-stuttgart.de/gitlab/username/projectname") - div(class="input-group-prepend") - div(class="input-group-text") - input#inputWiki(name="wiki" type="checkbox") - | Wiki - - h5(class="mb-3 font-weight-bold") Content - div(class='form-row') - div(class='form-group col-md-12') - textarea#inputOverview(name="overview" class="form-control" type="text" rows="5" placeholder="overview") - div(class="form-group col-md-12") - textarea#inputQuestion(name="question" class="form-control" type="text" rows="5" placeholder="question") - div(class='form-group col-md-12') - textarea#inputApproach(name="approach" class="form-control" type="text" rows="5" placeholder="approach") - div(class="form-group col-md-12") - textarea#inputResult(name="result" class="form-control" type="text" rows="5" placeholder="result") - div(class="form-group col-md-12") - input#inputKeywords(name="keywords" class="form-control" type="text" placeholder="keywords") - h5(class="mb-3 font-weight-bold") Info - div(class='form-row') - div(class='form-group col-md-12') - textarea#inputAnnouncement(name="announcement" class="form-control" type="text" rows="5" placeholder="Ausschreibung") - div(class="form-group col-md-12") - input#inputTerm(name="term" class="form-control" type="text" placeholder="Laufzeit") - div(class='form-group col-md-12') - textarea#inputFurtherDetails(name="furtherDetails" class="form-control" type="text" rows="5" placeholder="Mehr informationen") - div(class="form-group col-md-12") - input#inputWebsite(name="website" class="form-control" type="text" placeholder="website") - h5(class="mb-3 font-weight-bold") Images - div(class='form-row') - div(class="form-group col-md-12") - input#inputSrc(name="src" class="form-control" type="text" placeholder="link to the image source") - div(class="form-group col-md-12") - input#inputCaption(name="caption" class="form-control" type="text" placeholder="caption of the image") - h5(class="mb-3 font-weight-bold") Contact - div(class='form-row') - div(class="form-group col-md-4") - input#inputContactFirstname(name="contactFirstname" class="form-control" type="text" placeholder="contact firstname") - div(class="form-group col-md-4") - input#inputContactLastname(name="contactLastname" class="form-control" type="text" placeholder="contact lastname") - div(class="form-group col-md-4") - input#inputContactEmail(name="contactEmail" class="form-control" type="email" placeholder="contact email") - div(class="form-group col-md-4") - input#inputLeaderFirstname(name="leaderFirstname" class="form-control" type="text" placeholder="leader firstname") - div(class="form-group col-md-4") - input#inputLeaderLastname(name="leaderLastname" class="form-control" type="text" placeholder="leader lastname") - div(class="form-group col-md-4") - input#inputLeaderEmail(name="leaderEmail" class="form-control" type="email" placeholder="leader email") - p <em><small>* Pflichtfeld</small></em> - input#submitBtn(type="submit", class="btn btn-outline-dark btn-block", value="Projekt Anlegen") - - // jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - script(src="/js/headfootLogout.js") \ No newline at end of file diff --git a/views/EN/project/mailinglists.pug b/views/EN/project/mailinglists.pug deleted file mode 100644 index fdc0ef23..00000000 --- a/views/EN/project/mailinglists.pug +++ /dev/null @@ -1,61 +0,0 @@ -html(lang="en") - head - title= "Mailinglisten" - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } - body - <hr /> - div() - h5(align="left") Aktive Mailinglisten - div(class="flex-container" style="align-items:flex-start") - div(class="table") - table(border="0" id="listtable" class="table table-striped") - thead - tr - th Name - th Link - th zugeh. Projekt - tbody - for item in mailinglists - if item.projectstatus == '1' - tr - td #{item.name} - td <a href="#{item.src}">#{item.src}</a> - td <a href='projectoverview?projectID=#{item.id}'>#{item.project_title}</a> - <hr /> - div() - h5(align="left") Eintragung in Mailingliste - p() Wenn Sie sich in eine Mailingliste eintragen wollen, folgen Sie folgender Anleitung: - // jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - if isUserAuthenticated - script(src="/js/headfootLogout.js") - else - script(src="https://transfer.hft-stuttgart.de/js/headfoot.js") \ No newline at end of file diff --git a/views/EN/project/projects.pug b/views/EN/project/projects.pug deleted file mode 100644 index f1ecc579..00000000 --- a/views/EN/project/projects.pug +++ /dev/null @@ -1,117 +0,0 @@ -doctype html -html(lang="de") - head - title= "Project List" - meta(charset="UTF-8") - meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") - link(rel="stylesheet", type="text/css", href="/css/bootstrap.css") - link(rel="stylesheet", href="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous") - style. - .collapse { - display: none; - } - .collapse.in { - display: block; - } - .collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height,visibility; - -o-transition-property: height,visibility; - transition-property: height,visibility; - } - .warning { - color: red; - font-size: 11px; - } - body - div(class="container-fluid") - if isUserAuthenticated - p Auf dieser Seite sehen Sie die Liste der über dieses Portal veröffentlichten Projekte. - a(href="/addprojectoverview" class="btn btn-primary" role="button" aria-pressed="true") Projekt anlegen - else - p Auf dieser Seite sehen Sie die Liste der über dieses Portal veröffentlichten Projekte. - p Möchten Sie ein neues Projekt anlegen, dann klicken Sie bitte auf #[a(href="/addprojectoverview") Anmelden und Projekt anlegen] - if successes - for success in successes - div.alert.alert-success.alert-dismissible #{ success } - a(class="close", href="#", data-dismiss="alert", aria-label="close") × - // Active projects - h3(class="mb-3 font-weight-bold") Aktive Projekte - table(class="table table-striped") - thead - tr - th Logo - th Akronym - th Title - th Kernziel - th Kategorie - th Ansprechpartner - th Projektinhalte - tbody - for item in active - tr - //td #{item.status} - td - img(src=item.logo, width="40", height="40") - td #{item.akronym} - td #{item.title} - td #{item.summary} - td #{item.category} - td #[a(class="nav-link", href="mailto:"+ item.cp) #{item.cp}] - td #[a(class="nav-link", href="https://m4lab.hft-stuttgart.de/projectoverview?projectID="+item.id) Zur Projektübersicht] - if item.gitlab - a(class="nav-link", href=item.gitlab+"/tree/master") Projektdateien - a(class="nav-link", href=item.gitlab+"/wikis/home") Projektwiki - else - a(class="nav-link", href="#") Projektdateien - a(class="nav-link", href="#") Projektwiki - br - // Non-active projects - h3(class="mb-3 font-weight-bold") Abgeschlossene Projekte - table(class="table table-striped") - thead - tr - th Logo - th Akronym - th Title - th Kernziel - th Kategorie - th Ansprechpartner - th Projektinhalte - tbody - for item in nonActive - tr - //td #{item.status} - td - img(src=item.logo, width="40", height="40") - td #{item.akronym} - td #{item.title} - td #{item.summary} - td #{item.category} - td #[a(class="nav-link", href="mailto:"+ item.cp) #{item.cp}] - td #[a(class="nav-link", href="https://m4lab.hft-stuttgart.de/projectoverview?projectID="+item.id) Zur Projektübersicht] - if item.gitlab - a(class="nav-link", href="https://transfer.hft-stuttgart.de/gitlab/"+item.gitlab+"/tree/master") Projektdateien - a(class="nav-link", href="https://transfer.hft-stuttgart.de/gitlab/"+item.gitlab+"/wikis/home") Projektwiki - else - a(class="nav-link", href="#") Projektdateien - a(class="nav-link", href="#") Projektwiki - - // jQuery - script(src="https://code.jquery.com/jquery-3.3.1.min.js") - script(src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js", integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1", crossorigin="anonymous") - // Bootstrap - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous") - // Header - if isUserAuthenticated - script(src="/js/headfootLogout.js") - else - script(src="https://transfer.hft-stuttgart.de/js/headfoot.js") \ No newline at end of file -- GitLab From b98aacea02537aeea656146b22f54ab853f56e43 Mon Sep 17 00:00:00 2001 From: sanny <rosanny.sihombing@hft-stuttgart.de> Date: Wed, 15 Jul 2020 12:15:17 +0200 Subject: [PATCH 33/40] remove lines that has been moved to "Project Page" project --- app.js | 1 - routes/methods.js | 33 --------------------------------- 2 files changed, 34 deletions(-) diff --git a/app.js b/app.js index 3e4b3a6f..f03f1c29 100644 --- a/app.js +++ b/app.js @@ -69,7 +69,6 @@ app.use(function(req, res, next) { }); require('./routes/routes-account')(app, config, passport, i18n); -require('./routes/routes-project')(app, config, passport); require('./routes/api')(app, config, passport); // Handle 404 diff --git a/routes/methods.js b/routes/methods.js index 7b34268a..91b75af3 100644 --- a/routes/methods.js +++ b/routes/methods.js @@ -212,39 +212,6 @@ var methods = { }) callback(err) }) - }, - // ======================= project db ======================= - getAllProjects: function(callback) { - dbconn.project.query('CALL getAllprojects', function (err, rows, fields){ - if (err) throw err; - callback(rows[0], err); - }) - }, - getAllMailinglists: function(callback) { - dbconn.project.query('CALL getAllLists', function (err, rows, fields){ - if (err) throw err; - callback(rows[0], err); - }) - }, - getProjectOverviewById: function(projectId, callback) { - dbconn.project.query('CALL GetProjectInformationByProjectID(' + projectId+ ')', function (err, rows, fields){ - if (err) throw err; - callback(rows[0], err); - }) - }, - getProjectImagesById: function(projectId, callback) { - dbconn.project.query('CALL getImagesByProjectID(' + projectId+ ')', function (err, rows, fields){ - if (err) throw err; - callback(rows[0], err); - }) - }, - addProjectOverview: function(data, callback) { - dbconn.project.query('INSERT INTO project_overview SET ?', data, function (err, results, fields){ - if (err) { - console.error(err); - } - callback(results, err); - }) } }; -- GitLab From 3fb7744f141cbd6b97b62060af9a19ba8d8dc7ca Mon Sep 17 00:00:00 2001 From: sanny <rosanny.sihombing@hft-stuttgart.de> Date: Wed, 15 Jul 2020 14:06:12 +0200 Subject: [PATCH 34/40] small update --- package.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 2df85495..0abe26eb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "m4lab-user-account", "version": "0.0.1", - "description": "Example for PassportJS SAML strategy", + "description": "M4_LAB User Account", "author": { "name": "Rosanny Sihombing", "email": "rosanny.sihombing@hft-stuttgart.de", @@ -9,12 +9,11 @@ }, "keywords": [ "m4_lab", - "saml", - "sso" + "account" ], "repository": { "type": "git", - "url": "https://transfer.gitlab.com/tbd.git" + "url": "https://transfer.hft-stuttgart.de/gitlab/m4lab_tv1/user-account.git" }, "scripts": { "start": "nodemon app.js", -- GitLab From 1d915c1d6cd00894040314c36066d0d2774db545 Mon Sep 17 00:00:00 2001 From: sanny <rosanny.sihombing@hft-stuttgart.de> Date: Wed, 15 Jul 2020 18:30:52 +0200 Subject: [PATCH 35/40] postponed getting users' project --- routes/routes-account.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/routes/routes-account.js b/routes/routes-account.js index f0477561..5e6292c1 100644 --- a/routes/routes-account.js +++ b/routes/routes-account.js @@ -180,6 +180,10 @@ module.exports = function (app, config, passport, i18n) { methods.getUserByEmail(req.user.email, function(data, err){ if (!err) { if (data.verificationStatus == 1) { + res.render(lang+'/account/services', { + user: data + }); + /* !!! DO NOT DELETE. TEMPORARILY DISABLED FOR FUTURE USE. !!! async.waterfall([ // get userId by email from userdb function(done) { @@ -237,6 +241,7 @@ module.exports = function (app, config, passport, i18n) { }); } ]) + */ } else { res.render(lang+'/account/home', { -- GitLab From ba9ff1871abd1c332c245f4668f0fe05409f39e3 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Fri, 17 Jul 2020 16:28:45 +0200 Subject: [PATCH 36/40] express js best practices --- app.js | 6 +- package-lock.json | 165 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 2 + 3 files changed, 163 insertions(+), 10 deletions(-) diff --git a/app.js b/app.js index f03f1c29..bbf16ae8 100644 --- a/app.js +++ b/app.js @@ -9,6 +9,8 @@ const session = require('express-session'); const errorhandler = require('errorhandler'); const flash = require('express-flash'); const fileUpload = require('express-fileupload'); +const helmet = require('helmet'); +const compression = require('compression'); const i18n = require('i18n'); // internationalization i18n.configure({ @@ -16,7 +18,7 @@ i18n.configure({ directory: './locales' }); -var env = process.env.NODE_ENV || 'testing'; +var env = process.env.NODE_ENV || 'development'; const config = require('./config/config')[env]; var app = express(); @@ -33,6 +35,8 @@ app.use(fileUpload({ } })); +app.use(helmet()); +app.use(compression()); app.use(morgan('combined')); app.use(cookieParser()); app.use(bodyParser.json()); diff --git a/package-lock.json b/package-lock.json index 8def6205..f3d2af9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -102,9 +102,9 @@ }, "dependencies": { "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" } } }, @@ -158,6 +158,11 @@ "type-is": "~1.6.17" } }, + "bowser": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz", + "integrity": "sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==" + }, "boxen": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", @@ -214,6 +219,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", @@ -293,6 +303,42 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + } + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + } + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -335,6 +381,11 @@ "safe-buffer": "5.1.2" } }, + "content-security-policy-builder": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.1.0.tgz", + "integrity": "sha512-/MtLWhJVvJNkA9dVLAp6fg9LxD2gfI6R2Fi1hPmfjYXSahJJzcfvoeDOxSyp4NvxMuwWv3WMssE9o31DoULHrQ==" + }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -397,6 +448,11 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" }, + "dasherize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", + "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -453,6 +509,11 @@ "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" }, + "dont-sniff-mimetype": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz", + "integrity": "sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug==" + }, "dot-prop": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", @@ -643,6 +704,11 @@ } } }, + "feature-policy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz", + "integrity": "sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==" + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -753,6 +819,72 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, + "helmet": { + "version": "3.23.3", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.23.3.tgz", + "integrity": "sha512-U3MeYdzPJQhtvqAVBPntVgAvNSOJyagwZwyKsFdyRa8TV3pOKVFljalPOCxbw5Wwf2kncGhmP0qHjyazIdNdSA==", + "requires": { + "depd": "2.0.0", + "dont-sniff-mimetype": "1.1.0", + "feature-policy": "0.3.0", + "helmet-crossdomain": "0.4.0", + "helmet-csp": "2.10.0", + "hide-powered-by": "1.1.0", + "hpkp": "2.0.0", + "hsts": "2.2.0", + "nocache": "2.1.0", + "referrer-policy": "1.2.0", + "x-xss-protection": "1.3.0" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + } + } + }, + "helmet-crossdomain": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.4.0.tgz", + "integrity": "sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA==" + }, + "helmet-csp": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.10.0.tgz", + "integrity": "sha512-Rz953ZNEFk8sT2XvewXkYN0Ho4GEZdjAZy4stjiEQV3eN7GDxg1QKmYggH7otDyIA7uGA6XnUMVSgeJwbR5X+w==", + "requires": { + "bowser": "2.9.0", + "camelize": "1.0.0", + "content-security-policy-builder": "2.1.0", + "dasherize": "2.0.0" + } + }, + "hide-powered-by": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.1.0.tgz", + "integrity": "sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg==" + }, + "hpkp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz", + "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=" + }, + "hsts": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.2.0.tgz", + "integrity": "sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ==", + "requires": { + "depd": "2.0.0" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + } + } + }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", @@ -988,9 +1120,9 @@ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, "longest": { "version": "1.0.1", @@ -1101,9 +1233,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "morgan": { "version": "1.9.1", @@ -1143,6 +1275,11 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=" }, + "nocache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz", + "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==" + }, "node-forge": { "version": "0.7.6", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", @@ -1636,6 +1773,11 @@ "picomatch": "^2.0.4" } }, + "referrer-policy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz", + "integrity": "sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA==" + }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -2044,6 +2186,11 @@ "signal-exit": "^3.0.2" } }, + "x-xss-protection": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz", + "integrity": "sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg==" + }, "xdg-basedir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", diff --git a/package.json b/package.json index 0abe26eb..6a35d13c 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "async": "^3.1.0", "bcryptjs": "^2.4.3", "body-parser": "^1.19.0", + "compression": "^1.7.4", "cookie-parser": "1.4.3", "crypto": "^1.0.1", "errorhandler": "1.4.3", @@ -31,6 +32,7 @@ "express-flash": "0.0.2", "express-session": "^1.17.0", "fs": "0.0.1-security", + "helmet": "^3.23.3", "i18n": "^0.8.5", "morgan": "^1.9.1", "mysql": "^2.17.1", -- GitLab From 7b309b2960a3ce9d57d6082f96bc29eefb1aa456 Mon Sep 17 00:00:00 2001 From: Rosanny <rosanny.sihombing@hft-stuttgart.de> Date: Fri, 17 Jul 2020 16:57:52 +0200 Subject: [PATCH 37/40] set env to testing --- app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.js b/app.js index bbf16ae8..daa83468 100644 --- a/app.js +++ b/app.js @@ -18,7 +18,7 @@ i18n.configure({ directory: './locales' }); -var env = process.env.NODE_ENV || 'development'; +var env = process.env.NODE_ENV || 'testing'; const config = require('./config/config')[env]; var app = express(); -- GitLab From 66ee50016a7a877ee3e375858c92fdab3f2cbec7 Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Wed, 16 Sep 2020 11:52:52 +0000 Subject: [PATCH 38/40] Update .gitlab-ci.yml --- .gitlab-ci.yml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 80cb7c29..583e6b40 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ -pages-testing: +deploy-testing: stage: deploy script: + - cat $configfiledev > ./config/config.js - npm install - "pm2 delete --silent account || :" - pm2 start ./app.js --name=account @@ -9,4 +10,16 @@ pages-testing: - testing only: - testing - - test_logoutbutton \ No newline at end of file + +deploy-master: + stage: deploy + script: + - cat $configfileprod > ./config/config.js + - npm install + - "pm2 delete --silent account || :" + - pm2 start ./app.js --name=account + - pm2 save + tags: + - production + only: + - master \ No newline at end of file -- GitLab From f582ea0d6e5108258c7b30a512ae4e2ea0d43472 Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Wed, 16 Sep 2020 11:56:30 +0000 Subject: [PATCH 39/40] Update config.js, removed credentials --- config/config.js | 46 ++++++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/config/config.js b/config/config.js index 1535c914..eaab8764 100644 --- a/config/config.js +++ b/config/config.js @@ -9,28 +9,28 @@ module.exports = { strategy: 'saml', saml: { path: process.env.SAML_PATH || '/saml/SSO', - entryPoint: process.env.SAML_ENTRY_POINT || 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SSOService.php', - issuer: 'sp-account.m4lab.hft-stuttgart.de', //local metadata - logoutUrl: 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SingleLogoutService.php' + entryPoint: process.env.SAML_ENTRY_POINT || 'Saml Entry Point', + issuer: 'SAML issuer', //local metadata + logoutUrl: 'SAML logout URL' } }, database: { host: 'localhost', // DB host - user: 'DBManager', // DB username - password: 'Stuttgart2019', // DB password + user: 'usernamedb', // DB username + password: 'passworddb', // DB password port: 3306, // MySQL port dbUser: 'userdb', // User DB host_project: 'localhost', // DB host project db - dbProject: 'projectDB' // Project DB + dbProject: 'projectdb' // Project DB }, mailer: { - host: 'mail.hft-stuttgart.de', // hostname + host: 'mailhost', // hostname secureConnection: false, // TLS requires secureConnection to be false port: 587, // port for secure SMTP - authUser: 'ad\\support-transfer', - authPass: '6laumri2', + authUser: 'mailuser', + authPass: 'mailpass', tlsCiphers: 'SSLv3', - from: 'support-transfer@hft-stuttgart.de', + from: 'mailfrom', } }, testing: { @@ -43,30 +43,28 @@ module.exports = { strategy: 'saml', saml: { path: process.env.SAML_PATH || '/saml/SSO', - entryPoint: process.env.SAML_ENTRY_POINT || 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SSOService.php', - //issuer: 'sp-account.m4lab.hft-stuttgart.de', //local metadata - issuer: 'sp-account-testing.m4lab.hft-stuttgart.de', //testing metadata - //issuer: 'sp-account-prod.m4lab.hft-stuttgart.de', //production metadata - logoutUrl: 'https://m4lab.hft-stuttgart.de/idp/saml2/idp/SingleLogoutService.php' + entryPoint: process.env.SAML_ENTRY_POINT || 'saml entry point', + issuer: 'SAML issuer', //testing metadata + logoutUrl: 'SAML logout URL' } }, database: { - host: 'transfer.hft-stuttgart.de', // DB host - user: 'DBManager', // DB username - password: 'Stuttgart2019', // DB password + host: 'dbhost', // DB host + user: 'dbuser', // DB username + password: 'dbpass', // DB password port: 3306, // MySQL port dbUser: 'userdb', // User DB - host_project: 'm4lab.hft-stuttgart.de', // DB host project db - dbProject: 'projectDB' // Project DB + host_project: 'dbhost', // DB host project db + dbProject: 'projectdb' // Project DB }, mailer: { - host: 'mail.hft-stuttgart.de', // hostname + host: 'mailhost', // hostname secureConnection: false, // TLS requires secureConnection to be false port: 587, // port for secure SMTP - authUser: 'ad\\support-transfer', - authPass: '6laumri2', + authUser: 'mailuser', + authPass: 'mailpass', tlsCiphers: 'SSLv3', - from: 'support-transfer@hft-stuttgart.de', + from: 'mailfrom', } } } \ No newline at end of file -- GitLab From 53937cc86ccc5f4317ac12614bc310be76bf4dc6 Mon Sep 17 00:00:00 2001 From: Wolfgang Knopki <wolfgang.knopki@hft-stuttgart.de> Date: Fri, 18 Sep 2020 16:03:56 +0200 Subject: [PATCH 40/40] [bugfix] certificates moved to variables, cicd config adapted --- .gitlab-ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 583e6b40..0d650171 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,9 @@ deploy-testing: stage: deploy script: - cat $configfiledev > ./config/config.js + - cat $cert > ./routes/cert/cert.pem + - cat $certidp > ./routes/cert/cert_idp.pem + - cat $key > ./routes/cert/key.pem - npm install - "pm2 delete --silent account || :" - pm2 start ./app.js --name=account @@ -15,6 +18,9 @@ deploy-master: stage: deploy script: - cat $configfileprod > ./config/config.js + - cat $cert > ./routes/cert/cert.pem + - cat $certidp > ./routes/cert/cert_idp.pem + - cat $key > ./routes/cert/key.pem - npm install - "pm2 delete --silent account || :" - pm2 start ./app.js --name=account -- GitLab