1
0

Merge branch 'main' into vue3

# Conflicts:
#	src/components/input/editor.vue
#	src/components/list/partials/filters.vue
#	src/components/tasks/partials/editAssignees.vue
#	src/helpers/find.ts
#	src/helpers/time/formatDate.js
#	src/main.ts
#	src/store/modules/attachments.js
#	src/store/modules/kanban.js
#	src/views/list/views/List.vue
#	yarn.lock
This commit is contained in:
Dominik Pschenitschni
2021-10-07 12:20:52 +02:00
120 changed files with 717 additions and 272 deletions

View File

@ -112,7 +112,7 @@ export default {
this.filterService.update(this.filter)
.then(r => {
this.$store.dispatch('namespaces/loadNamespaces')
this.$message.success({message: this.$t('filters.attributes.edit.success')})
this.$message.success({message: this.$t('filters.edit.success')})
this.filter = r
this.filters = objectToSnakeCase(this.filter.filters)
this.$router.back()

View File

@ -236,7 +236,7 @@
import draggable from 'vuedraggable'
import BucketModel from '../../../models/bucket'
import {findById} from '@/helpers/find'
import {findById} from '@/helpers/utils'
import {mapState} from 'vuex'
import {saveListView} from '@/helpers/saveListView'
import Rights from '../../../models/constants/rights.json'

View File

@ -99,16 +99,18 @@
@taskUpdated="updateTasks"
task-detail-route="task.detail"
>
<span class="icon handle">
<icon icon="grip-lines"/>
</span>
<div
@click="editTask(t.id)"
class="icon settings"
v-if="!list.isArchived && canWrite"
>
<icon icon="pencil-alt"/>
</div>
<template v-if="canWrite">
<span class="icon handle">
<icon icon="grip-lines"/>
</span>
<div
@click="editTask(t.id)"
class="icon settings"
v-if="!list.isArchived"
>
<icon icon="pencil-alt"/>
</div>
</template>
</single-task-in-list>
</template>
</draggable>
@ -152,7 +154,6 @@ import {HAS_TASKS} from '@/store/mutation-types'
import Nothing from '@/components/misc/nothing.vue'
import Pagination from '@/components/misc/pagination.vue'
import {mapState} from 'vuex'
import draggable from 'vuedraggable'
import {calculateItemPosition} from '../../../helpers/calculateItemPosition'
@ -216,10 +217,12 @@ export default {
return calculateItemPosition(null, this.tasks[0].position)
},
...mapState({
canWrite: state => state.currentList.maxRight > Rights.READ,
list: state => state.currentList,
}),
canWrite() {
return this.list.maxRight > Rights.READ && this.list.id > 0
},
list() {
return this.$store.state.currentList
},
},
mounted() {
this.$nextTick(() => (this.ctaVisible = true))

View File

@ -140,7 +140,7 @@
<router-link :to="{name: 'task.detail', params: { id: t.id }}">{{ t.title }}</router-link>
</td>
<td v-if="activeColumns.priority">
<priority-label :priority="t.priority" :show-all="true"/>
<priority-label :priority="t.priority" :done="t.done" :show-all="true"/>
</td>
<td v-if="activeColumns.labels">
<labels :labels="t.labels"/>

View File

@ -4,18 +4,20 @@
<p>{{ $t('migrate.description') }}</p>
<div class="migration-services-overview">
<router-link
:key="m.identifier"
:to="{name: 'migrate.service', params: {service: m.identifier}}"
v-for="m in availableMigrators">
<img :alt="m.name" :src="`/images/migration/${m.identifier}.png`"/>
{{ m.name }}
v-for="{name, identifier} in availableMigrators"
:key="identifier"
:to="{name: 'migrate.service', params: {service: identifier}}"
>
<img :alt="name" :src="serviceIconSources[identifier]"/>
{{ name }}
</router-link>
</div>
</div>
</template>
<script>
import {getMigratorFromSlug} from '../../helpers/migrator'
import {getMigratorFromSlug, SERVICE_ICONS} from '../../helpers/migrator'
export default {
name: 'migrate.service',
@ -26,6 +28,9 @@ export default {
availableMigrators() {
return this.$store.state.config.availableMigrators.map(getMigratorFromSlug)
},
serviceIconSources() {
return this.availableMigrators.map(({identifier}) => SERVICE_ICONS[identifier]())
},
},
}
</script>

View File

@ -77,7 +77,7 @@ export default {
}
// TODO: Put this logic in a global errorMessage handler method which checks all auth codes
let errorMessage = this.$t('sharing.errorMessage')
let errorMessage = this.$t('sharing.error')
if (e.response && e.response.data && e.response.data.message) {
errorMessage = e.response.data.message
}

View File

@ -38,7 +38,7 @@
</div>
<template v-if="!loading && (!tasks || tasks.length === 0) && showNothingToDo">
<h3 class="nothing">{{ $t('task.show.noTasks') }}</h3>
<img alt="" src="/images/cool.svg"/>
<img alt="" :src="llamaCoolUrl" />
</template>
<div :class="{ 'is-loading': loading}" class="spinner"></div>
@ -64,6 +64,8 @@ import 'flatpickr/dist/flatpickr.css'
import Fancycheckbox from '../../components/input/fancycheckbox'
import {LOADING, LOADING_MODULE} from '../../store/mutation-types'
import llamaCoolUrl from '@/assets/llama-cool.svg'
export default {
name: 'ShowTasks',
components: {
@ -81,6 +83,7 @@ export default {
cEndDate: null,
showNothingToDo: false,
llamaCoolUrl,
}
},
props: {

View File

@ -423,7 +423,6 @@
<script>
import TaskService from '../../services/task'
import TaskModel from '../../models/task'
import relationKinds from '../../models/constants/relationKinds.json'
import priorites from '../../models/constants/priorities.json'
import rights from '../../models/constants/rights.json'
@ -473,7 +472,6 @@ export default {
return {
taskService: new TaskService(),
task: new TaskModel(),
relationKinds: relationKinds,
// We doubled the task color property here because verte does not have a real change property, leading
// to the color property change being triggered when the # is removed from it, leading to an update,
// which leads in turn to a change... This creates an infinite loop in which the task is updated, changed,