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.

88 lines
3.0 KiB

  1. frontend.pagination = {
  2. page: 1,
  3. totalPages: -1,
  4. load: function () {
  5. if (frontend.pagination.totalPages == -1 || frontend.pagination.page < frontend.pagination.totalPages) {
  6. frontend.pagination.page++;
  7. frontend.pagination.pull();
  8. }
  9. },
  10. pull: function () {
  11. jQuery('section.load-more-pagination div.load-more-pagination a').blur();
  12. var categoryId = '';
  13. if (jQuery('#category_id').length > 0) {
  14. categoryId = jQuery('#category_id').val();
  15. }
  16. var data = {
  17. action: 'load_more_news',
  18. page: frontend.pagination.page,
  19. category: categoryId
  20. };
  21. jQuery.post(ajaxurl, data, function (response) {
  22. var response = JSON.parse(response);
  23. frontend.pagination.totalPages = response.pages;
  24. if (frontend.pagination.totalPages == frontend.pagination.page || frontend.pagination.totalPages == 0) {
  25. frontend.pagination.disable();
  26. }
  27. frontend.pagination.parse(response.posts);
  28. });
  29. },
  30. disable: function () {
  31. jQuery('section.load-more-pagination div.load-more-pagination').css({
  32. opacity: .0,
  33. pointerEvents: 'none'
  34. });
  35. },
  36. parse: function (posts) {
  37. for (var i = 0; i < posts.length; i++) {
  38. var post = posts[i];
  39. console.log(post);
  40. var column = jQuery('<div/>').addClass('col-xs-12').addClass('col-sm-6');
  41. var container = jQuery('<div/>').addClass('item-news');
  42. if (post.image) {
  43. var image = jQuery('<div/>').addClass('image').css({
  44. backgroundImage: 'url(' + post.image + ')'
  45. });
  46. container.append(image);
  47. }
  48. var info = jQuery('<div/>').addClass('item-info');
  49. var header = jQuery('<header/>');
  50. var h3 = jQuery('<h3/>').addClass('title');
  51. var footer = jQuery('<footer/>');
  52. var headerLink = jQuery('<a/>').addClass('category').attr('title', post.category_label).attr('href', post.category_link).text(post.category_label);
  53. var h3Link = jQuery('<a/>').attr('title', post.title).attr('href', post.link).text(post.title);
  54. var date = jQuery('<div/>').addClass('date').text(post.date);
  55. var imgReadMore = jQuery('<img/>').attr('alt', 'Read More').attr('src', '/wp-content/themes/openvpn/assets/images/arrow.png');
  56. var linkDate = jQuery('<a/>').addClass('go-to').attr('href', post.link);
  57. linkDate.append(imgReadMore);
  58. date.append(linkDate);
  59. footer.append(date);
  60. h3.append(h3Link);
  61. header.append(headerLink);
  62. info.append(header).append(h3).append(footer);
  63. container.append(info);
  64. column.append(container);
  65. jQuery('section.news > .container > .row > .col-xs-12 > .row').append(column);
  66. }
  67. }
  68. };