From 24156d198f6ca43d1733cd4fa89e80249f6a1c6d Mon Sep 17 00:00:00 2001
From: uhensler <none@none>
Date: Mon, 17 Jul 2017 11:05:59 +0200
Subject: [PATCH] OO-2898: Do not use cached thumbnail if it blog/podcast image
 has changed

---
 .../org/olat/modules/webFeed/manager/FeedFileStorge.java  | 8 ++++++++
 .../org/olat/modules/webFeed/ui/FeedMainController.java   | 2 ++
 .../org/olat/modules/webFeed/ui/blog/_content/info.html   | 2 +-
 .../olat/modules/webFeed/ui/podcast/_content/info.html    | 2 +-
 4 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/modules/webFeed/manager/FeedFileStorge.java b/src/main/java/org/olat/modules/webFeed/manager/FeedFileStorge.java
index beec88e168d..724e79ea02e 100644
--- a/src/main/java/org/olat/modules/webFeed/manager/FeedFileStorge.java
+++ b/src/main/java/org/olat/modules/webFeed/manager/FeedFileStorge.java
@@ -27,6 +27,8 @@ import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.olat.core.commons.modules.bc.meta.MetaInfo;
+import org.olat.core.commons.modules.bc.meta.tagged.MetaTagged;
 import org.olat.core.commons.modules.bc.vfs.OlatRootFolderImpl;
 import org.olat.core.commons.services.image.ImageService;
 import org.olat.core.gui.components.form.flexible.elements.FileElement;
@@ -502,6 +504,12 @@ public class FeedFileStorge {
 		if (feedMediaContainer != null) {
 			for (VFSItem fileItem : feedMediaContainer.getItems()) {
 				if (!fileItem.getName().startsWith(".")) {
+					if(fileItem instanceof MetaTagged) {
+						MetaInfo info = ((MetaTagged)fileItem).getMetaInfo();
+						if(info != null) {
+							info.clearThumbnails();
+						}
+					}
 					fileItem.delete();
 				}
 			}
diff --git a/src/main/java/org/olat/modules/webFeed/ui/FeedMainController.java b/src/main/java/org/olat/modules/webFeed/ui/FeedMainController.java
index 03b817ad339..e10335c2702 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/FeedMainController.java
+++ b/src/main/java/org/olat/modules/webFeed/ui/FeedMainController.java
@@ -19,6 +19,7 @@
  */
 package org.olat.modules.webFeed.ui;
 
+import java.time.ZonedDateTime;
 import java.util.List;
 
 import org.olat.core.commons.services.notifications.PublisherData;
@@ -355,6 +356,7 @@ public class FeedMainController extends BasicController implements Activateable2
 			FeedChangedEvent fce = (FeedChangedEvent) event;
 			if (fce.getFeedKey().equals(feed.getKey())) {
 				feed = feedManager.loadFeed(feed);
+				vcInfo.contextPut("supressCache", "&" + ZonedDateTime.now().toInstant().toEpochMilli());
 				vcInfo.contextPut("feed", feed);
 				vcInfo.setDirty(true);
 			}
diff --git a/src/main/java/org/olat/modules/webFeed/ui/blog/_content/info.html b/src/main/java/org/olat/modules/webFeed/ui/blog/_content/info.html
index e6d8de54c0b..4b9a9f5c33b 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/blog/_content/info.html
+++ b/src/main/java/org/olat/modules/webFeed/ui/blog/_content/info.html
@@ -7,7 +7,7 @@
 		$r.escapeHtml($!feed.getTitle())
 	</h2>
 	#if ($helper.getImageUrl($feed) && $helper.getImageUrl($feed) != "")
-		<img class="o_media" src="$helper.getImageUrl($feed)?thumbnail=180x121" alt="Blog Image" />
+		<img class="o_media" src="$helper.getImageUrl($feed)?thumbnail=180x121{$!supressCache}" alt="Blog Image" />
 	#end
 	<div class="o_block">
 		#if ($!feed.getAuthor())
diff --git a/src/main/java/org/olat/modules/webFeed/ui/podcast/_content/info.html b/src/main/java/org/olat/modules/webFeed/ui/podcast/_content/info.html
index 0f06006e04d..71d0fa39c67 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/podcast/_content/info.html
+++ b/src/main/java/org/olat/modules/webFeed/ui/podcast/_content/info.html
@@ -7,7 +7,7 @@
 		$r.escapeHtml($!feed.getTitle())
 	</h2>
 	#if ($helper.getImageUrl($feed) && $helper.getImageUrl($feed) != "")
-		<img class="o_media" src="$helper.getImageUrl($feed)?thumbnail=180x121" alt="Podcast Icon" />
+		<img class="o_media" src="$helper.getImageUrl($feed)?thumbnail=180x121{$!supressCache}" alt="Podcast Icon" />
 	#end
 	<div class="o_block">
 		#if ($!feed.getAuthor())
-- 
GitLab