//const SamlStrategy = require('passport-saml').Strategy import methods from '../functions/methods' import gitlab from '../functions/gitlab' import helpers from '../functions/helpers' module.exports = function (app:any, lang:string) { // ======== APP ROUTES - PROJECT ==================== app.get('/', function (req:any, res:any) { res.render(lang+'/project/project-simplified') }) app.get('/mailinglists', async function (req:any, res:any) { let mailList = await methods.getAllMailinglists() if (mailList) { let allMailingLists = [] // JSON object for (let i = 0; i < mailList.length; i++) { // add data to JSON object allMailingLists.push({ id: mailList[i].id, name: mailList[i].name, src: mailList[i].src, projectstatus: mailList[i].projectstatus, project_title: mailList[i].project_title, keywords: mailList[i].keywords }); } res.render(lang+'/project/mailinglists', { //isUserAuthenticated: req.isAuthenticated(), //user: req.user, mailinglists: allMailingLists }); } else { res.render(lang+'/project/mailinglists', { //isUserAuthenticated: req.isAuthenticated(), //user: req.user, mailinglists: null }) } }) app.get('/projectoverview', async function(req:any, res:any){ let projectOverview = await methods.getProjectOverviewById(req.query.projectID) if (projectOverview.length > 0) { let partnerWebsites = helpers.stringToArray(projectOverview[0].partner_website) let partnerNames = helpers.stringToArray(projectOverview[0].partner_name) let awardSites = helpers.stringToArray(projectOverview[0].award_website) let awardNames = helpers.stringToArray(projectOverview[0].award_name) let sponsorWebsites = helpers.stringToArray(projectOverview[0].sponsor_website) let sponsorImgs = helpers.stringToArray(projectOverview[0].sponsor_img) let sponsorNames = helpers.stringToArray(projectOverview[0].sponsor_name) let projectImages = await methods.getProjectImagesById(req.query.projectID) 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 }); } else { res.redirect('/') } }) // Projektdaten app.get('/projektdaten', async function(req:any, res:any){ let projectArr = [] let isProject = true let firstId = 0 while (isProject == true) { let projects = await gitlab.getProjects(100, firstId) let projectData = projects.data[0] if (projectData.length == 0) { isProject = false } else { for(let i = 0; i < projectData.length; i++){ // M4_LAB logo for all projects that do not have logo if (projectData[i].avatar_url == null) { projectData[i].avatar_url = "https://m4lab.hft-stuttgart.de/img/footer/M4_LAB_LOGO_Graustufen.png" } // for all projects that have no description if (projectData[i].description == "") { projectData[i].description = "- no description -" } let project = { logo: projectData[i].avatar_url, name: projectData[i].name, weburl: projectData[i].web_url, desc: projectData[i].description, keywords: projectData[i].tag_list } projectArr.push(project) } firstId = projectData[projectData.length-1].id } } res.render(lang+'/project/projectList', { project: projectArr }) }) // Projektinformationen app.get('/projektinformationen', async function(req:any, res:any){ let pagesArr = [] let isProject = true let firstId = 0 while (isProject == true) { let projects = await gitlab.getProjects(100, firstId) let pagesData = projects.data[1] if (pagesData.length == 0) { isProject = false } else { for(let i = 0; i < pagesData.length; i++){ let status = await gitlab.getLatestPipelineStatus(pagesData[i].id) if (status) { // M4_LAB logo for all projects that do not have logo if (pagesData[i].avatar_url == null) { pagesData[i].avatar_url = "https://m4lab.hft-stuttgart.de/img/footer/M4_LAB_LOGO_Graustufen.png" } // for all projects that have no description if (pagesData[i].description == "") { pagesData[i].description = "- no description -" } // https://transfer.hft-stuttgart.de/pages/EIGENTUEMER/PROJEKTNAME/ pagesData[i].web_url = "https://transfer.hft-stuttgart.de/pages/"+pagesData[i].namespace.path+"/"+pagesData[i].name+"/" // remove 'website' from tag list let index = pagesData[i].tag_list.indexOf('website') if (index > -1) { pagesData[i].tag_list.splice(index, 1) } // fill in pagesArr let pages = { logo: pagesData[i].avatar_url, name: pagesData[i].name, weburl: pagesData[i].web_url, desc: pagesData[i].description, keywords: pagesData[i].tag_list } pagesArr.push(pages) } } firstId = pagesData[pagesData.length-1].id } } res.render(lang+'/project/pagesList', { pages: pagesArr }) }) };