mirror of
https://gitlab.rlp.net/proj-wise2526-video2document/video2document.git
synced 2026-06-16 18:31:51 +02:00
Implemented the script part from the custom_document.html file into the base script.js and renderer.js
This commit is contained in:
@@ -11,115 +11,6 @@
|
|||||||
|
|
||||||
<body>
|
<body>
|
||||||
<script src="languages.js"></script>
|
<script src="languages.js"></script>
|
||||||
<script>
|
|
||||||
const goBackBtn = document.getElementById("goBackBtn");
|
|
||||||
const generateBtn = document.getElementById("generateBtn");
|
|
||||||
const deleteBtn = document.getElementById("deleteBtn");
|
|
||||||
const existingDocs = document.getElementById("existingDocs");
|
|
||||||
const docNameInput = document.getElementById("docName");
|
|
||||||
const promptInput = document.getElementById("prompt");
|
|
||||||
const resultDiv = document.getElementById("result");
|
|
||||||
const exampleText = "";
|
|
||||||
|
|
||||||
// dokumente speichern
|
|
||||||
generateBtn.addEventListener("click", () => {
|
|
||||||
const name = docNameInput.value.trim();
|
|
||||||
const content = promptInput.value.trim();
|
|
||||||
if (!name || !content) {
|
|
||||||
resultDiv.textContent = "Bitte Dokumentname und Prompt ausfüllen.";
|
|
||||||
setTimeout(() => {
|
|
||||||
resultDiv.textContent = "";
|
|
||||||
}, 3000);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
window.api.saveTxtFile(name, content).then();
|
|
||||||
resultDiv.textContent = "Dokument erfolgreich gespeichert!";
|
|
||||||
setTimeout(() => {
|
|
||||||
resultDiv.textContent = "";
|
|
||||||
}, 3000);
|
|
||||||
reloadDocuments();
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// dokumente löschen
|
|
||||||
deleteBtn.addEventListener("click", () => {
|
|
||||||
const name = docNameInput.value.trim();
|
|
||||||
|
|
||||||
if (!name) {
|
|
||||||
resultDiv.textContent = "Bitte Dokumentname angeben.";
|
|
||||||
setTimeout(() => {
|
|
||||||
resultDiv.textContent = "";
|
|
||||||
}, 3000);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const confirmDelete = confirm(
|
|
||||||
`Möchtest du das Dokument "${name}" wirklich löschen?`
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!confirmDelete) return;
|
|
||||||
|
|
||||||
window.api.deleteTxtFile(name).then((success) => {
|
|
||||||
if (success) {
|
|
||||||
resultDiv.textContent = "Dokument erfolgreich gelöscht!";
|
|
||||||
reloadDocuments();
|
|
||||||
existingDocs.value = "newDoc";
|
|
||||||
existingDocs.dispatchEvent(new Event("change"));
|
|
||||||
} else {
|
|
||||||
resultDiv.textContent = "Dokument konnte nicht gelöscht werden.";
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
resultDiv.textContent = "";
|
|
||||||
}, 3000);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
//function to load existingDoc options to the drop down list
|
|
||||||
const select = document.getElementById('existingDocs');
|
|
||||||
|
|
||||||
window.api.getTxtFiles().then(files => {
|
|
||||||
reloadDocuments();
|
|
||||||
});
|
|
||||||
|
|
||||||
//content anzeigen
|
|
||||||
const docNameWrapper = document.getElementById("docNameWrapper");
|
|
||||||
|
|
||||||
existingDocs.addEventListener("change", async () => {
|
|
||||||
const selected = existingDocs.value;
|
|
||||||
|
|
||||||
if (selected === "newDoc") {
|
|
||||||
docNameWrapper.classList.remove("hidden");
|
|
||||||
docNameInput.value = "";
|
|
||||||
promptInput.value = exampleText;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
docNameWrapper.classList.add("hidden");
|
|
||||||
|
|
||||||
const content = await window.api.readTxtFile(selected);
|
|
||||||
promptInput.value = content;
|
|
||||||
docNameInput.value = selected.replace(".txt", "");
|
|
||||||
});
|
|
||||||
|
|
||||||
//reload drop down
|
|
||||||
function reloadDocuments() {
|
|
||||||
[...existingDocs.querySelectorAll('option:not([value="newDoc"])')]
|
|
||||||
.forEach(o => o.remove());
|
|
||||||
|
|
||||||
window.api.getTxtFiles().then(files => {
|
|
||||||
files.forEach(file => {
|
|
||||||
const option = document.createElement('option');
|
|
||||||
option.value = file;
|
|
||||||
option.textContent = file
|
|
||||||
.replace('.txt', '') // Endung entfernen
|
|
||||||
.replace(/_/g, ' ') // Leerzeichen ersetzen
|
|
||||||
.replace(/\b\w/g, c => c.toUpperCase()) // ersten Buchstaben groß
|
|
||||||
existingDocs.appendChild(option);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|||||||
@@ -177,6 +177,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!--Costum document section-->
|
||||||
<div class="container" style="display:none;">
|
<div class="container" style="display:none;">
|
||||||
<h1>Manage document types</h1>
|
<h1>Manage document types</h1>
|
||||||
|
|
||||||
|
|||||||
@@ -133,6 +133,23 @@ Listeners for Step 3
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
window.api.getTxtFiles().then(files => {
|
||||||
|
var menu = document.getElementById('customDocumentTypes');
|
||||||
|
var l = document.getElementById('customDocumentTypes').options.length - 1;
|
||||||
|
for (i = l; i >= 0; i--) {
|
||||||
|
menu.remove(i);
|
||||||
|
}
|
||||||
|
files.forEach(file => {
|
||||||
|
const option = document.createElement('option');
|
||||||
|
option.value = file;
|
||||||
|
option.textContent = file
|
||||||
|
.replace('.txt', '') // Endung entfernen
|
||||||
|
.replace(/_/g, ' ') // Leerzeichen ersetzen
|
||||||
|
.replace(/\b\w/g, c => c.toUpperCase()) // ersten Buchstaben groß
|
||||||
|
menu.appendChild(option);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
//Checkboxlistener so that only one can be selected at a time
|
//Checkboxlistener so that only one can be selected at a time
|
||||||
docFormat.addEventListener("change", (e) => {
|
docFormat.addEventListener("change", (e) => {
|
||||||
try {
|
try {
|
||||||
@@ -282,5 +299,88 @@ window.audios.speakerAudios((event, arg) => {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Listeners for the costum documents section
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
// dokumente speichern
|
||||||
|
generateBtn.addEventListener("click", () => {
|
||||||
|
const name = docName.value.trim();
|
||||||
|
const content = prompt.value.trim();
|
||||||
|
if (!name || !content) {
|
||||||
|
result.textContent = "Bitte Dokumentname und Prompt ausfüllen.";
|
||||||
|
setTimeout(() => {
|
||||||
|
result.textContent = "";
|
||||||
|
}, 3000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
window.api.saveTxtFile(name, content).then();
|
||||||
|
result.textContent = "Dokument erfolgreich gespeichert!";
|
||||||
|
setTimeout(() => {
|
||||||
|
result.textContent = "";
|
||||||
|
}, 3000);
|
||||||
|
reloadDocuments();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// dokumente löschen
|
||||||
|
deleteBtn.addEventListener("click", () => {
|
||||||
|
const name = docName.value.trim();
|
||||||
|
|
||||||
|
if (!name) {
|
||||||
|
result.textContent = "Bitte Dokumentname angeben.";
|
||||||
|
setTimeout(() => {
|
||||||
|
result.textContent = "";
|
||||||
|
}, 3000);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const confirmDelete = confirm(
|
||||||
|
`Möchtest du das Dokument "${name}" wirklich löschen?`
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!confirmDelete) return;
|
||||||
|
|
||||||
|
window.api.deleteTxtFile(name).then((success) => {
|
||||||
|
if (success) {
|
||||||
|
result.textContent = "Dokument erfolgreich gelöscht!";
|
||||||
|
reloadDocuments();
|
||||||
|
existingDocs.value = "newDoc";
|
||||||
|
existingDocs.dispatchEvent(new Event("change"));
|
||||||
|
} else {
|
||||||
|
result.textContent = "Dokument konnte nicht gelöscht werden.";
|
||||||
|
}
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
result.textContent = "";
|
||||||
|
}, 3000);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//function to load existingDoc options to the drop down list
|
||||||
|
|
||||||
|
window.api.getTxtFiles().then(files => {
|
||||||
|
reloadDocuments();
|
||||||
|
});
|
||||||
|
|
||||||
|
//content anzeigen
|
||||||
|
existingDocs.addEventListener("change", async () => {
|
||||||
|
const existingDocsed = existingDocs.value;
|
||||||
|
const exampleText = "";
|
||||||
|
|
||||||
|
if (existingDocsed === "newDoc") {
|
||||||
|
docNameWrapper.classList.remove("hidden");
|
||||||
|
docName.value = "";
|
||||||
|
prompt.value = exampleText;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
docNameWrapper.classList.add("hidden");
|
||||||
|
|
||||||
|
const content = await window.api.readTxtFile(existingDocsed);
|
||||||
|
prompt.value = content;
|
||||||
|
docName.value = existingDocsed.replace(".txt", "");
|
||||||
|
});
|
||||||
|
|
||||||
|
|||||||
+16
-1
@@ -421,6 +421,20 @@ function fileDownload() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Functions for the custom document section
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
//reload drop down
|
||||||
|
function reloadDocuments() {
|
||||||
|
[...existingDocs.querySelectorAll('option:not([value="newDoc"])')]
|
||||||
|
.forEach(o => o.remove());
|
||||||
|
|
||||||
window.api.getTxtFiles().then(files => {
|
window.api.getTxtFiles().then(files => {
|
||||||
files.forEach(file => {
|
files.forEach(file => {
|
||||||
const option = document.createElement('option');
|
const option = document.createElement('option');
|
||||||
@@ -429,6 +443,7 @@ window.api.getTxtFiles().then(files => {
|
|||||||
.replace('.txt', '') // Endung entfernen
|
.replace('.txt', '') // Endung entfernen
|
||||||
.replace(/_/g, ' ') // Leerzeichen ersetzen
|
.replace(/_/g, ' ') // Leerzeichen ersetzen
|
||||||
.replace(/\b\w/g, c => c.toUpperCase()) // ersten Buchstaben groß
|
.replace(/\b\w/g, c => c.toUpperCase()) // ersten Buchstaben groß
|
||||||
costumDocumentType.appendChild(option);
|
existingDocs.appendChild(option);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user