From dec71af72c887f93e5a95f9a4acd07caa614ca18 Mon Sep 17 00:00:00 2001 From: Stephen Cameron Date: Mon, 26 Apr 2021 13:20:09 +0200 Subject: [PATCH] Wait #4244 @3.5 --- resources/views/components/quill.blade.php | 40 +++++++++++--- .../consultation-unnecessary/message.html | 2 +- resources/views/diagnosis/email.blade.php | 52 +++++++++++++++++++ .../views/layouts/email-wrapper.blade.php | 6 +++ resources/views/missing-imagery/message.html | 4 +- resources/views/shared/email-footer.blade.php | 48 ----------------- 6 files changed, 95 insertions(+), 57 deletions(-) diff --git a/resources/views/components/quill.blade.php b/resources/views/components/quill.blade.php index e0a7e44..769f3cc 100644 --- a/resources/views/components/quill.blade.php +++ b/resources/views/components/quill.blade.php @@ -69,16 +69,44 @@ snippetsDropDown.setItems(snippets); - snippetsDropDown.onSelect = function(label, value, quill) { + snippetsDropDown.onSelect = function(label, content, quill) { + // First, delete any text that might be selected (it's expected that it will be replaced) const selection = quill.selection.savedRange; + quill.deleteText(selection.index, selection.length); + + // Find our cursor in the document, determine if we're on a new line or one with content + let startingIndex = quill.getSelection(true).index; + let insertionIndex = startingIndex; + let lineLength = quill.getLine(startingIndex)[0].length(); + let cursorPosition = quill.getLine(startingIndex)[1]; + + // Are we at the start of the line? If not, insert a line break *before* adding the content + if (cursorPosition > 0) { + quill.insertText(startingIndex, '\n\n'); + insertionIndex = quill.getSelection(true).index; // Update the insertion index after newline is added + } + + // Are we on a non-empty line? + if (lineLength > 1 && (cursorPosition + 1 < lineLength)) { + // Insert new line but don't update the insertion index, which + // effectively will create a line break after the inserted content + quill.insertText(insertionIndex, '\n\n'); + + } + + // Insert the content of the snippet (may contain HTML) + quill.clipboard.dangerouslyPasteHTML(insertionIndex, content); - // TODO: improve the insertion of snippets so they have a good amount of space around them - let html = (selection.index === 0) ? `${value}


` : `
${value}

`; + // Highlight the content that was just inserted. Unfortunately we can't rely on content.length + // because it might contain HTML, which throws off the length (Quill converts HTML to deltas when inserting) + // We also can't simply select the current line because inserted content might contain line breaks. + // Instead, we need to convert the content to a delta object and count the length of the actual text based + // on the "insert" keys (ie. just the text content without formatting or links included): + let insertedDelta = quill.clipboard.convert(content); + let insertedCount = insertedDelta.reduce((count, deltaItem) => count + deltaItem.insert.length, 0); - quill.deleteText(selection.index, selection.length); // Replace any highlighted text - console.log('res', quill.clipboard.dangerouslyPasteHTML(selection.index, html)); - quill.setSelection(selection.index + value.length + 1) + quill.setSelection(insertionIndex, insertedCount); }; snippetsDropDown.attach(quill); diff --git a/resources/views/consultation-unnecessary/message.html b/resources/views/consultation-unnecessary/message.html index de6bd80..98853d1 100644 --- a/resources/views/consultation-unnecessary/message.html +++ b/resources/views/consultation-unnecessary/message.html @@ -6,7 +6,7 @@ Le formulaire que vous avez rempli ainsi que la visualisation de votre imagerie Conformément aux informations que vous nous avez transmis, il ressort de votre dossier qu’il n’y a pas lieu d’envisager pour le moment une consultation chirurgicale avec nos spécialistes du CCV.
 -Votre parcours de soin n’est pas complet, car vous n’avez pas encore effectué de kinésithérapie, indispensable avant de prendre un avis chirurgical pour un problème de lombalgie. +Votre parcours de soin n’est pas complet, car vous n’avez pas encore effectué de kinésithérapie, indispensable avant de prendre un avis chirurgical pour un problème de lombalgie. Cette étude préliminaire gratuite a pour but de faire éviter le déplacement et le coût d’une consultation inutile à des personnes dont les conditions sont manifestement trop loin d’être réunies, pour qu’une discussion sur une éventuelle intervention chirurgicale soit justifiée. diff --git a/resources/views/diagnosis/email.blade.php b/resources/views/diagnosis/email.blade.php index 8ec38c1..5d3be73 100644 --- a/resources/views/diagnosis/email.blade.php +++ b/resources/views/diagnosis/email.blade.php @@ -55,3 +55,55 @@ @endsection + +@section('footer') + + {{-- Tarifs --}} + + + + + + + +
+

Tarifs des consultations du CCV MONTPELLIER

+ + + + + + + + + + + + + + + + + + + + + + + +
Étude préliminaire de votre dossier (Demande d'avis médical en ligne) :
Gratuit
Consultation médicale au CCV (Clinique du Parc) :
(Base de Remboursement SS : 50€ pour un avis spécialiste ponctuel , 23€ pour une consultation de suivi. Prise en charge mutuelle pour le reste à charge).
80€
Téléconsultation médicale en ligne (Vidéo consultation) :
Incluant une étude approfondie de votre dossier et la rédaction d’un rapport médical (Base de Remboursement SS : 50€ pour un avis spécialiste ponctuel. Prise en charge mutuelle pour le reste à charge).
100€
Séjour médical personnalisé :
Incluant frais d’hospitalisation, transport, hébergement et prestations personnalisées à la clinique.
Sur devis
Interventions pour patients français
Pour les patients français affiliés à la Sécurité Sociale, seuls les dépassements d’honoraires seront à régler. Leurs montants vous seront communiqués sur simple demande.
Sur devis
+
+

Vous ne connaissez pas encore le service ma E-Consultation du CCV MONTPELLIER ?

+
+ La téléconsultation vidéo vous permet d’expliquer en détail votre histoire médicale, de préciser vos symptômes et vos attentes dans la prise en charge de votre pathologie. Toutes vos questions pourront être abordées pendant cet entretien.
Les échanges avec votre chirurgien lui permettront de préciser son diagnostic, de vous expliquer l’origine de vos douleurs et de vous détailler un programme de soins, avec ses bénéfices, ses risques, ses taux de réussite et ses échecs.  +
+
+ Ce programme de soins ne conduira pas systématiquement à une proposition de chirurgie, puisque l’intervention reste le dernier recours dans la plupart des pathologies du dos. +
+
Si toutefois, une chirurgie devait être réalisée au CCV MONTPELLIER, notre plateforme e-medecine pourra se charger de l’organisation complète de votre voyage médical. En savoir plus 
+
+ Besoin d’aide ? D’information complémentaire ? Nos secrétaires médicales se feront un plaisir d’échanger avec vous du lundi au vendredi de 9h00 à 18h00. Pour être rappelé par le secrétariat médical du CCV Montpellier, cliquez-ici. +
+
+ +@endsection diff --git a/resources/views/layouts/email-wrapper.blade.php b/resources/views/layouts/email-wrapper.blade.php index 7676536..f50f5e1 100644 --- a/resources/views/layouts/email-wrapper.blade.php +++ b/resources/views/layouts/email-wrapper.blade.php @@ -51,6 +51,11 @@ .quill p:not(:last-child) { margin-bottom: 1.5em; } + + .quill ul { + list-style: disc; + padding-left: 3.5em; + } @@ -73,6 +78,7 @@ @include('shared/email-header') @yield('content') @include('shared/email-footer') + @yield('footer')