mirror of
https://bitbucket.org/studiotem/jandl-taskmanager-app.git
synced 2026-10-21 14:29:34 +00:00
Merge branch 'main' of https://bitbucket.org/studiotem/jandl-taskmanager-app
This commit is contained in:
commit
158be83345
45 files changed
+115
-89
No files matched your search
@@ -66,20 +66,20 @@ export default {
|
||||
state.unscheduledSubtasks = state.unscheduledSubtasks.map(st => st.id == subtask.id ? subtask : st)
|
||||
state.ongoingSubtasks = state.ongoingSubtasks.map(st => st.id == subtask.id ? subtask : st)
|
||||
|
||||
state.mastertasks = state.mastertasks.map(mastertask => {
|
||||
mastertask.subtasks = mastertask.subtasks.map(st => st.id == subtask.id ? subtask : st)
|
||||
return mastertask
|
||||
})
|
||||
// state.mastertasks = state.mastertasks.map(mastertask => {
|
||||
// mastertask.subtasks = mastertask.subtasks.map(st => st.id == subtask.id ? subtask : st)
|
||||
// return mastertask
|
||||
// })
|
||||
},
|
||||
|
||||
delete_subtask(state: any, subtask: any) {
|
||||
state.unscheduledSubtasks = state.unscheduledSubtasks.filter(st => st.id != subtask.id)
|
||||
state.ongoingSubtasks = state.ongoingSubtasks.filter(st => st.id != subtask.id)
|
||||
|
||||
state.mastertasks = state.mastertasks.map(mastertask => {
|
||||
mastertask.subtasks = mastertask.subtasks.filter(st => st.id != subtask.id)
|
||||
return mastertask
|
||||
})
|
||||
// state.mastertasks = state.mastertasks.map(mastertask => {
|
||||
// mastertask.subtasks = mastertask.subtasks.filter(st => st.id != subtask.id)
|
||||
// return mastertask
|
||||
// })
|
||||
},
|
||||
|
||||
initialized(state: any) {
|
||||
@@ -116,7 +116,8 @@ export default {
|
||||
|
||||
loadMastertasks({commit}: {commit: any}) {
|
||||
return new Promise((resolve, reject) => {
|
||||
axios.get_auth('v1/mastertasks')
|
||||
// axios.get_auth('v1/mastertasks')
|
||||
axios.get_auth('v1/mastertasks/?simple=true')
|
||||
.then(({ mastertasks }) => {
|
||||
commit('set_mastertasks', mastertasks)
|
||||
resolve(mastertasks)
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
</div>
|
||||
|
||||
<div v-else-if="['subtask', 'blocker', 'adhoc', 'vacation', 'free_day'].includes(event.type)" class="custom-event-body colWidth h-100 d-flex flex-column justify-space-between" :class="{'short-event' : getEventLength(event) <= 9000000, 'mini-event' : getEventLength(event) <= 5400000, 'micro-event' : getEventLength(event) <= 3600000, 'not-approved': !event.blocker?.approved && event.isBlocker }" :style="{backgroundColor: event._timeblock_is_finished || event.subtask?.is_finished ? '#dedfe0' : event.color || event.subtask?.color}">
|
||||
<div class="event-content" :class="{'is-blocker': event.isBlocker}">
|
||||
<div class="event-content" :class="{'is-blocker': event.isBlocker}">
|
||||
<template v-if="event.type == 'subtask'">
|
||||
<small v-if="event.subtask.project_code" class="project-code">{{ event.subtask.project_code }}</small>
|
||||
<h3>{{ event.subtask.title ?? event.subtask.master_task?.name ?? event.subtask.master_task }}</h3>
|
||||
@@ -88,7 +88,7 @@
|
||||
</template>
|
||||
</v-tooltip>
|
||||
</template>
|
||||
|
||||
|
||||
<div class="d-flex align-center event-details event-initials-wrapper">
|
||||
<div class="event-initials d-flex justify-center align-center">
|
||||
<small>{{ event.initials }}</small>
|
||||
@@ -157,10 +157,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
async created() {
|
||||
console.log('splits', this.splits)
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
vueCalConfig: {
|
||||
@@ -205,11 +201,7 @@ export default {
|
||||
if (subtask?.deadline)
|
||||
return subtask.deadline
|
||||
|
||||
if (!this.mastertasks)
|
||||
return null
|
||||
|
||||
const masterTask = this.mastertasks.find((mt) => mt.id === subtask.master_task_id)
|
||||
return masterTask.deadline
|
||||
return subtask.master_task_deadline
|
||||
},
|
||||
|
||||
weekChanged() {
|
||||
@@ -222,7 +214,7 @@ export default {
|
||||
const start = date.setHours(Math.round(event.startTimeMinutes / 60), Math.round(event.startTimeMinutes % 60), 0)
|
||||
const end = date.setHours(Math.round(event.endTimeMinutes / 60), Math.round(event.endTimeMinutes % 60), 0)
|
||||
const split = this.splits.find(split => split.id == newSplit )
|
||||
|
||||
|
||||
if(this.$route.name == 'Dashboard - Tasks') {
|
||||
const editedSubtask = {
|
||||
...event.subtask,
|
||||
@@ -343,7 +335,7 @@ export default {
|
||||
subtask.timeblocks = subtask.timeblocks.map(originalTimeblock => {
|
||||
if (originalTimeblock.id == newTimeblock.id)
|
||||
return newTimeblock
|
||||
|
||||
|
||||
return originalTimeblock
|
||||
})
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div ref="page">
|
||||
<A-project-filter v-if="$store.getters['tm/isInitialized']" @filterChanged="onFilterChanged" />
|
||||
|
||||
|
||||
<W-loadable class="non-projects" :content="filteredProjects" emptyMessage="Nenašli sa žiadne vyhovujúce projekty">
|
||||
<A-project-calendar :events="filteredProjects" :month="filter.month" @open-detail="openMasterTaskModal" />
|
||||
</W-loadable>
|
||||
@@ -15,12 +15,12 @@ import FilterMixin from '../_mixins/Filter.mixin'
|
||||
|
||||
export default {
|
||||
mixins: [FilterMixin],
|
||||
|
||||
|
||||
components: {
|
||||
AProjectCalendar,
|
||||
AProjectFilter
|
||||
},
|
||||
|
||||
|
||||
data() {
|
||||
return {
|
||||
mastertasks: null,
|
||||
@@ -32,16 +32,16 @@ export default {
|
||||
filteredProjects() {
|
||||
if (!this.mastertasks)
|
||||
return null
|
||||
|
||||
|
||||
// return this.mastertasks.map(event => {
|
||||
|
||||
|
||||
// const startOfDay = new Date(event.starts_at);
|
||||
// startOfDay.setHours(0, 0, 0, 0); // Set to 00:00:00.000
|
||||
|
||||
// const endOfDay = new Date(event.deadline);
|
||||
// endOfDay.setHours(23, 59, 59, 999); // Set to 23:59:59.999
|
||||
|
||||
// console.log({
|
||||
// console.log({
|
||||
// start: startOfDay,
|
||||
// end: endOfDay,
|
||||
// })
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
</v-col>
|
||||
<v-col cols="7">
|
||||
<v-sheet class="py-3">
|
||||
<p v-if="subtask.deadline" :class="`${tmUtils.isAfter(subtask.deadline) ? 'text-black' : 'text-red-darken-4'}`">{{ tmUtils.formatDate(subtask.deadline) }} {{ deadlineTime }}</p>
|
||||
<p v-if="subtask.deadline" :class="`${tmUtils.isAfter(subtask.deadline) ? 'text-black' : 'text-red-darken-4'}`">{{ tmUtils.formatDate(subtask.deadline) }} {{ deadlineTime }}</p>
|
||||
<v-tooltip v-else text="Deadline z Mastertasku" location="end">
|
||||
<template v-slot:activator="{ props }">
|
||||
<span class="cursor-pointer" v-bind="props">{{ getMasterTaskDeadline(subtask) }}*</span>
|
||||
@@ -53,9 +53,10 @@ export default {
|
||||
|
||||
methods: {
|
||||
getMasterTaskDeadline(subtask) {
|
||||
if(!this.mastertasks) return ''
|
||||
const masterTask = this.mastertasks.find((mt) => mt.id === subtask.master_task_id)
|
||||
return tmUtils.formatDateTime(masterTask) ? tmUtils.formatDateTime(masterTask.deadline) : ''
|
||||
if (subtask?.deadline)
|
||||
return subtask.deadline
|
||||
|
||||
return subtask.master_task_deadline
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ export default {
|
||||
|
||||
validations() {
|
||||
return {
|
||||
form: {
|
||||
form: {
|
||||
date: { required },
|
||||
starts_at_time: { required },
|
||||
ends_at_time: { required }
|
||||
@@ -202,7 +202,7 @@ export default {
|
||||
subtask.timeblocks = subtask.timeblocks.map(originalTimeblock => {
|
||||
if (originalTimeblock.id == newTimeblock.id)
|
||||
return newTimeblock
|
||||
|
||||
|
||||
return originalTimeblock
|
||||
})
|
||||
|
||||
@@ -252,7 +252,7 @@ export default {
|
||||
|
||||
const mDate = moment(this.form.date)
|
||||
const mDeadline = moment(deadline)
|
||||
|
||||
|
||||
const [hours, minutes] = this.form.ends_at_time.split(':').map(Number)
|
||||
|
||||
mDate.hours(hours)
|
||||
@@ -265,11 +265,7 @@ export default {
|
||||
if (subtask?.deadline)
|
||||
return subtask.deadline
|
||||
|
||||
if (!this.mastertasks)
|
||||
return null
|
||||
|
||||
const masterTask = this.mastertasks.find((mt) => mt.id === subtask.master_task_id)
|
||||
return masterTask.deadline
|
||||
return subtask.master_task_deadline
|
||||
},
|
||||
|
||||
closeModal() {
|
||||
|
||||
@@ -342,7 +342,6 @@ export default {
|
||||
this.$events.emit('task-created')
|
||||
this.$events.emit('close-both-modals')
|
||||
}
|
||||
|
||||
this.closeModal()
|
||||
} catch (error) {
|
||||
this.$toast.error(this.$parseError(error))
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
|
||||
|
||||
</v-table>
|
||||
</template>
|
||||
|
||||
@@ -54,7 +54,7 @@ export default {
|
||||
computed: {
|
||||
...mapGetters('tm', ['mastertasks'])
|
||||
},
|
||||
|
||||
|
||||
methods: {
|
||||
editTask(subtask, editMode = false) {
|
||||
this.$events.emit('show-subtask-modal', {subtask, editMode})
|
||||
@@ -65,10 +65,10 @@ export default {
|
||||
},
|
||||
|
||||
getDeadline(subtask) {
|
||||
if(subtask.deadline) return moment(subtask.deadline).format('DD.MM.yyyy')
|
||||
else if(!this.mastertasks) return ''
|
||||
const masterTask = this.mastertasks.find((mt) => mt.id === subtask.master_task_id)
|
||||
return moment(masterTask).format('DD.MM.yyyy') ? moment(masterTask.deadline).format('DD.MM.yyyy') : ''
|
||||
if (subtask?.deadline)
|
||||
return moment(subtask.deadline).format('DD.MM.yyyy')
|
||||
|
||||
return moment(subtask.master_task_deadline).format('DD.MM.yyyy')
|
||||
},
|
||||
|
||||
getSelectedTimeblockDeadline(timeblocks) {
|
||||
|
||||
@@ -97,9 +97,7 @@ export default {
|
||||
},
|
||||
|
||||
getMasterTaskDeadline(subtask) {
|
||||
if(!this.mastertasks) return ''
|
||||
const masterTask = this.mastertasks.find((mt) => mt.id === subtask.master_task_id)
|
||||
return masterTask ? masterTask.deadline : ''
|
||||
return subtask.master_task_deadline
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,10 +60,10 @@ export default {
|
||||
},
|
||||
|
||||
getDeadline(subtask) {
|
||||
if(subtask.deadline) return moment(subtask.deadline).format('DD.MM.yyyy')
|
||||
else if(!this.mastertasks) return ''
|
||||
const masterTask = this.mastertasks.find((mt) => mt.id === subtask.master_task_id)
|
||||
return moment(masterTask).format('DD.MM.yyyy') ? moment(masterTask.deadline).format('DD.MM.yyyy') : ''
|
||||
if (subtask?.deadline)
|
||||
return moment(subtask.deadline).format('DD.MM.yyyy')
|
||||
|
||||
return moment(subtask.master_task_deadline).format('DD.MM.yyyy')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,9 +96,7 @@ export default {
|
||||
},
|
||||
|
||||
getMasterTaskDeadline(subtask) {
|
||||
if(!this.mastertasks) return ''
|
||||
const masterTask = this.mastertasks.find((mt) => mt.id === subtask.master_task_id)
|
||||
return masterTask ? masterTask.deadline : ''
|
||||
return subtask.master_task_deadline
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user