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 2020/06/06 03:40:10 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2380] avatar is editable from admin area

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 7a5ef06  [OPENMEETINGS-2380] avatar is editable from admin area
7a5ef06 is described below

commit 7a5ef066d4c78d5d822159e8ae2c9a23f086963c
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sat Jun 6 10:39:51 2020 +0700

    [OPENMEETINGS-2380] avatar is editable from admin area
---
 .../apache/openmeetings/web/admin/users/UserForm.html  |  4 ++++
 .../apache/openmeetings/web/admin/users/UserForm.java  |  5 +++++
 .../web/common/UploadableProfileImagePanel.java        | 18 +++++++++++++++---
 3 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.html
index da6e933..4f96b14 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.html
@@ -26,6 +26,10 @@
 			<legend>
 				<wicket:message key="143" />
 			</legend>
+			<div class="formelement row">
+				<span class="col-3 text-right"></span>
+				<span class="col-8" wicket:id="avatar"></span>
+			</div>
 			<div class="formelement">
 				<label wicket:for="login" class="col-3 text-right"><wicket:message key="108" /></label><input type="text" wicket:id="login" class="col-8"/>
 			</div>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
index 83e0374..d574583 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
@@ -49,6 +49,7 @@ import org.apache.openmeetings.service.mail.EmailManager;
 import org.apache.openmeetings.web.admin.AdminBaseForm;
 import org.apache.openmeetings.web.common.ComunityUserForm;
 import org.apache.openmeetings.web.common.GeneralUserForm;
+import org.apache.openmeetings.web.common.UploadableProfileImagePanel;
 import org.apache.openmeetings.web.util.DateLabel;
 import org.apache.openmeetings.web.util.RestrictiveChoiceProvider;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -94,6 +95,7 @@ public class UserForm extends AdminBaseForm<User> {
 	private final Modal<String> warning;
 	private final DropDownChoice<Long> domainId = new DropDownChoice<>("domainId");
 	private final PasswordDialog adminPass;
+	private final UploadableProfileImagePanel avatar = new UploadableProfileImagePanel("avatar", null);
 	@SpringBean
 	private UserDao userDao;
 	@SpringBean
@@ -115,6 +117,7 @@ public class UserForm extends AdminBaseForm<User> {
 	protected void onInitialize() {
 		super.onInitialize();
 		add(mainContainer);
+		mainContainer.add(avatar.setOutputMarkupPlaceholderTag(true));
 		mainContainer.add(generalForm = new GeneralUserForm("general", getModel(), true));
 		mainContainer.add(password.setResetPassword(false).setLabel(new ResourceModel("110")).setRequired(false)
 				.add(passValidator = new StrongPasswordValidator(getModelObject())));
@@ -338,6 +341,8 @@ public class UserForm extends AdminBaseForm<User> {
 
 	public void update(AjaxRequestTarget target) {
 		updateDomain(target);
+		avatar.setUserId(getModelObject().getId());
+		avatar.update();
 		if (target != null) {
 			target.add(this, listContainer);
 		}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java
index 9d52c4a..a2249b1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java
@@ -27,24 +27,31 @@ import java.io.File;
 
 import org.apache.openmeetings.core.converter.ImageConverter;
 import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.StoredFile;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 
 public class UploadableProfileImagePanel extends UploadableImagePanel {
 	private static final long serialVersionUID = 1L;
-	private final long userId;
+	private Long userId;
 	@SpringBean
 	private ImageConverter converter;
 	@SpringBean
 	private UserDao userDao;
 
-	public UploadableProfileImagePanel(String id, final long userId) {
+	public UploadableProfileImagePanel(String id, final Long userId) {
 		super(id, false);
 		this.userId = userId;
 	}
 
 	@Override
+	protected void onConfigure() {
+		super.onConfigure();
+		setVisible(userDao.get(userId) != null);
+	}
+
+	@Override
 	protected void processImage(StoredFile sf, File f) throws Exception {
 		converter.convertImageUserProfile(f, userId, sf.isAsIs());
 	}
@@ -59,6 +66,11 @@ public class UploadableProfileImagePanel extends UploadableImagePanel {
 
 	@Override
 	protected String getImageUrl() {
-		return getUrl(getRequestCycle(), userDao.get(userId));
+		User u = userDao.get(userId);
+		return u == null ? "" : getUrl(getRequestCycle(), u);
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
 	}
 }