v0.8.08-beta - paden rechtzetten en er verandert niets
Some checks failed
Deploy server-up (dev) / deploy (push) Has been cancelled
Some checks failed
Deploy server-up (dev) / deploy (push) Has been cancelled
De appslijst bleef leeg na het rechtzetten van de paden, terwijl de API de apps gewoon leverde: de pagina haalde ze nooit opnieuw op. goto() wisselt alleen van pagina en saveSettings() verversde niets, dus je keek naar de lijst van bij het laden van de pagina. - bij een padwijziging worden de appslijst en de containers opnieuw opgehaald - saveSettings() gooide het antwoord van de server weg en meldde altijd "opgeslagen", ook als de server de opslag weigerde. Sinds v0.8.05 een pad buiten de koppeling weigert was dat het verschil tussen aangepast en niets gebeurd; de melding komt nu in beeld Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q9eqpADJSRs49SoGGr4NAy
This commit is contained in:
parent
2a50b5a92c
commit
8bb3771d2b
4 changed files with 70 additions and 2 deletions
19
CHANGELOG.md
19
CHANGELOG.md
|
|
@ -1,3 +1,22 @@
|
|||
# v0.8.08-beta — Paden rechtzetten en er verandert niets
|
||||
|
||||
Zet je in Instellingen → Paden je mappen goed, dan bleef de appslijst leeg. Niet
|
||||
omdat er iets mis was — de API leverde de apps gewoon — maar omdat de pagina ze
|
||||
nooit opnieuw ophaalde. `goto()` wisselt alleen van pagina, en `saveSettings()`
|
||||
verversde niets. Je keek dus naar de lijst zoals die bij het laden van de pagina
|
||||
was: leeg. Een herlaadactie loste het op, als je dat wist.
|
||||
|
||||
Twee dingen daaraan:
|
||||
|
||||
- Verandert een pad, dan worden de appslijst en de containers opnieuw
|
||||
opgehaald. Alleen bij een padwijziging, zodat een gewone instelling niet
|
||||
telkens twee verzoeken kost.
|
||||
- **Een geweigerde opslag meldde zich als "opgeslagen".** `saveSettings()` gooide
|
||||
het antwoord van de server weg en zette onvoorwaardelijk het vinkje. Sinds
|
||||
v0.8.05 een pad buiten de gekoppelde map weigert, is dat het verschil tussen
|
||||
"aangepast" en "er is niets gebeurd" — en je zag alleen het vinkje. De
|
||||
foutmelding van de server komt nu in beeld.
|
||||
|
||||
# v0.8.07-beta — "Rondgang geslaagd" en toch een rode job
|
||||
|
||||
De backup-rondgang doorliep alle vijf de stappen goed — dump, archief, alles
|
||||
|
|
|
|||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
0.8.07-beta
|
||||
0.8.08-beta
|
||||
|
|
|
|||
|
|
@ -2533,6 +2533,7 @@ function app() {
|
|||
filterOpen: false, filterTagQuery: '', stackMenu: '', stackFilterOpen: false,
|
||||
hoofdmap: '', afgeleidePaden: {}, padCheck: {}, padenVoorWijziging: {},
|
||||
padWaarschuwing: '',
|
||||
_padStand: null,
|
||||
padVelden: [
|
||||
{ sleutel: 'LIBRARY_DIR', label: 'library_dir' },
|
||||
{ sleutel: 'DATA_DIR', label: 'appdata_dir' },
|
||||
|
|
@ -3984,6 +3985,8 @@ function app() {
|
|||
BACKUP_DIR: this.settings.BACKUP_DIR,
|
||||
};
|
||||
this.hoofdmap = this.settings.BASE_DIR || '';
|
||||
this._padStand = ['LIBRARY_DIR', 'DATA_DIR', 'BACKUP_DIR']
|
||||
.map(k => this.settings[k] || '').join('|');
|
||||
await this.loadAppStore();
|
||||
await this.loadUsers();
|
||||
await this.loadNetworks();
|
||||
|
|
@ -3995,8 +3998,27 @@ function app() {
|
|||
async saveSettings() {
|
||||
if (this.saveTimer) { clearTimeout(this.saveTimer); this.saveTimer = null; }
|
||||
const body = { ...this.settings, LANGUAGE: this.settings.LANGUAGE, THEME: this.theme };
|
||||
await this.req('/api/settings', { method:'PUT', json: body });
|
||||
const d = await this.req('/api/settings', { method:'PUT', json: body });
|
||||
// De uitkomst werd weggegooid: een geweigerde opslag meldde zich net zo
|
||||
// vrolijk als "opgeslagen". Sinds een pad buiten de gekoppelde map
|
||||
// geweigerd wordt, is dat het verschil tussen "aangepast" en "er is
|
||||
// niets gebeurd".
|
||||
if (d && d.ok === false) {
|
||||
this.toast(d.msg || this.t('error'), 'er');
|
||||
return false;
|
||||
}
|
||||
this.saved = true; setTimeout(() => this.saved = false, 1500);
|
||||
// De appslijst hangt aan LIBRARY_DIR. Zonder dit blijf je na een
|
||||
// padwijziging kijken naar wat er bij het laden van de pagina stond —
|
||||
// je zet je paden goed en er verandert zichtbaar niets.
|
||||
const stand = ['LIBRARY_DIR', 'DATA_DIR', 'BACKUP_DIR']
|
||||
.map(k => this.settings[k] || '').join('|');
|
||||
if (stand !== this._padStand) {
|
||||
this._padStand = stand;
|
||||
await this.loadStacks();
|
||||
await this.loadHostContainers();
|
||||
}
|
||||
return true;
|
||||
},
|
||||
autoSave() {
|
||||
if (this.saveTimer) clearTimeout(this.saveTimer);
|
||||
|
|
|
|||
|
|
@ -424,6 +424,33 @@ check('balk staat halverwege', c.job.progress.pct === 50);
|
|||
check('en geen knop die apps belooft', c.storeVerborgen === 0);
|
||||
check('de teller is ook nul', c.storeResultaat === 0);
|
||||
|
||||
// ── Instellingen opslaan ──────────────────────────────────────────────────
|
||||
// De uitkomst werd weggegooid: een geweigerde opslag meldde zich als
|
||||
// "opgeslagen". En na een padwijziging werd niets herladen, dus je zette je
|
||||
// paden goed en zag hetzelfde lege scherm.
|
||||
let herladen = 0;
|
||||
let getoast = '';
|
||||
c.loadStacks = async () => { herladen++; };
|
||||
c.loadHostContainers = async () => { herladen++; };
|
||||
c.toast = (m) => { getoast = m; };
|
||||
c.settings = {LIBRARY_DIR: '/opt/serverup/stacks', DATA_DIR: '/opt/a', BACKUP_DIR: '/opt/b'};
|
||||
c._padStand = ['LIBRARY_DIR','DATA_DIR','BACKUP_DIR'].map(k => c.settings[k]).join('|');
|
||||
|
||||
c.req = async () => ({ok: false, msg: 'Server Up kan niet bij /srv/x'});
|
||||
c.settings.LIBRARY_DIR = '/srv/x';
|
||||
check('een geweigerde opslag geeft false terug', (await c.saveSettings()) === false);
|
||||
check('en meldt waarom', getoast.includes('/srv/x'));
|
||||
check('en herlaadt niets', herladen === 0);
|
||||
check('en zegt niet dat het opgeslagen is', c.saved !== true);
|
||||
|
||||
c.req = async () => ({ok: true});
|
||||
check('een geslaagde opslag geeft true terug', (await c.saveSettings()) === true);
|
||||
check('en haalt de lijst opnieuw op', herladen === 2);
|
||||
|
||||
herladen = 0;
|
||||
check('nog een keer opslaan zonder padwijziging lukt', (await c.saveSettings()) === true);
|
||||
check('en herlaadt dan niet opnieuw', herladen === 0);
|
||||
|
||||
c.rpc = poortRpc;
|
||||
|
||||
// ── Eén lijst voor beheerde en handmatig gestarte apps ────────────────────
|
||||
|
|
|
|||
Loading…
Reference in a new issue