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 2023/08/23 11:58:49 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2776] profile image will be shrinked if larger than 250x250px
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 6440427dc [OPENMEETINGS-2776] profile image will be shrinked if larger than 250x250px
6440427dc is described below
commit 6440427dcd52dfd8192d56e014e6b06368cbe069
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Aug 23 18:58:39 2023 +0700
[OPENMEETINGS-2776] profile image will be shrinked if larger than 250x250px
---
.../core/converter/ImageConverter.java | 28 ++++++++--------------
.../openmeetings/core/ldap/LdapLoginManager.java | 2 +-
.../org/apache/openmeetings/util/OmFileHelper.java | 2 +-
.../openmeetings/web/admin/groups/GroupForm.java | 2 +-
.../apache/openmeetings/web/app/Application.java | 1 +
.../web/common/UploadableProfileImagePanel.java | 2 +-
.../src/main/webapp/css/raw-general.css | 3 ++-
7 files changed, 17 insertions(+), 23 deletions(-)
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
index 0402a00b8..36af1c820 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
@@ -87,28 +87,20 @@ public class ImageConverter extends BaseConverter {
return logs;
}
- public ProcessResultList convertImageUserProfile(File file, Long userId, boolean skipConvertion) throws Exception {
+ public ProcessResultList convertImageUserProfile(File file, Long userId) throws Exception {
ProcessResultList returnMap = new ProcessResultList();
// User Profile Update
- File[] files = getUploadProfilesUserDir(userId).listFiles(fi -> fi.getName().endsWith(EXTENSION_PNG));
- if (files != null) {
- for (File f : files) {
- FileUtils.deleteQuietly(f);
- }
- }
+ Files.newDirectoryStream(
+ getUploadProfilesUserDir(userId).toPath()
+ , fi -> fi.toString().endsWith(EXTENSION_PNG))
+ .forEach(path -> FileUtils.deleteQuietly(path.toFile()));
File destinationFile = OmFileHelper.getNewFile(getUploadProfilesUserDir(userId), PROFILE_FILE_NAME, EXTENSION_PNG);
- if (!skipConvertion) {
- returnMap.add(convertSinglePng(file, destinationFile));
- } else {
- FileUtils.copyFile(file, destinationFile);
- }
+ returnMap.add(resize(file, destinationFile, 250, 250, true));
- if (!skipConvertion) {
- // Delete old one
- Files.deleteIfExists(file.toPath());
- }
+ // Delete old one
+ Files.deleteIfExists(file.toPath());
String img = destinationFile.getName();
User us = userDao.get(userId);
@@ -159,9 +151,9 @@ public class ImageConverter extends BaseConverter {
return ProcessHelper.exec("convertSinglePng", argv);
}
- public ProcessResult resize(File in, File out, Integer width, Integer height) throws IOException {
+ public ProcessResult resize(File in, File out, Integer width, Integer height, boolean max) throws IOException {
List<String> argv = List.of(getPathToConvert()
- , "-resize", (width == null ? "" : width) + (height == null ? "" : "x" + height)
+ , "-resize", (width == null ? "" : width) + (height == null ? "" : "x" + height) + (max ? ">" : "")
, in.getCanonicalPath(), out.getCanonicalPath());
return ProcessHelper.exec("resize", argv);
}
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
index 33139d299..bdce1e700 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
@@ -355,7 +355,7 @@ public class LdapLoginManager {
try {
tempImage = Files.createTempFile("omLdap", "img");
FileUtils.copyToFile(is, tempImage.toFile());
- imageConverter.convertImageUserProfile(tempImage.toFile(), inUser.getId(), sf.isAsIs());
+ imageConverter.convertImageUserProfile(tempImage.toFile(), inUser.getId());
u = userDao.get(inUser.getId());
} catch (Exception e) {
log.error("Unable to store binary image from LDAP", e);
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
index 5d2d6dff0..2b82d394a 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
@@ -327,7 +327,7 @@ public class OmFileHelper {
File f = new File(dir, getName(name, ext));
int recursiveNumber = 0;
while (f.exists()) {
- f = new File(dir, name + "_" + (recursiveNumber++) + ext);
+ f = new File(dir, name + "_" + (recursiveNumber++) + "." + ext);
}
f.createNewFile();
return f;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
index fdf7d3048..aacb0b4cf 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
@@ -76,7 +76,7 @@ public class GroupForm extends AdminBaseForm<Group> {
@Override
protected void processImage(StoredFile sf, File f) throws Exception {
- imageConverter.resize(f, getGroupLogo(GroupForm.this.getModelObject().getId(), false), null, 28);
+ imageConverter.resize(f, getGroupLogo(GroupForm.this.getModelObject().getId(), false), null, 28, true);
}
@Override
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index de6884a63..a8c459869 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -307,6 +307,7 @@ public class Application extends AuthenticatedWebApplication implements IApplica
Bootstrap.builder().withBootstrapSettings(settings).install(this);
WysiwygLibrarySettings.get().setBootstrapCssReference(null);
WysiwygLibrarySettings.get().setBootstrapDropDownJavaScriptReference(null);
+ WysiwygLibrarySettings.get().setPrettifyJavaScriptReference(null);
// register some widgets
final DashboardContext dashboardContext = getDashboardContext();
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 2361e7209..57b3e0084 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
@@ -54,7 +54,7 @@ public class UploadableProfileImagePanel extends UploadableImagePanel {
@Override
protected void processImage(StoredFile sf, File f) throws Exception {
- converter.convertImageUserProfile(f, userId, sf.isAsIs());
+ converter.convertImageUserProfile(f, userId);
}
@Override
diff --git a/openmeetings-web/src/main/webapp/css/raw-general.css b/openmeetings-web/src/main/webapp/css/raw-general.css
index 99157c19a..8bb974732 100644
--- a/openmeetings-web/src/main/webapp/css/raw-general.css
+++ b/openmeetings-web/src/main/webapp/css/raw-general.css
@@ -471,7 +471,8 @@ select.messages.selector {
display: inline-block;
}
.profile img {
- width: 125px;
+ max-width: 125px;
+ max-height: 125px;
}
.date.time.picker {
font-size: 12px;