templates/form/detail.html.twig line 1

Open in your IDE?
  1. {% block stylesheet%}
  2.     <link rel="stylesheet" href="{{ asset('assets/examples/css/pages/user.css') }}">
  3.     <link rel="stylesheet" href="{{ asset('assets/global/vendor/select2/select2.css') }}">
  4.     <!-- Leaflet -->
  5.     <link rel="stylesheet" href="{{ asset('assets/js/web/leaflet/dist/leaflet.css') }}">
  6.     <link rel="stylesheet" href="{{ asset('assets/js/web/leaflet/dist/leaflet.draw.css') }}">
  7.     <link rel="stylesheet" href="{{ asset('assets/js/web/leaflet-locatecontrol-gh-pages/dist/L.Control.Locate.min.css') }}">
  8.     <!-- Lightbox -->
  9.     <link rel="stylesheet" href="{{ asset('assets/js/web/ekko-lightbox/dist/ekko-lightbox.css') }}">
  10.     <link rel="stylesheet" href="{{ asset('assets/js/web/ekko-lightbox/ekko-lightbox.less') }}">
  11. {% endblock %}
  12. {% block title %}Enquêtes{% endblock %}
  13. {% extends('base.html.twig') %}
  14. {% block body %}
  15.     <div class="page-content" id="page-web" ng-controller="EnqueteWebController">
  16.         <!-- Panel -->
  17.         <div class="panel" ng-init="init({{ form }}{% if mapObject %}, {{ mapObject }}{% endif %})">
  18.             <div class="panel-body">
  19.                 <div class="row text-center" ng-if="succcess">
  20.                     <div class="offset-md-4 col-md-4 alert alert-success">
  21.                         <p>Formulaire envoyé</p>
  22.                     </div>
  23.                 </div>
  24.                 <div class="row text-center" ng-if="error">
  25.                     <div class="offset-md-4 col-md-4 alert alert-danger">
  26.                         <p>Erreur ... Veuillez réessayer</p>
  27.                     </div>
  28.                 </div>
  29.                 <form>
  30.                     <!-- Private answer -->
  31.                     <div class="row">
  32.                         <div class="col-md-10">
  33.                             <div class="form-head-web">
  34.                                 <h1>{% verbatim %} {{ formInfo.title }} {% endverbatim %}</h1>
  35.                             </div>
  36.                         </div>
  37.                         <div class="col-md-2 d-flex justify-content-end">
  38.                             <!-- Button map modal -->
  39.                             <button type="button" class="btn btn-success" data-toggle="modal" data-target="#modalMapWeb"
  40.                                     ng-if="isGeolocated || isShape" ng-click="reloadMap()">
  41.                                 <i class="icon icon-color wb-map icon-map" aria-hidden="true"></i> CARTE
  42.                             </button>
  43.                         </div>
  44.                         <div class="col-md-12 mb-3" ng-if="!isPublic">
  45.                             <i>Cette enquête n'est pas publique. Seul vous et les administrateurs pourront voir votre réponse.</i>
  46.                         </div>
  47.                         <div class="col-md-12">
  48.                             {% verbatim %}
  49.                                  {{ formInfo.description }}
  50.                             {% endverbatim %}
  51.                         </div>
  52.                         <!-- Button pdf modal -->
  53.                         <button type="button" class="btn btn-success btn-help" data-toggle="modal" data-target="#modalHelpWeb"
  54.                                 ng-if="pdf">
  55.                             Voir le PDF
  56.                         </button>
  57.                     </div>
  58.                     <!-- images description -->
  59.                     <div class="row" ng-init="pictures">
  60.                         <div ng-repeat="picture in arrayPictures" class="col-md-2 div-img-description">
  61.                             {% verbatim %}
  62.                                 <a href="{{ picture }}" data-toggle="lightbox" data-gallery="gallery" class="col-md-4">
  63.                                     <div class="img-description" ng-style="{'background-image':'url('+picture+')'}">
  64.                                     </div>
  65.                                 </a>
  66.                             {% endverbatim %}
  67.                         </div>
  68.                     </div>
  69.                     <hr>
  70.                     <div class="row">
  71.                         <div ng-if="!isSending" class="col-md-12 d-flex justify-content-end mt-10" id="formBody">
  72.                             <!-- Button private modal -->
  73.                             <button type="button" class="btn btn-default btn-private" data-toggle="modal" data-target="#modalPrivateWeb">
  74.                                 <i class="icon wb-help icon-private-web" aria-hidden="true"></i>
  75.                             </button>
  76.                             <div class="form-check form-check-inline">
  77.                                 <label class="form-check-label mr-5" for="privateAnswer">Réponse non publique</label>
  78.                                 <input class="form-check-input" type="checkbox" ng-value="value" name="privateAnswer" id="privateAnswer"
  79.                                        ng-model="private.private">
  80.                             </div>
  81.                         </div>
  82.                     </div>
  83.                     <!-- Media file -->
  84.                     <div ng-if="!isSending" class="row mb-20">
  85.                         <div class="col-md-6" ng-if="formInfo.gotMedia">
  86.                             <div class="form-group mt-2">
  87.                                 {% if form.mediaExplanation %}
  88.                                     <h4>{{ form.mediaExplanation }}</h4>
  89.                                 {% endif %}
  90.                                 <div class="custom-file">
  91.                                     <input type="file" class="custom-file-input form-control " id="files" multiple="multiple" uploads="files" accept="image/*, video/*, .heic, .heif">
  92.                                     <label class="custom-file-label" for="files">Ajouter un fichier image et/ou vidéo</label>
  93.                                     <p class="text-danger" ng-if="mimeTypeError">Attention fichier non pris en charge !!!</p>
  94.                                 </div>
  95.                                 <p ng-if="isHeicOrHeif">Les fichiers en .heic ou .heif seront traités après envoi du formulaire</p>
  96.                             </div>
  97.                         </div>
  98.                     </div>
  99.                     <div class="row">
  100.                             <div id="gallery-admin" style="width:100%">
  101.                                 <div ng-if="!isSending" ng-repeat="(key,picture) in toSendPictures" ng-if="picture"
  102.                                      class="col-md-2 div-img-description text-center scroll-box">
  103.                                     {% verbatim %}
  104.                                         <a ng-if="!(picture.includes('image/heic') || picture.includes('image/heif'))" href="{{ picture | trustUrl }}" data-toggle="lightbox" data-gallery="gallery" class="col-md-2">
  105.                                             <div class="img-description"
  106.                                                  ng-style="{'background-image':'url('+picture+')'}"></div>
  107.                                         </a>
  108.                                         <a ng-if="picture.includes('image/heic') || picture.includes('image/heif')" class="col-md-2">
  109.                                             <div class="img-description"
  110.                                                  ng-style="{'background-image':'url('+substituteImage+')'}"></div>
  111.                                         </a>
  112.                                     {% endverbatim %}
  113.                                     <!--
  114.                                     {# uncomment if image not allowed #}
  115.                                     <div class="subtitue-text-div">
  116.                                         <p ng-if="picture.includes('image/heic') || picture.includes('image/heif')">Traitement à l'envoi du formulaire</p>
  117.                                     </div>
  118.                                     -->
  119.                                     <div class="d-flex justify-content-center">
  120.                                         <button type="button" class="btn btn-icon btn-danger mt-10"
  121.                                                 ng-click="deletePicture(key)" title="Supprimer">
  122.                                             <i class="icon wb-minus" aria-hidden="true"></i>
  123.                                         </button>
  124.                                     </div>
  125.                                 </div>
  126.                                 <div ng-if="!isSending" ng-repeat="(key,video) in toSendVid" ng-if="video"
  127.                                      class="col-md-4 text-center scroll-box">
  128.                                     {% verbatim %}
  129.                                         <video controls class="img-description" preload=auto ng-src="{{video| trustUrl}}">
  130.                                         </video>
  131.                                     {% endverbatim %}
  132.                                     <div class="d-flex justify-content-center">
  133.                                         <button type="button" class="btn btn-icon btn-danger mt-10"
  134.                                                 ng-click="deleteVideo(key)" title="Supprimer">
  135.                                             <i class="icon wb-minus" aria-hidden="true"></i>
  136.                                         </button>
  137.                                     </div>
  138.                                 </div>
  139.                             </div>
  140.                     </div>
  141.                     <div ng-if="!isSending" class="row" ng-repeat="(key, field) in arrayForm">
  142.                         {{ include('form/_formEnquete.html.twig') }}
  143.                     </div>
  144.                     <!-- Signature -->
  145.                     <div class="row mt-20 justify-content-center" ng-show="isSigned">
  146.                         <div class="col-md-12 d-flex justify-content-center">
  147.                             <h4>Signature</h4>
  148.                         </div>
  149.                         <div class="col-md-8 mt-5 d-flex justify-content-center" id="canvasContainer">
  150.                             <canvas id="signature" width="500" height="200"
  151.                                     style="width: 100%; border: 1px solid #e4eaec;cursor: crosshair;"></canvas>
  152.                             <div id="btn-wrapper">
  153.                            <btn class="btn btn-danger" ng-click="signatureCanva.clear()" ng-disabled="disabled" name="clearCanvas" id="clearCanvas"><i class="wb-rubber"></i></btn>
  154.                             </div>
  155.                         </div>
  156.                     </div>
  157.                     <!-- Submit -->
  158.                     <div ng-if="isSending" class="d-flex justify-content-center mt-3" ng-show="!loading">
  159.                         <div class="spinner-border" ></div>
  160.                     </div>
  161.                     <div class="row mt-20">
  162.                         <div  ng-if="!isSending"  class="col-md-12 mt-5 d-flex justify-content-center">
  163.                             <button class="btn btn-success" ng-click="submitFormAndDisplay()"
  164.                                  ng-disabled="disabled" name="submitFormAndDisplay"
  165.                                  id="submitFormAndDisplay" >
  166.                                 Envoyer et recommencer
  167.                             </button>
  168.                             <button class="btn btn-success offset-1 " ng-click="submitForm()"
  169.                                  ng-disabled="disabled" name="submitForm"
  170.                                  id="submitForm" >
  171.                                 Envoyer
  172.                             </button>
  173.                         </div>
  174.                     </div>
  175.                     <!-- Modal animal -->
  176.                     <div class="modal fade" id="animalModal" tabindex="-1" aria-labelledby="animalModalLabel" aria-hidden="true">
  177.                         <div class="modal-dialog">
  178.                             <div class="modal-content">
  179.                                 <div class="modal-header">
  180.                                     <h5 class="modal-title" id="staticBackdropLabel">Animaux</h5>
  181.                                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  182.                                         <span aria-hidden="true">&times;</span>
  183.                                     </button>
  184.                                 </div>
  185.                                 <div class="modal-body">
  186.                                     <label>Sélectionnez un animal</label>
  187.                                     <select class="form-control select2-animals" name="animal" data-plugin="select2"
  188.                                             tabindex="-1" aria-hidden="true" ng-model="answerAnimal" id="modalAnimal"
  189.                                             ng-options="animal.id as animal.name for animal in arrayAnimal">
  190.                                     </select>
  191.                                 </div>
  192.                                 <div class="modal-footer">
  193.                                     <button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
  194.                                     <button type="button" class="btn btn-success" data-dismiss="modal" ng-click="addAnimal()">Ajouter</button>
  195.                                 </div>
  196.                             </div>
  197.                         </div>
  198.                     </div>
  199.                     <!-- Modal animals -->
  200.                     <div class="modal fade" id="animalsModal" tabindex="-1" aria-labelledby="animalsModalLabel" aria-hidden="true">
  201.                         <div class="modal-dialog">
  202.                             <div class="modal-content">
  203.                                 <div class="modal-header">
  204.                                     <h5 class="modal-title" id="staticBackdropLabel">Animaux</h5>
  205.                                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  206.                                         <span aria-hidden="true">&times;</span>
  207.                                     </button>
  208.                                 </div>
  209.                                 <div class="modal-body">
  210.                                     <label>Sélectionnez des animaux</label>
  211.                                     <select class="form-control select2-animals" name="animals" data-plugin="select2" multiple
  212.                                             tabindex="-1" aria-hidden="true" ng-model="answerAnimals" id="modalAnimals"
  213.                                             ng-options="animal.id as animal.name for animal in arrayAnimal">
  214.                                     </select>
  215.                                 </div>
  216.                                 <div class="modal-footer">
  217.                                     <button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
  218.                                     <button type="button" class="btn btn-success" data-dismiss="modal" ng-click="addAnimals()">Ajouter</button>
  219.                                 </div>
  220.                             </div>
  221.                         </div>
  222.                     </div>
  223.                     <!-- Modal map -->
  224.                     <div class="modal fade" id="modalMapWeb" tabindex="-1" aria-labelledby="mapModalLabel" aria-hidden="true">
  225.                         <div class="modal-dialog" id="modal-dialog-web">
  226.                             <div class="modal-content" id="large-modal">
  227.                                 <div class="modal-header">
  228.                                     <h5>Choisir la position du signalement</h5>
  229.                                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  230.                                         <span aria-hidden="true">&times;</span>
  231.                                     </button>
  232.                                 </div>
  233.                                 <div class="modal-body">
  234.                                     <div id="mapModalWeb" style="height: 400px"></div>
  235.                                 </div>
  236.                                 <div class="modal-footer">
  237.                                     <button type="button" class="btn btn-secondary" data-dismiss="modal">Ajouter</button>
  238.                                 </div>
  239.                             </div>
  240.                         </div>
  241.                     </div>
  242.                     <!-- Modal help -->
  243.                     <div class="modal fade" id="modalHelpWeb" tabindex="-1" aria-labelledby="helpModalLabel" aria-hidden="true">
  244.                         <div class="modal-dialog" id="modal-dialog-web">
  245.                             <div class="modal-content" id="large-modal">
  246.                                 <div class="modal-header">
  247.                                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  248.                                         <span aria-hidden="true">&times;</span>
  249.                                     </button>
  250.                                 </div>
  251.                                 <div class="modal-body">
  252.                                     {% verbatim %}
  253.                                        <embed ng-src="{{pdfPath}}" width="100%" height="700px" />
  254.                                     {% endverbatim %}
  255.                                 </div>
  256.                             </div>
  257.                         </div>
  258.                     </div>
  259.                     <!-- Modal private -->
  260.                     <div class="modal fade" id="modalPrivateWeb" tabindex="-1" aria-labelledby="privateModalLabel" aria-hidden="true">
  261.                         <div class="modal-dialog" id="modal-dialog-web">
  262.                             <div class="modal-content" id="large-modal">
  263.                                 <div class="modal-header">
  264.                                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  265.                                         <span aria-hidden="true">&times;</span>
  266.                                     </button>
  267.                                 </div>
  268.                                 <div class="modal-body">
  269.                                     Les publications anonymes, n'apparaissent ni dans les signalements, ni sur la
  270.                                     carte. Elles ne seront visibles que par vous et l'administrateur de votre collecteur.
  271.                                 </div>
  272.                             </div>
  273.                         </div>
  274.                     </div>
  275.                 </form>
  276.             </div>
  277.         </div>
  278.     </div>
  279. {% endblock %}
  280. {% block javascripts %}
  281.     <!-- Angular -->
  282.     <script type="text/javascript" src="{{ asset('assets/js/script/controllers/EnqueteWebController.js') }}"></script>
  283.     <script src="{{ asset('assets/global/vendor/select2/select2.full.min.js') }}"></script>
  284.     <script src="{{ asset('assets/global/js/Plugin/select2.js') }}"></script>
  285.     <!-- Lightbox -->
  286.     <script src="{{ asset('assets/js/web/ekko-lightbox/dist/ekko-lightbox.js') }}"></script>
  287.     <!-- Leaflet -->
  288.     <script src="{{ asset('assets/js/web/leaflet/dist/leaflet.js') }}"></script>
  289.     <script src="{{ asset('assets/js/web/leaflet/dist/leaflet.draw.js') }}"></script>
  290.     <script src="{{ asset('assets/js/web/leaflet-locatecontrol-gh-pages/dist/L.Control.Locate.min.js') }}"></script>
  291.     <script src="{{ asset('assets/js/web/leaflet-centermarker-master/src/leaflet.centermarker.js') }}"></script>
  292.     <!-- Signature -->
  293.     <script src="{{ asset('assets/js/Plugin/PortrayCanvas-master/dist/portraycanvas.min.js') }}"></script>
  294.     <!-- Add date now in input -->
  295.     <script>
  296.         $(document).on("click", '[data-toggle="lightbox"]', function(event) {
  297.             event.preventDefault();
  298.             $(this).ekkoLightbox();
  299.         });
  300.             window.setTimeout(
  301.                 function(){
  302.                     $('.select2-bigList').select2({
  303.                     });
  304.                 },500
  305.             );
  306.     </script>
  307. {% endblock %}