website/pages/projects.vue

86 lines
2.1 KiB
Vue
Raw Normal View History

2023-04-16 20:12:24 +03:00
<template>
<div>
<Navbar />
<Header>
2023-06-18 18:09:03 +03:00
<label class="glitch">ls -la</label> projects
2023-04-16 20:12:24 +03:00
</Header>
<div class="projects">
2023-06-18 18:09:03 +03:00
<ProjectList v-for="project in projects" :key="project[0].name">
<Project v-if="logged" v-for="p in project" :key="p.name" :name="`${p.name} (${p.click})`" :desc="p.desc" :url="p.url"/>
<Project v-if="!logged" v-for="p in project" :key="p.desc" :name="p.name" :desc="p.desc" :url="p.url"/>
2023-04-16 20:12:24 +03:00
</ProjectList>
</div>
<NewProject v-if="logged"/>
</div>
</template>
<script>
import ProjectList from "../components/ProjectList.vue";
import Project from "../components/Project.vue";
import NewProject from "../components/NewProject.vue";
import axios from "axios";
export default {
head() {
return {
title: "[ngn] | projects",
2023-04-16 20:12:24 +03:00
meta: [
{
hid: "description",
name: "description",
content: "check out my projects"
2023-04-16 20:12:24 +03:00
}
]
}
},
data() {
return {
2023-06-11 20:19:35 +03:00
logged: false,
projects: []
2023-04-16 20:12:24 +03:00
}
},
mounted: async function(){
if(localStorage.getItem("token"))
this.logged = true
2023-06-11 20:19:35 +03:00
const res = await axios.get("/api/projects/get")
2023-04-16 20:12:24 +03:00
let all = res.data["projects"]
let projects = []
let project = []
for(let i = 0; i<all.length; i++){
if(project.length!==3)
project.push({
name: all[i]["name"],
desc: all[i]["desc"],
click: all[i]["click"],
url: `/l/${all[i]["name"].toLowerCase().replaceAll(" ", "")}`
})
2023-04-16 20:12:24 +03:00
else{
projects.push(project)
project = []
}
if(i===all.length-1){
projects.push(project)
}
}
this.projects = projects
}
}
</script>
<style>
.projects{
padding: 50px;
2023-04-16 20:12:24 +03:00
display: flex;
flex-direction: column;
}
@media only screen and (max-width: 1121px) {
.projects {
padding: 50px;
}
2023-04-16 20:12:24 +03:00
}
2023-06-11 20:19:35 +03:00
</style>