added keypress handlers, removed last name box

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/invite-friends-vre@114609 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Massimiliano Assante 2015-04-30 13:30:50 +00:00
parent 4af42f13c4
commit d4f121dab1
4 changed files with 42 additions and 21 deletions

View File

@ -3,6 +3,13 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>maven-parent</artifactId>
<groupId>org.gcube.tools</groupId>
<version>1.0.0</version>
<relativePath />
</parent>
<groupId>org.gcube.portlets.user</groupId> <groupId>org.gcube.portlets.user</groupId>
<artifactId>invite-friends-vre</artifactId> <artifactId>invite-friends-vre</artifactId>
<packaging>war</packaging> <packaging>war</packaging>

View File

@ -1,28 +1,30 @@
/** /**
* *
*/ */
package org.gcube.portlets.user.invitefriends.client.validation; package org.gcube.portlets.user.invitefriends.client.ui;
import org.gcube.portlets.user.invitefriends.client.InviteService; import org.gcube.portlets.user.invitefriends.client.InviteService;
import org.gcube.portlets.user.invitefriends.client.InviteServiceAsync; import org.gcube.portlets.user.invitefriends.client.InviteServiceAsync;
import org.gcube.portlets.user.invitefriends.client.validation.FormView;
import com.github.gwtbootstrap.client.ui.Button; import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.ControlGroup; import com.github.gwtbootstrap.client.ui.ControlGroup;
import com.github.gwtbootstrap.client.ui.HelpBlock; import com.github.gwtbootstrap.client.ui.HelpBlock;
import com.github.gwtbootstrap.client.ui.Icon;
import com.github.gwtbootstrap.client.ui.Modal; import com.github.gwtbootstrap.client.ui.Modal;
import com.github.gwtbootstrap.client.ui.TextBox; import com.github.gwtbootstrap.client.ui.TextBox;
import com.github.gwtbootstrap.client.ui.constants.ControlGroupType; import com.github.gwtbootstrap.client.ui.constants.ControlGroupType;
import com.github.gwtbootstrap.client.ui.constants.IconType;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor; import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.client.EditorDriver; import com.google.gwt.editor.client.EditorDriver;
import com.google.gwt.editor.client.SimpleBeanEditorDriver; import com.google.gwt.editor.client.SimpleBeanEditorDriver;
import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyDownEvent;
import com.google.gwt.event.dom.client.KeyDownHandler;
import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.Window; import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Widget;
@ -49,7 +51,7 @@ public class FormViewImpl extends Composite implements FormView, Editor<FormView
@UiField TextBox email; @UiField TextBox email;
@UiField TextBox name; @UiField TextBox name;
@UiField TextBox lastName; // @UiField TextBox lastName;
// //
@UiField Button openModal; @UiField Button openModal;
@UiField Button cancelInvite; @UiField Button cancelInvite;
@ -71,6 +73,22 @@ public class FormViewImpl extends Composite implements FormView, Editor<FormView
initWidget(uiBinder.createAndBindUi(this)); initWidget(uiBinder.createAndBindUi(this));
driver.initialize(this); driver.initialize(this);
driver.edit(new UserDetails()); driver.edit(new UserDetails());
email.addKeyDownHandler(new KeyDownHandler() {
@Override
public void onKeyDown(KeyDownEvent event) {
if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER)
openModal.click();
}
});
name.addKeyDownHandler(new KeyDownHandler() {
@Override
public void onKeyDown(KeyDownEvent event) {
if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER)
sendInvite.click();
}
});
} }
@UiHandler("openModal") @UiHandler("openModal")
@ -78,19 +96,25 @@ public class FormViewImpl extends Composite implements FormView, Editor<FormView
if (!delegate.onSendClick()) { if (!delegate.onSendClick()) {
feedback.setText("We will send the invitation email to: "+email.getText() + " and put you in cc, we'll never email your contacts without your say so."); feedback.setText("We will send the invitation email to: "+email.getText() + " and put you in cc, we'll never email your contacts without your say so.");
modalWindow.show(); modalWindow.show();
Timer t = new Timer() {
@Override
public void run() {
name.setFocus(true);
}
};
t.schedule(1000);
} }
} }
@UiHandler("sendInvite") @UiHandler("sendInvite")
void onSendInviteClick(ClickEvent event) { void onSendInviteClick(ClickEvent event) {
if (delegate.onEmailSendInviteClick()) { if (delegate.onEmailSendInviteClick()) {
nameGroup.setType(ControlGroupType.ERROR); nameGroup.setType(ControlGroupType.ERROR);
nameErrors.setText("Please fill both name and last name"); nameErrors.setText("Name must not be null");
} else { } else {
nameGroup.setType(ControlGroupType.NONE); nameGroup.setType(ControlGroupType.NONE);
nameErrors.setText(""); nameErrors.setText("");
service.sendInviteEmail(name.getText(), lastName.getText(), email.getText(), new AsyncCallback<Boolean>() { service.sendInviteEmail(name.getText(), "", email.getText(), new AsyncCallback<Boolean>() {
@Override @Override
public void onSuccess(Boolean result) { public void onSuccess(Boolean result) {
@ -103,7 +127,7 @@ public class FormViewImpl extends Composite implements FormView, Editor<FormView
@Override @Override
public void onFailure(Throwable caught) { public void onFailure(Throwable caught) {
feedback.setText("Sorry, an error occurred and we could not send the invite, please try again later"); feedback.setText("Sorry, an error occurred and we could not send the invite, please try again later.");
feedbackGroup.setType(ControlGroupType.ERROR); feedbackGroup.setType(ControlGroupType.ERROR);
sendInvite.removeFromParent(); sendInvite.removeFromParent();
email.setText(""); email.setText("");
@ -118,8 +142,6 @@ public class FormViewImpl extends Composite implements FormView, Editor<FormView
email.setText(""); email.setText("");
} }
@Override @Override
public EditorDriver<FormView.UserDetails> getEditorDriver() { public EditorDriver<FormView.UserDetails> getEditorDriver() {
return driver; return driver;

View File

@ -13,13 +13,7 @@
backdrop="STATIC" keyboard="true" animation="true"> backdrop="STATIC" keyboard="true" animation="true">
<b:Form type="VERTICAL"> <b:Form type="VERTICAL">
<b:ControlGroup ui:field="nameGroup"> <b:ControlGroup ui:field="nameGroup">
<b:HelpBlock styleName="helpFontSize">Please, enter Name and <b:TextBox placeholder="enter your friend's name" ui:field="name"></b:TextBox>
Last name
of the friend you
wish to invite:</b:HelpBlock>
<b:TextBox placeholder="name" ui:field="name"></b:TextBox>
<b:TextBox placeholder="last name" ui:field="lastName"></b:TextBox>
<b:HelpBlock ui:field="nameErrors"></b:HelpBlock> <b:HelpBlock ui:field="nameErrors"></b:HelpBlock>
</b:ControlGroup> </b:ControlGroup>

View File

@ -10,6 +10,7 @@ import javax.validation.ConstraintViolation;
import javax.validation.Path; import javax.validation.Path;
import javax.validation.metadata.ConstraintDescriptor; import javax.validation.metadata.ConstraintDescriptor;
import org.gcube.portlets.user.invitefriends.client.ui.FormViewImpl;
import org.gcube.portlets.user.invitefriends.client.validation.FormView.UserDetails; import org.gcube.portlets.user.invitefriends.client.validation.FormView.UserDetails;
import com.google.gwt.activity.shared.AbstractActivity; import com.google.gwt.activity.shared.AbstractActivity;
@ -59,9 +60,6 @@ public class FormErrorsValidation extends AbstractActivity implements FormView.D
if(user2InviteBean.getName() == null || "".equals(user2InviteBean.getName().trim())) { if(user2InviteBean.getName() == null || "".equals(user2InviteBean.getName().trim())) {
violations.add(buildNotNullConstraintViolation(user2InviteBean, "name")); violations.add(buildNotNullConstraintViolation(user2InviteBean, "name"));
} }
if(user2InviteBean.getLastName() == null || "".equals(user2InviteBean.getLastName().trim())) {
violations.add(buildNotNullConstraintViolation(user2InviteBean, "lastname"));
}
return violations; return violations;
} }