{% extends 'base.html.twig' %}
{% block stylesheets %}
<link rel="stylesheet" href="/assets/css/mdb/bootstrap.min.css">
<link rel="stylesheet" href="/assets/css/mdb/mdb.min.css">
<link rel="stylesheet" type="text/css" href="/assets/css/galleries.css" />
<style>
.lightbox {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background-color: rgba(0,0,0,0.75);
opacity: 0;
pointer-events: none;
z-index: 1055;
background-size: contain;
background-repeat: no-repeat;
background-position: center center;
font-size: 30px;
}
.lightbox .left, .lightbox .right {
display: flex;
align-items: center;
cursor: pointer;
color: white;
font-weight: bold;
opacity: 0.5;
}
.lightbox .right {
flex-direction: row-reverse;
}
.lightbox .close {
display: flex;
font-weight: bold;
color: white;
float: none;
opacity: 0.5;
flex-direction: row-reverse;
}
.lightbox .close .btn {
cursor: pointer;
font-size: 30px;
border-radius: 5px;
border: 1px solid white;
padding: 0 12px;
box-shadow: 0 0 5px white;
}
.lightbox .left:hover,
.lightbox .right:hover {
opacity: 1;
color:white;
}
.lightbox .close .btn:hover {
opacity: 1;
color:black;
background-color: ghostwhite;
}
.img-fluid {
cursor: pointer;
}
.hidebackground {
position: fixed;
top:0;left:0;right:0;bottom:0;
background: black;
opacity: 0;
pointer-events: none;
}
.info-background {
position: fixed;
bottom:0;
left:0;right:0;
padding: 15px;
}
.comment, .tags {
color:white;
margin: 0;
}
</style>
{% endblock %}
{% block background %}{% endblock %}
{% block body %}
<div class="page galleries">
<div class="wrap">
<div class="container-fluid">
<div class="row">
<div class="col-sm-12 col-md-8">
{% for gallery in galleries %}
<div class="row">
<div class="col col-12">
<h1>{{ gallery.machineName }}</h1>
</div>
</div>
<div class="row">
<div class="col col-12">
<p>{{ gallery.description }}</p>
</div>
</div>
<div class="gallery" id="gallery">
{% for img in gallery.pictures %}
<div class="mb-3 pics animation all 2">
<img class="img-fluid"
src="/galleries/{{ gallery.id }}/{{ img.photo }}"
alt="{{ img.comment }}"
data-comment="{{ img.comment }}"
data-tags="{{ img.tags }}"
width="100%" />
</div>
{% endfor %}
</div>
{% endfor %}
<div class="lightbox container-fluid">
<div class="info-background">
<p class="comment"></p>
<p class="tags"></p>
</div>
<div class="hidebackground"></div>
<div class="row" style="height: 100vh">
<div class="col col-6 left"><</div>
<div class="col col-6 right">></div>
</div>
<div class="row" style="position: absolute;top:0;left:0;right:0;">
<div class="col-12 close">
<button class="btn">×</button>
</div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-4">
<div class="grid-varosok">
<ul>
{% for gallery in gallery_list %}
<a href="/galleries/{{ gallery.id }}/" rel="bookmark" class="varos {{ gallery.machineName }}"><li>{{ gallery.machineName }}</li></a>
{% endfor %}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script type="text/javascript" src="/assets/js/mdb/popper.min.js"></script>
<script type="text/javascript" src="/assets/js/mdb/bootstrap.min.js"></script>
<script type="text/javascript" src="/assets/js/mdb/mdb.min.js"></script>
<script language="JavaScript">
$(document).ready(function(){
var images = $('.img-fluid');
var box = $('.lightbox');
var left = $('.lightbox .left');
var right = $('.lightbox .right');
var close = $('.lightbox .close .btn');
var bg = $('.lightbox .hidebackground');
var bg_info = $('.lightbox .info-background');
var lastSrc = '', lastComment = '', lastTags = '';
images.on('click', function(){
lastSrc = $(this).attr('src');
lastComment = $(this).attr('data-comment');
lastTags = $(this).attr('data-tags');
setImage();
});
left.click(function(){
bg.animate({'opacity':1},300,function(){
var found = getImage();
if (found > -1) {
var prev = images[(found - 1) < 0 ? (images.length - 1) : (found - 1)];
lastSrc = $(prev).attr('src');
lastComment = $(prev).attr('data-comment');
lastTags = $(prev).attr('data-tags');
setImage();
}
});
});
right.click(function(){
bg.animate({'opacity':1},300,function() {
var found = getImage();
if (found > -1) {
var next = images[(found + 1) > images.length - 1 ? 0 : (found + 1)];
lastSrc = $(next).attr('src');
lastComment = $(next).attr('data-comment');
lastTags = $(next).attr('data-tags');
setImage();
}
});
});
close.click(function(){
bg.animate({'opacity':1},300,function() {
box.css({
'opacity': 0,
'pointer-events': 'none'
});
});
});
function setImage() {
box.css({
'background-image': 'url('+lastSrc+')',
'opacity': 1,
'pointer-events': 'all'
});
bg_info.find('.comment').css({'display': lastComment.trim().length > 0 ? 'block' : 'none'}).html(lastComment);
bg_info.find('.tags').css({'display': lastTags.trim().length > 0 ? 'block' : 'none'}).html(lastTags);
setTimeout(function(){
bg.animate({'opacity': 0}, 500);
},100);
}
function getImage() {
var found = -1;
images.each(function(index, img) {
if ($(img).attr('src') == lastSrc) {
found = index;
}
});
return found;
}
});
</script>
{% endblock %}