aboutsummaryrefslogtreecommitdiff
path: root/weed/admin/static/js/admin.js
diff options
context:
space:
mode:
Diffstat (limited to 'weed/admin/static/js/admin.js')
-rw-r--r--weed/admin/static/js/admin.js94
1 files changed, 47 insertions, 47 deletions
diff --git a/weed/admin/static/js/admin.js b/weed/admin/static/js/admin.js
index 4a051be60..2049652cd 100644
--- a/weed/admin/static/js/admin.js
+++ b/weed/admin/static/js/admin.js
@@ -129,6 +129,21 @@ function setupSubmenuBehavior() {
}
}
+ // If we're on a maintenance page, expand the maintenance submenu
+ if (currentPath.startsWith('/maintenance')) {
+ const maintenanceSubmenu = document.getElementById('maintenanceSubmenu');
+ if (maintenanceSubmenu) {
+ maintenanceSubmenu.classList.add('show');
+
+ // Update the parent toggle button state
+ const toggleButton = document.querySelector('[data-bs-target="#maintenanceSubmenu"]');
+ if (toggleButton) {
+ toggleButton.classList.remove('collapsed');
+ toggleButton.setAttribute('aria-expanded', 'true');
+ }
+ }
+ }
+
// Prevent submenu from collapsing when clicking on submenu items
const clusterSubmenuLinks = document.querySelectorAll('#clusterSubmenu .nav-link');
clusterSubmenuLinks.forEach(function(link) {
@@ -146,6 +161,14 @@ function setupSubmenuBehavior() {
});
});
+ const maintenanceSubmenuLinks = document.querySelectorAll('#maintenanceSubmenu .nav-link');
+ maintenanceSubmenuLinks.forEach(function(link) {
+ link.addEventListener('click', function(e) {
+ // Don't prevent the navigation, just stop the collapse behavior
+ e.stopPropagation();
+ });
+ });
+
// Handle the main cluster toggle
const clusterToggle = document.querySelector('[data-bs-target="#clusterSubmenu"]');
if (clusterToggle) {
@@ -191,6 +214,29 @@ function setupSubmenuBehavior() {
}
});
}
+
+ // Handle the main maintenance toggle
+ const maintenanceToggle = document.querySelector('[data-bs-target="#maintenanceSubmenu"]');
+ if (maintenanceToggle) {
+ maintenanceToggle.addEventListener('click', function(e) {
+ e.preventDefault();
+
+ const submenu = document.getElementById('maintenanceSubmenu');
+ const isExpanded = submenu.classList.contains('show');
+
+ if (isExpanded) {
+ // Collapse
+ submenu.classList.remove('show');
+ this.classList.add('collapsed');
+ this.setAttribute('aria-expanded', 'false');
+ } else {
+ // Expand
+ submenu.classList.add('show');
+ this.classList.remove('collapsed');
+ this.setAttribute('aria-expanded', 'true');
+ }
+ });
+ }
}
// Loading indicator functions
@@ -689,7 +735,7 @@ function exportVolumes() {
for (let i = 0; i < cells.length - 1; i++) {
rowData.push(`"${cells[i].textContent.trim().replace(/"/g, '""')}"`);
}
- csv += rowData.join(',') + '\n';
+ csv += rowData.join(',') + '\n';
});
downloadCSV(csv, 'seaweedfs-volumes.csv');
@@ -877,53 +923,7 @@ async function deleteCollection(collectionName) {
}
}
-// Handle create collection form submission
-document.addEventListener('DOMContentLoaded', function() {
- const createCollectionForm = document.getElementById('createCollectionForm');
- if (createCollectionForm) {
- createCollectionForm.addEventListener('submit', handleCreateCollection);
- }
-});
-async function handleCreateCollection(event) {
- event.preventDefault();
-
- const formData = new FormData(event.target);
- const collectionData = {
- name: formData.get('name'),
- replication: formData.get('replication'),
- diskType: formData.get('diskType')
- };
-
- try {
- const response = await fetch('/api/collections', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify(collectionData)
- });
-
- if (response.ok) {
- showSuccessMessage(`Collection "${collectionData.name}" created successfully`);
- // Hide modal
- const modal = bootstrap.Modal.getInstance(document.getElementById('createCollectionModal'));
- modal.hide();
- // Reset form
- event.target.reset();
- // Refresh page
- setTimeout(() => {
- window.location.reload();
- }, 1000);
- } else {
- const error = await response.json();
- showErrorMessage(`Failed to create collection: ${error.error || 'Unknown error'}`);
- }
- } catch (error) {
- console.error('Error creating collection:', error);
- showErrorMessage('Failed to create collection. Please try again.');
- }
-}
// Download CSV utility function
function downloadCSV(csvContent, filename) {