[detail modals] download files, [projects overview] project filter

This commit is contained in:
romankko2 committed 2023-02-09 23:07:43 +01:00
1 parent 6e8f57d06d
commit dca66d9a50
4 files changed
+26 -6

No files matched your search

@@ -1,6 +1,6 @@
<template>
<v-row class="px-10 py-8 subheader">
<v-select v-model="filter.selectedProject" class="subheader-input" :items="[null, projects]" label="Projekt" variant="outlined" :disabled="true" />
<v-select v-model="filter.selectedProject" class="subheader-input" :items="[null, ...projects]" item-title="name" item-value="id" label="Projekt" variant="outlined" />
<v-select v-model="filter.selectedTeam" class="subheader-input" :items="[null, ...teams]" label="Tím" variant="outlined" item-title="name" item-value="id" />
@@ -10,7 +10,6 @@
<script>
import AProjectCalendar from './_components/a-project-calendar.vue'
import AProjectFilter from './_components/a-project-filter.vue'
import moment from 'moment'
export default {
components: {
@@ -19,8 +18,7 @@ export default {
},
data() {
return {
// Kravarik: Toto je preco hardcodenute?
projects: ['Projekt1', 'Projekt2', 'Projekt3', 'Projekt4'],
projects: null,
masterTasks: null,
teams: null,
employees: null,
@@ -43,6 +41,10 @@ export default {
if (!this.filter.showFinishedTasks)
events = events.filter(event => !event.is_finished)
// filter by project_id
if(this.filter.selectedProject)
events = events.filter(event => event.project_id == this.filter.selectedProject)
// filter by team_id
if (this.filter.selectedTeam)
events = events.filter(event => event.team_id == this.filter.selectedTeam)
@@ -90,6 +92,7 @@ export default {
async _getData() {
try {
this.teams = await this.$axios.get_auth_data('v1/teams')
this.projects = await this.$axios.get_auth_data('v1/projects')
this.employees = await this.$axios.get_auth_data('v1/employees')
this.masterTasks = await this.$axios.get_auth_data('v1/mastertasks')
} catch (error) {
@@ -269,7 +269,7 @@
<div class="w-100 d-flex align-center">
<div v-for="(file, index) in masterTask.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" class="cursor-pointer">{{ file.name }}</p>
<p @click="downloadFile(index)" class="cursor-pointer">{{ file.name }}</p>
<v-icon class="mx-1" icon="mdi-paperclip"></v-icon>
</v-chip>
</div>
@@ -395,6 +395,14 @@ export default {
},
async downloadFile(id) {
try {
const file = await this.$axios.get_auth_data(`v1/mastertasks/${this.masterTask.id}`, { responseType: 'arraybuffer' })
FileSaver.saveAs(file.files[id].path, file.files[id].name)
} catch(error) {
this.$toast.error(error)
}
},
async showModal(masterTask, editMode = false) {
this.v$.$reset()
+10 -1
View File
@@ -335,7 +335,7 @@
:class="[index === 0 ? 'ml-0' : 'ml-2']"
>
<v-chip class="mt-2">
<p @click="downloadFile" class="cursor-pointer">
<p @click="downloadFile(index)" class="cursor-pointer">
{{ file.name }}
</p>
<v-icon
@@ -491,6 +491,15 @@ export default {
}
},
async downloadFile(id) {
try {
const file = await this.$axios.get_auth_data(`v1/subtasks/${this.task.id}`, { responseType: 'arraybuffer' })
FileSaver.saveAs(file.files[id].path, file.files[id].name)
} catch(error) {
this.$toast.error(error)
}
},
removeDate(index) {
this.task.timeblocks.splice(index, 1)
},