Commit 8706e273 authored by Rosanny Sihombing's avatar Rosanny Sihombing
Browse files

Merge branch 'MLAB-478' into 'testing'

Mlab 478

See merge request !33
parents d72ec0e0 c0e9c969
Pipeline #2447 passed with stage
in 15 seconds
This diff is collapsed.
...@@ -33,8 +33,8 @@ ...@@ -33,8 +33,8 @@
"morgan": "^1.10.0", "morgan": "^1.10.0",
"mysql": "^2.18.1", "mysql": "^2.18.1",
"passport": "0.3.2", "passport": "0.3.2",
"passport-saml": "^1.3.4", "passport-saml": "^2.0.6",
"pug": "^2.0.4" "pug": "^3.0.2"
}, },
"engines": { "engines": {
"node": ">= 4.0.0" "node": ">= 4.0.0"
......
var env = process.env.NODE_ENV || 'testing'
const config = require('../config/config')[env]
const axios = require('axios') const axios = require('axios')
var gitlab = { var gitlab = {
getRepos: async function(perPage, idAfter) { getProjects: async function(perPage, idAfter) {
try { try {
let projects = await axios({ let projects = await axios({
method: 'get', method: 'get',
...@@ -11,43 +9,20 @@ var gitlab = { ...@@ -11,43 +9,20 @@ var gitlab = {
}) })
let data = projects.data let data = projects.data
let reposArr = [] let reposArr = []
for(let i = 0; i < data.length; i++){
// skip template project
if (data[i].name == 'template_gitlab_page') {
continue
} else if(!data[i].tag_list.includes('website')) {
reposArr.push(data[i])
}
}
return {
error: false,
data: reposArr}
}
catch (err) {
return {
error: true,
data: err}
}
},
getPages: async function(perPage, idAfter) {
try {
let projects = await axios({
method: 'get',
url: 'https://transfer.hft-stuttgart.de/gitlab/api/v4/projects?visibility=public&pagination=keyset&per_page='+perPage+'&order_by=id&sort=asc&id_after='+idAfter
})
let data = projects.data
let pagesArr = [] let pagesArr = []
for(let i = 0; i < data.length; i++){ for(let i = 0; i < data.length; i++){
// skip template project // skip template project
if (data[i].name == 'template_gitlab_page') { if (data[i].name == 'page_basic' || data[i].name == 'generic' || data[i].name == 'simple_raw' || data[i].name == 'simple_thesis') {
continue continue
} else if(data[i].tag_list.includes('website')) { } else if(data[i].tag_list.includes('website')) {
pagesArr.push(data[i]) pagesArr.push(data[i])
} else {
reposArr.push(data[i])
} }
} }
return { return {
error: false, error: false,
data: pagesArr} data: [reposArr, pagesArr]}
} }
catch (err) { catch (err) {
return { return {
...@@ -55,26 +30,13 @@ var gitlab = { ...@@ -55,26 +30,13 @@ var gitlab = {
data: err} data: err}
} }
}, },
getProjectsFromRunners: async function() { getLatestPipelineStatus: async function(projectId) {
try { return axios({
let runner = await axios({ method: 'get',
method: 'get', url: 'https://transfer.hft-stuttgart.de/gitlab/api/v4/projects/'+projectId+'/pipelines'
url: 'https://transfer.hft-stuttgart.de/gitlab/api/v4/runners/7', })
headers: { .then(res => res.data[0].status)
'Authorization': 'Bearer '+config.gitlab.token_readWriteProjects .catch(err => console.error(err))
}
})
let runnerProjects = runner.data.projects
return {
error: false,
data: runnerProjects
}
}
catch (err) {
return {
error: true,
data: err}
}
} }
} }
......
...@@ -257,8 +257,8 @@ module.exports = function (app) { ...@@ -257,8 +257,8 @@ module.exports = function (app) {
let firstId = 0 let firstId = 0
while (isProject == true) { while (isProject == true) {
let projects = await gitlab.getRepos(100, firstId) let projects = await gitlab.getProjects(100, firstId)
let projectData = projects.data let projectData = projects.data[0]
if (projectData.length == 0) { if (projectData.length == 0) {
isProject = false isProject = false
...@@ -298,68 +298,60 @@ module.exports = function (app) { ...@@ -298,68 +298,60 @@ module.exports = function (app) {
let isProject = true let isProject = true
let firstId = 0 let firstId = 0
let runnerProjects = await gitlab.getProjectsFromRunners() while (isProject == true) {
if(runnerProjects.error) { let projects = await gitlab.getProjects(100, firstId)
// error response: to be updated let pagesData = projects.data[1]
res.status(500).render(lang+'/500', { error: err })
} else {
let runnerProjectsData = runnerProjects.data
let runnerProjectsIds = []
for(let i = 0; i < runnerProjectsData.length; i++){
runnerProjectsIds.push(runnerProjectsData[i].id)
}
while (isProject == true) {
let pages = await gitlab.getPages(100, firstId)
let pagesData = pages.data
if (pagesData.length == 0) { if (pagesData.length == 0) {
isProject = false isProject = false
} else { } else {
for(let i = 0; i < pagesData.length; i++){ for(let i = 0; i < pagesData.length; i++){
// ONLY IF THE PROJECT IS AVAILABLE IN THE RUNNER let status = await gitlab.getLatestPipelineStatus(pagesData[i].id)
if(runnerProjectsIds.indexOf(pagesData[i].id) > -1) { if (status) {
// M4_LAB logo for all projects that do not have logo // M4_LAB logo for all projects that do not have logo
if (pagesData[i].avatar_url == null) { if (pagesData[i].avatar_url == null) {
pagesData[i].avatar_url = "https://m4lab.hft-stuttgart.de/img/footer/M4_LAB_LOGO_Graustufen.png" pagesData[i].avatar_url = "https://m4lab.hft-stuttgart.de/img/footer/M4_LAB_LOGO_Graustufen.png"
} }
// for all projects that have no description // for all projects that have no description
if (pagesData[i].description == "") { if (pagesData[i].description == "") {
pagesData[i].description = "- no description -" pagesData[i].description = "- no description -"
} }
// customize website name // customized website name
if (pagesData[i].name == "Visualization") { if (pagesData[i].name == "Visualization") {
pagesData[i].web_url = "https://transfer.hft-stuttgart.de/pages/visualization" //todo: update URL - user? group?
} pagesData[i].web_url = "https://transfer.hft-stuttgart.de/pages/visualization"
else if (pagesData[i].name == "IN-Source") { }
pagesData[i].web_url = "https://transfer.hft-stuttgart.de/pages/INsource" else if (pagesData[i].name == "IN-Source") {
} //todo: update URL
else if (pagesData[i].name == "3DS_Visualization_Cesium") { pagesData[i].web_url = "https://transfer.hft-stuttgart.de/pages/INsource"
pagesData[i].web_url = "https://transfer.hft-stuttgart.de/pages/3ds_visualization_cesium" }
} else if (pagesData[i].name == "3DS_Visualization_Cesium") {
else { //todo: update URL
pagesData[i].web_url = "https://transfer.hft-stuttgart.de/pages/"+pagesData[i].name pagesData[i].web_url = "https://transfer.hft-stuttgart.de/pages/3ds_visualization_cesium"
} }
// remove 'website' from tag list else {
let index = pagesData[i].tag_list.indexOf('website') //todo: update URL
if (index > -1) { pagesData[i].web_url = "https://transfer.hft-stuttgart.de/pages/"+pagesData[i].name
pagesData[i].tag_list.splice(index, 1) }
} // 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 // fill in pagesArr
let pages = { let pages = {
logo: pagesData[i].avatar_url, logo: pagesData[i].avatar_url,
name: pagesData[i].name, name: pagesData[i].name,
weburl: pagesData[i].web_url, weburl: pagesData[i].web_url,
desc: pagesData[i].description, desc: pagesData[i].description,
keywords: pagesData[i].tag_list keywords: pagesData[i].tag_list
}
pagesArr.push(pages)
} }
pagesArr.push(pages)
} }
firstId = pagesData[pagesData.length-1].id
} }
} firstId = pagesData[pagesData.length-1].id
}
} }
res.render(lang+'/project/pagesList', { res.render(lang+'/project/pagesList', {
......
...@@ -4,8 +4,8 @@ html(lang="de") ...@@ -4,8 +4,8 @@ html(lang="de")
title= "Projektinformationen" title= "Projektinformationen"
meta(charset="UTF-8") meta(charset="UTF-8")
meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") 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.min.css") link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css")
link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/m4lab.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="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous")
style. style.
.title-container { .title-container {
......
...@@ -4,8 +4,8 @@ html(lang="de") ...@@ -4,8 +4,8 @@ html(lang="de")
title= "Projektdaten" title= "Projektdaten"
meta(charset="UTF-8") meta(charset="UTF-8")
meta(name="viewport", content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no") 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.min.css") link(rel="stylesheet", type="text/css", href="/css/bootstrap.min.css")
link(rel="stylesheet", type="text/css", href="https://transfer.hft-stuttgart.de/css/m4lab.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="https://use.fontawesome.com/releases/v5.8.2/css/all.css", integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay", crossorigin="anonymous")
style. style.
.title-container { .title-container {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment