module.exports=
|
|
{
|
|
/**
|
|
* Renders a bunch of blog post previews to the user
|
|
*
|
|
* @param baseURL-- url of the page
|
|
* @param posts -- sql data about the posts to render
|
|
* @param currentPage -- the current page to render
|
|
* @param numOfPosts -- number of posts to render
|
|
* @returns {Promise} renders the html of the posts
|
|
*/
|
|
main: function(baseURL, posts, currentPage, numOfPosts)
|
|
{
|
|
if(typeof currentPage == "undefined")
|
|
{
|
|
currentPage = 1;
|
|
}
|
|
else
|
|
{
|
|
currentPage = Number(currentPage);
|
|
}
|
|
|
|
return new Promise(function(resolve, reject)
|
|
{
|
|
const promises = [];
|
|
for(var i = (currentPage-1) * numOfPosts; i < (currentPage-1) * numOfPosts + numOfPosts; i++)
|
|
{
|
|
if(i < posts.length)
|
|
{
|
|
promises.push(new Promise(function(res, rej)
|
|
{
|
|
require("../posts/singlePost.js")
|
|
.renderPreview(posts[i]).then(function(html)
|
|
{
|
|
res(html);
|
|
}).catch(function(error)
|
|
{
|
|
reject(error)
|
|
})
|
|
}));
|
|
}
|
|
}
|
|
|
|
promises.push(require('../posts/renderNextBar').main(baseURL, currentPage, numOfPosts, posts.length));
|
|
|
|
Promise.all(promises).then(function(content)
|
|
{
|
|
resolve("<div class='col-md-8'>" + content.join('') + "</div>");
|
|
}).catch(function(error)
|
|
{
|
|
reject(error);
|
|
});
|
|
});
|
|
}
|
|
};
|