|
|
document.addEventListener('DOMContentLoaded', function() { |
|
|
|
|
|
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); |
|
|
tooltipTriggerList.map(function (tooltipTriggerEl) { |
|
|
return new bootstrap.Tooltip(tooltipTriggerEl); |
|
|
}); |
|
|
|
|
|
|
|
|
const darkModeToggle = document.getElementById('darkModeToggle'); |
|
|
if (darkModeToggle) { |
|
|
darkModeToggle.addEventListener('click', function() { |
|
|
document.documentElement.classList.toggle('dark'); |
|
|
localStorage.setItem('darkMode', document.documentElement.classList.contains('dark')); |
|
|
}); |
|
|
} |
|
|
|
|
|
|
|
|
if (localStorage.getItem('darkMode') === 'true') { |
|
|
document.documentElement.classList.add('dark'); |
|
|
} |
|
|
|
|
|
|
|
|
const mobileMenuButton = document.getElementById('mobileMenuButton'); |
|
|
const mobileMenu = document.getElementById('mobileMenu'); |
|
|
if (mobileMenuButton && mobileMenu) { |
|
|
mobileMenuButton.addEventListener('click', function() { |
|
|
mobileMenu.classList.toggle('hidden'); |
|
|
}); |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
async function connectRepository() { |
|
|
try { |
|
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 1000)); |
|
|
return { success: true, message: 'Repository connected successfully' }; |
|
|
} catch (error) { |
|
|
return { success: false, message: 'Failed to connect repository' }; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
document.querySelectorAll('[data-action="connect-repo"]').forEach(button => { |
|
|
button.addEventListener('click', async function() { |
|
|
const spinner = document.createElement('span'); |
|
|
spinner.className = 'animate-spin mr-2'; |
|
|
spinner.innerHTML = '<i data-feather="loader"></i>'; |
|
|
this.prepend(spinner); |
|
|
feather.replace(); |
|
|
|
|
|
this.disabled = true; |
|
|
const result = await connectRepository(); |
|
|
|
|
|
spinner.remove(); |
|
|
this.disabled = false; |
|
|
|
|
|
if (result.success) { |
|
|
alert('Repository connected successfully!'); |
|
|
} else { |
|
|
alert('Error: ' + result.message); |
|
|
} |
|
|
}); |
|
|
}); |