diff --git a/app/src/plugins/tm@_store/store/index.ts b/app/src/plugins/tm@_store/store/index.ts index 2042d93..2ecefbd 100644 --- a/app/src/plugins/tm@_store/store/index.ts +++ b/app/src/plugins/tm@_store/store/index.ts @@ -56,10 +56,22 @@ export default { state.teams = state.teams.filter(t => t.id != team.id) }, + update_subtask(state: any, subtask: any) { + 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 + }) + }, + 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.filter(st => st.id != subtask.id)) + state.mastertasks = state.mastertasks.map(mastertask => { + mastertask.subtasks = mastertask.subtasks.filter(st => st.id != subtask.id) + return mastertask + }) }, initialized(state: any) { diff --git a/app/src/plugins/tm@dashboard/tasks/_components/a-tasks-filter.vue b/app/src/plugins/tm@dashboard/tasks/_components/a-tasks-filter.vue index 9af6910..ba799a6 100644 --- a/app/src/plugins/tm@dashboard/tasks/_components/a-tasks-filter.vue +++ b/app/src/plugins/tm@dashboard/tasks/_components/a-tasks-filter.vue @@ -4,7 +4,7 @@ v-model="selectedEmployee" class="subheader-input" :items="[null, ...employees]" - item-title="fullName" + item-title="_fullName" item-value="id" label="Zamestnanec" variant="outlined" @@ -77,7 +77,7 @@ export default { async _getEmployees() { this.employees = await this.$axios.get_auth_data('v1/employees') this.employees.forEach(employee => { - employee.fullName = `${employee.name} ${employee.surname}` + employee._fullName = `${employee.name} ${employee.surname}` if (employee.id == this.user.id) this.selectedEmployee = employee }) }, diff --git a/app/src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts b/app/src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts index 0c14d81..78697b4 100644 --- a/app/src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts +++ b/app/src/plugins/tm@modal/master-task/_mixins/selects.mixin.ts @@ -25,9 +25,8 @@ export default { onMasterTaskSelected({ key }) { const mastertask = this.mastertasks.find(masterTask => masterTask.id == key) - this.task.master_task.name = mastertask.name - this.task.master_task.id = mastertask.id - this.task.project_code = mastertask.project_code + this.task.master_task = mastertask + this.task.project_code = mastertask.project_code }, onEmployeeSelected({ key }) { diff --git a/app/src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue b/app/src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue index 61bb469..c07eb11 100644 --- a/app/src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue +++ b/app/src/plugins/tm@modal/task/_components/_components/a-task-timeblocks.vue @@ -116,8 +116,6 @@ export default { async deleteTimeblock({ id }) { const task = JSON.parse(JSON.stringify(this.task)) task.timeblocks = task.timeblocks.filter(timeblock => timeblock.id != id) - console.log(task.timeblocks) - console.log(id) this._update(task) }, diff --git a/app/src/plugins/tm@modal/task/z-task-modal.vue b/app/src/plugins/tm@modal/task/z-task-modal.vue index 0ed5ab8..293c3a0 100644 --- a/app/src/plugins/tm@modal/task/z-task-modal.vue +++ b/app/src/plugins/tm@modal/task/z-task-modal.vue @@ -69,6 +69,7 @@ import ZAutocomplete from "@/plugins/tm@_components/z-autocomplete.vue" import ZTaskReadonlyInfo from "./_components/z-task-readonly-info.vue" import { mapGetters } from "vuex" +import moment from "moment" export default { emits: ["close", "refresh"], @@ -144,12 +145,11 @@ export default { this.$nextTick(() => this.v$.$reset()) try { - if (task?.id) { - const fetchedTask = await this.$axios.get_auth_data(`v1/subtasks/${task.id}`) - this.task = this._enrichTask(fetchedTask) + const subtask = await this.$axios.get_auth_data(`v1/subtasks/${task.id}`) + this.task = this._enrichTask(subtask) } else { - this.task = { master_task: masterTask } + this.task = { master_task: masterTask, timeblocks: [{start: tmUtils.formatDateTimeForBackend(moment()), end: tmUtils.formatDateTimeForBackend(moment())}] } this.masterTaskIdSelect = masterTask.id } @@ -164,17 +164,19 @@ export default { }, async save() { - if (!(await this.v$.$validate())) return console.log(this.v$) + if (!(await this.v$.$validate())) + return this.task.description = this.$refs["description"].getHTML() try { if (this.task?.id) { - await this.$axios.put_auth_data(`v1/subtasks/${this.task.id}`, this.task) + const { subtask } = await this.$axios.put_auth(`v1/subtasks/${this.task.id}`, this.task) + this.$store.commit('tm/update_subtask', subtask) } else { const { subtask } = await this.$axios.post_auth(`v1/mastertasks/${this.task.master_task.id}/subtasks`, this.task) - console.log(subtask) this.task.id = subtask.id + this.$store.commit('tm/update_subtask', subtask) } this.$events.emit("on-task-edited", this.task) @@ -219,7 +221,7 @@ export default { _enrichTask(task) { task.master_task = this.mastertasks.find((masterTask) => masterTask.id == task.master_task_id) task.employee = this.enrichedEmployees.find((employee) => employee.id == task.employee_id) - this.masterTaskIdSelect = task.master_task.id + this.masterTaskIdSelect = task.master_task?.id return task } @@ -241,6 +243,7 @@ export default { editMode() { this.$nextTick(() => { + console.log(this.task.description) this.$refs["description"]?.setHTML(this.task.description || "") }) }