Fix : URL correcte pour notifications de brief validé depuis PDF + redirect briefs vides
Problème 1 : Les notifications de brief validé depuis un PDF renvoyaient vers /projects/xxx/client-brief au lieu de l'URL complète avec dialog et fileIndex. Problème 2 : Les URL /projects/xxx/client-brief pour des briefs non créés affichaient une page vide au lieu de rediriger vers le kanban. Solutions : - Stocker validationDialogUri lors de la validation du brief - Utiliser ce dialogUri dans ContentProvider et Notifications.vue - Rediriger vers le projet parent si brief vide et non validé Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
a7d315942a
commit
6ff59e9b07
6 changed files with 46 additions and 7 deletions
|
|
@ -29,7 +29,7 @@
|
|||
</main>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { ref, onMounted } from 'vue';
|
||||
import Intro from '../components/project/brief/Intro.vue';
|
||||
import ModeSelection from '../components/project/brief/ModeSelection.vue';
|
||||
import Images from '../components/project/brief/Images.vue';
|
||||
|
|
@ -37,7 +37,7 @@ import TitledPdfWrapper from '../components/project/TitledPdfWrapper.vue';
|
|||
import { usePageStore } from '../stores/page';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useApiStore } from '../stores/api';
|
||||
import { useRoute } from 'vue-router';
|
||||
import { useRoute, useRouter } from 'vue-router';
|
||||
|
||||
const stepsComponents = {
|
||||
Intro,
|
||||
|
|
@ -48,9 +48,26 @@ const stepsComponents = {
|
|||
|
||||
const { page } = storeToRefs(usePageStore());
|
||||
const api = useApiStore();
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
const currentStep = ref(setInitialStep());
|
||||
|
||||
// Rediriger vers le kanban si le brief est vide et non validé
|
||||
onMounted(() => {
|
||||
const hasPDF = page.value?.content?.pdf?.length !== 0;
|
||||
const hasImages =
|
||||
page.value?.content?.moodboard?.length !== 0 ||
|
||||
page.value?.content?.description?.length !== 0;
|
||||
const isEmpty = !hasPDF && !hasImages;
|
||||
const isValidated = page.value?.content?.isvalidated === 'true';
|
||||
|
||||
// Si le brief est vide et non validé, rediriger vers le projet
|
||||
if (isEmpty && !isValidated && !route.query.step) {
|
||||
router.push('/' + page.value.parent);
|
||||
}
|
||||
});
|
||||
|
||||
function changeStep(stepName) {
|
||||
currentStep.value = stepName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -151,6 +151,11 @@ async function handleNotificationClick(notification) {
|
|||
function getHref(notification) {
|
||||
const uri = notification.location.page.uri;
|
||||
|
||||
// Pour les notifications de type "content" (brief validé), utiliser dialogUri si présent
|
||||
if (notification.type === 'content' && notification.dialogUri) {
|
||||
return notification.dialogUri;
|
||||
}
|
||||
|
||||
const isDocumentBrief =
|
||||
notification.location.page.template === 'client-brief' &&
|
||||
notification.location?.file?.type === 'document';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue