Files
L-Ami-Fiduciaire/resources/js/components/declarations/NudgePopover.vue
Saad Zoubir 8f39bd9b73 fix: resolve permission toggle persistence, nudge terminology, and bulk action bugs (Bugs #2-5)
- Fix togglePermission() to always include all permission keys with false defaults
- Add migration to backfill null/empty Manager permissions with config defaults
- Rename nudge UI text from "Relance" to "Notification"/"Notifier" across 8 files
- Fix select-all checkbox and show checkboxes on all declaration rows
- Remove en_attente_client status restriction from BulkNotificationController

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 13:40:30 +01:00

69 lines
1.7 KiB
Vue

<script setup lang="ts">
import { useForm } from '@inertiajs/vue3';
import { Send } from 'lucide-vue-next';
import { ref } from 'vue';
import { Button } from '@/components/ui/button';
import {
Popover,
PopoverContent,
PopoverTrigger,
} from '@/components/ui/popover';
type Props = {
assigneeName: string | null;
nudgeUrl: string;
};
const props = defineProps<Props>();
const open = ref(false);
const form = useForm({});
function sendNudge() {
form.post(props.nudgeUrl, {
preserveScroll: true,
onSuccess: () => {
open.value = false;
},
});
}
</script>
<template>
<Popover v-model:open="open">
<PopoverTrigger as-child>
<Button
variant="ghost"
size="icon"
class="h-8 w-8"
@click.stop
>
<Send class="h-4 w-4" />
</Button>
</PopoverTrigger>
<PopoverContent
class="w-64"
align="end"
@click.stop
>
<div class="space-y-3">
<p class="text-sm">
Envoyer une notification à
<span class="font-medium">{{
assigneeName ?? 'Non assigné'
}}</span>
</p>
<Button
class="w-full"
size="sm"
:disabled="form.processing || !assigneeName"
@click="sendNudge"
>
<Send class="mr-2 h-4 w-4" />
Envoyer une notification
</Button>
</div>
</PopoverContent>
</Popover>
</template>