Introduce announcements
Change-Id: I9511ca695b6bc56350343b81b0fad948ad9aa961
diff --git a/Changes b/Changes
index e98910f..30d50bc 100644
--- a/Changes
+++ b/Changes
@@ -1,8 +1,11 @@
-0.3.2 2025-9-29
+0.3.3 2026-01-29
+ - Introduce announcements (diewald)
+
+0.3.2 2025-09-29
- Bugfix: export of queries containing curly brackets (closes #61 )(hebasta)
- CI: Build docker image also on tag push (kupietz)
- Upgrade Jersey to 4.0.0
- - Upgrade other dependencies following dependabot
+ - Upgrade other dependencies following dependabot
0.3.1 2024-10-9
- Produces export template as service (hebasta)
diff --git a/pom.xml b/pom.xml
index 595c3ab..0f0d407 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
<groupId>de.ids_mannheim.korap</groupId>
<artifactId>KalamarExportPlugin</artifactId>
<packaging>jar</packaging>
- <version>0.3.2</version>
+ <version>0.3.3</version>
<name>KalamarExportPlugin</name>
<url>https://korap.ids-mannheim.de/</url>
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
index d6c6cf3..b88f8e0 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/Service.java
@@ -720,6 +720,7 @@
templateData.put("assetPath", uri.build());
templateData.put("defaultHitc", defaultHitc);
templateData.put("maxHitc", maxHitc);
+ templateData.put("announcement", prop.getProperty("announcement"));
// There is an error code to pass
if (code != null) {
diff --git a/src/main/resources/assets/templates/export.ftl b/src/main/resources/assets/templates/export.ftl
index eeed57d..e009892 100644
--- a/src/main/resources/assets/templates/export.ftl
+++ b/src/main/resources/assets/templates/export.ftl
@@ -57,6 +57,11 @@
#export input[type=radio] {
vertical-align: top;
}
+
+ #announcement {
+ font-weight: bold;
+ color: red;
+ }
.button-group.button-panel input[type="submit"]{
min-width: 20em;
@@ -110,7 +115,11 @@
</div>
</fieldset>
- <p>Depending on the settings and add-ons of your browser, it may not be possible to export corpus excerpts that require authentication.</p>
+ <#if announcement??>
+ <p id="announcement">${announcement}</p>
+ </#if>
+
+ <p>${dict.info}</p>
<fieldset class="form-line">
<legend>${dict.hitc}</legend>
diff --git a/src/main/resources/locales/export.properties b/src/main/resources/locales/export.properties
index 9066039..49dcbc9 100644
--- a/src/main/resources/locales/export.properties
+++ b/src/main/resources/locales/export.properties
@@ -5,4 +5,5 @@
export_button = Export
banner = Experimental
with_ql = with
-in_cq = in
\ No newline at end of file
+in_cq = in
+info = Depending on the settings and add-ons of your browser, it may not be possible to export corpus excerpts that require authentication.
\ No newline at end of file
diff --git a/src/main/resources/locales/export_de.properties b/src/main/resources/locales/export_de.properties
index 024bec5..4a3aee5 100644
--- a/src/main/resources/locales/export_de.properties
+++ b/src/main/resources/locales/export_de.properties
@@ -8,4 +8,5 @@
export_button = Exportieren
banner = Experimentell
with_ql = mit
-in_cq = in
\ No newline at end of file
+in_cq = in
+info = Abh\u00e4ngig von Ihren Browser-Einstellungen und -Erweiterungen kann der Export von Korpusbelegen, die eine Authentifizierung ben\u00f6tigen, nicht m\u00f6glich sein.
diff --git a/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java b/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
index 4a7794f..94599e7 100644
--- a/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
+++ b/src/test/java/de/ids_mannheim/korap/plkexport/AssetTest.java
@@ -139,12 +139,33 @@
assertTrue("Assets", str.contains("<script src=\"https://ids-mannheim.example/instance/test/js"));
assertTrue("Assets", str.contains("<link href=\"https://ids-mannheim.example/instance/test/css"));
assertFalse("Errors", str.contains("dynCall("));
+ assertFalse("Announcement", str.contains("<p id=\"announcement\">"));
properties.setProperty("asset.host", hostTemp);
properties.setProperty("asset.path", pathTemp != null ? pathTemp : "");
}
@Test
+ public void testFormHtmlAnnouncements () {
+ ExWSConf.clearProp();
+ Properties properties = ExWSConf.properties(null);
+ String announceTemp = properties.getProperty("announcement");
+ properties.setProperty("announcement", "Test World");
+
+ Response responsehtml = target("/export").request(MediaType.TEXT_HTML)
+ .get();
+ assertEquals("HTTP Code",
+ Status.OK.getStatusCode(), responsehtml.getStatus());
+ String str = responsehtml.readEntity(String.class);
+ assertTrue("HTTP Body", str.contains("<title>Export</title>"));
+ assertTrue("Announcement", str.contains("<p id=\"announcement\">Test World</p>"));
+ assertTrue("Note", str.contains("on the settings"));
+
+ properties.setProperty("announcement", announceTemp != null ? announceTemp : "");
+ }
+
+
+ @Test
public void testFormHtmlExporters () {
Response responsehtml = target("/export").request(MediaType.TEXT_HTML)
.get();