Django_Basic_Manufacturing_3/static/js/custom.js
2025-08-22 17:05:22 +07:00

76 lines
2.3 KiB
JavaScript

// Custom JavaScript for the manufacturing app
// Confirm before deleting items
function confirmDelete(message) {
return confirm(message || "Are you sure you want to delete this item?");
}
// Toggle visibility of elements
function toggleVisibility(elementId) {
const element = document.getElementById(elementId);
if (element) {
element.style.display = element.style.display === 'none' ? 'block' : 'none';
}
}
// Initialize tooltips
document.addEventListener('DOMContentLoaded', function() {
// Initialize Bootstrap tooltips
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
});
// Initialize Bootstrap popovers
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl);
});
// Add confirmation to delete buttons
var deleteButtons = document.querySelectorAll('.delete-button');
deleteButtons.forEach(function(button) {
button.addEventListener('click', function(e) {
if (!confirmDelete("Are you sure you want to delete this item?")) {
e.preventDefault();
}
});
});
});
// Print functionality
function printPage() {
window.print();
}
// Format currency
function formatCurrency(amount) {
return new Intl.NumberFormat('id-ID', {
style: 'currency',
currency: 'IDR'
}).format(amount);
}
// Format number
function formatNumber(number) {
return new Intl.NumberFormat('id-ID').format(number);
}
// Toggle sidebar on mobile
function toggleSidebar() {
const sidebar = document.getElementById('sidebarMenu');
if (sidebar) {
sidebar.classList.toggle('show');
}
}
// Auto-hide alerts after 5 seconds
document.addEventListener('DOMContentLoaded', function() {
const alerts = document.querySelectorAll('.alert');
alerts.forEach(function(alert) {
setTimeout(function() {
alert.classList.remove('show');
alert.classList.add('hide');
}, 5000);
});
});