38465-vm/assets/js/main.js
Flatlogic Bot 035a67bfc5 V2
2026-02-16 03:26:39 +00:00

109 lines
3.4 KiB
JavaScript

document.addEventListener('DOMContentLoaded', () => {
const configForm = document.getElementById('config-form');
const testAudioBtn = document.getElementById('test-audio-btn');
const audioPlayer = document.querySelector('.audio-player');
if (configForm) {
configForm.addEventListener('submit', async (e) => {
e.preventDefault();
const formData = new FormData(configForm);
const submitBtn = configForm.querySelector('button[type="submit"]');
const originalBtnText = submitBtn.textContent;
submitBtn.disabled = true;
submitBtn.textContent = 'Saving...';
try {
const response = await fetch('api/save_settings.php', {
method: 'POST',
body: formData
});
const result = await response.json();
if (result.success) {
alert('Settings saved successfully!');
} else {
alert('Error: ' + result.error);
}
} catch (error) {
alert('Network error while saving settings.');
} finally {
submitBtn.disabled = false;
submitBtn.textContent = originalBtnText;
}
});
}
if (testAudioBtn && audioPlayer) {
testAudioBtn.addEventListener('click', () => {
if (audioPlayer.paused) {
audioPlayer.play();
testAudioBtn.textContent = 'Pause';
} else {
audioPlayer.pause();
testAudioBtn.textContent = 'Test Play Locally';
}
});
audioPlayer.addEventListener('ended', () => {
testAudioBtn.textContent = 'Test Play Locally';
});
}
// Sahur MP3 Upload Logic
const sahurUpload = document.getElementById('sahur-upload');
const uploadBtn = document.getElementById('upload-btn');
const uploadStatus = document.getElementById('upload-status');
if (sahurUpload && uploadBtn) {
sahurUpload.addEventListener('change', () => {
if (sahurUpload.files.length > 0) {
uploadBtn.style.display = 'block';
uploadStatus.textContent = `Selected: ${sahurUpload.files[0].name}`;
} else {
uploadBtn.style.display = 'none';
uploadStatus.textContent = '';
}
});
uploadBtn.addEventListener('click', async () => {
if (sahurUpload.files.length === 0) return;
const formData = new FormData();
formData.append('sahur_file', sahurUpload.files[0]);
uploadBtn.disabled = true;
uploadBtn.textContent = 'Uploading...';
uploadStatus.textContent = 'Processing your file...';
try {
const response = await fetch('api/upload_audio.php', {
method: 'POST',
body: formData
});
const result = await response.json();
if (result.success) {
uploadStatus.innerHTML = '<span style="color:var(--primary);">✓ Berhasil di-upload!</span>';
// Reload audio player to reflect the new file
const currentSrc = audioPlayer.querySelector('source').src;
audioPlayer.querySelector('source').src = currentSrc.split('?')[0] + '?v=' + Date.now();
audioPlayer.load();
} else {
uploadStatus.innerHTML = `<span style="color:red;">Gagal: ${result.error}</span>`;
}
} catch (error) {
uploadStatus.innerHTML = '<span style="color:red;">Network error.</span>';
} finally {
uploadBtn.disabled = false;
uploadBtn.textContent = 'Upload Now';
uploadBtn.style.display = 'none';
sahurUpload.value = '';
}
});
}
});