Loading config/module.config.php +10 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,16 @@ return [ 'redirect_internal' => 'unicaen-signature/my-documents', //////////////////////////////////// MAILS 'mail_obs_subject' => '[suivi signature] Document {DOCUMENT}', 'mail_obs_subject_reject' => "[suivi signature] REJET du document '{DOCUMENT}'", 'mail_obs_subject_prefix_step' => ' (étape {ETAPE}/{TOTAL_ETAPES})', 'mail_obs_message' => "Bonjour,\n le document '{DOCUMENT}' a été envoyé pour {SIGN_NOUN} à {TOTAL_RECIPIENTS} destinataire(s)", 'mail_recipient_subject' => "[signature] Vous avez un document à {SIGN_VERB} - {DOCUMENT}", 'mail_recipient_message' => "Bonjour,\nVous avez un document '{DOCUMENT}' à {SIGN_VERB} : \n{LINK}\n", 'mail_recipient_message_previous_steps' => "étapes précédentes : \n", 'mail_messages_end' => "Merci\n(Ce message est automatique, ne pas répondre)", 'get_recipients_methods' => [ [ 'key' => \UnicaenSignature\Utils\SignatureConstants::GET_RECIPIENTS_METHOD_FIXED, 'label' => 'Destinataires fixes', Loading public/src/views/SignatureFlows.vue +3 −0 Original line number Diff line number Diff line Loading @@ -622,6 +622,9 @@ export default { background: white; padding: .5em 1em; margin: 1em 0; h3 { margin: 0 0 .3em 0; } } .buttons-bar { Loading src/Service/SignatureConfigurationService.php +79 −0 Original line number Diff line number Diff line Loading @@ -204,4 +204,83 @@ class SignatureConfigurationService return $this->configuration->getConfiguration('unicaen-signature.redirect_internal'); } //////////////////////////////////////////////// MESSAGES /// const mail_obs_subject = 'unicaen-signature.mail_obs_subject'; const mail_obs_subject_reject = 'unicaen-signature.mail_obs_subject_reject'; const mail_obs_subject_prefix_step = 'unicaen-signature.mail_obs_subject_prefix_step'; const mail_obs_message = 'unicaen-signature.mail_obs_message'; const mail_recipient_subject = 'unicaen-signature.mail_recipient_subject'; const mail_recipient_message = 'unicaen-signature.mail_recipient_message'; const mail_recipient_message_previous_steps = 'unicaen-signature.mail_recipient_message_previous_steps'; const mail_messages_end = 'unicaen-signature.mail_messages_end'; public function get_mail_obs_subject():string { return $this->configuration->getOptionalConfiguration( self::mail_obs_subject, '[suivi signature] Document {DOCUMENT}'); } public function get_mail_obs_subject_reject() :string { return $this->configuration->getOptionalConfiguration( self::mail_obs_subject_reject, "[suivi] Document '{DOCUMENT}' rejeté"); } public function get_mail_obs_subject_prefix_step():string { return $this->configuration->getOptionalConfiguration( self::mail_obs_subject_prefix_step, ' (étape {ETAPE}/{TOTAL_ETAPES})'); } public function get_mail_obs_message():string { return $this->configuration->getOptionalConfiguration( self::mail_obs_message, "Bonjour,\n le document '{DOCUMENT}' a été envoyé pour {SIGN_NOUN} à {TOTAL_RECIPIENTS} destinataire(s)"); } public function get_mail_recipient_subject():string { return $this->configuration->getOptionalConfiguration( self::mail_recipient_subject, "[signature] Vous avez un document à {SIGN_VERB} - {DOCUMENT}"); } public function get_mail_recipient_message():string { return $this->configuration->getOptionalConfiguration( self::mail_recipient_message, "Bonjour, vous avez un document '{DOCUMENT}' à {SIGN_VERB} : \n{LINK}\n"); } public function get_mail_recipient_message_previous_steps():string { return $this->configuration->getOptionalConfiguration( self::mail_recipient_message_previous_steps, "étapes précédentes : \n"); } public function get_mail_messages_end():string { return $this->configuration->getOptionalConfiguration( self::mail_messages_end, "Merci\n(Ce message est automatique, ne pas répondre)"); } /**** 'mail_obs_subject' => '[suivi signature] Document {DOCUMENT }', 'mail_obs_subject_prefix_step' => ' (étape {ETAPE}/{TOTAL_ETAPES})', 'mail_obs_message' => "Bonjour,\n le document '{DOCUMENT}' a été envoyé pour {SIGN_NOUN} à {TOTAL_RECIPIENTS} destinataire(s)", 'mail_recipient_subject' => "[signature] Vous avez un document à {SIGN_VERB} - {DOCUMENT}", 'mail_recipient_message' => "Bonjour, vous avez un document '{DOCUMENT}' à {SIGN_VERB} : \n{LINK_DOCUMENT}\n", 'mail_recipient_message_previous-steps' => "étapes précédentes : \n", 'mail_messages_end' => "Merci\n(Ce message est automatique, ne pas répondre)", /****/ } No newline at end of file src/Service/SignatureService.php +19 −18 Original line number Diff line number Diff line Loading @@ -666,7 +666,7 @@ class SignatureService if ($signature->getStatus() == Signature::STATUS_SIGNATURE_REJECT) { $subject = "[suivi] étape $step/$steps du Document {DOCUMENT} rejetée"; $subject = $this->getSignatureConfigurationService()->get_mail_obs_subject_reject(); $events[] = [ 'spot' => 'signature', Loading Loading @@ -999,27 +999,31 @@ class SignatureService // Obtenir le lien $link = $signatureRecipient->getUrlDocument(); $subject = "[signature] Vous avez un document à {SIGN_VERB} - {DOCUMENT}"; $message = "Bonjour, vous avez un document '{DOCUMENT}' à {SIGN_VERB} : $link\n"; $subject = $this->getSignatureConfigurationService()->get_mail_recipient_subject(); $message = $this->getSignatureConfigurationService()->get_mail_recipient_message(); $datas = [ '{LINK}' => $link ]; if( $signatureRecipient->getSignature()->getProcessStep() ){ $subject .= " (étape {ETAPE}/{TOTAL_ETAPES})"; $subject .= $this->getSignatureConfigurationService()->get_mail_obs_subject_prefix_step(); $previousSteps = $signatureRecipient->getSignature()->getProcessStep()->getProcess()->previousSteps(); if( count($previousSteps) ){ $message .= "étapes précédentes : \n"; $message .= $this->getSignatureConfigurationService()->get_mail_recipient_message_previous_steps(); // Calcule des étapes foreach ($signatureRecipient->getSignature()->getProcessStep()->getProcess()->previousSteps() as $step) { $message .= " - ". $step->getMessage() . "\n"; } } } $message .= "Merci\n(Ce message est automatique, ne pas répondre)"; $message .= $this->getSignatureConfigurationService()->get_mail_messages_end(); $this->sendNotificationTo( $signatureRecipient->getEmail(), $subject, $message, $signatureRecipient->getSignature() $signatureRecipient->getSignature(), $datas ); } Loading @@ -1029,10 +1033,9 @@ class SignatureService if( $signature->isNotifiableObserver() ) { $nbrRecipients = count($signature->getRecipients()); $subject = "[suivi signature] Document '{DOCUMENT} envoyé pour {SIGN_NOUN}"; $subject = $this->getSignatureConfigurationService()->get_mail_obs_subject(); if( $signature->getProcessStep() ){ $this->getLoggerService()->debug("SUBJECT -> Ajout étape"); $subject .= " (étape {ETAPE}/{TOTAL_ETAPES})"; $subject .= $this->getSignatureConfigurationService()->get_mail_obs_subject_prefix_step(); } //$url = $this->forgeLink('unicaen-signature/my-documents', []); Loading @@ -1040,8 +1043,7 @@ class SignatureService $this->sendNotificationTo( $observer->getEmail(), $subject, "Bonjour,\n le document '{DOCUMENT}' a été envoyé pour {SIGN_NOUN} à $nbrRecipients destinataire(s)" , $this->getSignatureConfigurationService()->get_mail_obs_message(), $signature ); } Loading @@ -1052,23 +1054,22 @@ class SignatureService string $email, string $subject, string $message, Signature $signature Signature $signature, array $datas = [] ): void { $datas = [ '{RECIPIENT}' => 'NO-RECIPIENT', ]; $datas['{DOCUMENT}'] = $signature->getContextShort() ?: 'Document'; $datas['{SIGN_NOUN}'] = $signature->getNoun(); $datas['{SIGN_VERB}'] = $signature->getVerb(); $datas['{SIGN_PARTICIPLE}'] = $signature->getParticiple(); $datas['{LINK}'] = "LINK TO BUILD"; $datas['{TOTAL_RECIPIENTS}'] = count($signature->getRecipients()); if ($signature->getProcessStep()) { $datas['{ETAPE}'] = $signature->getProcessStep()->getOrder(); $datas['{TOTAL_ETAPES}'] = count($signature->getProcessStep()->getProcess()->getSteps()); } $this->getLoggerService()->info(json_encode($datas)); $find = array_keys($datas); $replace = array_values($datas); Loading Loading
config/module.config.php +10 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,16 @@ return [ 'redirect_internal' => 'unicaen-signature/my-documents', //////////////////////////////////// MAILS 'mail_obs_subject' => '[suivi signature] Document {DOCUMENT}', 'mail_obs_subject_reject' => "[suivi signature] REJET du document '{DOCUMENT}'", 'mail_obs_subject_prefix_step' => ' (étape {ETAPE}/{TOTAL_ETAPES})', 'mail_obs_message' => "Bonjour,\n le document '{DOCUMENT}' a été envoyé pour {SIGN_NOUN} à {TOTAL_RECIPIENTS} destinataire(s)", 'mail_recipient_subject' => "[signature] Vous avez un document à {SIGN_VERB} - {DOCUMENT}", 'mail_recipient_message' => "Bonjour,\nVous avez un document '{DOCUMENT}' à {SIGN_VERB} : \n{LINK}\n", 'mail_recipient_message_previous_steps' => "étapes précédentes : \n", 'mail_messages_end' => "Merci\n(Ce message est automatique, ne pas répondre)", 'get_recipients_methods' => [ [ 'key' => \UnicaenSignature\Utils\SignatureConstants::GET_RECIPIENTS_METHOD_FIXED, 'label' => 'Destinataires fixes', Loading
public/src/views/SignatureFlows.vue +3 −0 Original line number Diff line number Diff line Loading @@ -622,6 +622,9 @@ export default { background: white; padding: .5em 1em; margin: 1em 0; h3 { margin: 0 0 .3em 0; } } .buttons-bar { Loading
src/Service/SignatureConfigurationService.php +79 −0 Original line number Diff line number Diff line Loading @@ -204,4 +204,83 @@ class SignatureConfigurationService return $this->configuration->getConfiguration('unicaen-signature.redirect_internal'); } //////////////////////////////////////////////// MESSAGES /// const mail_obs_subject = 'unicaen-signature.mail_obs_subject'; const mail_obs_subject_reject = 'unicaen-signature.mail_obs_subject_reject'; const mail_obs_subject_prefix_step = 'unicaen-signature.mail_obs_subject_prefix_step'; const mail_obs_message = 'unicaen-signature.mail_obs_message'; const mail_recipient_subject = 'unicaen-signature.mail_recipient_subject'; const mail_recipient_message = 'unicaen-signature.mail_recipient_message'; const mail_recipient_message_previous_steps = 'unicaen-signature.mail_recipient_message_previous_steps'; const mail_messages_end = 'unicaen-signature.mail_messages_end'; public function get_mail_obs_subject():string { return $this->configuration->getOptionalConfiguration( self::mail_obs_subject, '[suivi signature] Document {DOCUMENT}'); } public function get_mail_obs_subject_reject() :string { return $this->configuration->getOptionalConfiguration( self::mail_obs_subject_reject, "[suivi] Document '{DOCUMENT}' rejeté"); } public function get_mail_obs_subject_prefix_step():string { return $this->configuration->getOptionalConfiguration( self::mail_obs_subject_prefix_step, ' (étape {ETAPE}/{TOTAL_ETAPES})'); } public function get_mail_obs_message():string { return $this->configuration->getOptionalConfiguration( self::mail_obs_message, "Bonjour,\n le document '{DOCUMENT}' a été envoyé pour {SIGN_NOUN} à {TOTAL_RECIPIENTS} destinataire(s)"); } public function get_mail_recipient_subject():string { return $this->configuration->getOptionalConfiguration( self::mail_recipient_subject, "[signature] Vous avez un document à {SIGN_VERB} - {DOCUMENT}"); } public function get_mail_recipient_message():string { return $this->configuration->getOptionalConfiguration( self::mail_recipient_message, "Bonjour, vous avez un document '{DOCUMENT}' à {SIGN_VERB} : \n{LINK}\n"); } public function get_mail_recipient_message_previous_steps():string { return $this->configuration->getOptionalConfiguration( self::mail_recipient_message_previous_steps, "étapes précédentes : \n"); } public function get_mail_messages_end():string { return $this->configuration->getOptionalConfiguration( self::mail_messages_end, "Merci\n(Ce message est automatique, ne pas répondre)"); } /**** 'mail_obs_subject' => '[suivi signature] Document {DOCUMENT }', 'mail_obs_subject_prefix_step' => ' (étape {ETAPE}/{TOTAL_ETAPES})', 'mail_obs_message' => "Bonjour,\n le document '{DOCUMENT}' a été envoyé pour {SIGN_NOUN} à {TOTAL_RECIPIENTS} destinataire(s)", 'mail_recipient_subject' => "[signature] Vous avez un document à {SIGN_VERB} - {DOCUMENT}", 'mail_recipient_message' => "Bonjour, vous avez un document '{DOCUMENT}' à {SIGN_VERB} : \n{LINK_DOCUMENT}\n", 'mail_recipient_message_previous-steps' => "étapes précédentes : \n", 'mail_messages_end' => "Merci\n(Ce message est automatique, ne pas répondre)", /****/ } No newline at end of file
src/Service/SignatureService.php +19 −18 Original line number Diff line number Diff line Loading @@ -666,7 +666,7 @@ class SignatureService if ($signature->getStatus() == Signature::STATUS_SIGNATURE_REJECT) { $subject = "[suivi] étape $step/$steps du Document {DOCUMENT} rejetée"; $subject = $this->getSignatureConfigurationService()->get_mail_obs_subject_reject(); $events[] = [ 'spot' => 'signature', Loading Loading @@ -999,27 +999,31 @@ class SignatureService // Obtenir le lien $link = $signatureRecipient->getUrlDocument(); $subject = "[signature] Vous avez un document à {SIGN_VERB} - {DOCUMENT}"; $message = "Bonjour, vous avez un document '{DOCUMENT}' à {SIGN_VERB} : $link\n"; $subject = $this->getSignatureConfigurationService()->get_mail_recipient_subject(); $message = $this->getSignatureConfigurationService()->get_mail_recipient_message(); $datas = [ '{LINK}' => $link ]; if( $signatureRecipient->getSignature()->getProcessStep() ){ $subject .= " (étape {ETAPE}/{TOTAL_ETAPES})"; $subject .= $this->getSignatureConfigurationService()->get_mail_obs_subject_prefix_step(); $previousSteps = $signatureRecipient->getSignature()->getProcessStep()->getProcess()->previousSteps(); if( count($previousSteps) ){ $message .= "étapes précédentes : \n"; $message .= $this->getSignatureConfigurationService()->get_mail_recipient_message_previous_steps(); // Calcule des étapes foreach ($signatureRecipient->getSignature()->getProcessStep()->getProcess()->previousSteps() as $step) { $message .= " - ". $step->getMessage() . "\n"; } } } $message .= "Merci\n(Ce message est automatique, ne pas répondre)"; $message .= $this->getSignatureConfigurationService()->get_mail_messages_end(); $this->sendNotificationTo( $signatureRecipient->getEmail(), $subject, $message, $signatureRecipient->getSignature() $signatureRecipient->getSignature(), $datas ); } Loading @@ -1029,10 +1033,9 @@ class SignatureService if( $signature->isNotifiableObserver() ) { $nbrRecipients = count($signature->getRecipients()); $subject = "[suivi signature] Document '{DOCUMENT} envoyé pour {SIGN_NOUN}"; $subject = $this->getSignatureConfigurationService()->get_mail_obs_subject(); if( $signature->getProcessStep() ){ $this->getLoggerService()->debug("SUBJECT -> Ajout étape"); $subject .= " (étape {ETAPE}/{TOTAL_ETAPES})"; $subject .= $this->getSignatureConfigurationService()->get_mail_obs_subject_prefix_step(); } //$url = $this->forgeLink('unicaen-signature/my-documents', []); Loading @@ -1040,8 +1043,7 @@ class SignatureService $this->sendNotificationTo( $observer->getEmail(), $subject, "Bonjour,\n le document '{DOCUMENT}' a été envoyé pour {SIGN_NOUN} à $nbrRecipients destinataire(s)" , $this->getSignatureConfigurationService()->get_mail_obs_message(), $signature ); } Loading @@ -1052,23 +1054,22 @@ class SignatureService string $email, string $subject, string $message, Signature $signature Signature $signature, array $datas = [] ): void { $datas = [ '{RECIPIENT}' => 'NO-RECIPIENT', ]; $datas['{DOCUMENT}'] = $signature->getContextShort() ?: 'Document'; $datas['{SIGN_NOUN}'] = $signature->getNoun(); $datas['{SIGN_VERB}'] = $signature->getVerb(); $datas['{SIGN_PARTICIPLE}'] = $signature->getParticiple(); $datas['{LINK}'] = "LINK TO BUILD"; $datas['{TOTAL_RECIPIENTS}'] = count($signature->getRecipients()); if ($signature->getProcessStep()) { $datas['{ETAPE}'] = $signature->getProcessStep()->getOrder(); $datas['{TOTAL_ETAPES}'] = count($signature->getProcessStep()->getProcess()->getSteps()); } $this->getLoggerService()->info(json_encode($datas)); $find = array_keys($datas); $replace = array_values($datas); Loading