Files
vda-to-edifact-converter/js/werks-watcher-bridge.js
2026-03-13 09:53:40 +01:00

88 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* WerksWatcherBridge Frontend logic for the Werksnummer renaming watcher.
*/
window.EDIBridge = window.EDIBridge || {};
class WerksWatcherBridge {
constructor() {
this.status = 'stopped';
this.onStatusChange = null;
this.onLogEntry = null;
this._setupListeners();
}
_setupListeners() {
if (!window.electronAPI) return;
window.electronAPI.onWerksFileProcessed((data) => {
this._addLog('success', data.fileName, `Werk erkannt: ${data.plant}${data.newName}`);
});
window.electronAPI.onWerksWatcherError((data) => {
this._addLog('error', data.fileName || '', data.error || 'Fehler beim Umbenennen');
});
window.electronAPI.onWerksWatcherReady((data) => {
this._addLog('info', '', `Werks-Watcher bereit. Überwache: ${data.inputDir}`);
});
}
_addLog(level, fileName, message) {
if (this.onLogEntry) {
this.onLogEntry({
time: new Date().toLocaleTimeString('de-DE'),
level,
fileName,
message: `[WerksWatcher] ${message}`
});
}
}
async start(inputDir, outputDir) {
if (!window.electronAPI) return { error: 'Electron erforderlich' };
const result = await window.electronAPI.startWerksWatcher({ inputDir, outputDir });
if (result.success) {
this.status = 'running';
if (this.onStatusChange) this.onStatusChange(this.status);
}
return result;
}
async stop() {
if (!window.electronAPI) return;
const result = await window.electronAPI.stopWerksWatcher();
if (result.success) {
this.status = 'stopped';
if (this.onStatusChange) this.onStatusChange(this.status);
}
return result;
}
async pause() {
if (!window.electronAPI) return;
const result = await window.electronAPI.pauseWerksWatcher();
if (result.success) {
this.status = 'paused';
if (this.onStatusChange) this.onStatusChange(this.status);
}
return result;
}
async resume() {
if (!window.electronAPI) return;
const result = await window.electronAPI.resumeWerksWatcher();
if (result.success) {
this.status = 'running';
if (this.onStatusChange) this.onStatusChange(this.status);
}
return result;
}
isElectron() {
return !!window.electronAPI;
}
}
window.EDIBridge.WerksWatcherBridge = WerksWatcherBridge;