From 4051e014635117e37fc5baa16c6994c74a9d518d Mon Sep 17 00:00:00 2001 From: macniel Date: Tue, 5 May 2026 14:48:13 +0200 Subject: [PATCH] index.js aktualisiert --- index.js | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/index.js b/index.js index 6ce6b11..844cf8b 100644 --- a/index.js +++ b/index.js @@ -127,7 +127,8 @@ function addAccount(data) { gadgets: gadgets }); - while (true) { + let indexOfNewAccount = -1; + while (true) { var evt = gui.waitEvent(win); if (!evt) continue; @@ -146,12 +147,15 @@ function addAccount(data) { entries: [] } ) + indexOfNewAccount = data.findIndex( p => p.name == newAccountName); + console.log(indexOfNewAccount); gui.closeWindow(win); break; } } } } + return indexOfNewAccount; } function subWindow(data) { @@ -338,12 +342,17 @@ function mainWindow(projectData) { let currentAccountIndex = 0; let updateView = (accountIndex, data) => { + if (accountIndex!=null) { + gui.set(win, cycleId, getAccounts(data)); + gui.set(win, cycleId, accountIndex); + }else { + accountIndex = gui.get(win, cycleId); + } gui.set(win, 2, toListViewEntries(data[accountIndex].entries, cols)); - gui.set(win, 3, getSummation(data[accountIndex].entries).toFixed(2)); + gui.set(win, 3, getSummation(data[accountIndex].entries).toFixed(2)); } let doNew = () => { - invalidate = true; return [ { name: "Current", @@ -357,7 +366,6 @@ function mainWindow(projectData) { if (r) { return JSON.parse(fs.readFileSync(r.file)); } - invalidate = false; } let doSave = () => { @@ -382,25 +390,28 @@ function mainWindow(projectData) { if (evt.type === 'menu') { if (evt.id === 101) { internalProjectData = doNew(); - break; + updateView(0, internalProjectData); } else if (evt.id === 102) { internalProjectData = doOpen(); - break; + updateView(0, internalProjectData); } else if (evt.id === 103) { doSave(); } else if (evt.id === 104) { - addAccount(internalProjectData); - invalidate = true; + let indexOfNewAccount = addAccount(internalProjectData); + if (indexOfNewAccount > -1) { + currentAccountIndex = indexOfNewAccount; + } + updateView(currentAccountIndex, internalProjectData); } else if (evt.id === 105) { if (internalProjectData.length > 1) { const rValue = closeAccount(internalProjectData, internalProjectData[currentAccountIndex]); if (rValue === -1) { internalProjectData.splice(currentAccountIndex, 1); - invalidate = true; + updateView(0, internalProjectData); } } else { gui.alert("Cannot close last remaining Account"); @@ -417,7 +428,7 @@ function mainWindow(projectData) { if (evt.id === cycleId) { currentAccountIndex = evt.code; - updateView(currentAccountIndex, internalProjectData); + updateView(null, internalProjectData); } else if (evt.id === listViewId) { const entry = subWindow(internalProjectData[currentAccountIndex].entries[evt.code]); if (entry != null) { @@ -461,7 +472,6 @@ function mainWindow(projectData) { gui.closeWindow(win); - return internalProjectData; } @@ -506,7 +516,4 @@ function mainWindow(projectData) { ]; -do { - projectData = mainWindow(projectData); -} while(projectData != null); -console.log("bye!"); \ No newline at end of file +mainWindow(projectData); \ No newline at end of file