Added error page

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/performfish-analytics-portlet@179314 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2019-05-08 09:14:12 +00:00
parent c432df0a7c
commit 851d384cbd
7 changed files with 191 additions and 110 deletions

View File

@ -7,7 +7,9 @@ import java.util.Map;
import org.gcube.portlets.user.performfishanalytics.client.PerformFishAnalyticsConstant.POPULATION_LEVEL;
import org.gcube.portlets.user.performfishanalytics.client.annualcontrollers.PerformFishAnnualAnalyticsController;
import org.gcube.portlets.user.performfishanalytics.client.controllers.PerformFishAnalyticsController;
import org.gcube.portlets.user.performfishanalytics.client.controllers.PerformFishAnalyticsViewController;
import org.gcube.portlets.user.performfishanalytics.client.event.LoadPopulationTypeEvent;
import org.gcube.portlets.user.performfishanalytics.client.resources.PerformFishResources;
import org.gcube.portlets.user.performfishanalytics.client.view.util.DecodeParameterUtil;
import org.gcube.portlets.user.performfishanalytics.shared.performfishservice.PerformFishInitParameter;
@ -15,8 +17,14 @@ import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Document;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.resources.client.TextResource;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
@ -50,7 +58,9 @@ public class PerformFishAnalytics implements EntryPoint {
final String farmidParam = initParams.get(PerformFishAnalyticsConstant.QUERY_STRING_FARMID_PARAM);
if(farmidParam==null || farmidParam.isEmpty()){
Window.alert("Error: no '"+PerformFishAnalyticsConstant.QUERY_STRING_FARMID_PARAM+"' param detected");
String msg = "No '"+PerformFishAnalyticsConstant.QUERY_STRING_FARMID_PARAM+"' param detected";
showErrorPage(msg);
Window.alert("Error: "+msg);
return;
}
@ -100,7 +110,9 @@ public class PerformFishAnalytics implements EntryPoint {
//CALLING THE PORTLET WITHOUT ANNUAL CONFIGURATION
if(batchtypeParam==null || batchtypeParam.isEmpty()){
Window.alert("Error: no '"+PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM+"' param detected");
String msg = "No '"+PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM+"' param detected";
showErrorPage(msg);
Window.alert("Error: "+msg);
return;
}
@ -127,4 +139,13 @@ public class PerformFishAnalytics implements EntryPoint {
}
});
}
private void showErrorPage(String msg) {
TextResource errorHtmlPage = PerformFishResources.INSTANCE.errorPage();
HTML asHtml = new HTML(errorHtmlPage.getText());
//asHtml.asWidget().getElement().
RootPanel.get(PerformFishAnalyticsViewController.PERFORM_FISH_ANALYTICS_DIV).add(asHtml);
DivElement errorID = (DivElement) Document.get().getElementById("error-page");
errorID.setInnerHTML(msg);
}
}

View File

