You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2013/04/26 00:38:34 UTC
svn commit: r1475993 - in
/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components:
./ admin/ admin/users/ user/profile/
Author: solomax
Date: Thu Apr 25 22:38:34 2013
New Revision: 1475993
URL: http://svn.apache.org/r1475993
Log:
[OPENMEETINGS-615] AdminBaseForm panel was refactored to be used in profile save;
User Profile edit without save/refresh is added;
Issue with Admin->User->refresh is fixed
Added:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.html
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.html
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.java
Removed:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.html
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseFormPanel.java
Modified:
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/UploadableProfileImagePanel.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.html
openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.java
Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.html?rev=1475993&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.html (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.html Thu Apr 25 22:38:34 2013
@@ -0,0 +1,34 @@
+<?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>
+ <div class="formSaveBar">
+ <div class="formSaveButton">
+ <input type="submit" value="" wicket:id="ajax-save-button" wicket:ommessage="title:144" />
+ </div>
+ <div class="formRefreshButton">
+ <input type="submit" value="" wicket:id="ajax-refresh-button" wicket:ommessage="title:156" />
+ </div>
+ <wicket:child/>
+ </div>
+ <div wicket:id="feedback" class="adminFormsFeedbackPanel">[[ feedback ]]</div>
+ </wicket:panel>
+</html>
Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.java?rev=1475993&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/FormSaveRefreshPanel.java Thu Apr 25 22:38:34 2013
@@ -0,0 +1,72 @@
+package org.apache.openmeetings.web.components;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+
+public abstract class FormSaveRefreshPanel<T> extends BasePanel {
+ private static final long serialVersionUID = 6133794730008996211L;
+ protected final FeedbackPanel feedback;
+
+ public FormSaveRefreshPanel(String id, Form<T> form) {
+ super(id);
+ setOutputMarkupId(true);
+
+ feedback = new FeedbackPanel("feedback");
+ add(feedback.setOutputMarkupId(true));
+
+ // add a save button that can be used to submit the form via ajax
+ add(new AjaxButton("ajax-save-button", form) {
+ private static final long serialVersionUID = 839803820502260006L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+ // repaint the feedback panel so that it is hidden
+ target.add(feedback);
+ onSaveSubmit(target, form);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target, Form<?> form) {
+ // repaint the feedback panel so errors are shown
+ target.add(feedback);
+ onSaveError(target, form);
+ }
+ });
+
+ // add a refresh button that can be used to submit the form via ajax
+ add(new AjaxButton("ajax-refresh-button", form) {
+ private static final long serialVersionUID = 839803820502260006L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+ // repaint the feedback panel so that it is hidden
+ target.add(feedback);
+ hideNewRecord();
+ onRefreshSubmit(target, form);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target, Form<?> form) {
+ // repaint the feedback panel so errors are shown
+ target.add(feedback);
+ hideNewRecord();
+ onRefreshError(target, form);
+ }
+ });
+
+ }
+ /**
+ * Hide the new record text
+ */
+ public void hideNewRecord() {
+ // for admin only, will be implemented in admin
+ }
+
+ protected abstract void onSaveSubmit(AjaxRequestTarget target, Form<?> form);
+ protected abstract void onSaveError(AjaxRequestTarget target, Form<?> form);
+
+ protected abstract void onRefreshSubmit(AjaxRequestTarget target, Form<?> form);
+ protected abstract void onRefreshError(AjaxRequestTarget target, Form<?> form);
+}
Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/UploadableProfileImagePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/UploadableProfileImagePanel.java?rev=1475993&r1=1475992&r2=1475993&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/UploadableProfileImagePanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/UploadableProfileImagePanel.java Thu Apr 25 22:38:34 2013
@@ -21,6 +21,8 @@ package org.apache.openmeetings.web.comp
import static org.apache.openmeetings.utils.ImportHelper.getMaxUploadSize;
import static org.apache.openmeetings.web.app.Application.getBean;
+import java.util.List;
+
import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
import org.apache.openmeetings.documents.GenerateImage;
import org.apache.openmeetings.utils.StoredFile;
@@ -30,6 +32,7 @@ import org.apache.wicket.extensions.ajax
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.upload.FileUpload;
import org.apache.wicket.markup.html.form.upload.FileUploadField;
+import org.apache.wicket.model.IModel;
import org.apache.wicket.util.lang.Bytes;
public class UploadableProfileImagePanel extends ProfileImagePanel {
@@ -41,7 +44,20 @@ public class UploadableProfileImagePanel
Form<Void> form = new Form<Void>("form");
form.setMultiPart(true);
form.setMaxSize(Bytes.bytes(getMaxUploadSize(getBean(ConfigurationDao.class))));
- form.add(fileUploadField = new FileUploadField("image"));
+ form.add(fileUploadField = new FileUploadField("image", new IModel<List<FileUpload>>() {
+ private static final long serialVersionUID = -8514518605278263956L;
+
+ //FIXME this need to be eliminated
+ public void detach() {
+ }
+
+ public void setObject(List<FileUpload> object) {
+ }
+
+ public List<FileUpload> getObject() {
+ return null;
+ }
+ }));
form.add(new UploadProgressBar("progress", form, fileUploadField));
fileUploadField.add(new AjaxFormSubmitBehavior(form, "onchange") {
private static final long serialVersionUID = 2160216679027859231L;
Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java?rev=1475993&r1=1475992&r2=1475993&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminBaseForm.java Thu Apr 25 22:38:34 2013
@@ -32,11 +32,12 @@ import org.apache.wicket.model.IModel;
*/
public class AdminBaseForm<T> extends Form<T> {
private static final long serialVersionUID = 1L;
- private AdminBaseFormPanel<T> basePanel;
+ private AdminSavePanel<T> savePanel;
public AdminBaseForm(String id, IModel<T> object) {
super(id, object);
- basePanel = new AdminBaseFormPanel<T>("buttons", this) {
+
+ savePanel = new AdminSavePanel<T>("buttons", this) {
private static final long serialVersionUID = -5833647470067891270L;
@Override
@@ -80,7 +81,7 @@ public class AdminBaseForm<T> extends Fo
}
};
- add(basePanel);
+ add(savePanel);
}
@@ -89,14 +90,14 @@ public class AdminBaseForm<T> extends Fo
* @see AdminBaseForm#hideNewRecord()
*/
public void hideNewRecord() {
- basePanel.hideNewRecord();
+ savePanel.hideNewRecord();
}
/**
* @see AdminBaseForm#showNewRecord()
*/
public void showNewRecord() {
- basePanel.showNewRecord();
+ savePanel.showNewRecord();
}
/**
Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.html?rev=1475993&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.html (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.html Thu Apr 25 22:38:34 2013
@@ -0,0 +1,31 @@
+<?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:extend>
+ <div class="formNewButton">
+ <input type="submit" value="" wicket:id="ajax-new-button" wicket:ommessage="title:155" />
+ </div>
+ <div class="formCancelButton">
+ <input type="submit" value="" wicket:id="ajax-cancel-button" wicket:ommessage="title:157" />
+ </div>
+ <span wicket:id="newRecord"></span>
+ </wicket:extend>
+</html>
Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.java?rev=1475993&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/AdminSavePanel.java Thu Apr 25 22:38:34 2013
@@ -0,0 +1,91 @@
+package org.apache.openmeetings.web.components.admin;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.components.ConfirmCallListener;
+import org.apache.openmeetings.web.components.FormSaveRefreshPanel;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
+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.model.Model;
+
+public abstract class AdminSavePanel<T> extends FormSaveRefreshPanel<T> {
+ private static final long serialVersionUID = -8916631148087019924L;
+ private Label newRecord;
+
+ public AdminSavePanel(String id, final Form<T> form) {
+ super(id, form);
+
+ newRecord = new Label("newRecord", Model.of(WebSession.getString(344L)));
+ add(newRecord.setVisible(false).setOutputMarkupId(true));
+
+ // add a new button that can be used to submit the form via ajax
+ add(new AjaxButton("ajax-new-button", form) {
+ private static final long serialVersionUID = 839803820502260006L;
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+ // repaint the feedback panel so that it is hidden
+ target.add(feedback);
+ newRecord.setVisible(true);
+ target.add(newRecord);
+ onNewSubmit(target, form);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target, Form<?> form) {
+ // repaint the feedback panel so errors are shown
+ target.add(feedback);
+ onNewError(target, form);
+ }
+ });
+
+ // add a cancel button that can be used to submit the form via ajax
+ add(new AjaxButton("ajax-cancel-button", form) {
+ private static final long serialVersionUID = 839803820502260006L;
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
+ super.updateAjaxAttributes(attributes);
+ attributes.getAjaxCallListeners().add(new ConfirmCallListener(833L));
+ }
+
+ @Override
+ protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
+ // repaint the feedback panel so that it is hidden
+ target.add(feedback);
+ hideNewRecord();
+ onDeleteSubmit(target, form);
+ }
+
+ @Override
+ protected void onError(AjaxRequestTarget target, Form<?> form) {
+ // repaint the feedback panel so errors are shown
+ target.add(feedback);
+ hideNewRecord();
+ onDeleteError(target, form);
+ }
+ });
+ }
+
+ /**
+ * Hide the new record text
+ */
+ public void hideNewRecord() {
+ newRecord.setVisible(false);
+ }
+
+ /**
+ * Hide the new record text
+ */
+ public void showNewRecord() {
+ newRecord.setVisible(true);
+ }
+
+ protected abstract void onNewSubmit(AjaxRequestTarget target, Form<?> form);
+ protected abstract void onNewError(AjaxRequestTarget target, Form<?> form);
+
+ protected abstract void onDeleteSubmit(AjaxRequestTarget target, Form<?> form);
+ protected abstract void onDeleteError(AjaxRequestTarget target, Form<?> form);
+}
Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java?rev=1475993&r1=1475992&r2=1475993&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/users/UserForm.java Thu Apr 25 22:38:34 2013
@@ -103,7 +103,7 @@ public class UserForm extends AdminBaseF
@Override
protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
User user = getModelObject();
- if (user.getUser_id() <= 0) {
+ if (user.getUser_id() != null) {
user = getBean(UsersDao.class).get(user.getUser_id());
} else {
user = new User();
Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.html?rev=1475993&r1=1475992&r2=1475993&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.html (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.html Thu Apr 25 22:38:34 2013
@@ -20,5 +20,35 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
+ <form wicket:id="form" class="adminForm">
+ <div wicket:id="buttons"></div>
+ <table style="width: 100%; height: 100%">
+ <tr>
+ <td rowspan="2">
+ <fieldset>
+ <legend>
+ <wicket:ommessage key="143" />
+ </legend>
+ <form wicket:id="general">
+ Confirm password
+ </form>
+ </fieldset>
+ </td>
+ <td>
+ <div wicket:id="img"></div>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <fieldset>
+ <legend>
+ <wicket:ommessage key="1159" />
+ </legend>
+ <form wicket:id="comunity"></form>
+ </fieldset>
+ </td>
+ </tr>
+ </table>
+ </form>
</wicket:panel>
</html>
\ No newline at end of file
Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.java?rev=1475993&r1=1475992&r2=1475993&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/user/profile/ProfilePanel.java Thu Apr 25 22:38:34 2013
@@ -18,12 +18,62 @@
*/
package org.apache.openmeetings.web.components.user.profile;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+
+import org.apache.openmeetings.data.user.dao.UsersDao;
+import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.openmeetings.web.components.ComunityUserForm;
+import org.apache.openmeetings.web.components.FormSaveRefreshPanel;
+import org.apache.openmeetings.web.components.GeneralUserForm;
+import org.apache.openmeetings.web.components.UploadableProfileImagePanel;
import org.apache.openmeetings.web.components.UserPanel;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.CompoundPropertyModel;
public class ProfilePanel extends UserPanel {
private static final long serialVersionUID = -5837090230776586182L;
public ProfilePanel(String id) {
super(id);
+
+ Form<User> form = new Form<User>("form", new CompoundPropertyModel<User>(getBean(UsersDao.class).get(getUserId()))) {
+ private static final long serialVersionUID = -4968428244553170528L;
+
+ {
+ add(new FormSaveRefreshPanel<User>("buttons", this) {
+ private static final long serialVersionUID = 6578425915881674309L;
+
+ @Override
+ protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ protected void onSaveError(AjaxRequestTarget target, Form<?> form) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ protected void onRefreshError(AjaxRequestTarget target, Form<?> form) {
+ // TODO Auto-generated method stub
+
+ }
+ });
+ add(new GeneralUserForm("general", getModel()));
+ add(new UploadableProfileImagePanel("img", getUserId()));
+ add(new ComunityUserForm("comunity", getModel()));
+ }
+ };
+ add(form);
}
}