%PDF- %PDF-
Direktori : /var/www/projetos/suporte.iigd.com.br.old/templates/components/ |
Current File : /var/www/projetos/suporte.iigd.com.br.old/templates/components/photoswipe.html.twig |
{# # --------------------------------------------------------------------- # # GLPI - Gestionnaire Libre de Parc Informatique # # http://glpi-project.org # # @copyright 2015-2022 Teclib' and contributors. # @copyright 2003-2014 by the INDEPNET Development Team. # @licence https://www.gnu.org/licenses/gpl-3.0.html # # --------------------------------------------------------------------- # # LICENSE # # This file is part of GLPI. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # --------------------------------------------------------------------- #} {% import 'components/form/fields_macros.html.twig' as fields %} {% set rand = random() %} {% set field_name = field_name|default('psgallery' ~ rand) %} <div id="psgallery{{ rand }}" class="pswp" tabindex="-1" role="dialog" aria-hidden="true"> <div class="pswp__bg"></div> <div class="pswp__scroll-wrap"> <div class="pswp__container"> <div class="pswp__item"></div> <div class="pswp__item"></div> <div class="pswp__item"></div> </div> <div class="pswp__ui pswp__ui--hidden"> <div class="pswp__top-bar"> <div class="pswp__counter"></div> {% if controls.close %} <button class="pswp__button pswp__button--close" title="{{ __('Close (Esc)') }}"></button> {% endif %} {% if controls.share %} <button class="pswp__button pswp__button--share" title="{{ __('Share') }}"></button> {% endif %} {% if controls.fullscreen %} <button class="pswp__button pswp__button--fs" title="{{ __('Toggle fullscreen') }}"></button> {% endif %} {% if controls.zoom %} <button class="pswp__button pswp__button--zoom" title="{{ __('Zoom in/out') }}"></button> {% endif %} <div class="pswp__preloader"> <div class="pswp__preloader__icn"> <div class="pswp__preloader__cut"> <div class="pswp__preloader__donut"></div> </div> </div> </div> </div> <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap"> <div class="pswp__share-tooltip"></div> </div> <button type="button" class="pswp__button pswp__button--arrow--left" title="{{ __('Previous (arrow left)') }}"> </button> <button type="button" class="pswp__button pswp__button--arrow--right" title="{{ __('Next (arrow right)') }}"> </button> <div class="pswp__caption"> <div class="pswp__caption__center"></div> </div> </div> </div> </div> {% set imgs = imgs|default({}) %} {% set galleryclass = gallery_class|default('') %} {% set gallery_type = gallery_type|default('') %} {% if gallery_type == 'horizontal' %} <div class="col-12"> <div class="d-flex flex-row overflow-auto pswp-horizontal-gallery pswp-img{{ rand }} {{ gallery_item_class }}" itemscope itemtype="https://schema.org/ImageGallery"> {% for img in imgs %} <div class="{{ img['gallery_item_class']|default('') }}"> {% if img['pre_figure_content'] %} {{ img['pre_figure_content']|raw }} {% endif %} <figure itemprop="associatedMedia" itemscope itemtype="https://schema.org/ImageObject" class="d-flex flex-column me-2"> {% if img['_video'] %} <span class="bg-black pswp-trigger pointer d-flex justify-content-center align-items-center"> <i class="fas fa-video"></i> </span> {% else %} <a href="{{ img['src']|escape }}" itemprop="contentUrl" data-index="0"> <img src="{{ img['thumbnail_src']|default(img['src']) }}" itemprop="thumbnail" alt="{{ img['title']|default('') }}" class="{{ img['img_class']|default('') }} pointer pswp-trigger" /> </a> {% endif %} <figcaption itemprop="caption description" class="text-muted fst-italic"> {{ img['title']|default('') }} </figcaption> </figure> {% if img['post_figure_content'] %} {{ img['post_figure_content']|raw }} {% endif %} </div> {% endfor %} </div> </div> {% else %} <div class="pswp-img{{ rand }} {{ gallery_item_class }}" itemscope itemtype="https://schema.org/ImageGallery"> {% for img in imgs %} {% set clearable = img['clearable'] %} <figure itemprop="associatedMedia" itemscope itemtype="https://schema.org/ImageObject" style="width: {{ img['thumbnail_w']|default('auto') }}; height: {{ img['thumbnail_h']|default('auto') }}"> {{ fields.imageField( (clearable ? 'pictures' : field_name) ~ '_' ~ loop.index0, img['thumbnail_src']|default(img['src']), '', { 'no_label': true, 'full_width': true, 'mb': '', 'clearable': clearable, 'class': 'cursor-pointer pswp-trigger', 'alt': img['title']|default(''), 'itemprop': 'thumbnail' }, { 'itemprop': 'contentUrl', 'data-index': '0' } ) }} <figcaption itemprop="caption description" class="text-muted fst-italic"> {{ img['title']|default('') }} </figcaption> </figure> {% endfor %} </div> {% endif %} <script> (($) => { const pswp = document.getElementById("psgallery{{ rand }}"); $(".pswp-img{{ rand }}").on('click', 'figure .pswp-trigger', function(event) { event.preventDefault(); const options = { index: $(this).closest('figure').index(), bgOpacity: 0.7, showHideOpacity: true, shareButtons: [ { id: 'download', label: __('Download'), url: '{{ raw_image_url }}', download: true } ] }; const lightbox = new PhotoSwipe(pswp, PhotoSwipeUI_Default, {{ imgs|json_encode|raw }}, options); $(pswp).closest('.card-tabs').css('z-index', 50); // Be sure that tabs are displayed above form in vsplit layout lightbox.init(); // Prevent dragging around cusotm HTML slide content $(lightbox.container).find('.pswp__item span').on('pointerdown MSPointerDown touchstart mousedown', function (e) { return false; }); lightbox.listen('destroy', function() { $(this.container).closest('.card-tabs').css('z-index', ''); }); }) })(jQuery); </script>