Advertisement
Guest User

Untitled

a guest
Jul 2nd, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. <template name="postsList">
  2. <div class="posts">
  3. <div class='row-fluid' style="margin-left:1%">
  4. {{breakInit}}
  5. {{#each posts}}
  6. <div class="span3">
  7. {{> postItem}}
  8. </div>
  9. {{breakNow}}
  10. {{/each}}
  11. </div>
  12. </div>
  13. </template>
  14.  
  15. Template.postsList.breakInit = function() {
  16. Template.postsList.docCount = 0 ;
  17. };
  18.  
  19. Template.postsList.breakNow = function() {
  20. count=Template.postsList.docCount + 1 ;
  21. result="";
  22. if ( count == 4 ) {
  23. count = 0 ;
  24. Template.postsList.docCount = count ;
  25. result="</div><div class=row>" ;
  26. };
  27. Template.postsList.docCount = count ;
  28. return new Handlebars.SafeString(result);
  29. };
  30.  
  31. <div id="main" class="row-fluid">
  32. <div class="posts">
  33. <div class="row">
  34. <div class="span3"> … </div>
  35. <div class="span3"> … </div>
  36. <div class="span3"> … </div>
  37. <div class="span3"> … </div>
  38. <div class="row"> … </div> <-- The problem...
  39. <div class="span3"> … </div>
  40. <div class="span3"> … </div>
  41. </div>
  42. </div>
  43. </div>
  44.  
  45. Template.projectList.helpers({
  46. projects: function () {
  47. all = Projects.find({}).fetch();
  48. chunks = [];
  49. size = 4
  50. while (all.length > size) {
  51. chunks.push({ row: all.slice(0, size)});
  52. all = all.slice(size);
  53. }
  54. chunks.push({row: all});
  55. return chunks;
  56. }
  57. });
  58.  
  59. <template name="projectList">
  60. {{#each projects}}
  61. {{> projectRow }}
  62. {{/each}}
  63. </template>
  64.  
  65. <template name='projectRow'>
  66. <div class='row span12'>
  67. {{#each row }}
  68. {{> projectItem}}
  69. {{/each}}
  70. </div>
  71. </template>
  72.  
  73. <template name="projectItem">
  74. <div class="span4">
  75. <h3><a href="{{projectPagePath this}}"> {{title}} </a></h3>
  76. <p> {{subtitle}} </p>
  77. <p> {{description}} </p>
  78. <p><img src="{{image}}"/></p>
  79. <p> {{openPositions}} </p>
  80. </div>
  81. </template>
  82.  
  83. {{#each rows}}
  84. <div class="row-fluid">
  85. {{#each posts row}}
  86. <div class="span3">
  87. {{> postItem}}
  88. </div>
  89. {{/each}}
  90. </div>
  91. {{/each}}
  92.  
  93. Template.postsList.rows = function () {
  94. // 1. Get cursor of posts (cursor = posts.find({...});
  95. // 2. Get count from cursor (count = cursor.count());
  96. // 3. Divide count by desired columns per row, then Math.ceil it (I think!)
  97. // 4. Return an array of objects each containing a "row" key, with some various values (current row probably, count, etc)
  98. };
  99.  
  100. Template.postsList.posts = function (row) {
  101. // Return a cursor of posts that is offset and limited (see meteor docs) based on values found in the row object
  102. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement