
fix: project table view fix: e2e tests fix: typo in readme fix: list view route fix: don't wait until background is loaded for list to show fix: rename component imports fix: lint fix: parse task text fix: use list card grid fix: use correct class names fix: i18n keys fix: load project fix: task overview fix: list view spacing fix: find project fix: setLoading when updating a project fix: loading saved filter fix: project store loading fix: color picker import fix: cypress tests feat: migrate old list settings chore: add const for project settings fix: wrong projecten rename from lists chore: rename unused variable fix: editor list fix: shortcut list class name fix: pagination list class name fix: notifications list class name fix: list view variable name chore: clarify comment fix: i18n keys fix: router imports fix: comment chore: remove debugging leftover fix: remove duplicate variables fix: change comment fix: list view variable name fix: list view css class name fix: list item property name fix: name update tasks function correctly fix: update comment fix: project create route fix: list view class names fix: list view component name fix: result list class name fix: animation class list name fix: change debug log fix: revert a few navigation changes fix: use @ for imports of all views fix: rename link share list class fix: remove unused css class fix: dynamically import project components again
103 lines
2.6 KiB
Vue
103 lines
2.6 KiB
Vue
<template>
|
|
<dropdown>
|
|
<template #trigger="triggerProps">
|
|
<slot name="trigger" v-bind="triggerProps">
|
|
<BaseButton class="dropdown-trigger" @click="triggerProps.toggleOpen">
|
|
<icon icon="ellipsis-h" class="icon"/>
|
|
</BaseButton>
|
|
</slot>
|
|
</template>
|
|
|
|
<template v-if="namespace.isArchived">
|
|
<dropdown-item
|
|
:to="{ name: 'namespace.settings.archive', params: { id: namespace.id } }"
|
|
icon="archive"
|
|
>
|
|
{{ $t('menu.unarchive') }}
|
|
</dropdown-item>
|
|
</template>
|
|
<template v-else>
|
|
<dropdown-item
|
|
:to="{ name: 'namespace.settings.edit', params: { id: namespace.id } }"
|
|
icon="pen"
|
|
>
|
|
{{ $t('menu.edit') }}
|
|
</dropdown-item>
|
|
<dropdown-item
|
|
:to="{ name: 'namespace.settings.share', params: { namespaceId: namespace.id } }"
|
|
icon="share-alt"
|
|
>
|
|
{{ $t('menu.share') }}
|
|
</dropdown-item>
|
|
<dropdown-item
|
|
:to="{ name: 'project.create', params: { namespaceId: namespace.id } }"
|
|
icon="plus"
|
|
>
|
|
{{ $t('menu.newProject') }}
|
|
</dropdown-item>
|
|
<dropdown-item
|
|
:to="{ name: 'namespace.settings.archive', params: { id: namespace.id } }"
|
|
icon="archive"
|
|
>
|
|
{{ $t('menu.archive') }}
|
|
</dropdown-item>
|
|
<Subscription
|
|
class="has-no-shadow"
|
|
:is-button="false"
|
|
entity="namespace"
|
|
:entity-id="namespace.id"
|
|
:model-value="subscription"
|
|
@update:model-value="setSubscriptionInStore"
|
|
type="dropdown"
|
|
/>
|
|
<dropdown-item
|
|
:to="{ name: 'namespace.settings.delete', params: { id: namespace.id } }"
|
|
icon="trash-alt"
|
|
class="has-text-danger"
|
|
>
|
|
{{ $t('menu.delete') }}
|
|
</dropdown-item>
|
|
</template>
|
|
</dropdown>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import {ref, onMounted, type PropType} from 'vue'
|
|
|
|
import BaseButton from '@/components/base/BaseButton.vue'
|
|
import Dropdown from '@/components/misc/dropdown.vue'
|
|
import DropdownItem from '@/components/misc/dropdown-item.vue'
|
|
import Subscription from '@/components/misc/subscription.vue'
|
|
import type {INamespace} from '@/modelTypes/INamespace'
|
|
import type {ISubscription} from '@/modelTypes/ISubscription'
|
|
import {useNamespaceStore} from '@/stores/namespaces'
|
|
|
|
const props = defineProps({
|
|
namespace: {
|
|
type: Object as PropType<INamespace>,
|
|
required: true,
|
|
},
|
|
})
|
|
|
|
const namespaceStore = useNamespaceStore()
|
|
|
|
const subscription = ref<ISubscription | null>(null)
|
|
onMounted(() => {
|
|
subscription.value = props.namespace.subscription
|
|
})
|
|
|
|
function setSubscriptionInStore(sub: ISubscription) {
|
|
subscription.value = sub
|
|
namespaceStore.setNamespaceById({
|
|
...props.namespace,
|
|
subscription: sub,
|
|
})
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.dropdown-trigger {
|
|
padding: 0.5rem;
|
|
display: flex;
|
|
}
|
|
</style> |