2023-07-12 00:17:44 +01:00
|
|
|
<!DOCTYPE html>
|
2024-03-21 21:58:01 +01:00
|
|
|
<html th:lang="${#locale.language}" th:dir="#{language.direction}" th:data-language="${#locale.toString()}" xmlns:th="http://www.thymeleaf.org">
|
2024-02-16 22:49:06 +01:00
|
|
|
<head>
|
|
|
|
<th:block th:insert="~{fragments/common :: head(title=#{pipeline.title}, header=#{pipeline.header})}"></th:block>
|
|
|
|
<link rel="stylesheet" href="css/pipeline.css" th:if="${currentPage == 'pipeline'}">
|
|
|
|
<script th:inline="javascript">
|
|
|
|
const saveSettings = /*[[#{pipelineOptions.saveSettings}]]*/ '';
|
2024-01-01 14:19:22 +00:00
|
|
|
</script>
|
2024-02-16 22:49:06 +01:00
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
|
|
|
<div id="page-container">
|
|
|
|
<div id="content-wrap">
|
|
|
|
<th:block th:insert="~{fragments/navbar.html :: navbar}"></th:block>
|
2024-03-21 21:58:01 +01:00
|
|
|
<br><br>
|
2024-02-16 22:49:06 +01:00
|
|
|
<div class="container">
|
|
|
|
<div class="row justify-content-center">
|
2024-03-21 21:58:01 +01:00
|
|
|
|
|
|
|
<div style="text-align: center;">
|
|
|
|
<h1 th:text="#{pipeline.header}"></h1>
|
|
|
|
<img src="images/pipeline.svg" alt="icon" style="filter: invert(33%) sepia(100%) saturate(5000%) hue-rotate(183deg) brightness(90%) contrast(100%); width: 100px; height: 100px;">
|
|
|
|
</div>
|
|
|
|
|
2024-02-16 22:49:06 +01:00
|
|
|
<div class="bordered-box">
|
|
|
|
<div class="text-end text-top">
|
|
|
|
<button id="uploadPipelineBtn" class="btn btn-primary" th:text="#{pipeline.uploadButton}"></button>
|
|
|
|
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#pipelineSettingsModal" th:text="#{pipeline.configureButton}"></button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="center-element">
|
|
|
|
<div class="element-margin">
|
|
|
|
<select id="pipelineSelect" class="custom-select">
|
|
|
|
<option value="{"name":"Custom","pipeline":[],"_examples":{"outputDir":"{outputFolder}/{folderName}","outputFileName":"{filename}-{pipelineName}-{date}-{time}"},"outputDir":"{outputFolder}","outputFileName":"{filename}"}" th:text="#{pipeline.defaultOption}"></option>
|
|
|
|
<th:block th:each="config : ${pipelineConfigsWithNames}">
|
|
|
|
<option th:value="${config.json}" th:text="${config.name}"></option>
|
|
|
|
</th:block>
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
<div class="element-margin">
|
|
|
|
<div th:replace="~{fragments/common :: fileSelector(name='fileInput', multiple=true)}"></div>
|
|
|
|
</div>
|
|
|
|
<div class="element-margin">
|
|
|
|
<button class="btn btn-primary" id="submitConfigBtn" th:text="#{pipeline.submitButton}"></button>
|
|
|
|
</div>
|
2024-03-17 09:33:05 +00:00
|
|
|
<a href="https://github.com/Stirling-Tools/Stirling-PDF/blob/main/PipelineFeature.md" target="_blank">Pipeline Help</a>
|
2024-03-21 21:58:01 +01:00
|
|
|
<br>
|
|
|
|
<a href="https://github.com/Stirling-Tools/Stirling-PDF/blob/main/FolderScanning.md" target="_blank">Folder Scanning Help</a>
|
2024-02-16 22:49:06 +01:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- The Modal -->
|
|
|
|
<div class="modal" id="pipelineSettingsModal">
|
|
|
|
<div class="modal-dialog">
|
|
|
|
<div class="modal-content dark-card">
|
|
|
|
|
|
|
|
<!-- Modal Header -->
|
|
|
|
<div class="modal-header">
|
|
|
|
<h2 class="modal-title" th:text="#{pipelineOptions.header}"></h2>
|
|
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Modal body -->
|
|
|
|
<div class="modal-body">
|
|
|
|
<div class="mb-3">
|
|
|
|
<label for="pipelineName" class="form-label" th:text="#{pipelineOptions.pipelineNameLabel}"></label>
|
|
|
|
<input type="text" id="pipelineName" class="form-control" th:placeholder="#{pipelineOptions.pipelineNamePrompt}">
|
|
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
|
|
<label for="operationsDropdown" th:text="#{pipelineOptions.selectOperation}"></label>
|
|
|
|
<select id="operationsDropdown" class="form-select">
|
|
|
|
<!-- Options will be dynamically populated here -->
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
<div class="mb-3">
|
|
|
|
<button id="addOperationBtn" class="btn btn-primary" th:text="#{pipelineOptions.addOperationButton}"></button>
|
|
|
|
</div>
|
|
|
|
<h3 id="pipelineHeader" style="display: none;" th:text="#{pipelineOptions.pipelineHeader}"></h3>
|
|
|
|
|
|
|
|
<ol id="pipelineList" class="list-group">
|
|
|
|
<!-- Pipeline operations will be dynamically populated here -->
|
|
|
|
</ol>
|
|
|
|
<div id="pipelineSettingsContent">
|
|
|
|
<!-- pipelineSettings will be dynamically populated here -->
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Modal footer -->
|
|
|
|
<div class="modal-footer">
|
2024-03-21 21:58:01 +01:00
|
|
|
<button id="saveBrowserPipelineBtn" class="btn btn-success" th:text="#{saveToBrowser}"></button>
|
2024-02-16 22:49:06 +01:00
|
|
|
<button id="savePipelineBtn" class="btn btn-success" th:text="#{pipelineOptions.saveButton}"></button>
|
|
|
|
<button id="validateButton" class="btn btn-success" th:text="#{pipelineOptions.validateButton}"></button>
|
|
|
|
|
|
|
|
<div class="btn-group">
|
|
|
|
<input type="file" id="uploadPipelineInput" accept=".json" style="display: none;">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<script src="js/pipeline.js"></script>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<th:block th:insert="~{fragments/footer.html :: footer}"></th:block>
|
|
|
|
</div>
|
|
|
|
</body>
|
2024-03-21 21:58:01 +01:00
|
|
|
</html>
|