Commit 5d8bc696 authored by Rosanny Sihombing's avatar Rosanny Sihombing
Browse files

Merge branch 'MLAB-576' into 'testing'

Mlab 576

See merge request !69
parents 50427a49 1c93eed7
Pipeline #5002 passed with stage
in 47 seconds
...@@ -76,6 +76,7 @@ module.exports = function (app:any, lang:string) { ...@@ -76,6 +76,7 @@ module.exports = function (app:any, lang:string) {
let projectArr = [] let projectArr = []
let isProject = true let isProject = true
let firstId = 0 let firstId = 0
let orderKeyword = req.query.sort
while (isProject == true) { while (isProject == true) {
let projects = await gitlab.getProjects(100, firstId) let projects = await gitlab.getProjects(100, firstId)
...@@ -100,12 +101,38 @@ module.exports = function (app:any, lang:string) { ...@@ -100,12 +101,38 @@ module.exports = function (app:any, lang:string) {
name: projectData[i].name, name: projectData[i].name,
weburl: projectData[i].web_url, weburl: projectData[i].web_url,
desc: projectData[i].description, desc: projectData[i].description,
keywords: projectData[i].tag_list keywords: projectData[i].tag_list,
createdAt: projectData[i].created_at,
lastUpdatedAt: projectData[i].last_activity_at
} }
projectArr.push(project) projectArr.push(project)
} }
firstId = projectData[projectData.length-1].id 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', { res.render(lang+'/project/projectList', {
...@@ -118,6 +145,7 @@ module.exports = function (app:any, lang:string) { ...@@ -118,6 +145,7 @@ module.exports = function (app:any, lang:string) {
let pagesArr = [] let pagesArr = []
let isProject = true let isProject = true
let firstId = 0 let firstId = 0
let orderKeyword = req.query.sort
while (isProject == true) { while (isProject == true) {
let projects = await gitlab.getProjects(100, firstId) let projects = await gitlab.getProjects(100, firstId)
...@@ -151,13 +179,40 @@ module.exports = function (app:any, lang:string) { ...@@ -151,13 +179,40 @@ module.exports = function (app:any, lang:string) {
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,
createdAt: pagesData[i].created_at,
lastUpdatedAt: pagesData[i].last_activity_at
} }
pagesArr.push(pages) pagesArr.push(pages)
} }
} }
firstId = pagesData[pagesData.length-1].id 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', { res.render(lang+'/project/pagesList', {
......
...@@ -38,11 +38,14 @@ html(lang="de") ...@@ -38,11 +38,14 @@ html(lang="de")
div(class="container") div(class="container")
p#pagesCounter #{pages.length} Projektinformationen werden angezeigt p#pagesCounter #{pages.length} Projektinformationen werden angezeigt
div(class="pt-4 pb-4 form-row") div(class="pt-4 pb-4 form-row")
div(class="form-group col-md-12") div(class="form-group col-md-10")
input(id="searchInput", class="form-control form-control-lg", type="text", placeholder="Suchen Sie hier nach Themen und Projekten", onkeyup="searchFunction()") input(id="searchInput", class="form-control form-control-lg", type="text", placeholder="Suchen Sie hier nach Themen und Projekten", onkeyup="searchFunction()")
//div(class="form-group col-md-2") div(class="form-group col-md-2")
select(class="form-control") select#sortingSelect(class="form-control form-control-lg")
option uncategorized option(value="" disabled) Sort by
option(value="name") &nbsp;&nbsp; Name
option(value="created_at") &nbsp;&nbsp; Last created
option(value="updated_at") &nbsp;&nbsp; Last updated
| <div class="row"> | <div class="row">
for item in pages for item in pages
div(class="card-deck py-4 col-sm") div(class="card-deck py-4 col-sm")
...@@ -97,4 +100,28 @@ html(lang="de") ...@@ -97,4 +100,28 @@ html(lang="de")
} }
document.getElementById("pagesCounter").innerHTML = counterBlock+" Projektinformationen werden angezeigt" document.getElementById("pagesCounter").innerHTML = counterBlock+" Projektinformationen werden angezeigt"
} }
\ No newline at end of file
$("#sortingSelect").change(function() {
window.location.replace('/projektinformationen?sort='+$("#sortingSelect").val())
});
function getQueryStringParams(params, url) {
// first decode URL to get readable data
var href = decodeURIComponent(url || window.location.href);
// regular expression to get value
var regEx = new RegExp('[?&]' + params + '=([^&#]*)', 'i');
var value = regEx.exec(href);
// return the value if exist
return value ? value[1] : null;
}
function setSortSelect() {
let sortKeyword = getQueryStringParams('sort', window.location.href)
if (sortKeyword == "created_at") {
$("#sortingSelect").val("created_at")
} else if(sortKeyword == "updated_at") {
$("#sortingSelect").val("updated_at")
} else {
$("#sortingSelect").val("name")
}
}
setSortSelect()
\ No newline at end of file
...@@ -38,11 +38,14 @@ html(lang="de") ...@@ -38,11 +38,14 @@ html(lang="de")
div(class="container") div(class="container")
p#projectCounter #{project.length} Projektdaten werden angezeigt p#projectCounter #{project.length} Projektdaten werden angezeigt
div(class="pt-4 pb-4 form-row") div(class="pt-4 pb-4 form-row")
div(class="form-group col-md-12") div(class="form-group col-md-10")
input(id="searchInput", class="form-control form-control-lg", type="text", placeholder="Suchen Sie hier nach Themen und Projekten", onkeyup="searchFunction()") input(id="searchInput", class="form-control form-control-lg", type="text", placeholder="Suchen Sie hier nach Themen und Projekten", onkeyup="searchFunction()")
//div(class="form-group col-md-2") div(class="form-group col-md-2")
select(class="form-control") select#sortingSelect(class="form-control form-control-lg")
option uncategorized option(value="" disabled) Sort by
option(value="name") &nbsp;&nbsp; Name
option(value="created_at") &nbsp;&nbsp; Last created
option(value="updated_at") &nbsp;&nbsp; Last updated
| <div class="row"> | <div class="row">
for item in project for item in project
div(class="card-deck py-4 col-sm") div(class="card-deck py-4 col-sm")
...@@ -97,4 +100,28 @@ html(lang="de") ...@@ -97,4 +100,28 @@ html(lang="de")
} }
document.getElementById("projectCounter").innerHTML = counterBlock+" Projektdaten werden angezeigt" document.getElementById("projectCounter").innerHTML = counterBlock+" Projektdaten werden angezeigt"
} }
\ No newline at end of file
$("#sortingSelect").change(function() {
window.location.replace('/projektdaten?sort='+$("#sortingSelect").val())
});
function getQueryStringParams(params, url) {
// first decode URL to get readable data
var href = decodeURIComponent(url || window.location.href);
// regular expression to get value
var regEx = new RegExp('[?&]' + params + '=([^&#]*)', 'i');
var value = regEx.exec(href);
// return the value if exist
return value ? value[1] : null;
}
function setSortSelect() {
let sortKeyword = getQueryStringParams('sort', window.location.href)
if (sortKeyword == "created_at") {
$("#sortingSelect").val("created_at")
} else if(sortKeyword == "updated_at") {
$("#sortingSelect").val("updated_at")
} else {
$("#sortingSelect").val("name")
}
}
setSortSelect()
\ No newline at end of file
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