htmlMail-Template adjusted
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/ResourceConfig.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/ResourceConfig.java
index ac058ee..56052b3 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/ResourceConfig.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/config/ResourceConfig.java
@@ -16,21 +16,42 @@
import lombok.extern.log4j.Log4j2;
import org.eclipse.openk.gridfailureinformation.service.DistributionTextPlaceholderService;
+import org.eclipse.openk.gridfailureinformation.util.ResourceLoaderBase;
import org.eclipse.openk.gridfailureinformation.viewmodel.DistributionTextPlaceholderDto;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import javax.annotation.PostConstruct;
+
@Log4j2
@Configuration
public class ResourceConfig {
+ private static final String EMAIL_BTN_TEMPLATE_PATH = "email/emailTemplateBtn.html";
+
+ @Value("${spring.settings.isUseHtmlEmailBtnTemplate:true}")
+ private boolean isUseHtmlEmailBtnTemplate;
+
@Autowired
DistributionTextPlaceholderService placeholderService;
+ private String htmlEmailBtnTemplate;
+
@Bean
public DistributionTextPlaceholderDto placeholderLoader() {
return placeholderService.getPlaceholder();
}
+ @PostConstruct
+ private void init(){
+ if (isUseHtmlEmailBtnTemplate) {
+ htmlEmailBtnTemplate = new ResourceLoaderBase().loadStringFromResource(EMAIL_BTN_TEMPLATE_PATH);
+ }
+ }
+
+ public String getHtmlEmailBtnTemplate() {
+ return htmlEmailBtnTemplate;
+ }
}
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
index 28c3afd..22b5abf 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/service/ExportService.java
@@ -42,6 +42,7 @@
import org.eclipse.openk.gridfailureinformation.repository.StatusRepository;
import org.eclipse.openk.gridfailureinformation.util.ExternalStatusCalculator;
import org.eclipse.openk.gridfailureinformation.util.GroupMemberPlzFilter;
+import org.eclipse.openk.gridfailureinformation.util.ResourceLoaderBase;
import org.eclipse.openk.gridfailureinformation.viewmodel.DistributionGroupMemberDto;
import org.eclipse.openk.gridfailureinformation.viewmodel.DistributionTextPlaceholderDto;
import org.eclipse.openk.gridfailureinformation.viewmodel.FailureInformationDto;
@@ -57,6 +58,8 @@
import java.text.DateFormat;
import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -138,6 +141,9 @@
@Value("${distribution-group-publisher.name}")
private String publisherDistributionGroup;
+ @Value("${spring.settings.isUseHtmlEmailBtnTemplate:true}")
+ private boolean isUseHtmlEmailBtnTemplate;
+
public boolean exportFailureInformation(UUID uuid, String[] targetChannels, GfiProcessState processState){
log.info("Start exporting failureInformation with uuid: " + uuid);
countExportedMessages = 0;
@@ -526,11 +532,20 @@
contentReplaceMap.put(placeholderDto.getRadius(), radius.getRadius().toString());
}
- String directFailureLink = authNAuthService.getDirectMeasureLink(tblFailureInfo.getUuid().toString());
- contentReplaceMap.put(placeholderDto.getDirectFailureLink(), directFailureLink);
+ createDirectFailureLink(tblFailureInfo, placeholderDto);
}
+ private void createDirectFailureLink(TblFailureInformation tblFailureInfo,
+ DistributionTextPlaceholderDto placeholderDto) {
+ String directFailureLink = authNAuthService.getDirectMeasureLink(tblFailureInfo.getUuid().toString());
+ if (isUseHtmlEmailBtnTemplate) {
+ String htmlEmailBtnTemplate = resourceConfig.getHtmlEmailBtnTemplate();
+ directFailureLink = htmlEmailBtnTemplate.replace(placeholderDto.getDirectFailureLink(), directFailureLink);
+ }
+ contentReplaceMap.put(placeholderDto.getDirectFailureLink(), directFailureLink);
+ }
+
private String getStatusExtern(TblFailureInformation tblFailureInfo) {
FailureInformationDto failureInformationDto = failureInformationMapper.toFailureInformationDto(tblFailureInfo);
return ExternalStatusCalculator.addExternalStatus(statusRepository, failureInformationDto);
diff --git a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ResourceLoaderBase.java b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ResourceLoaderBase.java
index 5f06ea0..64a47e9 100644
--- a/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ResourceLoaderBase.java
+++ b/gfsBackendService/src/main/java/org/eclipse/openk/gridfailureinformation/util/ResourceLoaderBase.java
@@ -36,10 +36,10 @@
private String stream2String(InputStream is, String filename) {
StringWriter writer = new StringWriter();
- BOMInputStream bomInputStream = new BOMInputStream(is, false, ByteOrderMark.UTF_8, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_16LE,
- ByteOrderMark.UTF_32BE, ByteOrderMark.UTF_32LE);
- try {
+ try (BOMInputStream bomInputStream = new BOMInputStream(is, false,
+ ByteOrderMark.UTF_8, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_16LE,
+ ByteOrderMark.UTF_32BE, ByteOrderMark.UTF_32LE)) {
IOUtils.copy(bomInputStream, writer, StandardCharsets.UTF_8.name());
} catch (IOException e) {
log.error("Fehler in stream2String()", e);
diff --git a/gfsBackendService/src/main/resources/application.yml b/gfsBackendService/src/main/resources/application.yml
index 903142a..f6114ed 100644
--- a/gfsBackendService/src/main/resources/application.yml
+++ b/gfsBackendService/src/main/resources/application.yml
@@ -54,45 +54,30 @@
overviewMapInitialLongitude: 8.423207
daysInPastToShowClosedInfos: 365
dataExternInitialVisibility: hide
-
+
+ isUseHtmlEmailBtnTemplate: true
# Mail settings (Default templates)
emailSubjectPublishInit: "Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status veröffentlicht geändert."
- emailContentPublishInit: "Veröffentlicht [TEST]\n
-
- Sehr geehrte Damen und Herren,\n
-
- die im Betreff genannte Meldung ist über folgenden Link erreichbar:\n
-
- $Direkter_Link_zur_Störung$\n
-
- Mit freundlichen Grüßen
-
- Ihre Admin-Meister-Team der PTA GmbH"
+ emailContentPublishInit: "<p><b>Veröffentlicht [TEST]</b></p>
+ <p>Sehr geehrte Damen und Herren,</p>
+ <p>die im Betreff genannte Meldung ist über folgenden Link erreichbar:</p>
+ $Direkter_Link_zur_Störung$
+ <p>Mit freundlichen Grüßen</p>
+ <p>Ihr Admin-Meister-Team der PTA GmbH</p>"
emailSubjectUpdateInit: "Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status aktualisiert geändert."
- emailContentUpdateInit: "Aktualisiert [TEST]\n
-
- Sehr geehrte Damen und Herren,\n
-
- die im Betreff genannte Meldung ist über folgenden Link erreichbar:\n
-
- $Direkter_Link_zur_Störung$\n
-
- Mit freundlichen Grüßen
-
- Ihr Admin-Meister-Team der PTA GmbH"
-
+ emailContentUpdateInit: "<p><b>Aktualisiert [TEST]</b></p>
+ <p>Sehr geehrte Damen und Herren,</p>
+ <p>die im Betreff genannte Meldung ist über folgenden Link erreichbar:</p>
+ $Direkter_Link_zur_Störung$
+ <p>Mit freundlichen Grüßen</p>
+ <p>Ihr Admin-Meister-Team der PTA GmbH</p>"
emailSubjectCompleteInit: "Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status beendet geändert."
- emailContentCompleteInit: "Beendet [TEST]\n
-
- Sehr geehrte Damen und Herren,\n
-
- die im Betreff genannte Meldung ist über folgenden Link erreichbar:\n
-
- $Direkter_Link_zur_Störung$\n
-
- Mit freundlichen Grüßen
-
- Ihr Admin-Meister-Team der PTA GmbH"
+ emailContentCompleteInit: "<p><b>Beendet [TEST]</b></p>
+ <p>Sehr geehrte Damen und Herren,</p>
+ <p>die im Betreff genannte Meldung ist über folgenden Link erreichbar:</p>
+ $Direkter_Link_zur_Störung$
+ <p>Mit freundlichen Grüßen</p>
+ <p>Ihr Admin-Meister-Team der PTA GmbH</p>"
visibilityConfiguration:
fieldVisibility:
diff --git a/gfsBackendService/src/main/resources/application_localdev.yml b/gfsBackendService/src/main/resources/application_localdev.yml
index ecc1e0b..dfac132 100644
--- a/gfsBackendService/src/main/resources/application_localdev.yml
+++ b/gfsBackendService/src/main/resources/application_localdev.yml
@@ -13,8 +13,8 @@
backend-version: 1.0.0
spring:
datasource:
- url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevelop
- #url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
+ #url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevelop
+ url: jdbc:postgresql://entopticadirx:5432/GridFailureInfoDevServer
username: ${GFI_DB_USERNAME}
password: ${GFI_DB_PASSWORD}
max-active: 5
@@ -50,44 +50,30 @@
overviewMapInitialLongitude: 8.423207
daysInPastToShowClosedInfos: 365
dataExternInitialVisibility: hide
+
+ isUseHtmlEmailBtnTemplate: true
# Initial emailsubject and content
emailSubjectPublishInit: "Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status veröffentlicht geändert."
- emailContentPublishInit: "Veröffentlicht [TEST]\n
-
- Sehr geehrte Damen und Herren,\n
-
- die im Betreff genannte Meldung ist über folgenden Link erreichbar:\n
-
- $Direkter_Link_zur_Störung$\n
-
- Mit freundlichen Grüßen
-
- Ihre Admin-Meister-Team der PTA GmbH"
+ emailContentPublishInit: "<b>Veröffentlicht [TEST]</b><br>
+ <p> Sehr geehrte Damen und Herren,</p>
+ <p>die im Betreff genannte Meldung ist über folgenden Link erreichbar:</p>
+ $Direkter_Link_zur_Störung$
+ <p>Mit freundlichen Grüßen</p>
+ <p>Ihr Admin-Meister-Team der PTA GmbH</p>"
emailSubjectUpdateInit: "Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status aktualisiert geändert."
- emailContentUpdateInit: "Aktualisiert [TEST]\n
-
- Sehr geehrte Damen und Herren,\n
-
- die im Betreff genannte Meldung ist über folgenden Link erreichbar:\n
-
- $Direkter_Link_zur_Störung$\n
-
- Mit freundlichen Grüßen
-
- Ihr Admin-Meister-Team der PTA GmbH"
-
+ emailContentUpdateInit: "<b>Aktualisiert [TEST]</b><br>
+ <p> Sehr geehrte Damen und Herren,</p>
+ <p>die im Betreff genannte Meldung ist über folgenden Link erreichbar:</p>
+ $Direkter_Link_zur_Störung$
+ <p>Mit freundlichen Grüßen</p>
+ <p>Ihr Admin-Meister-Team der PTA GmbH</p>"
emailSubjectCompleteInit: "Die Störung (Sparte: $Sparte$) mit Beginn: $Störungsbeginn_gemeldet$ wurde in den Status beendet geändert."
- emailContentCompleteInit: "Beendet [TEST]\n
-
- Sehr geehrte Damen und Herren,\n
-
- die im Betreff genannte Meldung ist über folgenden Link erreichbar:\n
-
- $Direkter_Link_zur_Störung$\n
-
- Mit freundlichen Grüßen
-
- Ihr Admin-Meister-Team der PTA GmbH"
+ emailContentCompleteInit: "<b>Beendet [TEST]</b><br>
+ <p> Sehr geehrte Damen und Herren,</p>
+ <p>die im Betreff genannte Meldung ist über folgenden Link erreichbar:</p>
+ $Direkter_Link_zur_Störung$
+ <p>Mit freundlichen Grüßen</p>
+ <p>Ihr Admin-Meister-Team der PTA GmbH</p>"
visibilityConfiguration:
fieldVisibility:
diff --git a/gfsBackendService/src/main/resources/db/migration/V0_62__CREATE_GFI_DB_Complete_V_1.0.0.sql b/gfsBackendService/src/main/resources/db/migration/V0_62__CREATE_GFI_DB_Complete_V_1.0.0.sql
index 5a6f0a6..228b92c 100644
--- a/gfsBackendService/src/main/resources/db/migration/V0_62__CREATE_GFI_DB_Complete_V_1.0.0.sql
+++ b/gfsBackendService/src/main/resources/db/migration/V0_62__CREATE_GFI_DB_Complete_V_1.0.0.sql
@@ -372,6 +372,14 @@
OWNER TO GFI_SERVICE;
GRANT ALL ON TABLE public.TBL_DISTRIBUTION_GROUP TO GFI_SERVICE;
+INSERT INTO public.tbl_distribution_group(UUID, NAME, EMAIL_SUBJECT_PUBLISH, DISTRIBUTION_TEXT_PUBLISH)
+VALUES('f71660e2-aee1-11ea-b3de-0242ac130004', 'Veröffentlicher', 'Bitte Anpassen - Das geplannte Ende der Störung (Sparte: $Sparte$) wird demnächst erreicht. Der Statuswechsel erfolgt automatisch.',
+'<b>Veröffentlichen</b><br>
+<p>Sehr geehrte Damen und Herren,</p>
+<p>die im Betreff genannte Meldung ist über folgenden Link erreichbar:</p>
+$Direkter_Link_zur_Störung$
+<p>Mit freundlichen Grüßen</p>
+<p>Ihr Admin-Meister-Team der PTA GmbH</p>');
-- ---------------------------------------------
-- TABLE TBL_DISTRIBUTION_GROUP_MEMBER
@@ -402,19 +410,6 @@
OWNER TO GFI_SERVICE;
GRANT ALL ON TABLE public.TBL_DISTRIBUTION_GROUP_MEMBER TO GFI_SERVICE;
-INSERT INTO public.tbl_distribution_group(UUID, NAME, EMAIL_SUBJECT_PUBLISH, DISTRIBUTION_TEXT_PUBLISH)
-VALUES('f71660e2-aee1-11ea-b3de-0242ac130004', 'Veröffentlicher', 'Subject: Bitte Anpassen - Das geplannte Ende der Störung (Sparte: $Sparte$) wird demnächst erreicht. Der Statuswechsel erfolgt automatisch.',
-'Body:
-Veröffentlicher
-
-Sehr geehrte Damen und Herren,
-
-die im Betreff genannte Meldung ist über folgenden Link erreichbar:
-
-$Direkter_Link_zur_Störung$
-
-Mit freundlichen Grüßen');
-
-- ---------------------------------------------
-- TABLE TBL_FAILURE_INFORMATION_DISTRIBUTION_GROUP
-- ---------------------------------------------
diff --git a/gfsBackendService/src/main/resources/email/emailTemplateBtn.html b/gfsBackendService/src/main/resources/email/emailTemplateBtn.html
new file mode 100644
index 0000000..291c905
--- /dev/null
+++ b/gfsBackendService/src/main/resources/email/emailTemplateBtn.html
@@ -0,0 +1,17 @@
+<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: 100%; box-sizing: border-box;">
+ <tbody>
+ <tr>
+ <td align="center" style="font-family: sans-serif; font-size: 14px; vertical-align: top; padding: 15px 0;">
+ <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: separate; mso-table-lspace: 0pt; mso-table-rspace: 0pt; width: auto;">
+ <tbody>
+ <tr>
+ <td class="btn btn-primary" style="font-family: sans-serif; font-size: 14px; vertical-align: top; background-color: #337ab7; border-radius: 5px; text-align: center; padding: 0;">
+ <a href="$Direkter_Link_zur_Störung$" target="_blank" style="display: inline-block; color: #ffffff; background-color: #337ab7; border: solid 1px #2e6da4; border-radius: 5px; box-sizing: border-box; cursor: pointer; text-decoration: none; font-size: 14px; font-weight: bold; margin: 0; padding: 12px 25px; text-transform: capitalize; border-color: #2e6da4;">zur Störungsmeldung</a>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ </tbody>
+</table>
diff --git a/mailExport/src/main/java/org/eclipse/openk/gridfailureinformation/mailexport/util/ResourceLoaderBase.java b/mailExport/src/main/java/org/eclipse/openk/gridfailureinformation/mailexport/util/ResourceLoaderBase.java
index e341217..9ae045a 100644
--- a/mailExport/src/main/java/org/eclipse/openk/gridfailureinformation/mailexport/util/ResourceLoaderBase.java
+++ b/mailExport/src/main/java/org/eclipse/openk/gridfailureinformation/mailexport/util/ResourceLoaderBase.java
@@ -36,10 +36,10 @@
private String stream2String(InputStream is, String filename) {
StringWriter writer = new StringWriter();
- BOMInputStream bomInputStream = new BOMInputStream(is, false, ByteOrderMark.UTF_8, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_16LE,
- ByteOrderMark.UTF_32BE, ByteOrderMark.UTF_32LE);
- try {
+ try (BOMInputStream bomInputStream = new BOMInputStream(is, false,
+ ByteOrderMark.UTF_8, ByteOrderMark.UTF_16BE, ByteOrderMark.UTF_16LE,
+ ByteOrderMark.UTF_32BE, ByteOrderMark.UTF_32LE)) {
IOUtils.copy(bomInputStream, writer, StandardCharsets.UTF_8.name());
} catch (IOException e) {
log.error("Fehler in stream2String()", e);