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.
 
 
 
 
 
 

87 line
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.website.doctype.blog_post.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. $(repl('<div class="row">\
  51. <div class="col-md-1">\
  52. <div class="avatar avatar-medium" style="margin-top: 6px;">\
  53. <img src="%(avatar)s" />\
  54. </div>\
  55. </div>\
  56. <div class="col-md-11">\
  57. <h4><a href="%(page_name)s">%(title)s</a></h4>\
  58. <p>%(content)s</p>\
  59. <p style="color: #aaa; font-size: 90%">\
  60. <a href="blog?by=%(blogger)s&by_name=%(full_name)s">\
  61. %(full_name)s</a> wrote this on %(published)s / %(comment_text)s</p>\
  62. </div>\
  63. </div><hr>', b)).appendTo($wrap);
  64. });
  65. blog.start += (data.length || 0);
  66. if(!data.length || data.length < 20) {
  67. if(blog.start) {
  68. $("#next-page").toggle(false)
  69. .parent().append("<div class='text-muted'>Nothing more to show.</div>");
  70. } else {
  71. $("#next-page").toggle(false)
  72. .parent().append("<div class='alert alert-warning'>No blogs written yet.</div>");
  73. }
  74. } else {
  75. $("#next-page").toggle(true);
  76. }
  77. }
  78. }