feat: rename file_ready_dialog to print_start_dialog for consistency

This commit is contained in:
Gangoke
2026-06-16 00:57:36 -10:00
parent 9517493c39
commit c91ba66801
5 changed files with 30 additions and 18 deletions

View File

@@ -35,7 +35,7 @@ auto_leveling = 1
camera_on_print = 0
# Statt grünem Ready-Banner den Filament/Color-Selector automatisch öffnen (1 = an, 0 = aus)
file_ready_dialog = 1
print_start_dialog = 1
# Warnung vor Druck von Web-Uploads (1 = an, 0 = aus)
web_upload_warning = 1

View File

@@ -60,7 +60,7 @@ def _load_config_file(path: pathlib.Path):
"DEFAULT_AMS_SLOT": (CONFIG_SECTION_PRINT, "default_ams_slot"),
"AUTO_LEVELING": (CONFIG_SECTION_PRINT, "auto_leveling"),
"CAMERA_ON_PRINT": (CONFIG_SECTION_PRINT, "camera_on_print"),
"FILE_READY_DIALOG": (CONFIG_SECTION_PRINT, "file_ready_dialog"),
"PRINT_START_DIALOG": (CONFIG_SECTION_PRINT, "print_start_dialog"),
"WEB_UPLOAD_WARNING": (CONFIG_SECTION_PRINT, "web_upload_warning"),
"BRIDGE_PRINTER_NAME": (CONFIG_SECTION_BRIDGE, "printer_name"),
}
@@ -73,6 +73,17 @@ def _load_config_file(path: pathlib.Path):
except (configparser.NoSectionError, configparser.NoOptionError):
pass
# Backward compatibility: legacy option and env var
if "PRINT_START_DIALOG" not in os.environ:
try:
legacy = cfg.get(CONFIG_SECTION_PRINT, "file_ready_dialog")
if legacy:
os.environ["PRINT_START_DIALOG"] = legacy
except (configparser.NoSectionError, configparser.NoOptionError):
pass
if "PRINT_START_DIALOG" not in os.environ and "FILE_READY_DIALOG" in os.environ:
os.environ["PRINT_START_DIALOG"] = os.environ["FILE_READY_DIALOG"]
def migrate_env_to_config(env_path: pathlib.Path, config_path: pathlib.Path):
"""Einmalige Migration: .env → config.ini anlegen."""
@@ -99,7 +110,7 @@ def migrate_env_to_config(env_path: pathlib.Path, config_path: pathlib.Path):
"default_ams_slot": env_vals.get("DEFAULT_AMS_SLOT", "auto"),
"auto_leveling": env_vals.get("AUTO_LEVELING", "1"),
"camera_on_print": env_vals.get("CAMERA_ON_PRINT", "0"),
"file_ready_dialog": env_vals.get("FILE_READY_DIALOG", "1"),
"print_start_dialog": env_vals.get("PRINT_START_DIALOG", env_vals.get("FILE_READY_DIALOG", "1")),
"web_upload_warning": env_vals.get("WEB_UPLOAD_WARNING", "1"),
}
cfg[CONFIG_SECTION_BRIDGE] = {
@@ -260,5 +271,5 @@ DEVICE_ID = get("DEVICE_ID", "")
DEFAULT_AMS_SLOT = get("DEFAULT_AMS_SLOT", "auto")
AUTO_LEVELING = int(get("AUTO_LEVELING","1"))
CAMERA_ON_PRINT = int(get("CAMERA_ON_PRINT","0"))
FILE_READY_DIALOG = int(get("FILE_READY_DIALOG","1"))
PRINT_START_DIALOG = int(get("PRINT_START_DIALOG", get("FILE_READY_DIALOG","1")))
WEB_UPLOAD_WARNING = int(get("WEB_UPLOAD_WARNING", "1"))

View File

@@ -48,4 +48,4 @@ MODE_ID = get("MODE_ID", "")
DEVICE_ID = get("DEVICE_ID", "")
DEFAULT_AMS_SLOT = get("DEFAULT_AMS_SLOT", "auto")
AUTO_LEVELING = int(get("AUTO_LEVELING", "1"))
FILE_READY_DIALOG = int(get("FILE_READY_DIALOG", "1"))
PRINT_START_DIALOG = int(get("PRINT_START_DIALOG", get("FILE_READY_DIALOG", "1")))

View File

@@ -783,7 +783,7 @@ class KobraXBridge:
"print_speed_mode": 2,
"connection_error": "",
"file_ready": "",
"file_ready_dialog": getattr(args, "file_ready_dialog", 0),
"print_start_dialog": getattr(args, "print_start_dialog", 0),
"filament_mode": "toolhead",
"ace_drying": {"status": 0, "target_temp": 0, "duration": 0, "remain_time": 0, "humidity": None, "current_temp": None},
}
@@ -3760,7 +3760,7 @@ class KobraXBridge:
"thumbnail": thumbnail,
"connection_error": s["connection_error"],
"file_ready": s["file_ready"],
"file_ready_dialog": getattr(self._args, "file_ready_dialog", 1),
"print_start_dialog": getattr(self._args, "print_start_dialog", 1),
"version": self._read_version(),
})
@@ -3898,7 +3898,7 @@ class KobraXBridge:
"default_ams_slot": getattr(self._args, "default_ams_slot", "auto"),
"auto_leveling": getattr(self._args, "auto_leveling", 1),
"camera_on_print": getattr(self._args, "camera_on_print", 0),
"file_ready_dialog": getattr(self._args, "file_ready_dialog", 1),
"print_start_dialog": getattr(self._args, "print_start_dialog", 1),
"web_upload_warning": getattr(self._args, "web_upload_warning", 1),
"ace_dry_presets": self._ace_dry_presets,
})
@@ -3929,8 +3929,8 @@ class KobraXBridge:
cfg.set("print", "default_ams_slot", str(data.get("default_ams_slot", getattr(self._args, "default_ams_slot", "auto"))))
cfg.set("print", "auto_leveling", str(data.get("auto_leveling", getattr(self._args, "auto_leveling", 1))))
cfg.set("print", "camera_on_print", str(int(bool(data.get("camera_on_print", getattr(self._args, "camera_on_print", 0))))))
file_ready_dialog = int(bool(data.get("file_ready_dialog", getattr(self._args, "file_ready_dialog", 0))))
cfg.set("print", "file_ready_dialog", str(file_ready_dialog))
print_start_dialog = int(bool(data.get("print_start_dialog", data.get("file_ready_dialog", getattr(self._args, "print_start_dialog", 0)))))
cfg.set("print", "print_start_dialog", str(print_start_dialog))
cfg.set("print", "web_upload_warning", str(int(bool(data.get("web_upload_warning", getattr(self._args, "web_upload_warning", 1))))))
if not cfg.has_option("bridge", "poll_interval"):
cfg.set("bridge", "poll_interval", "3")
@@ -3940,7 +3940,7 @@ class KobraXBridge:
elif cfg.has_option("bridge", "printer_name"):
cfg.remove_option("bridge", "printer_name")
self._args.file_ready_dialog = file_ready_dialog
self._args.print_start_dialog = print_start_dialog
self._args.auto_leveling = int(data.get("auto_leveling", getattr(self._args, "auto_leveling", 1)))
incoming_presets = data.get("ace_dry_presets") if isinstance(data, dict) else None
@@ -4101,7 +4101,7 @@ class KobraXBridge:
# die alten Werte statt der geänderten config.ini.
for _k in ("PRINTER_IP", "MQTT_PORT", "MQTT_USERNAME", "MQTT_PASSWORD",
"MODE_ID", "DEVICE_ID", "DEFAULT_AMS_SLOT", "AUTO_LEVELING",
"CAMERA_ON_PRINT", "FILE_READY_DIALOG", "WEB_UPLOAD_WARNING", "BRIDGE_PRINTER_NAME"):
"CAMERA_ON_PRINT", "PRINT_START_DIALOG", "FILE_READY_DIALOG", "WEB_UPLOAD_WARNING", "BRIDGE_PRINTER_NAME"):
os.environ.pop(_k, None)
in_docker = os.path.exists("/.dockerenv") or os.environ.get("KX_IN_DOCKER")
@@ -4993,7 +4993,8 @@ def main():
parser.add_argument("--default-ams-slot",default=env_loader.DEFAULT_AMS_SLOT)
parser.add_argument("--auto-leveling", type=int, default=env_loader.AUTO_LEVELING)
parser.add_argument("--camera-on-print", type=int, default=env_loader.CAMERA_ON_PRINT)
parser.add_argument("--file-ready-dialog", type=int, default=env_loader.FILE_READY_DIALOG)
parser.add_argument("--print-start-dialog", type=int, default=env_loader.PRINT_START_DIALOG)
parser.add_argument("--file-ready-dialog", dest="print_start_dialog", type=int)
parser.add_argument("--web-upload-warning", type=int, default=env_loader.WEB_UPLOAD_WARNING)
parser.add_argument("--host", default="0.0.0.0",

View File

@@ -649,7 +649,7 @@ function applyState(){
var filamentDialogOpen=!!(filamentDialog&&filamentDialog.classList.contains('open'));
var readyFile=s.file_ready||'';
var readyStandby=!!(readyFile&&s.print_state==='standby');
var dialogMode=!!s.file_ready_dialog;
var dialogMode=!!(s.print_start_dialog!==undefined?s.print_start_dialog:s.file_ready_dialog);
if(frb){
if(readyStandby&&!dialogMode){
document.getElementById('file-ready-name').textContent=readyFile;
@@ -954,7 +954,7 @@ function openSettings(){
document.getElementById('s-auto-leveling').checked=(d.auto_leveling===undefined?true:!!d.auto_leveling);
S.auto_leveling=(d.auto_leveling===undefined?1:(d.auto_leveling?1:0));
var cop=document.getElementById('s-camera-on-print');if(cop)cop.checked=!!d.camera_on_print;
var frm=document.getElementById('s-file-ready-mode');if(frm)frm.value=Number(d.file_ready_dialog)?'dialog':'banner';
var frm=document.getElementById('s-file-ready-mode');if(frm)frm.value=Number((d.print_start_dialog!==undefined)?d.print_start_dialog:d.file_ready_dialog)?'dialog':'banner';
var wuw=document.getElementById('s-web-upload-warning');if(wuw)wuw.checked=(d.web_upload_warning===undefined?true:!!d.web_upload_warning);
});
var v=localStorage.getItem('pollInterval')||'2000';
@@ -1333,8 +1333,8 @@ function saveSettings(){
btn.disabled=true;btn.textContent='…';
var webUploadWarning=(document.getElementById('s-web-upload-warning')||{}).checked?1:0;
S.web_upload_warning=webUploadWarning;
var fileReadyDialog=(document.getElementById('s-file-ready-mode')||{}).value==='dialog'?1:0;
S.file_ready_dialog=fileReadyDialog;
var printStartDialog=(document.getElementById('s-file-ready-mode')||{}).value==='dialog'?1:0;
S.print_start_dialog=printStartDialog;
S.auto_leveling=(document.getElementById('s-auto-leveling')||{}).checked?1:0;
post('/api/settings',{
printer_name: document.getElementById('s-printer-name').value,
@@ -1347,7 +1347,7 @@ function saveSettings(){
default_ams_slot: document.getElementById('s-default-slot').value,
auto_leveling: document.getElementById('s-auto-leveling').checked?1:0,
camera_on_print: (document.getElementById('s-camera-on-print')||{}).checked?1:0,
file_ready_dialog:fileReadyDialog,
print_start_dialog:printStartDialog,
web_upload_warning:webUploadWarning,
}).then(function(){
btn.textContent=T.update_restarting;