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. Screenshot 2025-04-18 at 08 17 37 However, if the SHOW_SURVEY parameter is explicitly set to false, the survey will no longer be displayed. Screenshot 2025-04-18 at 08 18 39 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