Move File List Javascript to seperate file

This commit is contained in:
James Musselman 2023-11-29 17:25:58 -06:00
parent 814c114dcd
commit f04ec9ff56
2 changed files with 80 additions and 88 deletions

77
static/build/list.js Normal file
View file

@ -0,0 +1,77 @@
// Function to convert Unix timestamps to local time
function convertUnixTimeToLocalTime(unixTime, element) {
const date = new Date(unixTime * 1000);
element.textContent = date.toLocaleString();
}
// Call the function for each timestamp on page load
window.onload = function () {
const creationTimeElements = document.querySelectorAll('.creation-time');
const lastEditedTimeElements = document.querySelectorAll('.last-edited-time');
creationTimeElements.forEach(element => {
const unixTime = parseInt(element.getAttribute('data-unix'));
convertUnixTimeToLocalTime(unixTime, element);
});
lastEditedTimeElements.forEach(element => {
const unixTime = parseInt(element.getAttribute('data-unix'));
convertUnixTimeToLocalTime(unixTime, element);
});
};
const deleteForm = document.getElementById("deleteForm");
const checkAllButton = document.getElementById("checkAll");
const checkboxes = document.querySelectorAll('input[type="checkbox"]');
checkAllButton.addEventListener("click", function () {
checkboxes.forEach(checkbox => {
checkbox.checked = true;
});
});
deleteForm.addEventListener("submit", function (event) {
event.preventDefault(); // Stop form submission
// Get all checkboxes in the delete form
const checkboxes = deleteForm.querySelectorAll('input[type="checkbox"]');
const filesToDelete = [];
// Get the filenames of the selected files
checkboxes.forEach(checkbox => {
if (checkbox.checked) {
filesToDelete.push(checkbox.value);
}
});
// Call the deleteFiles function to send the request to the server
deleteFiles(filesToDelete);
});
function deleteFiles(filesToDelete) {
// Send a POST request to the server to delete the selected files
fetch("/delete", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ files: filesToDelete }),
})
.then(response => {
if (response.ok) {
// Files deleted successfully
location.reload(); // Refresh the page to reflect the changes
} else {
// Handle the error, e.g., display an error message
console.error("Error deleting files");
}
})
.catch(error => {
console.error("Error deleting files:", error);
});
}
// Handle exportFolder button click
const exportFolderButton = document.getElementById("exportFolder");
exportFolderButton.addEventListener("click", function () {
window.location.href = "/export";
});

View file

@ -5,37 +5,14 @@
<title>List Files</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
<link rel="icon" href="/static/favicon.ico" type="image/x-icon">
<script>
// Function to convert Unix timestamps to local time
function convertUnixTimeToLocalTime(unixTime, element) {
const date = new Date(unixTime * 1000);
element.textContent = date.toLocaleString();
}
// Call the function for each timestamp on page load
window.onload = function () {
const creationTimeElements = document.querySelectorAll('.creation-time');
const lastEditedTimeElements = document.querySelectorAll('.last-edited-time');
creationTimeElements.forEach(element => {
const unixTime = parseInt(element.getAttribute('data-unix'));
convertUnixTimeToLocalTime(unixTime, element);
});
lastEditedTimeElements.forEach(element => {
const unixTime = parseInt(element.getAttribute('data-unix'));
convertUnixTimeToLocalTime(unixTime, element);
});
};
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script src="/static/build/list.js" type="text/javascript"></script>
</head>
<body>
<div id="page-container" class="container">
<h1>Welcome, {{.Username}}!</h1>
<!-- Upload Form Modal -->
<div id="uploadModal" class="modal">
<div class="modal-dialog">
@ -118,7 +95,7 @@
<button type="submit" id="deleteSelected" class="btn btn-danger">Delete Selected</button>
</form>
</div>
</div>
</div>Invalid Date
</div>
</div>
<table class="table">
@ -146,67 +123,5 @@
</tbody>
</table>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script>
const deleteForm = document.getElementById("deleteForm");
const checkAllButton = document.getElementById("checkAll");
const checkboxes = document.querySelectorAll('input[type="checkbox"]');
checkAllButton.addEventListener("click", function () {
checkboxes.forEach(checkbox => {
checkbox.checked = true;
});
});
deleteForm.addEventListener("submit", function (event) {
event.preventDefault(); // Stop form submission
// Get all checkboxes in the delete form
const checkboxes = deleteForm.querySelectorAll('input[type="checkbox"]');
const filesToDelete = [];
// Get the filenames of the selected files
checkboxes.forEach(checkbox => {
if (checkbox.checked) {
filesToDelete.push(checkbox.value);
}
});
// Call the deleteFiles function to send the request to the server
deleteFiles(filesToDelete);
});
function deleteFiles(filesToDelete) {
// Send a POST request to the server to delete the selected files
fetch("/delete", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ files: filesToDelete }),
})
.then(response => {
if (response.ok) {
// Files deleted successfully
location.reload(); // Refresh the page to reflect the changes
} else {
// Handle the error, e.g., display an error message
console.error("Error deleting files");
}
})
.catch(error => {
console.error("Error deleting files:", error);
});
}
// Handle exportFolder button click
const exportFolderButton = document.getElementById("exportFolder");
exportFolderButton.addEventListener("click", function () {
window.location.href = "/export";
});
</script>
</body>
</html>