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;
}
}