ginou/scripts/exposition.js

147 lines
6.0 KiB
JavaScript
Raw Normal View History

jQuery(document).ready(function($)
{
$.getJSON("data.json", function(data)
{
var pageSize = 14;
2021-02-13 19:49:20 +00:00
var paintingList = [];
canDisplay = true;
for (i of data)
{
2021-02-16 13:02:57 +00:00
if (i.expo == "yes")
{
2021-02-13 19:49:20 +00:00
paintingList.push(i.number);
if (paintingList.length % (pageSize + 1) == 0)
2021-02-13 19:49:20 +00:00
canDisplay = false;
2021-02-14 00:33:02 +00:00
paintingHtml = '<div class="gallery-item ';
2021-02-13 19:49:20 +00:00
if (canDisplay)
{
2021-02-14 00:33:02 +00:00
paintingHtml += 'active"><a data-fancybox="exposition" href="photos/paintings/normal/' + i.number + '.jpg" data-fancybox-index="' + i.number + '">'
2021-02-14 11:24:53 +00:00
paintingHtml += '<img src="photos/paintings/mini/" alt="Tableau ' + i.number + '"></a>';
2021-02-13 19:49:20 +00:00
}
else
{
2021-02-14 00:33:02 +00:00
paintingHtml += 'inactive"><a data-fancybox="exposition" href="photos/paintings/normal/' + i.number + '.jpg" data-fancybox-index="' + i.number + '">'
2021-02-13 19:49:20 +00:00
paintingHtml += '<img src="photos/paintings/mini/" alt="Tableau ' + i.number + '"></a>';
}
paintingHtml += '<span class="item-title">' + i.title;
if (i.year != '—')
paintingHtml += ' (' + i.year + ')';
paintingHtml += '</span></div>';
$(".gallery").append(paintingHtml);
}
}
2021-01-09 00:11:40 +00:00
var targetPage = 0;
2021-02-13 19:49:20 +00:00
urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('page') != "")
targetPage = urlParams.get('page');
2021-02-13 19:49:20 +00:00
2021-02-14 11:38:46 +00:00
function getPageRange()
{
if (window.innerWidth >= 600)
return null;
else if (window.innerWidth < 600 && window.innerWidth > 450)
2021-02-14 11:42:57 +00:00
return 4;
2021-02-14 11:38:46 +00:00
else
2021-02-14 11:42:57 +00:00
return 1;
2021-02-14 11:38:46 +00:00
}
var currentPage = 0;
2021-02-13 19:49:20 +00:00
var previousArray = []
var options =
{
2021-02-13 19:49:20 +00:00
dataSource: paintingList,
pageSize: pageSize,
2021-02-14 11:38:46 +00:00
pageRange: getPageRange(),
2021-02-14 10:17:16 +00:00
className: 'paginationjs-theme-ginou',
hideWhenLessThanOnePage: true,
2021-02-13 19:49:20 +00:00
callback: function (response, pagination)
{
currentPage = pagination.pageNumber;
window.history.replaceState('', '', window.location.pathname + '?page=' + currentPage + window.location.hash);
2021-02-13 19:49:20 +00:00
if (previousArray.length > 0)
{
2021-02-13 19:49:20 +00:00
for (i of previousArray)
2021-02-14 00:33:02 +00:00
$('[data-fancybox-index="'+i+'"]').parent().removeClass("active").addClass("inactive");
}
2021-02-13 19:49:20 +00:00
previousArray = response;
$.each(response, function(index, item)
{
2021-02-14 00:33:02 +00:00
$('[data-fancybox-index="'+item+'"]').parent().removeClass("inactive").addClass("active");
2021-02-13 19:49:20 +00:00
$('[data-fancybox-index="'+item+'"] img').attr("src", "photos/paintings/mini/"+item+".jpg");
});
}
2021-02-13 19:49:20 +00:00
};
$('#pagination').pagination(options);
if (targetPage > 0)
$("#pagination").pagination('go', targetPage);
2021-02-13 19:49:20 +00:00
$('[data-fancybox="exposition"]').fancybox(
{
selector: '.gallery a',
infobar: false,
toolbar: true,
smallBtn: false,
buttons: ["arrowLeft", "arrowRight", "close"],
arrows: false,
transitionEffect: "fade",
baseClass: 'fancybox-custom-layout',
mobile: {
preventCaptionOverlap: true,
},
caption: function(instance, item)
{
var idx = item.opts.fancyboxIndex - 1; // painting number
if (item.opts.fancyboxIndex >= 1000)
idx = item.opts.fancyboxIndex - 1000 + 383 - 1; // inédit: index starts at 1000 // 383: total number of paintings except inédit
function generateCartel()
{
cartel = '<div id="info"><span class="info">';
cartel += '<a href="painting.html?number=' + data[idx].number + '">&#8505;&#xFE0E;</span></a></span>';
cartel += '<span class="title">' + data[idx].title + '</span><span class="year">';
if (data[idx].month != '—')
cartel += data[idx].month + '&nbsp;';
if (data[idx].year != '—')
cartel += data[idx].year;
2021-02-14 12:15:48 +00:00
cartel += '&nbsp;</span><span class="format">' + data[idx].paint + ' sur ' + data[idx].support.toLowerCase();
2021-02-13 19:49:20 +00:00
if (data[idx].dimension != '—')
cartel += ' (' + data[idx].dimension + ')';
cartel += '</span>';
if (data[idx].comment != '—')
cartel += '<span class="comment">' + data[idx].comment + '</span>';
cartel += '</div>';
return cartel;
}
return generateCartel();
},
beforeShow : function(instance, current)
{
if (current.opts.fancyboxIndex > previousArray[previousArray.length - 1])
$('#pagination').pagination('next');
if (current.opts.fancyboxIndex < previousArray[0])
$('#pagination').pagination('previous');
},
afterClose : function(instance)
{
// after closing, changing the URL again. I guess there's no better way except by changing fancybox code...
// (apparently fancybox changes back to the original url it had when starting)
window.history.replaceState('', '', window.location.pathname + '?page=' + currentPage + window.location.hash);
}
2021-02-13 19:49:20 +00:00
});
2021-01-09 00:11:40 +00:00
});
});