From 5cc84f6e77f5e99db6b18d61aaf21dd28b6c6d34 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 13 Jun 2017 09:52:22 +0200
Subject: [PATCH] OO-2814: resize box need to be calculated server side

---
 .../modules/bc/FileUploadController.java      | 38 ++++++++++++-------
 .../modules/bc/_content/file_upload.html      | 25 +-----------
 2 files changed, 26 insertions(+), 37 deletions(-)

diff --git a/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java b/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java
index 06ca204f17f..e1433388285 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/FileUploadController.java
@@ -108,6 +108,8 @@ import org.springframework.beans.factory.annotation.Autowired;
  * @author Florian Gnägi
  */
 public class FileUploadController extends FormBasicController {
+	
+	private static final String[] resizeKeys = new String[]{"resize"};
 	private int status = FolderCommandStatus.STATUS_SUCCESS;
 
 	private VFSContainer currentContainer;
@@ -266,11 +268,11 @@ public class FileUploadController extends FormBasicController {
 			}
 			formLayout.add(resizeCont);
 
-			String[] keys = new String[]{"resize"};
 			String[] values = new String[]{translate("resize_image")};
-			resizeEl = uifactory.addCheckboxesHorizontal("resize_image", resizeCont, keys, values);
+			resizeEl = uifactory.addCheckboxesHorizontal("resize_image", resizeCont, resizeKeys, values);
 			resizeEl.setLabel(null, null);
-			resizeEl.select("resize", true);
+			resizeEl.select(resizeKeys[0], true);
+			resizeEl.setVisible(false);
 		}
 		
 		// Check remaining quota
@@ -311,19 +313,29 @@ public class FileUploadController extends FormBasicController {
 				fileEl.reset();
 				fileEl.setDeleteEnabled(false);
 				fileEl.clearError();
-			} else if(metaDataCtr != null) {
+				resizeEl.setVisible(false);
+			} else  {
 				String filename = fileEl.getUploadFileName();
-				if(filename == null) {
-					metaDataCtr.getFilenameEl().setExampleKey("mf.filename.warning", null);
-				} else if(!FileUtils.validateFilename(filename)) {
-					String suffix = FileUtils.getFileSuffix(filename);
-					if(suffix != null && suffix.length() > 0) {
-						filename = filename.substring(0, filename.length() - suffix.length() - 1);
+				if(metaDataCtr != null) {
+					if(filename == null) {
+						metaDataCtr.getFilenameEl().setExampleKey("mf.filename.warning", null);	
+					} else if(!FileUtils.validateFilename(filename)) {
+						String suffix = FileUtils.getFileSuffix(filename);
+						if(suffix != null && suffix.length() > 0) {
+							filename = filename.substring(0, filename.length() - suffix.length() - 1);
+						}
+						filename = FileUtils.normalizeFilename(filename) + "." + suffix;
+						metaDataCtr.getFilenameEl().setExampleKey("mf.filename.warning", null);
 					}
-					filename = FileUtils.normalizeFilename(filename) + "." + suffix;
-					metaDataCtr.getFilenameEl().setExampleKey("mf.filename.warning", null);
+					metaDataCtr.setFilename(filename);
+				}
+				
+				boolean isImg = false;
+				if(resizeImg && filename != null) {
+					isImg = imageExtPattern.matcher(filename.toLowerCase()).find();
 				}
-				metaDataCtr.setFilename(filename);
+				resizeEl.setVisible(isImg);
+				resizeEl.select(resizeKeys[0], true);
 			}
 		}
 		super.formInnerEvent(ureq, source, event);
diff --git a/src/main/java/org/olat/core/commons/modules/bc/_content/file_upload.html b/src/main/java/org/olat/core/commons/modules/bc/_content/file_upload.html
index 625c7954f73..63fb0bb29f1 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/_content/file_upload.html
+++ b/src/main/java/org/olat/core/commons/modules/bc/_content/file_upload.html
@@ -25,34 +25,11 @@
 		</div>
 	#end
 
-#if($resizeImg)
-	<div id="resize_image_wrapper" style="display:none;">
-		$r.render("resize_image_wrapper")
-	</div>
-#end
+	$r.render("resize_image_wrapper")
 
 #if ($showMetadata)
 	$r.render("metadata")
 #end
 	$r.render("buttons")
 </fieldset>
-
-
-#if($resizeImg)
-<script type="text/javascript">
-/* <![CDATA[ */ 
-jQuery(function() {
-	jQuery('.o_realchooser').on("change", function() {
-		var re = new RegExp('[.](jpeg)|(jpg)|(png)$');
-		var name = jQuery(this).val();
-		if(name != null && name.toLowerCase().match(re)) {
-			jQuery('#resize_image_wrapper').show();
-		} else { 
-			jQuery('#resize_image_wrapper').hide();
-		} 
-	});
-});
-/* ]]> */
-</script>
-#end
 </div>
\ No newline at end of file
-- 
GitLab