<template>
<dropdown>
<template v-if="isSavedFilter">
<dropdown-item
:to="{ name: `${listRoutePrefix}.settings.edit`, params: { listId: list.id } }"
icon="pen"
>
Edit
</dropdown-item>
:to="{ name: `${listRoutePrefix}.settings.delete`, params: { listId: list.id } }"
icon="trash-alt"
Delete
</template>
<template v-else-if="list.isArchived">
:to="{ name: `${listRoutePrefix}.settings.archive`, params: { listId: list.id } }"
icon="archive"
Un-Archive
<template v-else>
:to="{ name: `${listRoutePrefix}.settings.background`, params: { listId: list.id } }"
v-if="backgroundsEnabled"
icon="image"
Set background
:to="{ name: `${listRoutePrefix}.settings.share`, params: { listId: list.id } }"
icon="share-alt"
Share
:to="{ name: `${listRoutePrefix}.settings.duplicate`, params: { listId: list.id } }"
icon="paste"
Duplicate
Archive
<task-subscription
class="dropdown-item has-no-shadow"
:is-button="false"
entity="list"
:entity-id="list.id"
:subscription="subscription"
@change="sub => subscription = sub"
/>
class="has-text-danger"
</dropdown>
<script>
import {getSavedFilterIdFromListId} from '@/helpers/savedFilter'
import Dropdown from '@/components/misc/dropdown'
import DropdownItem from '@/components/misc/dropdown-item'
import TaskSubscription from '@/components/misc/subscription'
export default {
name: 'list-settings-dropdown',
data() {
return {
subscription: null,
}
},
components: {
TaskSubscription,
DropdownItem,
Dropdown,
props: {
list: {
required: true,
mounted() {
this.subscription = this.list.subscription
computed: {
backgroundsEnabled() {
return this.$store.state.config.enabledBackgroundProviders.length > 0
listRoutePrefix() {
let name = 'list'
if (this.$route.name !== null && this.$route.name.startsWith('list.')) {
name = this.$route.name
if (this.isSavedFilter) {
name = name.replace('list.', 'filter.')
return name
isSavedFilter() {
return getSavedFilterIdFromListId(this.list.id) > 0
</script>