From e5cd8ce901ce0ca0b3e68bf3d8260ef7c7b9862d Mon Sep 17 00:00:00 2001
From: Muratcan Yeldan <48444068+muratcanyeldan@users.noreply.github.com>
Date: Sun, 20 Apr 2025 13:49:34 +0300
Subject: [PATCH] Add SHOW_SURVEY Environment variable to Docker (#3378)
In the previous implementation, the survey was displayed on the main
screen when the homepage was opened for the 5th, 10th, 15th, 22nd, 30th,
50th, 75th, 100th, 150th, or 200th time, as long as the "Do not show
again" option hadn't been selected.
With this new feature, if the SHOW_SURVEY environment variable is set to
true or not set at all in the Docker configuration, the survey will
continue to be shown as before.
However, if the SHOW_SURVEY parameter is explicitly set to false, the
survey will no longer be displayed.
Closes #1573
---
## Checklist
### General
- [X] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [X] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md)
(if applicable)
- [X] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md)
(if applicable)
- [X] I have performed a self-review of my own code
- [X] My changes generate no new warnings
### Documentation
- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)
### UI Changes (if applicable)
- [X] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)
### Testing (if applicable)
- [X] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing)
for more details.
---
DeveloperGuide.md | 1 +
.../docker-compose-latest-fat-endpoints-disabled.yml | 1 +
.../docker-compose-latest-fat-security-postgres.yml | 1 +
exampleYmlFiles/docker-compose-latest-fat-security.yml | 1 +
exampleYmlFiles/docker-compose-latest-security-with-sso.yml | 1 +
exampleYmlFiles/docker-compose-latest-security.yml | 1 +
.../docker-compose-latest-ultra-lite-security.yml | 1 +
exampleYmlFiles/docker-compose-latest-ultra-lite.yml | 1 +
exampleYmlFiles/docker-compose-latest.yml | 1 +
.../software/SPDF/controller/web/HomeWebController.java | 3 +++
src/main/resources/static/js/pages/home.js | 6 +++++-
src/main/resources/templates/home.html | 2 ++
12 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/DeveloperGuide.md b/DeveloperGuide.md
index 8a4b53b6b1..bbf8b86777 100644
--- a/DeveloperGuide.md
+++ b/DeveloperGuide.md
@@ -153,6 +153,7 @@ services:
SYSTEM_MAXFILESIZE: "100"
METRICS_ENABLED: "true"
SYSTEM_GOOGLEVISIBILITY: "true"
+ SHOW_SURVEY: "true"
restart: on-failure:5
```
diff --git a/exampleYmlFiles/docker-compose-latest-fat-endpoints-disabled.yml b/exampleYmlFiles/docker-compose-latest-fat-endpoints-disabled.yml
index 7296846811..f36cd5bc74 100644
--- a/exampleYmlFiles/docker-compose-latest-fat-endpoints-disabled.yml
+++ b/exampleYmlFiles/docker-compose-latest-fat-endpoints-disabled.yml
@@ -32,4 +32,5 @@ services:
SYSTEM_MAXFILESIZE: "100"
METRICS_ENABLED: "true"
SYSTEM_GOOGLEVISIBILITY: "true"
+ SHOW_SURVEY: "true"
restart: on-failure:5
diff --git a/exampleYmlFiles/docker-compose-latest-fat-security-postgres.yml b/exampleYmlFiles/docker-compose-latest-fat-security-postgres.yml
index b79631b6eb..c04da19123 100644
--- a/exampleYmlFiles/docker-compose-latest-fat-security-postgres.yml
+++ b/exampleYmlFiles/docker-compose-latest-fat-security-postgres.yml
@@ -36,6 +36,7 @@ services:
SYSTEM_DATASOURCE_CUSTOMDATABASEURL: "jdbc:postgresql://db:5432/stirling_pdf"
SYSTEM_DATASOURCE_USERNAME: "admin"
SYSTEM_DATASOURCE_PASSWORD: "stirling"
+ SHOW_SURVEY: "true"
restart: on-failure:5
db:
diff --git a/exampleYmlFiles/docker-compose-latest-fat-security.yml b/exampleYmlFiles/docker-compose-latest-fat-security.yml
index 5d01f33f0c..d9e4fa5a93 100644
--- a/exampleYmlFiles/docker-compose-latest-fat-security.yml
+++ b/exampleYmlFiles/docker-compose-latest-fat-security.yml
@@ -30,4 +30,5 @@ services:
SYSTEM_MAXFILESIZE: "100"
METRICS_ENABLED: "true"
SYSTEM_GOOGLEVISIBILITY: "true"
+ SHOW_SURVEY: "true"
restart: on-failure:5
diff --git a/exampleYmlFiles/docker-compose-latest-security-with-sso.yml b/exampleYmlFiles/docker-compose-latest-security-with-sso.yml
index 9b86d4cc2e..1514dd7d8e 100644
--- a/exampleYmlFiles/docker-compose-latest-security-with-sso.yml
+++ b/exampleYmlFiles/docker-compose-latest-security-with-sso.yml
@@ -38,4 +38,5 @@ services:
SYSTEM_MAXFILESIZE: "100"
METRICS_ENABLED: "true"
SYSTEM_GOOGLEVISIBILITY: "true"
+ SHOW_SURVEY: "true"
restart: on-failure:5
diff --git a/exampleYmlFiles/docker-compose-latest-security.yml b/exampleYmlFiles/docker-compose-latest-security.yml
index b79ea80166..ccd3a41c6a 100644
--- a/exampleYmlFiles/docker-compose-latest-security.yml
+++ b/exampleYmlFiles/docker-compose-latest-security.yml
@@ -30,4 +30,5 @@ services:
SYSTEM_MAXFILESIZE: "100"
METRICS_ENABLED: "true"
SYSTEM_GOOGLEVISIBILITY: "true"
+ SHOW_SURVEY: "true"
restart: on-failure:5
diff --git a/exampleYmlFiles/docker-compose-latest-ultra-lite-security.yml b/exampleYmlFiles/docker-compose-latest-ultra-lite-security.yml
index 8f3932f7a2..c59713b716 100644
--- a/exampleYmlFiles/docker-compose-latest-ultra-lite-security.yml
+++ b/exampleYmlFiles/docker-compose-latest-ultra-lite-security.yml
@@ -27,4 +27,5 @@ services:
SYSTEM_MAXFILESIZE: "100"
METRICS_ENABLED: "true"
SYSTEM_GOOGLEVISIBILITY: "true"
+ SHOW_SURVEY: "true"
restart: on-failure:5
diff --git a/exampleYmlFiles/docker-compose-latest-ultra-lite.yml b/exampleYmlFiles/docker-compose-latest-ultra-lite.yml
index d194be21ca..6148f7251a 100644
--- a/exampleYmlFiles/docker-compose-latest-ultra-lite.yml
+++ b/exampleYmlFiles/docker-compose-latest-ultra-lite.yml
@@ -26,4 +26,5 @@ services:
SYSTEM_MAXFILESIZE: "100"
METRICS_ENABLED: "true"
SYSTEM_GOOGLEVISIBILITY: "true"
+ SHOW_SURVEY: "true"
restart: on-failure:5
diff --git a/exampleYmlFiles/docker-compose-latest.yml b/exampleYmlFiles/docker-compose-latest.yml
index 7dec8a9598..51266ee8bc 100644
--- a/exampleYmlFiles/docker-compose-latest.yml
+++ b/exampleYmlFiles/docker-compose-latest.yml
@@ -28,4 +28,5 @@ services:
SYSTEM_MAXFILESIZE: "100"
METRICS_ENABLED: "true"
SYSTEM_GOOGLEVISIBILITY: "true"
+ SHOW_SURVEY: "true"
restart: on-failure:5
diff --git a/src/main/java/stirling/software/SPDF/controller/web/HomeWebController.java b/src/main/java/stirling/software/SPDF/controller/web/HomeWebController.java
index 3341d00541..0fdd8e9cee 100644
--- a/src/main/java/stirling/software/SPDF/controller/web/HomeWebController.java
+++ b/src/main/java/stirling/software/SPDF/controller/web/HomeWebController.java
@@ -67,6 +67,9 @@ public class HomeWebController {
@GetMapping("/")
public String home(Model model) {
model.addAttribute("currentPage", "home");
+ String showSurvey = System.getenv("SHOW_SURVEY");
+ boolean showSurveyValue = showSurvey == null || "true".equalsIgnoreCase(showSurvey);
+ model.addAttribute("showSurveyFromDocker", showSurveyValue);
return "home";
}
diff --git a/src/main/resources/static/js/pages/home.js b/src/main/resources/static/js/pages/home.js
index 7872374eb6..6c48fe81d4 100644
--- a/src/main/resources/static/js/pages/home.js
+++ b/src/main/resources/static/js/pages/home.js
@@ -61,6 +61,10 @@ document.addEventListener('DOMContentLoaded', function () {
localStorage.setItem('pageViews', pageViews.toString());
function shouldShowSurvey() {
+ if(!window.showSurvey) {
+ return false;
+ }
+
if (localStorage.getItem('dontShowSurvey') === 'true' || localStorage.getItem('surveyTaken') === 'true') {
return false;
}
@@ -112,7 +116,7 @@ function setAsDefault(value) {
function adjustVisibleElements() {
const container = document.querySelector('.recent-features');
- if(!container) return;
+ if(!container) return;
const subElements = Array.from(container.children);
let totalWidth = 0;
diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html
index 925aefe8e5..3842c1fe78 100644
--- a/src/main/resources/templates/home.html
+++ b/src/main/resources/templates/home.html
@@ -218,6 +218,8 @@
/**/
+
+ window.showSurvey = /*[[${showSurveyFromDocker}]]*/ true