mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-09-08 17:51:20 +02:00
Merge branch 'main' into UIUX/multi-tool-button-container-styling
This commit is contained in:
commit
29aebefc03
20
.github/workflows/multiOSReleases.yml
vendored
20
.github/workflows/multiOSReleases.yml
vendored
@ -27,21 +27,25 @@ jobs:
|
|||||||
|
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||||
|
|
||||||
# Get version number
|
- name: Set up JDK
|
||||||
|
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||||
|
with:
|
||||||
|
distribution: 'temurin'
|
||||||
|
java-version: '21'
|
||||||
|
|
||||||
|
# ✅ Get version from Gradle
|
||||||
- name: Get version number
|
- name: Get version number
|
||||||
id: versionNumber
|
id: versionNumber
|
||||||
run: |
|
run: |
|
||||||
VERSION=$(grep "^version =" build.gradle | awk -F'"' '{print $2}')
|
VERSION=$(./gradlew printVersion --quiet | tail -1)
|
||||||
echo "versionNumber=$VERSION" >> $GITHUB_OUTPUT
|
echo "versionNumber=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
# ✅ Get Mac-specific version from Gradle
|
||||||
- name: Get version number mac
|
- name: Get version number mac
|
||||||
id: versionNumberMac
|
id: versionNumberMac
|
||||||
run: |
|
run: |
|
||||||
VERSION=$(grep "^version =" build.gradle | awk -F'"' '{print $2}')
|
VERSION_MAC=$(./gradlew printMacVersion --quiet | tail -1)
|
||||||
CURRENT_YEAR=$(date +'%Y')
|
echo "versionNumberMac=$VERSION_MAC" >> $GITHUB_OUTPUT
|
||||||
IFS='.' read -r -a VERSION_PARTS <<< "$VERSION"
|
|
||||||
MAC_VERSION="$CURRENT_YEAR.${VERSION_PARTS[1]:-0}.${VERSION_PARTS[2]:-0}"
|
|
||||||
echo "versionNumberMac=$MAC_VERSION" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
build-portable:
|
build-portable:
|
||||||
needs: read_versions
|
needs: read_versions
|
||||||
@ -82,7 +86,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
mkdir ./binaries
|
mkdir ./binaries
|
||||||
mv ./build/launch4j/Stirling-PDF.exe ./binaries/win-Stirling-PDF-portable-Server${{ matrix.file_suffix }}.exe
|
mv ./build/launch4j/Stirling-PDF.exe ./binaries/win-Stirling-PDF-portable-Server${{ matrix.file_suffix }}.exe
|
||||||
mv ./build/libs/Stirling-PDF-${{ needs.read_versions.outputs.version }}.jar ./binaries/Stirling-PDF${{ matrix.file_suffix }}.jar
|
mv ./stirling-pdf/build/libs/stirling-pdf-${{ needs.read_versions.outputs.version }}.jar ./binaries/Stirling-PDF${{ matrix.file_suffix }}.jar
|
||||||
|
|
||||||
- name: Upload build artifacts
|
- name: Upload build artifacts
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||||
|
46
build.gradle
46
build.gradle
@ -15,6 +15,8 @@ plugins {
|
|||||||
|
|
||||||
import com.github.jk1.license.render.*
|
import com.github.jk1.license.render.*
|
||||||
import org.gradle.internal.os.OperatingSystem
|
import org.gradle.internal.os.OperatingSystem
|
||||||
|
import org.panteleyev.jpackage.ImageType
|
||||||
|
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
import java.time.Year
|
import java.time.Year
|
||||||
|
|
||||||
@ -43,9 +45,19 @@ bootJar {
|
|||||||
enabled = false
|
enabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Configure main class for the root project
|
||||||
|
springBoot {
|
||||||
|
mainClass = 'stirling.software.SPDF.SPDFApplication'
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
maven { url = 'https://build.shibboleth.net/maven/releases' }
|
||||||
|
}
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
group = 'stirling.software'
|
group = 'stirling.software'
|
||||||
version = '1.0.0'
|
version = '1.0.2'
|
||||||
|
|
||||||
configurations.configureEach {
|
configurations.configureEach {
|
||||||
exclude group: 'commons-logging', module: 'commons-logging'
|
exclude group: 'commons-logging', module: 'commons-logging'
|
||||||
@ -53,7 +65,6 @@ allprojects {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
tasks.register('writeVersion') {
|
tasks.register('writeVersion') {
|
||||||
def propsFile = file("$projectDir/common/src/main/resources/version.properties")
|
def propsFile = file("$projectDir/common/src/main/resources/version.properties")
|
||||||
def propsDir = propsFile.parentFile
|
def propsDir = propsFile.parentFile
|
||||||
@ -78,6 +89,10 @@ tasks.register('writeVersion') {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.named('createExe') {
|
||||||
|
dependsOn(":stirling-pdf:bootJar")
|
||||||
|
}
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
apply plugin: 'java-library'
|
apply plugin: 'java-library'
|
||||||
@ -90,9 +105,11 @@ subprojects {
|
|||||||
sourceCompatibility = JavaVersion.VERSION_17
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (project.name != "stirling-pdf") {
|
||||||
bootJar {
|
bootJar {
|
||||||
enabled = false
|
enabled = false
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
@ -194,6 +211,14 @@ openApi {
|
|||||||
waitTimeInSeconds = 60 // Increase the wait time to 60 seconds
|
waitTimeInSeconds = 60 // Increase the wait time to 60 seconds
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Configure the forked spring boot run task to properly delegate to the stirling-pdf module
|
||||||
|
tasks.named('forkedSpringBootRun') {
|
||||||
|
dependsOn ':stirling-pdf:bootRun'
|
||||||
|
doFirst {
|
||||||
|
println "Delegating forkedSpringBootRun to :stirling-pdf:bootRun"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//0.11.5 to 2024.11.5
|
//0.11.5 to 2024.11.5
|
||||||
static def getMacVersion(String version) {
|
static def getMacVersion(String version) {
|
||||||
def currentYear = Year.now().getValue()
|
def currentYear = Year.now().getValue()
|
||||||
@ -202,6 +227,7 @@ static def getMacVersion(String version) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
jpackage {
|
jpackage {
|
||||||
|
dependsOn(":stirling-pdf:bootJar")
|
||||||
input = layout.projectDirectory.dir("stirling-pdf/build/libs")
|
input = layout.projectDirectory.dir("stirling-pdf/build/libs")
|
||||||
destination = layout.projectDirectory.dir("build/jpackage")
|
destination = layout.projectDirectory.dir("build/jpackage")
|
||||||
mainJar = "Stirling-PDF-${project.version}.jar"
|
mainJar = "Stirling-PDF-${project.version}.jar"
|
||||||
@ -244,7 +270,7 @@ jpackage {
|
|||||||
winUpgradeUuid = "2a43ed0c-b8c2-40cf-89e1-751129b87641" // Unique identifier for updates
|
winUpgradeUuid = "2a43ed0c-b8c2-40cf-89e1-751129b87641" // Unique identifier for updates
|
||||||
winHelpUrl = "https://github.com/Stirling-Tools/Stirling-PDF"
|
winHelpUrl = "https://github.com/Stirling-Tools/Stirling-PDF"
|
||||||
winUpdateUrl = "https://github.com/Stirling-Tools/Stirling-PDF/releases"
|
winUpdateUrl = "https://github.com/Stirling-Tools/Stirling-PDF/releases"
|
||||||
type = "exe"
|
type = ImageType.EXE
|
||||||
installDir = "C:/Program Files/Stirling-PDF"
|
installDir = "C:/Program Files/Stirling-PDF"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +278,7 @@ jpackage {
|
|||||||
mac {
|
mac {
|
||||||
appVersion = getMacVersion(project.version.toString())
|
appVersion = getMacVersion(project.version.toString())
|
||||||
icon = layout.projectDirectory.file("stirling-pdf/src/main/resources/static/favicon.icns")
|
icon = layout.projectDirectory.file("stirling-pdf/src/main/resources/static/favicon.icns")
|
||||||
type = "dmg"
|
type = ImageType.DMG
|
||||||
macPackageIdentifier = "Stirling PDF"
|
macPackageIdentifier = "Stirling PDF"
|
||||||
macPackageName = "Stirling PDF"
|
macPackageName = "Stirling PDF"
|
||||||
macAppCategory = "public.app-category.productivity"
|
macAppCategory = "public.app-category.productivity"
|
||||||
@ -274,7 +300,7 @@ jpackage {
|
|||||||
linux {
|
linux {
|
||||||
appVersion = project.version
|
appVersion = project.version
|
||||||
icon = layout.projectDirectory.file("stirling-pdf/src/main/resources/static/favicon.png")
|
icon = layout.projectDirectory.file("stirling-pdf/src/main/resources/static/favicon.png")
|
||||||
type = "deb" // Can also use "rpm" for Red Hat-based systems
|
type = ImageType.DEB // Can also use "rpm" for Red Hat-based systems
|
||||||
|
|
||||||
// Debian package configuration
|
// Debian package configuration
|
||||||
//linuxPackageName = "stirlingpdf"
|
//linuxPackageName = "stirlingpdf"
|
||||||
@ -445,7 +471,7 @@ launch4j {
|
|||||||
} else {
|
} else {
|
||||||
headerType = "console"
|
headerType = "console"
|
||||||
}
|
}
|
||||||
jarTask = tasks.bootJar
|
jarTask = project(":stirling-pdf").tasks.bootJar
|
||||||
|
|
||||||
errTitle="Encountered error, do you have Java 21?"
|
errTitle="Encountered error, do you have Java 21?"
|
||||||
downloadUrl="https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.exe"
|
downloadUrl="https://download.oracle.com/java/21/latest/jdk-21_windows-x64_bin.exe"
|
||||||
@ -507,6 +533,14 @@ swaggerhubUpload {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
implementation project(':stirling-pdf')
|
||||||
|
implementation project(':common')
|
||||||
|
if (System.getenv('DISABLE_ADDITIONAL_FEATURES') != 'true'
|
||||||
|
|| (project.hasProperty('DISABLE_ADDITIONAL_FEATURES')
|
||||||
|
&& System.getProperty('DISABLE_ADDITIONAL_FEATURES') != 'true')) {
|
||||||
|
implementation project(':proprietary')
|
||||||
|
}
|
||||||
|
|
||||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||||
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.12.2'
|
testRuntimeOnly 'org.junit.platform:junit-platform-launcher:1.12.2'
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ import org.springframework.core.env.Environment;
|
|||||||
import org.springframework.core.io.ClassPathResource;
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.core.io.Resource;
|
import org.springframework.core.io.Resource;
|
||||||
import org.springframework.core.io.ResourceLoader;
|
import org.springframework.core.io.ResourceLoader;
|
||||||
|
import org.springframework.util.ClassUtils;
|
||||||
import org.thymeleaf.spring6.SpringTemplateEngine;
|
import org.thymeleaf.spring6.SpringTemplateEngine;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@ -148,23 +149,11 @@ public class AppConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "activeSecurity")
|
@Bean(name = "activeSecurity")
|
||||||
public boolean activeSecurity() {
|
|
||||||
String disableAdditionalFeatures = env.getProperty("DISABLE_ADDITIONAL_FEATURES");
|
|
||||||
|
|
||||||
if (disableAdditionalFeatures != null) {
|
|
||||||
// DISABLE_ADDITIONAL_FEATURES=true means security OFF, so return false
|
|
||||||
// DISABLE_ADDITIONAL_FEATURES=false means security ON, so return true
|
|
||||||
return !Boolean.parseBoolean(disableAdditionalFeatures);
|
|
||||||
}
|
|
||||||
|
|
||||||
return env.getProperty("DOCKER_ENABLE_SECURITY", Boolean.class, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "missingActiveSecurity")
|
|
||||||
@ConditionalOnMissingClass(
|
|
||||||
"stirling.software.proprietary.security.configuration.SecurityConfiguration")
|
|
||||||
public boolean missingActiveSecurity() {
|
public boolean missingActiveSecurity() {
|
||||||
return true;
|
return ClassUtils.isPresent(
|
||||||
|
"stirling.software.proprietary.security.configuration.SecurityConfiguration",
|
||||||
|
this.getClass().getClassLoader()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "directoryFilter")
|
@Bean(name = "directoryFilter")
|
||||||
|
@ -17,7 +17,6 @@ services:
|
|||||||
- ./stirling/latest/config:/configs:rw
|
- ./stirling/latest/config:/configs:rw
|
||||||
- ./stirling/latest/logs:/logs:rw
|
- ./stirling/latest/logs:/logs:rw
|
||||||
environment:
|
environment:
|
||||||
DISABLE_ADDITIONAL_FEATURES: "true"
|
|
||||||
SECURITY_ENABLELOGIN: "false"
|
SECURITY_ENABLELOGIN: "false"
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
UI_APPNAME: Stirling-PDF-Ultra-lite
|
UI_APPNAME: Stirling-PDF-Ultra-lite
|
||||||
|
@ -18,7 +18,6 @@ services:
|
|||||||
- ./stirling/latest/config:/configs:rw
|
- ./stirling/latest/config:/configs:rw
|
||||||
- ./stirling/latest/logs:/logs:rw
|
- ./stirling/latest/logs:/logs:rw
|
||||||
environment:
|
environment:
|
||||||
DISABLE_ADDITIONAL_FEATURES: "true"
|
|
||||||
SECURITY_ENABLELOGIN: "false"
|
SECURITY_ENABLELOGIN: "false"
|
||||||
LANGS: "en_GB,en_US,ar_AR,de_DE,fr_FR,es_ES,zh_CN,zh_TW,ca_CA,it_IT,sv_SE,pl_PL,ro_RO,ko_KR,pt_BR,ru_RU,el_GR,hi_IN,hu_HU,tr_TR,id_ID"
|
LANGS: "en_GB,en_US,ar_AR,de_DE,fr_FR,es_ES,zh_CN,zh_TW,ca_CA,it_IT,sv_SE,pl_PL,ro_RO,ko_KR,pt_BR,ru_RU,el_GR,hi_IN,hu_HU,tr_TR,id_ID"
|
||||||
SYSTEM_DEFAULTLOCALE: en-US
|
SYSTEM_DEFAULTLOCALE: en-US
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
echo "Running Stirling PDF with DISABLE_ADDITIONAL_FEATURES=${DISABLE_ADDITIONAL_FEATURES} and VERSION_TAG=${VERSION_TAG}"
|
echo "Running Stirling PDF with DISABLE_ADDITIONAL_FEATURES=${DISABLE_ADDITIONAL_FEATURES} and VERSION_TAG=${VERSION_TAG}"
|
||||||
# Check for DISABLE_ADDITIONAL_FEATURES and download the appropriate JAR if required
|
# Check for DISABLE_ADDITIONAL_FEATURES and download the appropriate JAR if required
|
||||||
if [ "$DISABLE_ADDITIONAL_FEATURES" = "false" ] && [ "$VERSION_TAG" != "alpha" ]; then
|
if [ "$VERSION_TAG" != "alpha" ] && [ "$VERSION_TAG" != "ALPHA" ]; then
|
||||||
|
if [ "$DISABLE_ADDITIONAL_FEATURES" = "false" ] || [ "$DISABLE_ADDITIONAL_FEATURES" = "FALSE" ] || [ "$DOCKER_ENABLE_SECURITY" = "true" ] || [ "$DOCKER_ENABLE_SECURITY" = "TRUE" ]; then
|
||||||
if [ ! -f app-security.jar ]; then
|
if [ ! -f app-security.jar ]; then
|
||||||
echo "Trying to download from: https://files.stirlingpdf.com/v$VERSION_TAG/Stirling-PDF-with-login.jar"
|
echo "Trying to download from: https://files.stirlingpdf.com/v$VERSION_TAG/Stirling-PDF-with-login.jar"
|
||||||
curl -L -o app-security.jar https://files.stirlingpdf.com/v$VERSION_TAG/Stirling-PDF-with-login.jar
|
curl -L -o app-security.jar https://files.stirlingpdf.com/v$VERSION_TAG/Stirling-PDF-with-login.jar
|
||||||
@ -18,4 +19,5 @@ if [ "$DISABLE_ADDITIONAL_FEATURES" = "false" ] && [ "$VERSION_TAG" != "alpha" ]
|
|||||||
chmod 755 app.jar || true
|
chmod 755 app.jar || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -146,5 +146,10 @@ bootJar {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Configure main class for Spring Boot
|
||||||
|
springBoot {
|
||||||
|
mainClass = 'stirling.software.SPDF.SPDFApplication'
|
||||||
|
}
|
||||||
|
|
||||||
bootJar.dependsOn ':common:jar'
|
bootJar.dependsOn ':common:jar'
|
||||||
bootJar.dependsOn ':proprietary:jar'
|
bootJar.dependsOn ':proprietary:jar'
|
||||||
|
@ -26,8 +26,6 @@ public class WebMvcConfig implements WebMvcConfigurer {
|
|||||||
registry.addResourceHandler("/**")
|
registry.addResourceHandler("/**")
|
||||||
.addResourceLocations(
|
.addResourceLocations(
|
||||||
"file:" + InstallationPathConfig.getStaticPath(), "classpath:/static/");
|
"file:" + InstallationPathConfig.getStaticPath(), "classpath:/static/");
|
||||||
registry.addResourceHandler("/js/**").addResourceLocations("classpath:/static/js/");
|
|
||||||
registry.addResourceHandler("/css/**").addResourceLocations("classpath:/static/css/");
|
|
||||||
// .setCachePeriod(0); // Optional: disable caching
|
// .setCachePeriod(0); // Optional: disable caching
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -283,7 +283,7 @@
|
|||||||
{
|
{
|
||||||
"moduleName": "com.opencsv:opencsv",
|
"moduleName": "com.opencsv:opencsv",
|
||||||
"moduleUrl": "http://opencsv.sf.net",
|
"moduleUrl": "http://opencsv.sf.net",
|
||||||
"moduleVersion": "5.11.1",
|
"moduleVersion": "5.11.2",
|
||||||
"moduleLicense": "Apache 2",
|
"moduleLicense": "Apache 2",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
@ -800,13 +800,6 @@
|
|||||||
"moduleLicense": "GPL2 w/ CPE",
|
"moduleLicense": "GPL2 w/ CPE",
|
||||||
"moduleLicenseUrl": "https://oss.oracle.com/licenses/CDDL+GPL-1.1"
|
"moduleLicenseUrl": "https://oss.oracle.com/licenses/CDDL+GPL-1.1"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"moduleName": "junit:junit",
|
|
||||||
"moduleUrl": "http://junit.org",
|
|
||||||
"moduleVersion": "4.13.2",
|
|
||||||
"moduleLicense": "Eclipse Public License 1.0",
|
|
||||||
"moduleLicenseUrl": "http://www.eclipse.org/legal/epl-v10.html"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"moduleName": "me.friwi:gluegen-rt",
|
"moduleName": "me.friwi:gluegen-rt",
|
||||||
"moduleUrl": "http://jogamp.org/gluegen/www/",
|
"moduleUrl": "http://jogamp.org/gluegen/www/",
|
||||||
@ -1310,20 +1303,6 @@
|
|||||||
"moduleLicense": "GNU General Public License, version 2 with the GNU Classpath Exception",
|
"moduleLicense": "GNU General Public License, version 2 with the GNU Classpath Exception",
|
||||||
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
|
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"moduleName": "org.hamcrest:hamcrest",
|
|
||||||
"moduleUrl": "http://hamcrest.org/JavaHamcrest/",
|
|
||||||
"moduleVersion": "3.0",
|
|
||||||
"moduleLicense": "BSD-3-Clause",
|
|
||||||
"moduleLicenseUrl": "https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"moduleName": "org.hamcrest:hamcrest-core",
|
|
||||||
"moduleUrl": "http://hamcrest.org/JavaHamcrest/",
|
|
||||||
"moduleVersion": "3.0",
|
|
||||||
"moduleLicense": "BSD-3-Clause",
|
|
||||||
"moduleLicenseUrl": "https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"moduleName": "org.hdrhistogram:HdrHistogram",
|
"moduleName": "org.hdrhistogram:HdrHistogram",
|
||||||
"moduleUrl": "http://hdrhistogram.github.io/HdrHistogram/",
|
"moduleUrl": "http://hdrhistogram.github.io/HdrHistogram/",
|
||||||
@ -1379,34 +1358,6 @@
|
|||||||
"moduleLicense": "The Apache License, Version 2.0",
|
"moduleLicense": "The Apache License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"moduleName": "org.junit.platform:junit-platform-commons",
|
|
||||||
"moduleUrl": "https://junit.org/junit5/",
|
|
||||||
"moduleVersion": "1.12.2",
|
|
||||||
"moduleLicense": "Eclipse Public License v2.0",
|
|
||||||
"moduleLicenseUrl": "https://www.eclipse.org/legal/epl-v20.html"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"moduleName": "org.junit.platform:junit-platform-engine",
|
|
||||||
"moduleUrl": "https://junit.org/junit5/",
|
|
||||||
"moduleVersion": "1.12.2",
|
|
||||||
"moduleLicense": "Eclipse Public License v2.0",
|
|
||||||
"moduleLicenseUrl": "https://www.eclipse.org/legal/epl-v20.html"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"moduleName": "org.junit.vintage:junit-vintage-engine",
|
|
||||||
"moduleUrl": "https://junit.org/junit5/",
|
|
||||||
"moduleVersion": "5.12.2",
|
|
||||||
"moduleLicense": "Eclipse Public License v2.0",
|
|
||||||
"moduleLicenseUrl": "https://www.eclipse.org/legal/epl-v20.html"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"moduleName": "org.junit:junit-bom",
|
|
||||||
"moduleUrl": "https://junit.org/junit5/",
|
|
||||||
"moduleVersion": "5.12.2",
|
|
||||||
"moduleLicense": "Eclipse Public License v2.0",
|
|
||||||
"moduleLicenseUrl": "https://www.eclipse.org/legal/epl-v20.html"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"moduleName": "org.latencyutils:LatencyUtils",
|
"moduleName": "org.latencyutils:LatencyUtils",
|
||||||
"moduleUrl": "http://latencyutils.github.io/LatencyUtils/",
|
"moduleUrl": "http://latencyutils.github.io/LatencyUtils/",
|
||||||
@ -1516,13 +1467,6 @@
|
|||||||
"moduleLicense": "The Apache Software License, Version 2.0",
|
"moduleLicense": "The Apache Software License, Version 2.0",
|
||||||
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
"moduleLicenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"moduleName": "org.opentest4j:opentest4j",
|
|
||||||
"moduleUrl": "https://github.com/ota4j-team/opentest4j",
|
|
||||||
"moduleVersion": "1.3.0",
|
|
||||||
"moduleLicense": "The Apache License, Version 2.0",
|
|
||||||
"moduleLicenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"moduleName": "org.ow2.asm:asm",
|
"moduleName": "org.ow2.asm:asm",
|
||||||
"moduleUrl": "http://asm.ow2.org",
|
"moduleUrl": "http://asm.ow2.org",
|
||||||
|
@ -2,6 +2,13 @@
|
|||||||
if (window.isDownloadScriptInitialized) return; // Prevent re-execution
|
if (window.isDownloadScriptInitialized) return; // Prevent re-execution
|
||||||
window.isDownloadScriptInitialized = true;
|
window.isDownloadScriptInitialized = true;
|
||||||
|
|
||||||
|
// Global PDF processing count tracking for survey system
|
||||||
|
window.incrementPdfProcessingCount = function() {
|
||||||
|
let pdfProcessingCount = parseInt(localStorage.getItem('pdfProcessingCount') || '0');
|
||||||
|
pdfProcessingCount++;
|
||||||
|
localStorage.setItem('pdfProcessingCount', pdfProcessingCount.toString());
|
||||||
|
};
|
||||||
|
|
||||||
const {
|
const {
|
||||||
pdfPasswordPrompt,
|
pdfPasswordPrompt,
|
||||||
multipleInputsForSingleRequest,
|
multipleInputsForSingleRequest,
|
||||||
@ -312,6 +319,11 @@
|
|||||||
pdf_pages: pageCount,
|
pdf_pages: pageCount,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Increment PDF processing count for survey tracking
|
||||||
|
if (success && typeof window.incrementPdfProcessingCount === 'function') {
|
||||||
|
window.incrementPdfProcessingCount();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,6 +271,11 @@ class PdfContainer {
|
|||||||
pdf_pages: pageCount,
|
pdf_pages: pageCount,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Increment PDF processing count for survey tracking
|
||||||
|
if (success && typeof window.incrementPdfProcessingCount === 'function') {
|
||||||
|
window.incrementPdfProcessingCount();
|
||||||
|
}
|
||||||
} catch { }
|
} catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,19 +66,16 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
const dontShowAgain = document.getElementById('dontShowAgain');
|
const dontShowAgain = document.getElementById('dontShowAgain');
|
||||||
const takeSurveyButton = document.getElementById('takeSurvey');
|
const takeSurveyButton = document.getElementById('takeSurvey');
|
||||||
|
|
||||||
const viewThresholds = [5, 10, 15, 22, 30, 50, 75, 100, 150, 200];
|
const pdfProcessingThresholds = [8, 15, 22, 35, 50, 75, 100, 150];
|
||||||
|
|
||||||
// Check if survey version changed and reset page views if it did
|
// Check if survey version changed and reset PDF processing count if it did
|
||||||
const storedVersion = localStorage.getItem('surveyVersion');
|
const storedVersion = localStorage.getItem('surveyVersion');
|
||||||
if (storedVersion && storedVersion !== surveyVersion) {
|
if (storedVersion && storedVersion !== surveyVersion) {
|
||||||
localStorage.setItem('pageViews', '0');
|
localStorage.setItem('pdfProcessingCount', '0');
|
||||||
localStorage.setItem('surveyVersion', surveyVersion);
|
localStorage.setItem('surveyVersion', surveyVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
let pageViews = parseInt(localStorage.getItem('pageViews') || '0');
|
let pdfProcessingCount = parseInt(localStorage.getItem('pdfProcessingCount') || '0');
|
||||||
|
|
||||||
pageViews++;
|
|
||||||
localStorage.setItem('pageViews', pageViews.toString());
|
|
||||||
|
|
||||||
function shouldShowSurvey() {
|
function shouldShowSurvey() {
|
||||||
if(!window.showSurvey) {
|
if(!window.showSurvey) {
|
||||||
@ -90,11 +87,11 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If survey version changed and we hit a threshold, show the survey
|
// If survey version changed and we hit a threshold, show the survey
|
||||||
if (localStorage.getItem('surveyVersion') !== surveyVersion && viewThresholds.includes(pageViews)) {
|
if (localStorage.getItem('surveyVersion') !== surveyVersion && pdfProcessingThresholds.includes(pdfProcessingCount)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return viewThresholds.includes(pageViews);
|
return pdfProcessingThresholds.includes(pdfProcessingCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldShowSurvey()) {
|
if (shouldShowSurvey()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user