diff --git a/public/site/blueprints/pages/client-brief.yml b/public/site/blueprints/pages/client-brief.yml index 9df9168..d7b2100 100644 --- a/public/site/blueprints/pages/client-brief.yml +++ b/public/site/blueprints/pages/client-brief.yml @@ -24,7 +24,6 @@ tabs: type: hidden isValidated: type: hidden - # Champs pour notification "content" (brief validé) validatedBy: type: hidden validatedByName: @@ -35,6 +34,8 @@ tabs: type: hidden validationReadby: type: hidden + validationDialogUri: + type: hidden pdf: label: PDF type: files diff --git a/public/site/blueprints/pages/extended-brief.yml b/public/site/blueprints/pages/extended-brief.yml index 477d4a1..5c96ee2 100644 --- a/public/site/blueprints/pages/extended-brief.yml +++ b/public/site/blueprints/pages/extended-brief.yml @@ -35,6 +35,8 @@ tabs: type: hidden validationReadby: type: hidden + validationDialogUri: + type: hidden pdf: label: PDF type: files diff --git a/public/site/config/routes/validate-brief.php b/public/site/config/routes/validate-brief.php index fb2bf86..5b16c44 100644 --- a/public/site/config/routes/validate-brief.php +++ b/public/site/config/routes/validate-brief.php @@ -15,7 +15,7 @@ return [ $timezone = new DateTimeZone('Europe/Paris'); $dateTime = new DateTime('now', $timezone); - $newPage = $page->update([ + $updateData = [ 'isValidated' => 'true', // Métadonnées pour le système de notifications dérivées 'validatedBy' => (string) $user->uuid(), @@ -23,7 +23,14 @@ return [ 'validatedByEmail' => (string) $user->email(), 'validatedAt' => $dateTime->format('Y-m-d\TH:i:sP'), 'validationReadby' => [], - ]); + ]; + + // Si un dialogUri est fourni (validation depuis PDF), le stocker + if (isset($data->dialogUri) && !empty($data->dialogUri)) { + $updateData['validationDialogUri'] = (string) $data->dialogUri; + } + + $newPage = $page->update($updateData); // Note: Les notifications sont maintenant dérivées. // Plus besoin d'appeler createNotification(). diff --git a/public/site/plugins/notifications/src/providers/ContentProvider.php b/public/site/plugins/notifications/src/providers/ContentProvider.php index 3f09800..94698ec 100644 --- a/public/site/plugins/notifications/src/providers/ContentProvider.php +++ b/public/site/plugins/notifications/src/providers/ContentProvider.php @@ -60,10 +60,10 @@ class ContentProvider implements NotificationProvider ? 'Brief client' : 'Brief étendu'; - $notifications[] = [ + $notification = [ 'id' => 'content-' . (string) $step->uuid(), 'type' => 'content', - 'text' => "Nouveau $stepLabel validé", + 'text' => 'Nouveau ' . strtolower($stepLabel) . ' validé', 'author' => [ 'uuid' => $authorUuid, 'name' => $step->validatedByName()->value() ?? '', @@ -86,6 +86,13 @@ class ContentProvider implements NotificationProvider 'isRead' => in_array($userUuid, $readby), '_briefUri' => $step->uri(), ]; + + // Ajouter le dialogUri si présent (validation depuis PDF) + if ($step->validationDialogUri()->isNotEmpty()) { + $notification['dialogUri'] = $step->validationDialogUri()->value(); + } + + $notifications[] = $notification; } return $notifications; diff --git a/src/views/Brief.vue b/src/views/Brief.vue index acc132f..5d5963e 100644 --- a/src/views/Brief.vue +++ b/src/views/Brief.vue @@ -29,7 +29,7 @@