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">
<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>
<artifactId>invite-friends-vre</artifactId>
<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.InviteServiceAsync;
import org.gcube.portlets.user.invitefriends.client.validation.FormView;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.ControlGroup;
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.TextBox;
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.editor.client.Editor;
import com.google.gwt.editor.client.EditorDriver;
import com.google.gwt.editor.client.SimpleBeanEditorDriver;
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.UiField;
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.ui.Composite;
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 name;
@UiField TextBox lastName;
// @UiField TextBox lastName;
//
@UiField Button openModal;
@UiField Button cancelInvite;
@ -71,6 +73,22 @@ public class FormViewImpl extends Composite implements FormView, Editor<FormView
initWidget(uiBinder.createAndBindUi(this));
driver.initialize(this);
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")
@ -78,19 +96,25 @@ public class FormViewImpl extends Composite implements FormView, Editor<FormView
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.");
modalWindow.show();
Timer t = new Timer() {
@Override
public void run() {
name.setFocus(true);
}
};
t.schedule(1000);
}
}
@UiHandler("sendInvite")
void onSendInviteClick(ClickEvent event) {
if (delegate.onEmailSendInviteClick()) {
nameGroup.setType(ControlGroupType.ERROR);
nameErrors.setText("Please fill both name and last name");
nameErrors.setText("Name must not be null");
} else {
nameGroup.setType(ControlGroupType.NONE);
nameErrors.setText("");
service.sendInviteEmail(name.getText(), lastName.getText(), email.getText(), new AsyncCallback<Boolean>() {
service.sendInviteEmail(name.getText(), "", email.getText(), new AsyncCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
@ -103,7 +127,7 @@ public class FormViewImpl extends Composite implements FormView, Editor<FormView
@Override
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);
sendInvite.removeFromParent();
email.setText("");
@ -118,8 +142,6 @@ public class FormViewImpl extends Composite implements FormView, Editor<FormView
email.setText("");
}
@Override
public EditorDriver<FormView.UserDetails> getEditorDriver() {
return driver;

View File

@ -13,13 +13,7 @@
backdrop="STATIC" keyboard="true" animation="true">
<b:Form type="VERTICAL">
<b:ControlGroup ui:field="nameGroup">
<b:HelpBlock styleName="helpFontSize">Please, enter Name and
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:TextBox placeholder="enter your friend's name" ui:field="name"></b:TextBox>
<b:HelpBlock ui:field="nameErrors"></b:HelpBlock>
</b:ControlGroup>

View File

@ -10,6 +10,7 @@ import javax.validation.ConstraintViolation;
import javax.validation.Path;
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 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())) {
violations.add(buildNotNullConstraintViolation(user2InviteBean, "name"));
}
if(user2InviteBean.getLastName() == null || "".equals(user2InviteBean.getLastName().trim())) {
violations.add(buildNotNullConstraintViolation(user2InviteBean, "lastname"));
}
return violations;
}