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
2.2 KiB

  1. // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
  2. // MIT License. See license.txt
  3. // js inside blog page
  4. $(document).ready(function() {
  5. // make list of blogs
  6. blog.get_list();
  7. $("#next-page").click(function() {
  8. blog.get_list();
  9. })
  10. if(get_url_arg("by_name")) {
  11. $("#blot-subtitle").html("Posts by " + get_url_arg("by_name")).toggle(true);
  12. }
  13. if(get_url_arg("category")) {
  14. $("#blot-subtitle").html("Posts filed under " + get_url_arg("category")).toggle(true);
  15. }
  16. });
  17. var blog = {
  18. start: 0,
  19. get_list: function() {
  20. $.ajax({
  21. method: "GET",
  22. url: "/",
  23. data: {
  24. cmd: "webnotes.templates.generators.blog_post.get_blog_list",
  25. start: blog.start,
  26. by: get_url_arg("by"),
  27. category: get_url_arg("category")
  28. },
  29. dataType: "json",
  30. success: function(data) {
  31. $(".progress").toggle(false);
  32. if(data.exc) console.log(data.exc);
  33. blog.render(data.message);
  34. }
  35. });
  36. },
  37. render: function(data) {
  38. if(!data) data = [];
  39. var $wrap = $("#blog-list");
  40. $.each(data, function(i, b) {
  41. // comments
  42. if(!b.comments) {
  43. b.comment_text = 'No comments yet.'
  44. } else if (b.comments===1) {
  45. b.comment_text = '1 comment.'
  46. } else {
  47. b.comment_text = b.comments + ' comments.'
  48. }
  49. b.page_name = encodeURIComponent(b.page_name);
  50. b.avatar = b.avatar || "";
  51. $(repl('<div class="row">\
  52. <div class="col-md-1">\
  53. <div class="avatar avatar-medium" style="margin-top: 6px;">\
  54. <img src="%(avatar)s" />\
  55. </div>\
  56. </div>\
  57. <div class="col-md-11">\
  58. <h4><a href="%(page_name)s">%(title)s</a></h4>\
  59. <p>%(content)s</p>\
  60. <p style="color: #aaa; font-size: 90%">\
  61. <a href="blog?by=%(blogger)s&by_name=%(full_name)s">\
  62. %(full_name)s</a> wrote this on %(published)s / %(comment_text)s</p>\
  63. </div>\
  64. </div><hr>', b)).appendTo($wrap);
  65. });
  66. blog.start += (data.length || 0);
  67. if(!data.length || data.length < 20) {
  68. if(blog.start) {
  69. $("#next-page").toggle(false)
  70. .parent().append("<div class='text-muted'>Nothing more to show.</div>");
  71. } else {
  72. $("#next-page").toggle(false)
  73. .parent().append("<div class='alert alert-warning'>No blogs written yet.</div>");
  74. }
  75. } else {
  76. $("#next-page").toggle(true);
  77. }
  78. }
  79. }