76 lines
2.3 KiB
JavaScript
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);
|
|
});
|
|
}); |