You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.7 KiB
39 lines
1.7 KiB
const WPAPI = require( 'wpapi' ); |
|
|
|
export default { |
|
init() { |
|
// JavaScript to be fired on the home page |
|
let pb = new WPAPI({ endpoint: 'http://pressbooks.dev/wp-json' }); |
|
pb.books = pb.registerRoute( 'pressbooks/v2', '/books/' ); |
|
const total = parseInt($('.navigation').attr('data-total')); |
|
$('.latest-books .navigation .next, .latest-books .navigation .previous').live('click', (event) => { |
|
event.preventDefault(); |
|
const page = parseInt($(event.currentTarget).attr('data-page')); |
|
pb.books().perPage(3).page(page).then(function(data) { |
|
let books = '', nav = ''; |
|
data.forEach((book) => { |
|
books = books + `<div class="book"> |
|
<a class="subject" href="">Fiction</a> |
|
<a class="title" href="${book.link}">${book.metadata.name}</a> |
|
<a class="read-more" href="${book.link}">About this book →</a> |
|
</div>`; |
|
}); |
|
$('.books').html(books); |
|
if (page > 1 && page < total) { |
|
nav = nav + `<a class="previous f1" data-page="${page - 1}" href="/page/${page - 1}/">←</a> |
|
<a class="next f1" data-page="${page + 1}" href="/page/${page + 1}/">→</a>`; |
|
} else if (page > 1 && page === total) { |
|
nav = nav + `<a class="previous f1" data-page="${page - 1}" href="/page/${page - 1}/">←</a>`; |
|
} else { |
|
nav = nav + `<a class="next f1" data-page="${page + 1}" href="/page/${page + 1}/">→</a>`; |
|
} |
|
$('.latest-books .navigation').html(nav); |
|
}).catch(function(err) { |
|
console.error(err); // eslint-disable-line |
|
}); |
|
}); |
|
}, |
|
finalize() { |
|
// JavaScript to be fired on the home page, after the init JS |
|
}, |
|
};
|
|
|