From 431ff5d02e20337930bcd3fd433199e41c086c48 Mon Sep 17 00:00:00 2001 From: KarnerF Date: Tue, 11 Aug 2026 18:41:13 +0200 Subject: [PATCH] Move auto-start to sidebar panel, fix manual start not overwriting preferred ELF --- lang.h | 14 +++++++++++--- main.c | 20 ++++++++++++++++++-- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/lang.h b/lang.h index d727bf1..784e449 100644 --- a/lang.h +++ b/lang.h @@ -119,7 +119,9 @@ typedef enum { LS_MOVE_FROM_USB = 107, LS_MOVE_ALL_LOCAL = 108, LS_CLEAR_LOG = 109, - LS_COUNT = 110 + LS_AUTOSTART = 110, + LS_PREF_ELF = 111, + LS_COUNT = 112 } LangStrId; static int ui_lang = LANG_EN; @@ -236,6 +238,8 @@ static const char *lang_table[LANG_COUNT][LS_COUNT] = { "Lokal verschieben", "Intern verschieben", "Log l\u00f6schen", + "Auto-Start", + "Bevorzugte ELF", }, /* EN */ { "running", @@ -347,8 +351,8 @@ static const char *lang_table[LANG_COUNT][LS_COUNT] = { "USB Backups", "Move local", "Move local", - "Clear log", - }, + "Clear log", "Auto-Start", + "Preferred ELF", }, /* FR */ { "actif", "inactif", @@ -460,6 +464,8 @@ static const char *lang_table[LANG_COUNT][LS_COUNT] = { "D\u00e9placer local", "Cr\u00e9er sur USB", "Effacer le journal", + "D\u00e9marrage auto", + "ELF pr\u00e9f\u00e9r\u00e9", }, /* ES */ { "activo", @@ -572,6 +578,8 @@ static const char *lang_table[LANG_COUNT][LS_COUNT] = { "Mover local", "Mover local", "Borrar log", + "Inicio autom\u00e1tico", + "ELF preferido", } }; diff --git a/main.c b/main.c index 8f48ec0..730be1f 100644 --- a/main.c +++ b/main.c @@ -997,6 +997,7 @@ static void fn(struct mg_connection *c, int ev, void *ev_data) { H("
"); H("
"); /* Panel: Mounting */ + /* ── Autostart panel ── */ + { SMPrefs prefs; read_prefs(&prefs); + const char *elfname="ELF w\u00e4hlen"; + if(prefs.preferred_elf[0]){const char *sl=strrchr(prefs.preferred_elf,'/');elfname=sl?sl+1:prefs.preferred_elf;} + H("
"); + H("
AUTOSTART
"); + H("
" + "" + "
", + L(LS_AUTOSTART), prefs.auto_start?" checked":""); + H("
" + "
", + L(LS_PREF_ELF), elfname); + H("
"); } H("
"); SW("ro","mount_read_only",L(LS_READ_ONLY),cfg.mount_read_only); SW("fm","force_mount",L(LS_MOUNT_DAMAGED),cfg.force_mount); @@ -2060,8 +2077,7 @@ static void fn(struct mg_connection *c, int ev, void *ev_data) { int r = send_elf_to_elfldr(elf_path); if(r==-1){ notify(en?"SM ELF not found":"SM ELF nicht gefunden"); mg_http_reply(c,200,"Content-Type: application/json\r\nCache-Control: no-cache\r\n","{\"ok\":false,\"err\":\"elf_not_found\"}"); return; } if(r==-2){ notify(en?"elfldr not reachable (Port 9021/9020)":"elfldr nicht erreichbar (Port 9021/9020)"); mg_http_reply(c,200,"Content-Type: application/json\r\nCache-Control: no-cache\r\n","{\"ok\":false,\"err\":\"elfldr_not_reachable\"}"); return; } - /* save as preferred ELF */ - if(elf_path[0]){ SMPrefs p; read_prefs(&p); strncpy(p.preferred_elf,elf_path,511); write_prefs(&p); } + /* do NOT save preferred ELF here — managed by auto-start panel only */ mg_http_reply(c,200,"Content-Type: application/json\r\nCache-Control: no-cache\r\n","{\"ok\":%s}",r==0?"true":"false"); } else if(mg_match(hm->uri,mg_str("/api/config/backup"),NULL)){