mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-09-12 17:52:13 +02:00
pixel changes, redact color fix, version bump
This commit is contained in:
parent
5d073909cc
commit
3b18df1c4f
@ -29,7 +29,7 @@ ext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "stirling.software"
|
group = "stirling.software"
|
||||||
version = "0.46.0"
|
version = "0.46.1"
|
||||||
|
|
||||||
java {
|
java {
|
||||||
// 17 is lowest but we support and recommend 21
|
// 17 is lowest but we support and recommend 21
|
||||||
|
@ -33,6 +33,11 @@ public class EEAppConfig {
|
|||||||
public boolean runningProOrHigher() {
|
public boolean runningProOrHigher() {
|
||||||
return licenseKeyChecker.getPremiumLicenseEnabledResult() != License.NORMAL;
|
return licenseKeyChecker.getPremiumLicenseEnabledResult() != License.NORMAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean(name = "license")
|
||||||
|
public String licenseType() {
|
||||||
|
return licenseKeyChecker.getPremiumLicenseEnabledResult().name();
|
||||||
|
}
|
||||||
|
|
||||||
@Bean(name = "runningEE")
|
@Bean(name = "runningEE")
|
||||||
public boolean runningEnterprise() {
|
public boolean runningEnterprise() {
|
||||||
|
@ -5,6 +5,7 @@ import java.nio.file.Files;
|
|||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
@ -15,6 +16,7 @@ import org.springframework.context.annotation.Bean;
|
|||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
|
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;
|
||||||
@ -33,6 +35,8 @@ public class AppConfig {
|
|||||||
|
|
||||||
private final ApplicationProperties applicationProperties;
|
private final ApplicationProperties applicationProperties;
|
||||||
|
|
||||||
|
private final Environment env;
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnProperty(name = "system.customHTMLFiles", havingValue = "true")
|
@ConditionalOnProperty(name = "system.customHTMLFiles", havingValue = "true")
|
||||||
public SpringTemplateEngine templateEngine(ResourceLoader resourceLoader) {
|
public SpringTemplateEngine templateEngine(ResourceLoader resourceLoader) {
|
||||||
@ -193,4 +197,37 @@ public class AppConfig {
|
|||||||
public String uuid() {
|
public String uuid() {
|
||||||
return applicationProperties.getAutomaticallyGenerated().getUUID();
|
return applicationProperties.getAutomaticallyGenerated().getUUID();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean(name = "disablePixel")
|
||||||
|
public boolean disablePixel() {
|
||||||
|
return Boolean.getBoolean(env.getProperty("DISABLE_PIXEL"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = "machineType")
|
||||||
|
public String determineMachineType() {
|
||||||
|
try {
|
||||||
|
boolean isDocker = runningInDocker();
|
||||||
|
boolean isKubernetes = System.getenv("KUBERNETES_SERVICE_HOST") != null;
|
||||||
|
boolean isBrowserOpen = "true".equalsIgnoreCase(env.getProperty("BROWSER_OPEN"));
|
||||||
|
|
||||||
|
if (isKubernetes) {
|
||||||
|
return "Kubernetes";
|
||||||
|
} else if (isDocker) {
|
||||||
|
return "Docker";
|
||||||
|
} else if (isBrowserOpen) {
|
||||||
|
String os = System.getProperty("os.name").toLowerCase(Locale.ROOT);
|
||||||
|
if (os.contains("win")) {
|
||||||
|
return "Client-windows";
|
||||||
|
} else if (os.contains("mac")) {
|
||||||
|
return "Client-mac";
|
||||||
|
} else {
|
||||||
|
return "Client-unix";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return "Server-jar";
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
return "Unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -170,16 +170,17 @@ public class RedactController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Color decodeOrDefault(String hex, Color defaultColor) {
|
private Color decodeOrDefault(String hex, Color defaultColor) {
|
||||||
Color color = null;
|
|
||||||
try {
|
try {
|
||||||
color = Color.decode(hex);
|
if (hex != null && !hex.startsWith("#")) {
|
||||||
|
hex = "#" + hex;
|
||||||
|
}
|
||||||
|
return Color.decode(hex);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
color = defaultColor;
|
return defaultColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<Integer> getPageNumbers(ManualRedactPdfRequest request, int pagesCount) {
|
private List<Integer> getPageNumbers(ManualRedactPdfRequest request, int pagesCount) {
|
||||||
String pageNumbersInput = request.getPageNumbers();
|
String pageNumbersInput = request.getPageNumbers();
|
||||||
String[] parsedPageNumbers =
|
String[] parsedPageNumbers =
|
||||||
|
@ -23,7 +23,7 @@ public class RedactPdfRequest extends PDFFile {
|
|||||||
@Schema(description = "Whether to use whole word search", defaultValue = "false")
|
@Schema(description = "Whether to use whole word search", defaultValue = "false")
|
||||||
private boolean wholeWordSearch;
|
private boolean wholeWordSearch;
|
||||||
|
|
||||||
@Schema(description = "The color for redaction", defaultValue = "#000000")
|
@Schema(description = "Hexadecimal color code for redaction, e.g. #FF0000 or 000000", defaultValue = "#000000")
|
||||||
private String redactColor = "#000000";
|
private String redactColor = "#000000";
|
||||||
|
|
||||||
@Schema(description = "Custom padding for redaction", type = "number")
|
@Schema(description = "Custom padding for redaction", type = "number")
|
||||||
|
@ -41,8 +41,14 @@
|
|||||||
<link rel="stylesheet" th:href="@{'/css/bootstrap-icons.min.css'}">
|
<link rel="stylesheet" th:href="@{'/css/bootstrap-icons.min.css'}">
|
||||||
|
|
||||||
<!-- Pixel, doesn't collect any PII-->
|
<!-- Pixel, doesn't collect any PII-->
|
||||||
<img referrerpolicy="no-referrer-when-downgrade" src="https://pixel.stirlingpdf.com/a.png?x-pxid=4f5fa02f-a065-4efb-bb2c-24509a4b6b92" style="position: absolute; visibility: hidden;"/>
|
<img th:if="${!@disablePixel} referrerpolicy="no-referrer-when-downgrade"
|
||||||
|
th:src="'https://pixel.stirlingpdf.com/a.png?x-pxid=4f5fa02f-a065-4efb-bb2c-24509a4b6b92'
|
||||||
|
+ '&machineType=' + ${@machineType}
|
||||||
|
+ '&appVersion=' + ${@appVersion}
|
||||||
|
+ '&licenseType=' + ${@license}
|
||||||
|
+ '&loginEnabled=' + ${@loginEnabled}"
|
||||||
|
style="position: absolute; visibility: hidden;" />
|
||||||
|
|
||||||
<!-- Custom -->
|
<!-- Custom -->
|
||||||
<link rel="stylesheet" th:href="@{'/css/general.css'}">
|
<link rel="stylesheet" th:href="@{'/css/general.css'}">
|
||||||
<link rel="stylesheet" th:href="@{'/css/theme/theme.css'}">
|
<link rel="stylesheet" th:href="@{'/css/theme/theme.css'}">
|
||||||
|
Loading…
Reference in New Issue
Block a user