Can open user page from virtual directory name

This commit is contained in:
Pierre 2017-12-16 14:43:31 +01:00
parent 8d313b6e4c
commit 4cc00b7868
4 changed files with 113 additions and 3 deletions

View File

@ -390,6 +390,11 @@ var ComunicWeb = {
*/ */
getNames: function(usersID, afterNames){}, getNames: function(usersID, afterNames){},
/**
* Get the user ID specified by its folder name
*/
getIDfromPath: function(path, callback){},
/** /**
* Empty users cache * Empty users cache
*/ */
@ -629,7 +634,6 @@ var ComunicWeb = {
*/ */
openHomePage: function(additionnalData, targetElement){}, openHomePage: function(additionnalData, targetElement){},
}, },
/** /**
@ -658,6 +662,11 @@ var ComunicWeb = {
*/ */
open: function(params, target){}, open: function(params, target){},
/**
* Open user page specified by user ID
*/
openUserPage: function(id, params, target){},
}, },
}, },

View File

@ -31,6 +31,15 @@ function openPage(pageURI, additionnalData){
return ComunicWeb.common.page.openPage(pageURI, additionnalData); return ComunicWeb.common.page.openPage(pageURI, additionnalData);
} }
/**
* Check if user is signed in or not
*
* @return {Boolean} True if the user is signed in / false else
*/
function signed_in(){
return ComunicWeb.user.userLogin.getUserLoginState();
}
/** /**
* Returns user ID (if logged in) * Returns user ID (if logged in)
* *

View File

@ -16,9 +16,74 @@ ComunicWeb.pages.userPage.main = {
* @param {HTMLElement} target The target for the user page * @param {HTMLElement} target The target for the user page
*/ */
open: function(params, target){ open: function(params, target){
//Check if a subfolder was specified or not
if(params.subfolder){
var user = params.subfolder;
console.log(params); //Check if there are also subfolder (which are then removed)
if(user.indexOf("/")){
user = user.split("/").shift();
}
} } else {
var user = "me";
}
//Check if the user specified is an ID
if(user*1 == user){
this.openUserPage(user, params, target);
}
else {
//Check if we are opening user page
if(user === "me"){
if(signed_in()){
//Open current user page
openPage("user/"+userID());
}
else {
//Redirect to login page
openPage("login");
}
}
else {
//Search which page should be opened now
ComunicWeb.user.userInfos.getIDfromPath(user, function(id){
//The user was not found
if(id < 0){
ComunicWeb.common.error.pageNotFound(null, target);
}
else {
ComunicWeb.pages.userPage.main.openUserPage(id);
}
});
}
}
},
/**
* Open precise user page
*
* @param {Integer} id The ID of the user to open the page
* @param {Object} params Parametres required to open the page
* @param {HTMLElement} target Target of the user page
*/
openUserPage: function(id, params, target){
//Log action
log("Open user page : " + id);
},
} }

View File

@ -201,6 +201,33 @@ ComunicWeb.user.userInfos = {
}); });
}, },
/**
* Get the user ID specified by its folder name
*
* @param {String} path The path of the user
* @param {Function} callback What to do once we got a response from the server
*/
getIDfromPath: function(path, callback){
//Prepare an API request
var apiURI = "user/findbyfolder";
var params = {
subfolder: path
};
//Define what to do next
var next = function(response){
if(response.userID){
callback(response.userID*1);
}
else
//An error occured
callback(-1);
}
ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, next);
},
/** /**
* Empty users cache * Empty users cache
* *