An error occurred while loading the file. Please try again.
project.ts 7.40 KiB
//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 let orderKeyword = req.query.sort 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/body/M4_LAB_LOGO_NO_TEXT.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, createdAt: projectData[i].created_at, lastUpdatedAt: projectData[i].last_activity_at } projectArr.push(project) } firstId = projectData[projectData.length-1].id } // MLAB-576 if (orderKeyword == "created_at") { projectArr.sort((a, b) => { let aDate:any = new Date(a.createdAt) let bDate:any = new Date(b.createdAt) return bDate - aDate }); } else if (orderKeyword == "updated_at") { projectArr.sort((a, b) => { let aDate:any = new Date(a.lastUpdatedAt) let bDate:any = new Date(b.lastUpdatedAt) return bDate - aDate }); } else { // default, sorted by name projectArr.sort((a, b) => { let fa = a.name.toLowerCase(), fb = b.name.toLowerCase(); if (fa < fb) return -1; if (fa > fb) return 1; return 0; }); } } 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 let orderKeyword = req.query.sort 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/body/M4_LAB_LOGO_NO_TEXT.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, createdAt: pagesData[i].created_at, lastUpdatedAt: pagesData[i].last_activity_at } pagesArr.push(pages) } } firstId = pagesData[pagesData.length-1].id } // MLAB-576 if (orderKeyword == "created_at") { pagesArr.sort((a, b) => { let aDate:any = new Date(a.createdAt) let bDate:any = new Date(b.createdAt) return bDate - aDate }); } else if (orderKeyword == "updated_at") { pagesArr.sort((a, b) => { let aDate:any = new Date(a.lastUpdatedAt) let bDate:any = new Date(b.lastUpdatedAt) return bDate - aDate }); } else { // default, sorted by name pagesArr.sort((a, b) => { let fa = a.name.toLowerCase(), fb = b.name.toLowerCase(); if (fa < fb) return -1;
if (fa > fb) return 1; return 0; }); } } res.render(lang+'/project/pagesList', { pages: pagesArr }) }) };