The improve profile button has been changed in order to show a hint message on how the user can improve the profile.

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/user-statistics@128747 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Costantino Perciante 2016-05-20 13:12:01 +00:00
parent fcd0bba533
commit 18e13c3194
5 changed files with 57 additions and 7 deletions

View File

@ -161,6 +161,11 @@
<artifactId>callout-tour</artifactId>
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
</dependency>
<dependency>
<groupId>org.gcube.common.portal</groupId>
<artifactId>portal-manager</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>

View File

@ -16,8 +16,10 @@ import org.gcube.portlets.widgets.widgettour.client.extendedclasses.GCubeTour;
import com.ait.toolkit.hopscotch.client.Placement;
import com.ait.toolkit.hopscotch.client.TourStep;
import com.github.gwtbootstrap.client.ui.AlertBlock;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.CheckBox;
import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
@ -73,9 +75,18 @@ public class StatisticsPanel extends Composite {
private final static String PROFILE_STRENGTH_LABEL = "Profile Strength";
/**
* profile url
* improve profile hints
*/
private final static String profileAccount = "/group/data-e-infrastructure-gateway/profile";
public static String IMPROVE_PROFILE_HINT_MESSAGE_ROOT = "You can improve your profile strength by: <ul>"
+ "<li> adding a job title, your current position or your professional summary;"
+ "<li> adding your contact information (facebook, linkedin, skype, google mail and so on).</ul>";
/**
* improve profile hints
*/
public static final String IMPROVE_PROFILE_HINT_MESSAGE_PROFILE = "You can improve your profile strength by: <ul>"
+ "<li> adding a job title, your current position or your professional summary;"
+ "<li> adding your contact information (facebook, linkedin, skype, google mail and so on).</ul>";
/**
* profile button label
@ -249,6 +260,10 @@ public class StatisticsPanel extends Composite {
}
// save page landing
if(information.getCurrentPageLanding() != null)
IMPROVE_PROFILE_HINT_MESSAGE_ROOT += "<a href='" + information.getCurrentPageLanding() + "/profile" + "'><b>Go to your profile</b></a>";
// user image
Images image = GWT.create(Images.class);
Image userImage = new Image(image.avatarLoader());
@ -388,8 +403,13 @@ public class StatisticsPanel extends Composite {
// in case too low information within the user profile
if(profileStrengthInt < profileImproveThreshold && information.isOwner()){
// Show an alert block in which underline how he can improve the profile
final AlertBlock improveProfileHint = new AlertBlock();
improveProfileHint.setType(AlertType.INFO);
improveProfileHint.addStyleName("improve-profile-hint-message");
final Button improveProfileButton = new Button(IMPROVE_BUTTON_LABEL);
improveProfileButton.setType(ButtonType.WARNING);
improveProfileButton.setType(ButtonType.INFO);
improveProfileButton.setTitle("Improve your profile.");
improveProfileButton.addClickHandler(new ClickHandler() {
@ -397,8 +417,12 @@ public class StatisticsPanel extends Composite {
@Override
public void onClick(ClickEvent arg0) {
// redirect
Window.Location.assign(profileAccount);
// set text according current url
if(isProfilePage)
improveProfileHint.setHTML(IMPROVE_PROFILE_HINT_MESSAGE_PROFILE);
else
improveProfileHint.setHTML(IMPROVE_PROFILE_HINT_MESSAGE_ROOT);
mainPanel.add(improveProfileHint);
}
});

View File

@ -9,6 +9,7 @@ import org.gcube.application.framework.core.session.ASLSession;
import org.gcube.application.framework.core.session.SessionManager;
import org.gcube.common.homelibrary.home.HomeLibrary;
import org.gcube.common.homelibrary.home.workspace.Workspace;
import org.gcube.common.portal.PortalContext;
import org.gcube.portal.custom.communitymanager.SiteManagerUtil;
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
import org.gcube.portal.databook.server.DBCassandraAstyanaxImpl;
@ -308,8 +309,13 @@ public class UserStatisticsServiceImpl extends RemoteServiceServlet implements U
actualVre = temp[temp.length - 1];
}
// page landing
String pageLanding = PortalContext.getConfiguration().getSiteLandingPagePath(getThreadLocalRequest());
return new UserInformation(isInfrastructure, thumbnailURL, userName, actualVre, isOwner, isProfileShowable);
UserInformation bean = new UserInformation(isInfrastructure, thumbnailURL, userName, actualVre, isOwner, isProfileShowable);
bean.setCurrentPageLanding(pageLanding);
return bean;
}
else return new UserInformation(true, null, userName, vreID, true, true);
}

View File

@ -26,6 +26,8 @@ public class UserInformation implements Serializable {
// If the visiting user is the owner of the page, there is no proble
// if the visiting user is not the owner and the real owner doesn't want
// to show the portlet to the other users, we need to hide the statistics.
private String currentPageLanding;
public UserInformation(){
super();
@ -41,7 +43,14 @@ public class UserInformation implements Serializable {
this.isOwner = isOwner;
this.isProfileShowable = isProfileShowable;
}
public String getCurrentPageLanding() {
return currentPageLanding;
}
public void setCurrentPageLanding(String currentPageLanding) {
this.currentPageLanding = currentPageLanding;
}
public boolean isRoot() {
return isRoot;
@ -100,6 +109,7 @@ public class UserInformation implements Serializable {
return "UserInformation [isRoot=" + isRoot + ", urlAvatar=" + urlAvatar
+ ", aslSessionUsername=" + aslSessionUsername + ", actualVre="
+ actualVre + ", isOwner=" + isOwner + ", isProfileShowable="
+ isProfileShowable + "]";
+ isProfileShowable + ", currentPageLanding="
+ currentPageLanding + "]";
}
}

View File

@ -64,4 +64,9 @@
.privacy-checkbox-statistics-style {
margin-top: 10px;
}
.improve-profile-hint-message {
margin-top: 15px !important;
padding: 25px !important;
}