From 03d276b5d05b2598608a01d7733f8c7310e39fa8 Mon Sep 17 00:00:00 2001 From: Ali HAMDI Date: Tue, 17 Sep 2024 16:00:53 +0100 Subject: [PATCH] fix: add AltRep field for event description - EXO-73523 (#690) --- .../org/exoplatform/agenda/util/NotificationUtils.java | 9 +++++++++ .../components/event/view/AgendaEventIcs.vue | 1 + 2 files changed, 10 insertions(+) diff --git a/agenda-services/src/main/java/org/exoplatform/agenda/util/NotificationUtils.java b/agenda-services/src/main/java/org/exoplatform/agenda/util/NotificationUtils.java index 8f3056e7d..6f850e899 100644 --- a/agenda-services/src/main/java/org/exoplatform/agenda/util/NotificationUtils.java +++ b/agenda-services/src/main/java/org/exoplatform/agenda/util/NotificationUtils.java @@ -7,6 +7,7 @@ import java.net.URI; import java.net.URLEncoder; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.time.*; import java.util.*; import java.util.stream.Collectors; @@ -15,6 +16,7 @@ import net.fortuna.ical4j.model.DateTime; import net.fortuna.ical4j.model.ParameterList; import net.fortuna.ical4j.model.component.VEvent; +import net.fortuna.ical4j.model.parameter.AltRep; import net.fortuna.ical4j.model.parameter.Cn; import net.fortuna.ical4j.model.property.*; import net.fortuna.ical4j.util.RandomUidGenerator; @@ -956,6 +958,13 @@ public static final void addIcsFile(NotificationInfo notification, MessageInfo m parameters.add(new net.fortuna.ical4j.model.parameter.XParameter("FMTTYPE", "text/html")); XProperty xProperty = new XProperty("X-ALT-DESC", parameters, htmlContent); vEvent.getProperties().add(xProperty); + try { + ParameterList params = new ParameterList(); + params.add(new AltRep("data:text/html," + URLEncoder.encode(htmlContent, StandardCharsets.UTF_8))); + vEvent.getProperties().add(new Description(params, plainTextContent)); + } catch (Exception e) { + LOG.error("Could not add the Altrep property for description field", e); + } /* Add event to calendar */ calendar.getComponents().add(vEvent); diff --git a/agenda-webapps/src/main/webapp/vue-app/agenda-common/components/event/view/AgendaEventIcs.vue b/agenda-webapps/src/main/webapp/vue-app/agenda-common/components/event/view/AgendaEventIcs.vue index ea1fcd77d..615e3ef44 100644 --- a/agenda-webapps/src/main/webapp/vue-app/agenda-common/components/event/view/AgendaEventIcs.vue +++ b/agenda-webapps/src/main/webapp/vue-app/agenda-common/components/event/view/AgendaEventIcs.vue @@ -104,6 +104,7 @@ export default { `DTEND:${formatDate(event.endDate)}\r\n` + `SUMMARY:${event.summary || ''}\r\n` + `DESCRIPTION:${plainTextDescription || ''}\r\n` + + `DESCRIPTION,ALTREP:"data:text/html,${encodeURI(htmlDescription)}":${plainTextDescription}\r\n` + `X-ALT-DESC;FMTTYPE=text/html:${htmlDescription}\r\n` + `LOCATION:${event.location || ''}\r\n` + `URL:${confurl}\r\n` +