templates/sonata/CRUD/edit.html.twig line 1

Open in your IDE?
  1. {% extends '@SonataAdmin/CRUD/base_edit.html.twig' %}
  2. {% block btn_update_and_list %}{% endblock %}
  3. {% block btn_create_and_list %}{% endblock %}
  4. {% block btn_create_and_create %}{% endblock %}
  5. {% block btn_delete %}
  6.     {% if admin.code starts with 'admin.lot' and app.user.role not in ["ROLE_SUPERADMIN"] %}
  7.     {% else %}
  8.         {% if admin.code starts with 'admin.utilisateur' %}
  9.             {% if has_higher_role(app.user, object) %}
  10.                 ou
  11.                 <a class="btn btn-danger" href="{{ admin.generateObjectUrl('delete', object) }}">
  12.                     <i class="fas fa-minus-circle" aria-hidden="true"></i> {{ 'link_delete'|trans({}, 'SonataAdminBundle') }}
  13.                 </a>
  14.             {% endif %}
  15.         {% else %}
  16.             ou
  17.             <a class="btn btn-danger" href="{{ admin.generateObjectUrl('delete', object) }}">
  18.                 <i class="fas fa-minus-circle" aria-hidden="true"></i> {{ 'link_delete'|trans({}, 'SonataAdminBundle') }}
  19.             </a>
  20.         {% endif %}
  21.     {% endif %}
  22. {% endblock %}
  23. {% block sonata_form_actions %}
  24.     {% if admin.code starts with 'admin.lot' and object.id is not null %}
  25.         {{ parent() }}
  26.         ou
  27.         <a class="btn btn-primary" href="{{ path('public_page_test_short', { lot: object.id }) }}" target="_blank"><i class="fa fa-eye" aria-hidden="true"></i> Tester la visualisation</a>
  28.     {% else %}
  29.         {{ parent() }}
  30.     {% endif %}
  31. {% endblock %}
  32. {% block btn_update_and_edit %}
  33.     {% if admin.code starts with 'admin.programme' %}
  34.         {% if is_granted('ROLE_SUPERADMIN') or is_granted('ROLE_SAISIE') or is_granted('ROLE_DIRECTEUR') %}
  35.             {{ parent() }}
  36.             ou <a class="btn btn-danger" href="{{ path('admin_app_programme_requete_supp', {id: object.id}) }}"><i class="fas fa-minus-circle" aria-hidden="true"></i> Demande de suppression</a>
  37.         {% endif %}
  38.     {% elseif admin.code starts with 'admin.prospect' %}
  39.         {{ parent() }}
  40.         {% set hasActiveProposition = false %}
  41.         {% for proposition in object.propositions %}
  42.             {% if proposition.activeProposition %}
  43.                 {% set hasActiveProposition = true %}
  44.             {% endif %}
  45.         {% endfor %}
  46.         {% if hasActiveProposition %}
  47.             ou&nbsp;<a class="btn btn-info" target="_blank" href="{{ path('public_prospect_short', {token:object.token}) }}?mode=preview"><i class="fas fa-user" aria-hidden="true"></i>&nbsp;Tester l'accès public</a>
  48.             ou&nbsp;
  49.             <button id="emailButton" type="button" class="btn btn-gold" data-toggle="modal" data-target="#emailModal"><i class="fas fa-envelope" ></i>&nbsp;Envoyer un mail</button>
  50.         {% else %}
  51.             ou&nbsp;<a class="btn btn-info" disabled data-toggle="tooltip" data-placement="top" title="Aucun lot n'est proposé à {{ object }}."><i class="fas fa-user" aria-hidden="true"></i>&nbsp;Tester l'accès public</a>
  52.             ou&nbsp;
  53.             <button id="emailButton" type="button" class="btn btn-gold" disabled data-toggle="tooltip" data-placement="top" title="Aucun lot n'est proposé à {{ object }}."><i class="fas fa-envelope" ></i>&nbsp;Envoyer un mail</button>
  54.         {% endif %}
  55.         ou&nbsp;<span id="whatsappButton"><button type="button" class="btn"  data-toggle="modal" data-target="#whatsappModal"><i class="fa fa-whatsapp" ></i>&nbsp;&nbsp;Envoyer par WhatsApp</button></span>
  56.     {% else %}
  57.         {% if admin.code starts with 'admin.utilisateur' %}
  58.             {% if has_higher_role(app.user, object) %}
  59.                 {{ parent() }}
  60.             {% endif %}
  61.         {% else %}
  62.             {{ parent() }}
  63.         {% endif %}
  64.     {% endif %}
  65. {% endblock %}
  66. {% block tab_menu_navbar_header %}
  67.     {% if admin.code starts with 'admin.prospect' %}
  68.         <div class="navbar-header">
  69.             <a class="navbar-brand" href="#">Fiche client</a>
  70.         </div>
  71.     {% elseif admin.code starts with "admin.lot" %}
  72.         <div class="navbar-header">
  73.             <a class="navbar-brand" href="#">Éditer {{ admin.subject }}</a>
  74.         </div>
  75.     {% else %}
  76.         {{ parent() }}
  77.     {% endif %}
  78. {% endblock %}
  79. {% block form %}
  80.     {{ parent() }}
  81.     {% if admin.code starts with 'admin.prospect' %}
  82.         <!-- Mail Modal -->
  83.         <div class="modal fade" id="emailModal" tabindex="-1" role="dialog" aria-labelledby="emailModalLabel">
  84.             <div class="modal-dialog" role="document">
  85.                 <div class="modal-content">
  86.                     <div class="modal-header">
  87.                         <button type="button" class="btn-close btn-close-white close" data-dismiss="modal" aria-label="Close">
  88.                             <span aria-hidden="true">&times;</span>
  89.                         </button>
  90.                         <h4 class="modal-title" id="myModalLabel">Envoyer un mail à {{object.emprunteurPrenom|capitalize ~ ' ' ~ object.emprunteurNom}}</h4>
  91.                     </div>
  92.                     <form id="email_prospect_form" method="post" action="{{ admin.generateObjectUrl('mail', object) }}" name="email_form">
  93.                         <div class="modal-body">
  94.                                 <div class="form-group">
  95.                                     <label for="_mail_subject" class="control-label">Objet :</label>
  96.                                     <input type="text" placeholder="Objet du mail" class="form-control" id="mail_subject" name="_mail_subject" data-subject-mail="{{'prospect.email.subject'|trans}}" value="">
  97.                                 </div>
  98.                                 <div class="form-group">
  99.                                     <label for="_mail_message" class="control-label">Message:</label>
  100.                                     <textarea class="form-control" placeholder="Votre message" id="mail_message_textarea" name="_mail_message" rows="6" data-content-mail="{{ ('prospect.email.text'|trans)|raw }}"></textarea>
  101.                                 </div>
  102.                                 <div class="form-group">
  103.                                     <label for="_mail_copy" class="control-label">Mettre en copie le co-emprunteur:</label>
  104.                                     <input type="checkbox" class="form-control" id="mail_copy" name="_mail_copy" value="withCopy" checked>
  105.                                 </div>
  106.                         </div>
  107.                         <div class="modal-footer">
  108.                             <button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
  109.                             <button type="submit" class="btn btn-gold" id="sendMail">Envoyer le mail</button>
  110.                         </div>
  111.                     </form>
  112.                 </div>
  113.             </div>
  114.         </div>
  115.         <!-- Whatsapp Modal -->
  116.         {% if object.id is not null %}
  117.             <div class="modal fade" id="whatsappModal" tabindex="-1" role="dialog" aria-labelledby="whatsappModalLabel" aria-hidden="true">
  118.                 <div class="modal-dialog" role="document">
  119.                     <div class="modal-content">
  120.                         <div class="modal-header">
  121.                             <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  122.                                 <span aria-hidden="true">&times;</span>
  123.                             </button>
  124.                             <h4 class="modal-title" id="whatsappModalLabel">Envoyer un message Whatsapp</h4>
  125.                         </div>
  126.                         <div class="modal-body">
  127.                             {% set msg = "" %}
  128.                             {% if object.emprunteurTelFr != null or object.emprunteurTelCh != null %}
  129.                                 <p>Vous allez être redirigé sur l'application Whatsapp. Voulez-vous continuer ?</p>
  130.                                 {% set path = absolute_url(path('public_prospect_short', {token:object.token})) %}
  131.                                 {% set msg = "Bonjour " ~ object.emprunteurPrenom|capitalize ~ " " ~ object.emprunteurNom|capitalize ~ ",%0aDécouvrez votre sélection personnalisée " ~ object.entreprise.nom ~ " :%0a" ~ path ~ "%0aÀ bientôt,%0aVotre agence " ~ object.entreprise.nom ~ "." %}
  132.                              {% else %}
  133.                                 <p>Aucun numéro de téléphone pour ce prospect</p>
  134.                             {% endif %}
  135.                         </div>
  136.                         <div class="modal-footer">
  137.                             {% if object.emprunteurTelFr != null %}
  138.                                 <button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
  139.                                 <a data-msg="{{msg}}" data-mode-envoi="whatsapp" href="whatsapp://send?text={{msg}}&phone={{ object.emprunteurTelFr|replace({' ':''}) }}" class="btn btn-success">Continuer</a>
  140.                             {% elseif object.emprunteurTelCh != null %}
  141.                                 <button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
  142.                                 <a data-msg="{{msg}}" data-mode-envoi="whatsapp" href='whatsapp://send?text={{msg}}&phone={{ object.emprunteurTelCh|replace({' ':''}) }}' class="btn btn-success">Continuer</a>
  143.                             {% else %}
  144.                                 <button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
  145.                             {% endif %}
  146.                         </div>
  147.                     </div>
  148.                 </div>
  149.             </div>
  150.             <script type="text/javascript">
  151.                 jQuery(function($){
  152.                     if($('button#emailButton').length > 0)
  153.                     {
  154.                         var $mailContentStorage= localStorage.getItem('mailModalContent');
  155.                         var $mailSubjectStorage= localStorage.getItem('mailModalSubject');
  156.                         if( $mailSubjectStorage != null && $.trim($mailSubjectStorage) != '' )
  157.                         {
  158.                             $('#mail_subject').val($mailSubjectStorage);
  159.                         }
  160.                         else
  161.                         {
  162.                             $('#mail_subject').val($('#mail_subject').data('subjectMail'));
  163.                         }
  164.                         if( $mailContentStorage != null && $.trim($mailContentStorage) != '' )
  165.                         {
  166.                             $('#mail_message_textarea').html($mailContentStorage);
  167.                         }
  168.                         else
  169.                         {
  170.                             $('#mail_message_textarea').html($('#mail_message_textarea').data('contentMail'));
  171.                         }
  172.                         $('#sendMail').on('click', function() {
  173.                             $content = $('#mail_message_textarea').val();
  174.                             $subject = $('#mail_subject').val();
  175.                             localStorage.setItem('mailModalContent', $content);
  176.                             localStorage.setItem('mailModalSubject', $subject);
  177.                         });
  178.                     }
  179.                     if($('#whatsappButton button').length > 0)
  180.                     {
  181.                         $('#whatsappModal a[data-mode-envoi]').on('click', function() {
  182.                             $('#whatsappModal').modal('hide');
  183.                             $.ajax({
  184.                                 url: "{{ path('ajax_new_historique', {prospect: object.id}) }}",
  185.                                 data: {
  186.                                     msg: $(this).data('msg'),
  187.                                     modeEnvoi: $(this).data('modeEnvoi')
  188.                                 },
  189.                                 success:function(){
  190.                                 },
  191.                                 error:function() {
  192.                                     alert('Impossible d\'enregistrer cette nouvelle proposition dans l\'historique.');
  193.                                 }
  194.                             })
  195.                         });
  196.                     }
  197.                 });
  198.             </script>
  199.         {% endif %}
  200.         <div class="modal fade" id="actionModal" tabindex="-1" role="dialog" aria-labelledby="actionModalLabel" aria-hidden="true">
  201.             <div class="modal-dialog" role="document">
  202.                 <div class="modal-content">
  203.                     <div class="modal-header">
  204.                         <button type="button" class="btn-close btn-close-white close" data-dismiss="modal" aria-label="Close">
  205.                             <span aria-hidden="true">&times;</span>
  206.                         </button>
  207.                         <h4 class="modal-title" id="actionModalLabel"></h4>
  208.                     </div>
  209.                     <div class="modal-body">
  210.                         <form id="actionTraceForm">
  211.                             <div class="form-group">
  212.                                 <label for="actionDescription" class="control-label">Description</label>
  213.                                 <textarea class="form-control" id="actionDescription" name="description" rows="3" placeholder="Ajoutez une description" style="resize: vertical;"></textarea>
  214.                             </div>
  215.                             <div class="form-group">
  216.                                 <label for="actionDate" class="control-label">Date</label>
  217.                                 <input type="datetime-local" class="form-control" id="actionDate" name="date" required>
  218.                             </div>
  219.                         </form>
  220.                     </div>
  221.                     <div class="modal-footer">
  222.                         <button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
  223.                         <button type="button" class="btn btn-primary" id="confirmActionButton">Valider</button>
  224.                     </div>
  225.                 </div>
  226.             </div>
  227.         </div>
  228.         <div class="modal fade" id="editActionModal" tabindex="-1" role="dialog" aria-labelledby="editActionModalLabel" aria-hidden="true">
  229.             <div class="modal-dialog" role="document">
  230.                 <div class="modal-content">
  231.                     <form id="edit_action_form">
  232.                         <div class="modal-header">
  233.                             <button type="button" class="btn-close btn-close-white close" data-dismiss="modal" aria-label="Close">
  234.                                 <span aria-hidden="true">&times;</span>
  235.                             </button>
  236.                             <h4 class="modal-title" id="editActionModalLabel">Éditer le Rappel</h4>
  237.                         </div>
  238.                         <div class="modal-body">
  239.                             <input type="hidden" id="editActionId" name="actionId">
  240.                             <div class="form-group">
  241.                                 <label for="editActionType" class="control-label">Type</label>
  242.                                 <select class="form-control" id="editActionType" name="type" required>
  243.                                     <option value="Appel">Appel</option>
  244.                                     <option value="Message vocal">Message vocal</option>
  245.                                     <option value="Mail">Mail</option>
  246.                                     <option value="WhatsApp">WhatsApp</option>
  247.                                     <option value="SMS">SMS</option>
  248.                                     <option value="RDV">RDV</option>
  249.                                 </select>
  250.                             </div>
  251.                             <div class="form-group">
  252.                                 <label for="editActionDescription" class="control-label">Description</label>
  253.                                 <textarea class="form-control" id="editActionDescription" name="description" rows="3" placeholder="Ajoutez une description" style="resize: vertical;"></textarea>
  254.                             </div>
  255.                             <div class="form-group">
  256.                                 <label for="editActionDate" class="control-label">Date</label>
  257.                                 <input type="datetime-local" class="form-control" id="editActionDate" name="date" required>
  258.                             </div>
  259.                         </div>
  260.                         <div class="modal-footer">
  261.                             <button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
  262.                             <button type="button" class="btn btn-primary" id="saveEditActionButton">Enregistrer les Modifications</button>
  263.                         </div>
  264.                     </form>
  265.                 </div>
  266.             </div>
  267.         </div>
  268.         <div class="modal fade" id="deleteActionModal" tabindex="-1" role="dialog" aria-labelledby="deleteActionModalLabel" aria-hidden="true">
  269.             <div class="modal-dialog" role="document">
  270.                 <div class="modal-content">
  271.                     <div class="modal-header">
  272.                         <button type="button" class="btn-close btn-close-white close" data-dismiss="modal" aria-label="Close">
  273.                             <span aria-hidden="true">&times;</span>
  274.                         </button>
  275.                         <h4 class="modal-title" id="deleteActionModalLabel">Supprimer le Rappel</h4>
  276.                     </div>
  277.                     <div class="modal-body">
  278.                         <input type="hidden" id="deleteActionId">
  279.                         <p>Êtes-vous sûr de vouloir supprimer cette action ?</p>
  280.                         <div id="deleteActionDetails"></div>
  281.                     </div>
  282.                     <div class="modal-footer">
  283.                         <button type="button" class="btn btn-default" data-dismiss="modal">Annuler</button>
  284.                         <button type="button" class="btn btn-danger confirmDeleteActionButton">Supprimer</button>
  285.                     </div>
  286.                 </div>
  287.             </div>
  288.         </div>
  289.     {% endif %}
  290. {% endblock %}
  291. {% block sonata_page_content %}
  292.     {% if admin.code == 'admin.lot' %}
  293.         <section class="content-header admin-lot">
  294.             {% block sonata_page_content_header %}
  295.                 {{parent()}}
  296.             {% endblock sonata_page_content_header %}
  297.         </section>
  298.          <section class="content">
  299.             {% block sonata_admin_content %}
  300.                 {{parent()}}
  301.             {% endblock sonata_admin_content %}
  302.         </section>
  303.     {% else %}
  304.         {{parent()}}
  305.     {% endif %}
  306. {% endblock sonata_page_content %}
  307. {% block javascript %}
  308.     {{ parent() }}
  309.     <script type="text/javascript">
  310.         jQuery(function($) {
  311.             window.addEventListener('load', function () {
  312.                 $('form[data-original]').each(function() {
  313.                     $(this).attr('data-original', $(this).serialize());
  314.                 });
  315.             });
  316.         });
  317.     </script>
  318. {% endblock %}