mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-12-24 18:08:50 +00:00
Can load older latest posts.
This commit is contained in:
parent
999d3248a5
commit
83fe4b9b8b
@ -17,7 +17,7 @@ ComunicWeb.components.posts.interface = {
|
||||
|
||||
//Load the previous posts to the loaded post if required
|
||||
if(lastPostID > 0)
|
||||
lastPostID = lastPostID-1;
|
||||
lastPostID--;
|
||||
|
||||
//Prepare the API request
|
||||
var APIuri = "posts/get_user";
|
||||
@ -34,13 +34,19 @@ ComunicWeb.components.posts.interface = {
|
||||
/**
|
||||
* Get the list of the latest posts
|
||||
*
|
||||
* @param {number} lastPostID The ID of the loast loaded post (or 0)
|
||||
* @param {function} callback What to do when we got response
|
||||
*/
|
||||
get_latest: function(callback){
|
||||
get_latest: function(lastPostID, callback){
|
||||
|
||||
if(lastPostID > 0)
|
||||
lastPostID--;
|
||||
|
||||
//Prepare API request
|
||||
var APIuri = "posts/get_latest";
|
||||
var params = {};
|
||||
var params = {
|
||||
startFrom: lastPostID
|
||||
};
|
||||
|
||||
//Perform the request
|
||||
ComunicWeb.common.api.makeAPIrequest(APIuri, params, true, callback);
|
||||
|
@ -6,6 +6,16 @@
|
||||
|
||||
ComunicWeb.pages.latestPosts.main = {
|
||||
|
||||
/**
|
||||
* Last loaded post id
|
||||
*/
|
||||
_last_post_id: 0,
|
||||
|
||||
/**
|
||||
* Specify if post loading is locked or not
|
||||
*/
|
||||
_load_post_locked: false,
|
||||
|
||||
/**
|
||||
* Open latest posts page
|
||||
*
|
||||
@ -14,33 +24,9 @@ ComunicWeb.pages.latestPosts.main = {
|
||||
*/
|
||||
open: function(params, target){
|
||||
|
||||
//Perform a request on the server to get the list of latest posts
|
||||
ComunicWeb.components.posts.interface.get_latest(function(response){
|
||||
|
||||
//Check for errors - display a modal
|
||||
if(response.error){
|
||||
|
||||
//Display modal error
|
||||
var error = ComunicWeb.common.messages.createCalloutElem("Error", "Could not get the list of the latest posts ! Please try to refresh the page...", "danger");
|
||||
error.className += " latestPostsError";
|
||||
target.appendChild(error);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//Display the list of posts
|
||||
ComunicWeb.pages.latestPosts.main._display_list(response, target);
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Display the list of latest post
|
||||
*
|
||||
* @param {Object} list The list of posts to display
|
||||
* @param {HTMLElement} target The target for the posts
|
||||
*/
|
||||
_display_list: function(list, target){
|
||||
//Reset variables
|
||||
this._last_post_id = 0;
|
||||
this._load_post_locked = true;
|
||||
|
||||
//Create post list box
|
||||
//Create row
|
||||
@ -71,10 +57,77 @@ ComunicWeb.pages.latestPosts.main = {
|
||||
class: "box-body"
|
||||
});
|
||||
|
||||
//Load the list
|
||||
this._load_list(boxBody);
|
||||
|
||||
//Catch scroll event
|
||||
$(window).scroll(function(){
|
||||
|
||||
//Cancel event if it came by error
|
||||
if(!boxBody.isConnected)
|
||||
return;
|
||||
|
||||
//Cancel event if the page is locked
|
||||
if(ComunicWeb.pages.latestPosts.main._load_post_locked !== false)
|
||||
return;
|
||||
|
||||
//Check if we reached the bottom of the page
|
||||
if($(window).scrollTop() + $(window).height() < $(document).height() - 50){
|
||||
return;
|
||||
}
|
||||
|
||||
//Lock the loading state
|
||||
ComunicWeb.pages.latestPosts.main._load_post_locked = true;
|
||||
|
||||
//Load next posts
|
||||
ComunicWeb.pages.latestPosts.main._load_list(boxBody);
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Load the list of post
|
||||
*
|
||||
* @param {HTMLElement} target The target
|
||||
*/
|
||||
_load_list: function(target){
|
||||
|
||||
//Perform a request on the server to get the list of latest posts
|
||||
ComunicWeb.components.posts.interface.get_latest(this._last_post_id, function(response){
|
||||
|
||||
//Check for errors - display a modal
|
||||
if(response.error){
|
||||
|
||||
//Display modal error
|
||||
var error = ComunicWeb.common.messages.createCalloutElem("Error", "Could not get the list of the latest posts ! Please try to refresh the page...", "danger");
|
||||
error.className += " latestPostsError";
|
||||
target.appendChild(error);
|
||||
}
|
||||
else
|
||||
//Display the list of posts
|
||||
ComunicWeb.pages.latestPosts.main._display_list(response, target);
|
||||
|
||||
//Unlock posts loading
|
||||
ComunicWeb.pages.latestPosts.main._load_post_locked = false;
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Display the list of latest post
|
||||
*
|
||||
* @param {Object} list The list of posts to display
|
||||
* @param {HTMLElement} target The target for the posts
|
||||
*/
|
||||
_display_list: function(list, target){
|
||||
|
||||
//Process the list of posts
|
||||
for (let index = 0; index < list.length; index++) {
|
||||
|
||||
//Display the post
|
||||
ComunicWeb.components.posts.ui.display_post(list[index], boxBody);
|
||||
ComunicWeb.components.posts.ui.display_post(list[index], target);
|
||||
|
||||
//Save its ID
|
||||
this._last_post_id = list[index].ID;
|
||||
}
|
||||
|
||||
//Check if there aren't any post to display
|
||||
|
Loading…
Reference in New Issue
Block a user