2021-01-24 14:43:02 +00:00
jQuery ( document ) . ready ( function ( $ )
{
$ . getJSON ( "data.json" , function ( data )
{
2021-02-14 00:55:42 +00:00
var pageSize = 14 ;
2021-02-13 19:49:20 +00:00
var paintingList = [ ] ;
canDisplay = true ;
2021-01-24 14:43:02 +00:00
for ( i of data )
{
if ( i . photo == "ok" || i . photo == "good" )
{
2021-02-13 19:49:20 +00:00
paintingList . push ( i . number ) ;
2021-02-14 00:55:42 +00:00
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-13 19:49:20 +00:00
paintingHtml += '<img src="photos/paintings/mini/' + i . number + '.jpg" alt="Tableau ' + i . number + '"></a>' ;
}
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>' ;
}
2021-02-13 00:54:45 +00:00
paintingHtml += '<span class="item-title">' + i . title ;
if ( i . year != '—' )
paintingHtml += ' (' + i . year + ')' ;
paintingHtml += '</span></div>' ;
2021-02-12 19:53:40 +00:00
$ ( ".gallery" ) . append ( paintingHtml ) ;
2021-01-24 14:43:02 +00:00
}
}
2021-01-09 00:11:40 +00:00
2021-02-14 00:55:42 +00:00
var targetPage = 0 ;
2021-02-13 19:49:20 +00:00
urlParams = new URLSearchParams ( window . location . search ) ;
if ( urlParams . get ( 'page' ) != "" )
2021-02-14 00:55:42 +00:00
targetPage = urlParams . get ( 'page' ) ;
2021-02-13 19:49:20 +00:00
var previousArray = [ ]
var options =
2021-01-24 14:43:02 +00:00
{
2021-02-13 19:49:20 +00:00
dataSource : paintingList ,
2021-02-14 00:55:42 +00:00
pageSize : pageSize ,
pageRange : null ,
className : 'paginationjs-theme-blue' ,
2021-02-13 19:49:20 +00:00
callback : function ( response , pagination )
2021-02-14 00:55:42 +00:00
{
console . log ( window . location . pathname ) ;
console . log ( window . location . hash ) ;
window . history . replaceState ( '' , '' , window . location . pathname + '?page=' + pagination . pageNumber + window . location . hash ) ; // careful, back button is broken with that
2021-02-10 17:39:46 +00:00
2021-02-13 19:49:20 +00:00
if ( previousArray . length > 0 )
2021-02-11 13:12:57 +00:00
{
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-11 13:12:57 +00:00
}
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-01-24 14:43:02 +00:00
}
2021-02-13 19:49:20 +00:00
} ;
$ ( '#pagination' ) . pagination ( options ) ;
2021-02-14 00:55:42 +00:00
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 ,
} ,
2021-02-14 00:55:42 +00:00
hash : false ,
2021-02-13 19:49:20 +00:00
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 + '">ℹ︎</span></a></span>' ;
cartel += '<span class="title">' + data [ idx ] . title + '</span><span class="year">' ;
if ( data [ idx ] . month != '—' )
cartel += data [ idx ] . month + ' ' ;
if ( data [ idx ] . year != '—' )
cartel += data [ idx ] . year ;
cartel += '</span><span class="format">' + data [ idx ] . paint + ' sur ' + data [ idx ] . support . toLowerCase ( ) ;
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' ) ;
} ,
2021-02-14 00:55:42 +00:00
2021-02-13 19:49:20 +00:00
} ) ;
2021-01-09 00:11:40 +00:00
} ) ;
} ) ;