Author: solomax
Date: Fri May 10 16:43:31 2013
New Revision: 1481089
URL: http://svn.apache.org/r1481089
Log:
[OPENMEETINGS-620] Forget password dialog is added;
Added:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.html
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.html
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.html
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java?rev=1481089&r1=1481088&r2=1481089&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/Application.java
Fri May 10 16:43:31 2013
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.web.app;
+import javax.servlet.http.HttpServletRequest;
+
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import
org.apache.openmeetings.web.components.user.dashboard.PrivateRoomsWidgetDescriptor;
import
org.apache.openmeetings.web.components.user.dashboard.RssWidgetDescriptor;
@@ -37,9 +39,12 @@ import org.apache.wicket.markup.MarkupFa
import org.apache.wicket.markup.MarkupParser;
import org.apache.wicket.markup.MarkupResourceStream;
import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.protocol.http.RequestUtils;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.request.Url;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.http.WebRequest;
import org.apache.wicket.request.mapper.info.PageComponentInfo;
import org.apache.wicket.settings.IPageSettings;
import org.springframework.context.ApplicationContext;
@@ -109,6 +114,20 @@ public class Application extends Authent
});
}
+ public final static String toAbsolutePath(final String
relativePagePath) {
+ HttpServletRequest req =
(HttpServletRequest)((WebRequest)RequestCycle.get().getRequest()).getContainerRequest();
+ return
RequestUtils.toAbsolutePath(req.getRequestURL().toString(), relativePagePath);
+ }
+
+ public final static String getBasePath() {
+ return toAbsolutePath("");
+ }
+
+ public final static String getBaseSwfPath() {
+ //TODO add proxy handling
+ return toAbsolutePath("../");
+ }
+
@Override
public Class<? extends Page> getHomePage() {
return MainPage.class;
Added:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.html
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.html?rev=1481089&view=auto
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.html
(added)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.html
Fri May 10 16:43:31 2013
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:panel>
+ <form wicket:id="form">
+ <table>
+ <tr wicket:id="type">
+ <td>
+ <label
wicket:for="email"><wicket:ommessage key="313" /></label> <input
+ type="radio" wicket:id="email"
/>
+ </td>
+ <td>
+ <label
wicket:for="login"><wicket:ommessage key="314" /></label> <input
+ type="radio" wicket:id="login"
/>
+ </td>
+ </tr>
+ <tr>
+ <td><span wicket:id="label"></span></td>
+ <td><input wicket:id="name" type="text" /></td>
+ </tr>
+ </table>
+ <span wicket:id="feedback"></span>
+ <input type="submit" wicket:id="submit"
+ style="position: absolute; top: -9999px; width: 1px;
height: 1px;" />
+ </form>
+</wicket:panel>
+</html>
\ No newline at end of file
Added:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java?rev=1481089&view=auto
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
(added)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
Fri May 10 16:43:31 2013
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.pages.auth;
+
+import static org.apache.openmeetings.web.app.Application.getBaseSwfPath;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.data.user.dao.UsersDao;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.Radio;
+import org.apache.wicket.markup.html.form.RadioGroup;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+
+import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractFormDialog;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+
+public class ForgetPasswordDialog extends AbstractFormDialog<String> {
+ private static final long serialVersionUID = 8494008571497363018L;
+ private DialogButton send = new DialogButton(WebSession.getString(317));
+ private DialogButton cancel = new
DialogButton(WebSession.getString(122));
+ private FeedbackPanel feedback = new FeedbackPanel("feedback");
+ private RequiredTextField<String> nameField;
+ private Form<String> form;
+ private SignInDialog s;
+ private String name;
+ private Type type = Type.email;
+
+ enum Type {
+ email
+ , login
+ }
+
+ public ForgetPasswordDialog(String id) {
+ super(id, WebSession.getString(312));
+ add(form = new Form<String>("form") {
+ private static final long serialVersionUID =
6340692639510268144L;
+ private IModel<String> lblModel =
Model.of(WebSession.getString(315));
+ private Label label = new Label("label", lblModel);
+
+ {
+ add(feedback.setOutputMarkupId(true));
+ add(label.setOutputMarkupId(true));
+ RadioGroup<Type> rg = new
RadioGroup<Type>("type", new PropertyModel<Type>(ForgetPasswordDialog.this,
"type"));
+ add(rg.add(new Radio<Type>("email",
Model.of(Type.email)).setOutputMarkupId(true))
+ .add(new Radio<Type>("login",
Model.of(Type.login)).setOutputMarkupId(true))
+ .setOutputMarkupId(true));
+ rg.add(new
AjaxFormChoiceComponentUpdatingBehavior() {
+ private static final long
serialVersionUID = 5814272716387415523L;
+
+ @Override
+ protected void
onUpdate(AjaxRequestTarget target) {
+
lblModel.setObject(WebSession.getString(type == Type.email ? 315 : 316));
+ target.add(label);
+ }
+ });
+ add(nameField = new
RequiredTextField<String>("name", new
PropertyModel<String>(ForgetPasswordDialog.this, "name")));
+ add(new AjaxButton("submit") { //FAKE button so
"submit-on-enter" works as expected
+ private static final long
serialVersionUID = 5257502637636428620L;
+
+ @Override
+ protected void
onSubmit(AjaxRequestTarget target, Form<?> form) {
+
ForgetPasswordDialog.this.onSubmit(target);
+ }
+
+ @Override
+ protected void
onError(AjaxRequestTarget target, Form<?> form) {
+ // TODO Auto-generated method
stub
+
ForgetPasswordDialog.this.onError(target);
+ }
+ });
+ }
+
+ @Override
+ protected void onValidate() {
+ UsersDao dao = getBean(UsersDao.class);
+ String n = nameField.getConvertedInput();
+ if (type == Type.email && null ==
dao.getUserByEmail(n)) {
+ error(WebSession.getString(318));
+ }
+ if (type == Type.login && null ==
dao.getUserByName(n)) {
+ error(WebSession.getString(320));
+ }
+ }
+ });
+ }
+
+ public void onClose(AjaxRequestTarget target, DialogButton button) {
+ s.open(target);
+ }
+
+ public void setSignInDialog(SignInDialog s) {
+ this.s = s;
+ }
+
+ @Override
+ protected List<DialogButton> getButtons() {
+ return Arrays.asList(send, cancel);
+ }
+
+ @Override
+ protected DialogButton getSubmitButton() {
+ return send;
+ }
+
+ @Override
+ public Form<?> getForm() {
+ return form;
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target) {
+ target.add(feedback);
+ }
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target) {
+ getBean(UserManager.class).resetUser(
+ type == Type.email ? name : "", type == Type.login ?
name : "", getBaseSwfPath());
+ }
+}
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.html?rev=1481089&r1=1481088&r2=1481089&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
Fri May 10 16:43:31 2013
@@ -23,39 +23,39 @@
<form wicket:id="form">
<table>
<tr>
- <td><wicket:ommessage key="117" /></td>
+ <td class="desc"><wicket:ommessage key="117"
/></td>
<td><input wicket:id="firstName" type="text"
value="" /></td>
</tr>
<tr>
- <td><wicket:ommessage key="118" /></td>
+ <td class="desc"><wicket:ommessage key="118"
/></td>
<td><input wicket:id="lastName" type="text"
value="" /></td>
</tr>
<tr>
- <td><wicket:ommessage key="114" /></td>
+ <td class="desc"><wicket:ommessage key="114"
/></td>
<td><input wicket:id="login" type="text"
value="" /></td>
</tr>
<tr>
- <td><wicket:ommessage key="115" /></td>
+ <td class="desc"><wicket:ommessage key="115"
/></td>
<td><input wicket:id="password" type="password"
value="" /></td>
</tr>
<tr>
- <td><wicket:ommessage key="116" /></td>
+ <td class="desc"><wicket:ommessage key="116"
/></td>
<td><input wicket:id="confirmPassword"
type="password" value="" /></td>
</tr>
<tr>
- <td><wicket:ommessage key="119" /></td>
+ <td class="desc"><wicket:ommessage key="119"
/></td>
<td><input wicket:id="email" type="text"
value="" /></td>
</tr>
<tr>
- <td><wicket:ommessage key="1143" /></td>
+ <td class="desc"><wicket:ommessage key="1143"
/></td>
<td><select wicket:id="tz"></select></td>
</tr>
<tr>
- <td><wicket:ommessage key="120" /></td>
+ <td class="desc"><wicket:ommessage key="120"
/></td>
<td><select wicket:id="state"></select></td>
</tr>
<tr>
- <td><wicket:ommessage key="111" /></td>
+ <td class="desc"><wicket:ommessage key="111"
/></td>
<td><select wicket:id="lang"></select></td>
</tr>
</table>
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.java?rev=1481089&r1=1481088&r2=1481089&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
Fri May 10 16:43:31 2013
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.page
import static org.apache.openmeetings.utils.UserHelper.getMinLoginLength;
import static org.apache.openmeetings.utils.UserHelper.getMinPasswdLength;
+import static org.apache.openmeetings.web.app.Application.getBaseSwfPath;
import static org.apache.openmeetings.web.app.Application.getBean;
import java.util.Arrays;
@@ -113,7 +114,7 @@ public class RegisterDialog extends Abst
getBean(UserManager.class).registerUser(login, password,
lastName
, firstName, email, null, ""/*street*/,
""/*additionalname*/, ""/*fax*/, ""/*zip*/
, state.getState_id(), ""/*town*/,
lang.getLanguage_id(), ""/*phone*/, false/*sendSMS*/
- , ""/*baseURL FIXME*/, false, tz.getJname());
+ , getBaseSwfPath(), false, tz.getJname());
}
class RegisterForm extends StatelessForm<String> {
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.html
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.html?rev=1481089&r1=1481088&r2=1481089&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.html
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.html
Fri May 10 16:43:31 2013
@@ -23,16 +23,21 @@
<form wicket:id="signin">
<table>
<tr>
- <td><wicket:ommessage key="109" /></td>
+ <td class="desc"><wicket:ommessage key="109"
/></td>
<td><input wicket:id="login" type="text"
value="" /></td>
</tr>
<tr>
- <td><wicket:ommessage key="110" /></td>
+ <td class="desc"><wicket:ommessage key="110"
/></td>
<td><input wicket:id="pass" type="password"
value="" /></td>
</tr>
<tr>
<td></td>
- <td><input wicket:id="rememberMe"
type="checkbox" /><label wicket:for="rememberMe"><wicket:ommessage key="288"
/></label></td>
+ <td style="white-space: nowrap;"><input
wicket:id="rememberMe"
+ type="checkbox" /><label
wicket:for="rememberMe"><wicket:ommessage key="288" /></label></td>
+ </tr>
+ <tr>
+ <td><a wicket:id="forget"><wicket:ommessage
key="311"/></a></td>
+ <td></td>
</tr>
</table>
<span wicket:id="feedback"></span>
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1481089&r1=1481088&r2=1481089&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java
Fri May 10 16:43:31 2013
@@ -27,6 +27,7 @@ import org.apache.openmeetings.web.app.A
import org.apache.openmeetings.web.app.WebSession;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.authentication.IAuthenticationStrategy;
import org.apache.wicket.markup.html.form.CheckBox;
@@ -53,6 +54,7 @@ public class SignInDialog extends Abstra
private String area = "";
private boolean rememberMe = false;
private RegisterDialog r;
+ private ForgetPasswordDialog f;
public SignInDialog(String id) {
super(id, WebSession.getString(108));
@@ -62,6 +64,10 @@ public class SignInDialog extends Abstra
public void setRegisterDialog(RegisterDialog r) {
this.r = r;
}
+
+ public void setForgetPasswordDialog(ForgetPasswordDialog f) {
+ this.f = f;
+ }
//TODO need to be removed
@Override
@@ -86,7 +92,7 @@ public class SignInDialog extends Abstra
@Override
public void onClose(AjaxRequestTarget target, DialogButton button) {
- if (button.equals(registerBtn)) {
+ if (registerBtn.equals(button)) {
r.open(target);
}
}
@@ -192,6 +198,15 @@ public class SignInDialog extends Abstra
SignInDialog.this.onError(target);
}
});
+ add(new AjaxLink<Void>("forget") {
+ private static final long serialVersionUID =
-7497568829491287604L;
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+ SignInDialog.this.close(target, null);
+ f.open(target);
+ }
+ });
}
private void alreadyLoggedIn() {
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.html
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.html?rev=1481089&r1=1481088&r2=1481089&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.html
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.html
Fri May 10 16:43:31 2013
@@ -23,9 +23,12 @@
<link media="screen" type="text/css" rel="stylesheet"
href="css/theme.css"/>
<link media="screen" type="text/css" rel="stylesheet"
href="css/jquery-ui-1.10.2.custom.min.css"/>
<style>
- input:not([type='checkbox']), select {
+ input:not([type='checkbox']):not([type='radio']),
select {
width: 170px;
}
+ td.desc {
+ width: 200px;
+ }
</style>
</wicket:head>
<wicket:extend>
@@ -36,5 +39,6 @@
</script>
<div wicket:id="signin"></div>
<div wicket:id="register"></div>
+ <div wicket:id="forget"></div>
</wicket:extend>
</html>
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1481089&r1=1481088&r2=1481089&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java
(original)
+++
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInPage.java
Fri May 10 16:43:31 2013
@@ -41,10 +41,13 @@ public class SignInPage extends BasePage
public SignInPage() {
RegisterDialog r = new RegisterDialog("register");
+ ForgetPasswordDialog f = new ForgetPasswordDialog("forget");
d = new SignInDialog("signin");
d.setRegisterDialog(r);
+ d.setForgetPasswordDialog(f);
r.setSignInDialog(d);
- add(d, r.setVisible(allowRegister()));
+ f.setSignInDialog(d);
+ add(d, r.setVisible(allowRegister()), f);
}
@Override