templates/archivio/archivio-opere.html.twig line 1

Open in your IDE?
  1. {% extends "base.html.twig" %}
  2. {% block pageTitle %} Archivio Opere {% endblock %}
  3. {% block pageStyle %} {{ parent() }} {% endblock %}
  4. {% block pageScriptsHeader %}
  5.     
  6.     {{ parent() }}
  7.     
  8.     <script src="{{ asset('js/masonry.pkgd.js') }}"></script>
  9.     <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
  10. {% endblock %}
  11. {% block navigation %} {{ parent() }} {% endblock %}
  12. {% block upperMainContainer %}
  13. {% endblock %}
  14. {% block mainContainer %}
  15.     
  16.     <div class="container cortelazzo-font-regular">
  17.         
  18.         <div class="row">
  19.             <div class="col-auto">
  20.                 <span class="h1 cortelazzo-titles cortelazzo-font-bold">{{ 'Opere' | upper }}</span>
  21.             </div>
  22.             {{ form_start(form_operas_type_and_year, {'method': 'POST', 'class': 'col-auto mt-3'}) }}
  23.             <div class="input-group">
  24.                 <div class="col-auto mt-3">
  25.                     {{ form_widget(form_operas_type_and_year.operas_type, {'attr': {'class': 'custom-select frontend-custom-select rounded-0', 'style':'min-width: 140px;'}}) }}
  26.                 </div>
  27.                 <div class="col-auto mt-3">
  28.                     {{ form_widget(form_operas_type_and_year.year, {'attr': {'class': 'custom-select frontend-custom-select rounded-0', 'style':'min-width: 150px;'}}) }}
  29.                 </div>
  30.             </div>
  31.             {{ form_end(form_operas_type_and_year) }}
  32.             <div class="col-auto mt-3 pt-1 fronted-custom-color">
  33.                 <a class="fronted-inherited-color" href="{{ path('opere') }}">{{'reset Selezioni'|upper}}</a>
  34.             </div>
  35.             <div class="col-auto mt-3 pt-1 fronted-custom-color">
  36.                 <a class="fronted-inherited-color" href="{{ path('opereAdvancedSearch') }}">{{'Ricerca avanzata'|upper}}</a>
  37.             </div>
  38.             <div class="col-xl-12">
  39.                 <hr/>
  40.             </div>
  41.         </div>
  42.         
  43.         <!-- Images -->
  44.         <div class="row" id="image-container">
  45.         {% for opera in opere %}
  46.             {% if not cover_presence[opera.id] %}
  47.                 {% for m in opera.multimedias | slice(0, 1) %}
  48.                     {% if m.multimedia.tipo == "image" %}
  49.                         <div class="col-xl-3 card-item" data-idcard="{{ opera.id }}" >
  50.                             <a class="hover-underline-removal" href="{{ path("archivio-opere-scheda", {"idopera": opera.id}) }}">
  51.                                 <img class="card-img-top card-img-top-custom" src="{{ asset(uploaded_img_normal ~ m.multimedia.fileref ~ '.' ~ m.multimedia.estensione) }}" alt="{{ m.multimedia.nome }}">
  52.                                 <div class="card-body card-body-custom">
  53.                                     <h5 class="card-title">{{ opera.titolo | replace({"<": "(", ">": ")"}) }}</h5>
  54.                                 </div>
  55.                             </a>
  56.                         </div>
  57.                     {% endif %}
  58.                 {% endfor %}
  59.             {% else %}
  60.                 {% for m in opera.multimedias %}
  61.                     {% if m.multimedia.tipo == "image" and m.cover %}
  62.                         <div class="col-xl-3 card-item" data-idcard="{{ opera.id }}" >
  63.                             <a class="hover-underline-removal" href="{{ path("archivio-opere-scheda", {"idopera": opera.id}) }}">
  64.                                 <img class="card-img-top card-img-top-custom" src="{{ asset(uploaded_img_normal ~ m.multimedia.fileref ~ '.' ~ m.multimedia.estensione) }}" alt="{{ m.multimedia.nome }}">
  65.                                 <div class="card-body card-body-custom">
  66.                                     <h5 class="card-title">{{ opera.titolo | replace({"<": "(", ">": ")"}) }}</h5>
  67.                                 </div>
  68.                             </a>
  69.                         </div>
  70.                     {% endif %}
  71.                 {% endfor %}
  72.             {% endif %}
  73.         {% endfor %}
  74.         </div>
  75.         <div class="row mt-5 mb-5 text-center">
  76.             {% if opere | length != 0 %}
  77.             <div class="col-sm-12">
  78.                 <button id="load-images" type="button" class="btn btn-light btn btn-outline-dark">{{'Carica altre opere'|upper}}</button>
  79.             </div>
  80.             {% else %}
  81.                 <div class="col-xl-12">
  82.                     <div class="alert alert-light" role="alert">
  83.                         Non sono presenti opere in questa sezione.
  84.                     </div>
  85.                 </div>
  86.             {% endif %}
  87.         </div>
  88.     </div>
  89.             
  90.     <!-- Modal can't load opere -->
  91.     <div class="modal fade" id="modal-endload-opera" tabindex="-1" role="dialog" aria-labelledby="modal-endload-opera-title" aria-hidden="true">
  92.         <div class="modal-dialog modal-dialog-centered" role="document">
  93.             <div class="modal-content">
  94.                 <div class="modal-header">
  95.                     <h5 class="modal-title" id="modal-endload-opera-title">Avviso</h5>
  96.                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  97.                         <span aria-hidden="true">&times;</span>
  98.                     </button>
  99.                 </div>
  100.                 <div class="modal-body">
  101.                     Non ci sono più opere da caricare
  102.                 </div>
  103.                 <div class="modal-footer">
  104.                     <button type="button" class="btn btn-danger" id="opera-endload-confirmed">Conferma</button>
  105.                 </div>
  106.             </div>
  107.         </div>
  108.     </div>
  109.     
  110.     <div class="d-none" id="choices-tipoopera-year" data-selectedyear="{{ selected_year }}" data-selectedtipoopera="{{ selected_tipoopera }}"></div>
  111.     
  112.     <script type="text/javascript">
  113.         
  114.         $(document).ready(function(){
  115.             
  116.             var container = $('#image-container');
  117.             // container.imagesLoaded()
  118.             // .done(function(){
  119.             //     container.masonry({
  120.             //         itemSelector: '.card-item',
  121.             //         horizontalOrder: true
  122.             //     });
  123.             // });
  124.             
  125.             $("#opera-endload-confirmed").click(function(){
  126.                 $("#modal-endload-opera").modal("hide");
  127.             });
  128.            
  129.             $("#load-images").click(function(){
  130.                     
  131.                 var selected_operas = $(".card-item").map(function() {
  132.                     return $(this).data("idcard");
  133.                 }).get();
  134.                 
  135.                 var year = $("#choices-tipoopera-year").data("selectedyear");
  136.                 var sigla = $("#choices-tipoopera-year").data("selectedtipoopera");
  137.                 
  138.                 $.ajax({
  139.                     url: "{{ path('opereAjax') }}",
  140.                     method: "POST",
  141.                     data: { selected_operas : selected_operas, selected_year : year, selected_sigla : sigla },
  142.                     dataType: "json",
  143.                     success: function(data, status, jqXHR){
  144.                         var data_folder = '{{ asset(uploaded_img_normal) }}';
  145.                         if(data.opere.length !== 0){
  146.                             for(index = 0; index < data.opere.length; index++)
  147.                             {
  148.                                 var fileref = data.opere[index].fileref;
  149.                                 fileref = fileref.replace(new RegExp("-", "g"), "");
  150.                                 var file_path = data_folder + fileref + '.' + data.opere[index].estensione;
  151.                                 var opera_title = data.opere[index].titolo;
  152.                                 var id_opera = data.opere[index].idopera;
  153.                                 var current_element = "<div class='col-xl-3 card-item' data-idcard='" + id_opera + "'>";
  154.                                 current_element += "<a class='hover-underline-removal' href='{{ path("opere") }}/" + id_opera + "'>";
  155.                                 current_element += "<img src='" + file_path + "' alt='' class='card-img-top card-img-top-custom' alt='" + opera_title + "'>";
  156.                                 current_element += "<div class='card-body card-body-custom'>";
  157.                                 current_element += "<h5 class='card-title'>" + opera_title + "</h5>";
  158.                                 current_element += "</a>";
  159.                                 current_element += "</div>";
  160.                                 current_element += "</div>";
  161.                                 var ce = $(current_element);
  162.                                 var container = $("#image-container");
  163.                                 container.append(ce);
  164.                                 // container.masonry('appended', ce);
  165.                                 // container.imagesLoaded()
  166.                                 // .done(function(){
  167.                                 //     container.masonry({
  168.                                 //         itemSelector: '.card-item',
  169.                                 //         horizontalOrder: true
  170.                                 //     });
  171.                                 // });
  172.                             }
  173.                         }else{
  174.                             $("#modal-endload-opera").modal("show");
  175.                         }
  176.                     }
  177.                 });
  178.             });
  179.             
  180.         });
  181.         
  182.     </script>
  183.     
  184. {% endblock %}