fixing rolodex and search

This commit is contained in:
HotSwapp
2025-08-11 21:58:25 -05:00
parent 278eb7c5d4
commit c76b68d009
25 changed files with 1651 additions and 915 deletions

View File

@@ -483,14 +483,7 @@ let dashboardData = null;
let recentEntries = [];
let unbilledData = null;
// Helper function for authenticated API calls
function getAuthHeaders() {
const token = localStorage.getItem('auth_token');
return {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
};
}
// Authorization and JSON headers are injected by window.http.wrappedFetch
// Initialize on page load
document.addEventListener('DOMContentLoaded', function() {
@@ -555,9 +548,7 @@ function setupEventListeners() {
async function loadDashboardData() {
try {
const response = await fetch('/api/financial/financial-dashboard', {
headers: getAuthHeaders()
});
const response = await window.http.wrappedFetch('/api/financial/financial-dashboard');
if (!response.ok) throw new Error('Failed to load dashboard data');
@@ -599,9 +590,7 @@ async function loadRecentTimeEntries() {
const params = new URLSearchParams({ days });
if (employee) params.append('employee', employee);
const response = await fetch(`/api/financial/time-entries/recent?${params}`, {
headers: getAuthHeaders()
});
const response = await window.http.wrappedFetch(`/api/financial/time-entries/recent?${params}`);
if (!response.ok) throw new Error('Failed to load recent entries');
@@ -652,9 +641,7 @@ function displayRecentTimeEntries(entries) {
async function loadEmployeeOptions() {
try {
const response = await fetch('/api/files/lookups/employees', {
headers: getAuthHeaders()
});
const response = await window.http.wrappedFetch('/api/files/lookups/employees');
if (response.ok) {
const employees = await response.json();
@@ -719,9 +706,8 @@ async function saveQuickTime() {
};
try {
const response = await fetch('/api/financial/time-entry/quick', {
const response = await window.http.wrappedFetch('/api/financial/time-entry/quick', {
method: 'POST',
headers: getAuthHeaders(),
body: JSON.stringify(data)
});
@@ -769,9 +755,8 @@ async function savePayment() {
};
try {
const response = await fetch('/api/financial/payments/', {
const response = await window.http.wrappedFetch('/api/financial/payments/', {
method: 'POST',
headers: getAuthHeaders(),
body: JSON.stringify(data)
});
@@ -818,9 +803,8 @@ async function saveExpense() {
};
try {
const response = await fetch('/api/financial/expenses/', {
const response = await window.http.wrappedFetch('/api/financial/expenses/', {
method: 'POST',
headers: getAuthHeaders(),
body: JSON.stringify(data)
});
@@ -850,9 +834,7 @@ async function saveExpense() {
async function showUnbilledModal() {
// Load unbilled data
try {
const response = await fetch('/api/financial/unbilled-entries', {
headers: getAuthHeaders()
});
const response = await window.http.wrappedFetch('/api/financial/unbilled-entries');
if (!response.ok) throw new Error('Failed to load unbilled entries');
@@ -979,9 +961,8 @@ async function billSelectedEntries() {
}
try {
const response = await fetch('/api/financial/bill-entries', {
const response = await window.http.wrappedFetch('/api/financial/bill-entries', {
method: 'POST',
headers: getAuthHeaders(),
body: JSON.stringify({ entry_ids: entryIds })
});
@@ -1081,9 +1062,7 @@ async function validateQuickTimeFile() {
if (!fileNo) return;
try {
const response = await fetch(`/api/files/${fileNo}`, {
headers: getAuthHeaders()
});
const response = await window.http.wrappedFetch(`/api/files/${fileNo}`);
if (response.ok) {
const file = await response.json();