Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

blog.js 2.3 KiB

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