1
0
mirror of https://github.com/Stirling-Tools/Stirling-PDF.git synced 2024-06-03 06:10:11 +02:00
Stirling-PDF/src/main/resources/templates/security/add-watermark.html

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

145 lines
8.1 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
2023-04-03 00:59:22 +02:00
<html th:lang="${#locale.toString()}" th:lang-direction="#{language.direction}" xmlns:th="http://www.thymeleaf.org">
<th:block th:insert="~{fragments/common :: head(title=#{watermark.title}, header=#{watermark.header})}"></th:block>
2023-07-13 00:27:36 +02:00
<body onload="toggleFileOption()">
<div id="page-container">
<div id="content-wrap">
<div th:insert="~{fragments/navbar.html :: navbar}"></div>
<br> <br>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-6">
<h2 th:text="#{watermark.header}"></h2>
2023-09-12 00:42:18 +02:00
<form method="post" enctype="multipart/form-data" action="api/v1/security/add-watermark">
2023-08-20 22:57:19 +02:00
<div class="mb-3">
<label th:text="#{watermark.selectText.1}"></label>
2023-07-13 00:27:36 +02:00
<div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=false, accept='application/pdf')}">
<input type="file" id="fileInput" name="fileInput" class="form-control-file" accept="application/pdf" required />
</div>
</div>
2023-07-13 00:27:36 +02:00
2023-08-20 22:57:19 +02:00
<div class="mb-3">
2023-07-13 00:27:36 +02:00
<label th:text="#{watermark.selectText.8}"></label>
<select class="form-control" id="watermarkType" name="watermarkType" onchange="toggleFileOption()">
<option value="text">Text</option>
<option value="image">Image</option>
</select>
2023-07-01 22:08:33 +02:00
</div>
2023-09-04 19:42:22 +02:00
<div id="alphabetGroup" class="mb-3">
<label for="fontSize" th:text="#{alphabet} + ':'"></label>
<select class="form-control" name="alphabet" id="alphabet-select">
<option value="roman">Roman</option>
<option value="arabic">العربية</option>
<option value="japanese">日本語</option>
<option value="korean">한국어</option>
<option value="chinese">简体中文</option>
</select>
</div>
2023-08-20 22:57:19 +02:00
<div id="watermarkTextGroup" class="mb-3">
<label for="watermarkText" th:text="#{watermark.selectText.2}"></label>
<input type="text" id="watermarkText" name="watermarkText" class="form-control" placeholder="Stirling-PDF" required />
</div>
2023-07-13 00:27:36 +02:00
2023-08-20 22:57:19 +02:00
<div id="watermarkImageGroup" class="mb-3" style="display: none;">
2023-07-13 00:27:36 +02:00
<label for="watermarkImage" th:text="#{watermark.selectText.9}"></label>
<input type="file" id="watermarkImage" name="watermarkImage" class="form-control-file" accept="image/*" />
</div>
2023-08-20 22:57:19 +02:00
<div class="mb-3">
<label for="fontSize" th:text="#{watermark.selectText.3}"></label>
<input type="text" id="fontSize" name="fontSize" class="form-control" value="30" />
</div>
2023-08-20 22:57:19 +02:00
<div class="mb-3">
2023-03-24 14:30:26 +01:00
<label for="opacity" th:text="#{watermark.selectText.7}"></label>
2023-07-13 00:27:36 +02:00
<input type="text" id="opacity" name="opacityText" class="form-control" value="50" onblur="updateOpacityValue()" />
2023-03-24 14:30:26 +01:00
<input type="hidden" id="opacityReal" name="opacity" value="0.5">
</div>
<script>
const opacityInput = document.getElementById('opacity');
const opacityRealInput = document.getElementById('opacityReal');
2023-07-13 00:27:36 +02:00
const updateOpacityValue = () => {
2023-03-24 14:30:26 +01:00
let percentageValue = parseFloat(opacityInput.value.replace('%', ''));
if (isNaN(percentageValue)) {
percentageValue = 0;
}
percentageValue = Math.min(Math.max(percentageValue, 0), 100);
opacityInput.value = `${percentageValue}`;
opacityRealInput.value = (percentageValue / 100).toFixed(2);
};
const appendPercentageSymbol = () => {
if (!opacityInput.value.endsWith('%')) {
opacityInput.value += '%';
}
};
opacityInput.addEventListener('focus', () => {
opacityInput.value = opacityInput.value.replace('%', '');
});
opacityInput.addEventListener('blur', () => {
2023-07-13 00:27:36 +02:00
updateOpacityValue();
2023-03-24 14:30:26 +01:00
appendPercentageSymbol();
});
// Set initial values
2023-07-13 00:27:36 +02:00
updateOpacityValue();
2023-03-24 14:30:26 +01:00
appendPercentageSymbol();
</script>
2023-07-13 00:27:36 +02:00
2023-08-20 22:57:19 +02:00
<div class="mb-3">
<label for="rotation" th:text="#{watermark.selectText.4}"></label>
<input type="text" id="rotation" name="rotation" class="form-control" value="45" />
</div>
2023-08-20 22:57:19 +02:00
<div class="mb-3">
<label for="widthSpacer" th:text="#{watermark.selectText.5}"></label>
<input type="text" id="widthSpacer" name="widthSpacer" class="form-control" value="50" />
</div>
2023-08-20 22:57:19 +02:00
<div class="mb-3">
<label for="heightSpacer" th:text="#{watermark.selectText.6}"></label>
<input type="text" id="heightSpacer" name="heightSpacer" class="form-control" value="50" />
</div>
2023-08-20 22:57:19 +02:00
<div class="mb-3 text-center">
2023-04-02 12:51:07 +02:00
<input type="submit" id="submitBtn" th:value="#{watermark.submit}" class="btn btn-primary" />
</div>
</form>
2023-07-13 00:27:36 +02:00
<script>
2023-09-04 19:42:22 +02:00
function toggleFileOption() {
const watermarkType = document.getElementById('watermarkType').value;
const watermarkTextGroup = document.getElementById('watermarkTextGroup');
const watermarkImageGroup = document.getElementById('watermarkImageGroup');
const alphabetGroup = document.getElementById('alphabetGroup'); // This is the new addition
const watermarkText = document.getElementById('watermarkText');
const watermarkImage = document.getElementById('watermarkImage');
if (watermarkType === 'text') {
watermarkTextGroup.style.display = 'block';
watermarkText.required = true;
watermarkImageGroup.style.display = 'none';
watermarkImage.required = false;
alphabetGroup.style.display = 'block';
} else if (watermarkType === 'image') {
watermarkTextGroup.style.display = 'none';
watermarkText.required = false;
watermarkImageGroup.style.display = 'block';
watermarkImage.required = true;
alphabetGroup.style.display = 'none';
}
}
2023-07-13 00:27:36 +02:00
</script>
</div>
</div>
</div>
</div>
<div th:insert="~{fragments/footer.html :: footer}"></div>
</div>
</body>
</html>