Technician

This commit is contained in:
2026-05-26 13:55:27 -05:00
parent 1885224a5a
commit f062bd8168
8 changed files with 216 additions and 23 deletions

View File

@@ -2,6 +2,7 @@
* settings-view.js — Logo upload, QBO import, QBO connection test
* Extracted from app.js
*/
import '../utils/api.js';
let currentLogoFile = null;
@@ -69,6 +70,8 @@ export function initSettingsView() {
}
});
}
loadWorkerSettings();
}
export async function checkQboOverdue() {
@@ -175,8 +178,42 @@ export async function importFromQBO() {
btn.disabled = false;
}
}
export async function loadWorkerSettings() {
try {
const result = await window.API.settings.get('invoice_workers');
const input = document.getElementById('workers-input');
if (input) input.value = (result && result.value) ? result.value : '';
} catch (e) {
console.error('Error loading worker settings:', e);
}
}
export async function saveWorkerSettings() {
const input = document.getElementById('workers-input');
const statusEl = document.getElementById('workers-status');
if (!input) return;
const value = input.value.trim();
statusEl.innerHTML = '<p class="text-blue-600">Saving...</p>';
try {
const result = await window.API.settings.set('invoice_workers', value);
if (result.success) {
statusEl.innerHTML = '<p class="text-green-600">✓ Worker list saved.</p>';
// Dropdown im Invoice-Modal aktualisieren
if (typeof window.reloadInvoiceWorkers === 'function') {
window.reloadInvoiceWorkers();
}
} else {
statusEl.innerHTML = `<p class="text-red-600">✗ ${result.error || 'Save failed'}</p>`;
}
} catch (e) {
console.error('Error saving worker settings:', e);
statusEl.innerHTML = '<p class="text-red-600">✗ Save failed</p>';
}
}
// Expose for onclick handlers
window.uploadLogo = uploadLogo;
window.checkQboOverdue = checkQboOverdue;
window.importFromQBO = importFromQBO;
window.importFromQBO = importFromQBO;
window.saveWorkerSettings = saveWorkerSettings;