@ -84,104 +84,6 @@ public class PerformFishAnalyticsController {
registerHandlers();
viewController = new PerformFishAnalyticsViewController();
/*viewAnnualController = new PerformFishAnnualAnalyticsViewController();
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
@Override
public void execute() {
Map<String, String> initParams = new HashMap<String, String>();
for (String key : Window.Location.getParameterMap().keySet()) {
try {
String dKeY = DecodeParameterUtil.base64Decode(key);
String eValue = Window.Location.getParameter(key);
String dParam = DecodeParameterUtil.base64Decode(eValue);
initParams.put(dKeY, dParam);
} catch (Exception e) {
GWT.log("Error: "+e.getMessage());
}
}
GWT.log("Decoded parameters: "+initParams);
final String farmidParam = initParams.get(PerformFishAnalyticsConstant.QUERY_STRING_FARMID_PARAM);
if(farmidParam==null || farmidParam.isEmpty()){
Window.alert("Error: no '"+PerformFishAnalyticsConstant.QUERY_STRING_FARMID_PARAM+"' param detected");
return;
}
final String annual = initParams.get(PerformFishAnalyticsConstant.QUERY_STRING_ANNUAL_PARAMETER);
boolean isAnnualCall = false;
try {
isAnnualCall = Boolean.parseBoolean(annual);
GWT.log("Read decoded isAnnual at: "+isAnnualCall);
}catch (Exception e) {
GWT.log("Forcing isAnnual at TRUE");
isAnnualCall = false;
}
String batchtypeParam = initParams.get(PerformFishAnalyticsConstant.QUERY_STRING_BATCHTYPE_PARAM);
//IS ANNUAL CALL
if(isAnnualCall) {
//CALLING THE PORTLET WITH ANNUAL CONFIGURATION
batchtypeParam = PerformFishAnalyticsConstant.BATCH_LEVEL.GROW_OUT_AGGREGATED_CLOSED_BATCHES.name();
GWT.log("Hard cabling batchtypeParam as: "+batchtypeParam);
PerformFishInitParameter performFishInitParams = new PerformFishInitParameter();
performFishInitParams.addParameter(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM, batchtypeParam);
performFishInitParams.addParameter(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM, farmidParam);
PerformFishAnalyticsServiceAsync.Util.getInstance().validParameters(performFishInitParams, new AsyncCallback<PerformFishInitParameter>() {
@Override
public void onSuccess(PerformFishInitParameter result) {
decryptParameters = result;
eventBus.fireEvent(new LoadPopulationTypeEvent(POPULATION_LEVEL.FARM.name(), null));
}
@Override
public void onFailure(Throwable caught) {
Window.alert(caught.getMessage());
}
});
}else {
//CALLING THE PORTLET WITHOUT ANNUAL CONFIGURATION
if(batchtypeParam==null || batchtypeParam.isEmpty()){
Window.alert("Error: no '"+PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM+"' param detected");
return;
}
PerformFishInitParameter performFishInitParams = new PerformFishInitParameter();
performFishInitParams.addParameter(PerformFishAnalyticsConstant.PERFORM_FISH_BATCH_TYPE_PARAM, batchtypeParam);
performFishInitParams.addParameter(PerformFishAnalyticsConstant.PERFORM_FISH_FARMID_PARAM, farmidParam);
PerformFishAnalyticsServiceAsync.Util.getInstance().validParameters(performFishInitParams, new AsyncCallback<PerformFishInitParameter>() {
@Override
public void onSuccess(PerformFishInitParameter result) {
decryptParameters = result;
eventBus.fireEvent(new LoadPopulationTypeEvent(POPULATION_LEVEL.BATCH.name(), null));
}
@Override
public void onFailure(Throwable caught) {
Window.alert(caught.getMessage());
}
});
}
}
});*/
}
/**

View File

@ -6,7 +6,7 @@ package org.gcube.portlets.user.performfishanalytics.client.dialog;
import org.gcube.portlets.user.performfishanalytics.client.resources.Icons;
import org.gcube.portlets.user.performfishanalytics.client.resources.PerformFishResources;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent;
@ -34,7 +34,7 @@ public class DialogConfirm extends DialogBox implements ClickHandler {
private DockPanel dock = new DockPanel();
private Button yesButton;
private VerticalPanel vpContainer;
private ImageResource loading = Icons.ICONS.loading();
private ImageResource loading = PerformFishResources.INSTANCE.loading();
private HorizontalPanel hpButtons = new HorizontalPanel();
private Button noButton;
/**

View File

@ -5,7 +5,7 @@ package org.gcube.portlets.user.performfishanalytics.client.dialog;
import org.gcube.portlets.user.performfishanalytics.client.resources.Icons;
import org.gcube.portlets.user.performfishanalytics.client.resources.PerformFishResources;
import com.github.gwtbootstrap.client.ui.Alert;
import com.github.gwtbootstrap.client.ui.constants.AlertType;
@ -35,7 +35,7 @@ public abstract class PanelConfirmBuilder {
private DockPanel dock = new DockPanel();
private Button yesButton;
private VerticalPanel vpContainer;
private ImageResource loading = Icons.ICONS.loading();
private ImageResource loading = PerformFishResources.INSTANCE.loading();
private HorizontalPanel hpButtons = new HorizontalPanel();
private Button noButton;

View File

@ -0,0 +1,153 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>PerformFish Error Page</title>
<!-- Google font -->
<link href="https://fonts.googleapis.com/css?family=Raleway:400,700"
rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Passion+One:900"
rel="stylesheet">
<!-- Custom stlylesheet -->
<style type="text/css">
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
body {
padding: 0;
margin: 0;
}
#notfound {
position: relative;
height: 100vh;
}
#notfound .notfound {
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.notfound {
max-width: 710px;
width: 100%;
padding-left: 190px;
line-height: 1.4;
}
#the-title{
font-size: 28px;
font-weight: bold;
}
.notfound .notfound-404 {
position: absolute;
left: 0;
top: 0;
width: 150px;
height: 150px;
}
.notfound .notfound-404 h1 {
font-family: 'Passion One', cursive;
color: #00b5c3;
font-size: 150px;
letter-spacing: 15.5px;
margin: 0px;
font-weight: 900;
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
.notfound h2 {
font-family: 'Raleway', sans-serif;
color: #292929;
font-size: 28px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 2.5px;
margin-top: 0;
}
.notfound p {
font-family: 'Raleway', sans-serif;
font-size: 14px;
font-weight: 400;
margin-top: 0;
margin-bottom: 15px;
color: #333;
}
.notfound a {
font-family: 'Raleway', sans-serif;
font-size: 14px;
text-decoration: none;
text-transform: uppercase;
background: #fff;
display: inline-block;
padding: 15px 30px;
border-radius: 40px;
color: #292929;
font-weight: 700;
-webkit-box-shadow: 0px 4px 15px -5px rgba(0, 0, 0, 0.3);
box-shadow: 0px 4px 15px -5px rgba(0, 0, 0, 0.3);
-webkit-transition: 0.2s all;
transition: 0.2s all;
}
.notfound a:hover {
color: #fff;
background-color: #00b5c3;
}
@media only screen and (max-width: 480px) {
.notfound {
text-align: center;
}
.notfound .notfound-404 {
position: relative;
width: 100%;
margin-bottom: 15px;
}
.notfound {
padding-left: 15px;
padding-right: 15px;
}
}
</style>
</head>
<body>
<div id="notfound">
<div class="notfound">
<div class="notfound-404">
<h1>:(</h1>
</div>
<div id="the-title">PerformFISH Error Page</div>
<p id="error-page"></p>
</div>
</div>
</body>
</html>

View File

@ -6,17 +6,19 @@ package org.gcube.portlets.user.performfishanalytics.client.resources;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.resources.client.TextResource;
/**
* The Interface Icons.
* The Interface PerformFishResources.
*
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
* Jan 16, 2019
*
* May 8, 2019
*/
public interface Icons extends ClientBundle {
public interface PerformFishResources extends ClientBundle {
public static final Icons ICONS = GWT.create(Icons.class);
public static final PerformFishResources INSTANCE = GWT.create(PerformFishResources.class);
/**
* Loading.
@ -73,4 +75,7 @@ public interface Icons extends ClientBundle {
*/
@Source("github.png")
ImageResource github();
@Source("Error_Page.html")
public TextResource errorPage();
}

View File

@ -3,7 +3,7 @@
*/
package org.gcube.portlets.user.performfishanalytics.client.view;
import org.gcube.portlets.user.performfishanalytics.client.resources.Icons;
import org.gcube.portlets.user.performfishanalytics.client.resources.PerformFishResources;
import com.google.gwt.user.client.ui.FocusPanel;
import com.google.gwt.user.client.ui.HTML;
@ -19,7 +19,7 @@ import com.google.gwt.user.client.ui.Image;
public class LoaderIcon extends FocusPanel{
private Image imgLoading = new Image(Icons.ICONS.loading());
private Image imgLoading = new Image(PerformFishResources.INSTANCE.loading());
private HTML txtLoading = new HTML("");
private HorizontalPanel hp = new HorizontalPanel();