[Projects] Added filters

This commit is contained in:
Matej Glasnák committed 2023-03-01 14:19:33 +01:00
1 parent 919b2eebbe
commit 302286bff8
29 files changed
+508 -350

No files matched your search

@@ -0,0 +1,32 @@
<template>
<v-row no-gutters class="align-center" v-if="employee">
<v-col cols="5">
<v-sheet class="py-3">
<div class="d-flex align-center">
<v-icon icon="mdi-account-star-outline" size="large"></v-icon>
<p class="mx-3">Vytvoril</p>
</div>
</v-sheet>
</v-col>
<v-col cols="7">
<v-sheet class="py-3 d-flex align-center">
<p class="employee-selected-avatar d-flex justify-center align-center">
{{ employee._initials }}
</p>
<p class="ml-2">{{ employee._fullName }}</p>
</v-sheet>
</v-col>
</v-row>
</template>
<script>
export default {
props: {
employee: {
type: [Object, Number],
required: false
}
}
}
</script>
@@ -0,0 +1,36 @@
<template>
<v-row no-gutters class="align-center">
<v-col cols="5">
<v-sheet class="py-3">
<div class="d-flex align-center">
<v-icon icon="mdi-calendar-week" size="large"></v-icon>
<p class="mx-3">Deadline</p>
</div>
</v-sheet>
</v-col>
<v-col cols="7">
<v-sheet class="py-3">
<p :class="`${tmUtils.isAfter(deadline) ? 'text-black' : 'text-red-darken-4'}`">{{ tmUtils.formatDateTime(deadline) }}</p>
</v-sheet>
</v-col>
</v-row>
</template>
<script>
import tmUtils from '@/plugins/tm@_utils/tm.utils'
export default {
props: {
deadline: {
type: String,
required: true
}
},
data() {
return {
tmUtils
}
}
}
</script>
@@ -0,0 +1,27 @@
<template>
<div class="px-5 py-5 border-bottom" v-if="description" >
<p>Popis zadania</p>
<section v-html="description" class="description-detail px-2 py-2 w-100 rounded mt-2" />
</div>
<div class="px-5 py-5 border-bottom" v-if="inheritedDescription">
<p>Popis mastertasku</p>
<section v-html="inheritedDescription" class="description-detail px-2 py-2 w-100 rounded mt-2" />
</div>
</template>
<script>
export default {
props: {
description: {
type: String || null,
default: () => null
},
inheritedDescription: {
type: String || null,
default: () => null
}
}
}
</script>
@@ -0,0 +1,24 @@
<template>
<p class="mt-5">Prílohy</p>
<div class="w-100 d-flex align-center">
<div v-for="(file, index) in files" :key="file.id" class="d-flex align-center flex-wrap" :class="[index === 0 ? 'ml-0' : 'ml-2']">
<v-chip class="mt-2">
<p @click="downloadFile(index)" class="cursor-pointer">
{{ file.name }}
</p>
<v-icon class="mx-1" icon="mdi-paperclip"></v-icon>
</v-chip>
</div>
</div>
</template>
<script>
export default {
props: {
files: {
type: Array,
default: () => []
}
}
}
</script>
@@ -0,0 +1,28 @@
<template>
<v-row no-gutters class="align-center">
<v-col cols="5">
<v-sheet class="py-3">
<div class="d-flex align-center">
<v-icon icon="mdi-clock-time-three-outline" size="large"></v-icon>
<p class="mx-3">Naplánovaný čas</p>
</div>
</v-sheet>
</v-col>
<v-col cols="7">
<v-sheet class="py-3">
<p>{{ hours }} h</p>
</v-sheet>
</v-col>
</v-row>
</template>
<script>
export default {
props: {
hours: {
type: Number,
required: true
}
}
}
</script>
@@ -0,0 +1,29 @@
<template>
<v-row no-gutters class="align-center border-bottom">
<v-col cols="5">
<v-sheet class="py-3">
<div class="d-flex align-center">
<v-icon icon="mdi-clock-time-three-outline" size="large"></v-icon>
<p class="mx-3">Zostávajúci čas</p>
</div>
</v-sheet>
</v-col>
<v-col cols="7">
<v-sheet class="py-3">
<p>{{ hours }} h</p>
</v-sheet>
</v-col>
</v-row>
</template>
<script>
export default {
props: {
hours: {
type: Number,
required: true
}
}
}
</script>
@@ -0,0 +1,34 @@
<template>
<v-row no-gutters>
<v-col cols="5">
<v-sheet class="py-3">
<div class="d-flex align-center">
<v-icon icon="mdi-clock-time-three-outline" size="large"></v-icon>
<p class="mx-3">Odpracovaný čas</p>
</div>
</v-sheet>
</v-col>
<v-col cols="7">
<v-sheet class="py-3">
<p :class="isExceeded ? 'text-red-darken-4' : 'text-black'">{{ hours }} h</p>
</v-sheet>
</v-col>
</v-row>
</template>
<script>
export default {
props: {
hours: {
type: Number,
required: true
},
isExceeded: {
type: Boolean,
required: true
}
}
}
</script>
@@ -0,0 +1,29 @@
<template>
<v-row no-gutters class="align-center">
<v-col cols="5">
<v-sheet class="py-3">
<div class="d-flex align-center">
<v-icon icon="mdi-drag-vertical" size="large"></v-icon>
<p class="mx-3">Status</p>
</div>
</v-sheet>
</v-col>
<v-col cols="7">
<v-sheet class="py-3">
<p v-if="status == 1" class="status-badge px-4 py-2 rounded-pill">Ukončený</p>
<p v-else-if="status == 0" class="status-badge px-4 py-2 rounded-pill">Neukončený</p>
</v-sheet>
</v-col>
</v-row>
</template>
<script>
export default {
props: {
status: {
type: Number,
required: true
}
}
}
</script>
@@ -0,0 +1,48 @@
<template>
<v-row no-gutters>
<v-col cols="5">
<v-sheet class="py-3">
<div class="d-flex align-center">
<v-icon icon="mdi-account-multiple-outline" size="large"></v-icon>
<p class="mx-3">Tím</p>
</div>
</v-sheet>
</v-col>
<v-col cols="7">
<v-sheet class="py-3 d-flex flex-wrap flex-column">
<p class="task-badge px-4 py-2 rounded-pill flex-shrink-0">{{ team?.name || 'Nepriradený' }}</p>
<div class="d-flex align-center flex-shrink-0 mt-2 task-badge px-4 py-2 rounded-pill" v-for="employee in enrichedEmployees" :key="employee.id">
<p class="employee-selected-avatar d-flex justify-center align-center">
{{ employee._initials }}
</p>
<p class="ml-2">{{ employee._fullName }}</p>
</div>
</v-sheet>
</v-col>
</v-row>
</template>
<script>
import tmUtils from '@/plugins/tm@_utils/tm.utils'
export default {
props: {
team: {
type: Object,
required: false
},
employees: {
type: Array,
required: true
}
},
computed: {
enrichedEmployees() {
return tmUtils.enrichEmployees(this.employees)
}
}
}
</script>