mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-13 10:42:16 +01:00
hide create project buttons and modal depending on the permission
This commit is contained in:
@@ -40,6 +40,7 @@ const props = defineProps<{
|
||||
currency: string;
|
||||
selectedTimeEntries: TimeEntry[];
|
||||
enableEstimatedTime: boolean;
|
||||
canCreateProject: boolean;
|
||||
}>();
|
||||
const emit = defineEmits<{
|
||||
selected: [TimeEntry[]];
|
||||
@@ -121,6 +122,7 @@ function onSelectChange(event: Event) {
|
||||
:clients
|
||||
:createProject
|
||||
:createClient
|
||||
:canCreateProject
|
||||
:projects="projects"
|
||||
:tasks="tasks"
|
||||
:showBadgeBorder="false"
|
||||
@@ -177,6 +179,7 @@ function onSelectChange(event: Event) {
|
||||
<TimeEntryRow
|
||||
:projects="projects"
|
||||
:enableEstimatedTime
|
||||
:canCreateProject
|
||||
:tasks="tasks"
|
||||
:selected="
|
||||
!!selectedTimeEntries.find(
|
||||
|
||||
@@ -38,6 +38,7 @@ const props = defineProps<{
|
||||
createClient: (client: CreateClientBody) => Promise<Client | undefined>;
|
||||
currency: string;
|
||||
enableEstimatedTime: boolean;
|
||||
canCreateProject: boolean;
|
||||
}>();
|
||||
|
||||
const groupedTimeEntries = computed(() => {
|
||||
@@ -161,6 +162,7 @@ function unselectAllTimeEntries(value: TimeEntriesGroupedByType[]) {
|
||||
<template v-for="entry in value" :key="entry.id">
|
||||
<TimeEntryAggregateRow
|
||||
:createProject
|
||||
:canCreateProject
|
||||
:enableEstimatedTime
|
||||
:selected-time-entries="selectedTimeEntries"
|
||||
@selected="
|
||||
@@ -197,6 +199,7 @@ function unselectAllTimeEntries(value: TimeEntriesGroupedByType[]) {
|
||||
<TimeEntryRow
|
||||
:createClient
|
||||
:enableEstimatedTime
|
||||
:canCreateProject
|
||||
:createProject
|
||||
:projects="projects"
|
||||
:selected="
|
||||
|
||||
@@ -33,6 +33,7 @@ const props = defineProps<{
|
||||
) => Promise<void>;
|
||||
currency: string;
|
||||
enableEstimatedTime: boolean;
|
||||
canCreateProject: boolean;
|
||||
}>();
|
||||
|
||||
const emit = defineEmits<{
|
||||
@@ -55,6 +56,7 @@ const showMassUpdateModal = ref(false);
|
||||
:createClient
|
||||
:updateTimeEntries
|
||||
:enableEstimatedTime
|
||||
:canCreateProject
|
||||
:currency
|
||||
:time-entries="selectedTimeEntries"
|
||||
@submit="emit('submit')"
|
||||
|
||||
@@ -36,6 +36,7 @@ const props = defineProps<{
|
||||
) => Promise<void>;
|
||||
currency: string;
|
||||
enableEstimatedTime: boolean;
|
||||
canCreateProject: boolean;
|
||||
}>();
|
||||
|
||||
const emit = defineEmits<{
|
||||
@@ -156,6 +157,7 @@ watch(removeAllTags, () => {
|
||||
:createProject
|
||||
:createClient
|
||||
:currency="currency"
|
||||
:canCreateProject
|
||||
class="mt-1"
|
||||
empty-placeholder="Select project..."
|
||||
allow-reset
|
||||
|
||||
@@ -38,6 +38,7 @@ const props = defineProps<{
|
||||
showMember?: boolean;
|
||||
showDate?: boolean;
|
||||
selected?: boolean;
|
||||
canCreateProject: boolean;
|
||||
enableEstimatedTime: boolean;
|
||||
}>();
|
||||
|
||||
@@ -111,6 +112,7 @@ function onSelectChange(event: Event) {
|
||||
<TimeTrackerProjectTaskDropdown
|
||||
:createProject
|
||||
:createClient
|
||||
:canCreateProject
|
||||
:clients
|
||||
:projects="projects"
|
||||
:tasks="tasks"
|
||||
|
||||
@@ -34,6 +34,7 @@ const props = defineProps<{
|
||||
isActive: boolean;
|
||||
currency: string;
|
||||
enableEstimatedTime: boolean;
|
||||
canCreateProject: boolean;
|
||||
}>();
|
||||
|
||||
const emit = defineEmits<{
|
||||
@@ -110,6 +111,7 @@ function updateTimeEntryDescription() {
|
||||
class="flex items-center w-[130px] @2xl:w-auto shrink min-w-0">
|
||||
<TimeTrackerProjectTaskDropdown
|
||||
:createClient
|
||||
:canCreateProject
|
||||
:clients
|
||||
:createProject
|
||||
:currency="currency"
|
||||
|
||||
@@ -64,6 +64,7 @@ const props = withDefaults(
|
||||
emptyPlaceholder: string;
|
||||
allowReset: boolean;
|
||||
enableEstimatedTime: boolean;
|
||||
canCreateProject: boolean;
|
||||
}>(),
|
||||
{
|
||||
showBadgeBorder: true,
|
||||
@@ -532,7 +533,7 @@ const showCreateProject = ref(false);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="projects.length === 0">
|
||||
<div v-if="projects.length === 0 && canCreateProject">
|
||||
<Badge
|
||||
@click="showCreateProject = true"
|
||||
size="large"
|
||||
@@ -689,7 +690,9 @@ const showCreateProject = ref(false);
|
||||
</template>
|
||||
</template>
|
||||
</div>
|
||||
<div class="hover:bg-card-background-active rounded-b-lg">
|
||||
<div
|
||||
v-if="canCreateProject"
|
||||
class="hover:bg-card-background-active rounded-b-lg">
|
||||
<button
|
||||
@click="
|
||||
open = false;
|
||||
|
||||
Reference in New Issue
Block a user