|
8073 | 8073 | try { _recomputeEffectiveOutputDir(); } catch (e) {} |
8074 | 8074 | } |
8075 | 8075 |
|
8076 | | - function loadLocalSettings() { |
8077 | | - try { |
8078 | | - var saved = localStorage.getItem(LOCAL_SETTINGS_KEY); |
8079 | | - if (saved) { |
8080 | | - var settings = JSON.parse(saved); |
8081 | | - if (settings.autoImport !== undefined && el.settingsAutoImport) el.settingsAutoImport.checked = settings.autoImport; |
8082 | | - if (settings.autoOpen !== undefined && el.settingsAutoOpen) el.settingsAutoOpen.checked = settings.autoOpen; |
8083 | | - if (settings.showNotifications !== undefined && el.settingsShowNotifications) el.settingsShowNotifications.checked = settings.showNotifications; |
| 8076 | + function loadLocalSettings() { |
| 8077 | + try { |
| 8078 | + var saved = localStorage.getItem(LOCAL_SETTINGS_KEY); |
| 8079 | + if (saved) { |
| 8080 | + var settings = PanelUtils.normalizeLocalSettings |
| 8081 | + ? PanelUtils.normalizeLocalSettings(JSON.parse(saved)) |
| 8082 | + : JSON.parse(saved); |
| 8083 | + if (settings.autoImport !== undefined && el.settingsAutoImport) el.settingsAutoImport.checked = settings.autoImport; |
| 8084 | + if (settings.autoOpen !== undefined && el.settingsAutoOpen) el.settingsAutoOpen.checked = settings.autoOpen; |
| 8085 | + if (settings.showNotifications !== undefined && el.settingsShowNotifications) el.settingsShowNotifications.checked = settings.showNotifications; |
8084 | 8086 | if (settings.outputDir && el.settingsOutputDir) el.settingsOutputDir.value = settings.outputDir; |
8085 | 8087 | if (settings.defaultModel && el.settingsDefaultModel) el.settingsDefaultModel.value = settings.defaultModel; |
8086 | 8088 | if (settings.theme && el.settingsTheme) { |
@@ -11959,16 +11961,23 @@ |
11959 | 11961 | if (!file) return; |
11960 | 11962 | var reader = new FileReader(); |
11961 | 11963 | reader.onload = function (e) { |
11962 | | - try { |
11963 | | - var data = JSON.parse(e.target.result); |
11964 | | - api("POST", "/settings/import", data, function (err, result) { |
11965 | | - if (err) { showToast(t("settings.import_failed", "Couldn't import settings"), "error"); return; } |
11966 | | - if (data.localStorage) { |
11967 | | - localStorage.setItem("opencut_settings", JSON.stringify(data.localStorage)); |
11968 | | - loadLocalSettings(); |
11969 | | - } |
11970 | | - showToast(t("settings.imported", "Settings imported: {items}").replace("{items}", (result.imported || []).join(", ")), "success"); |
11971 | | - if (typeof initPresets === "function") initPresets(); |
| 11964 | + try { |
| 11965 | + var data = JSON.parse(e.target.result); |
| 11966 | + api("POST", "/settings/import", data, function (err, result) { |
| 11967 | + if (err) { showToast(t("settings.import_failed", "Couldn't import settings"), "error"); return; } |
| 11968 | + if (data.localStorage) { |
| 11969 | + try { |
| 11970 | + var localSettings = PanelUtils.normalizeLocalSettings |
| 11971 | + ? PanelUtils.normalizeLocalSettings(data.localStorage) |
| 11972 | + : data.localStorage; |
| 11973 | + localStorage.setItem(LOCAL_SETTINGS_KEY, JSON.stringify(localSettings)); |
| 11974 | + loadLocalSettings(); |
| 11975 | + } catch (storageError) { |
| 11976 | + showToast(t("settings.import_local_failed", "Settings imported, but local panel preferences could not be saved."), "warning"); |
| 11977 | + } |
| 11978 | + } |
| 11979 | + showToast(t("settings.imported", "Settings imported: {items}").replace("{items}", (result.imported || []).join(", ")), "success"); |
| 11980 | + if (typeof initPresets === "function") initPresets(); |
11972 | 11981 | }); |
11973 | 11982 | } catch (ex) { |
11974 | 11983 | showToast(t("settings.import_invalid_file", "This file doesn't contain valid OpenCut settings"), "error"); |
|
0 commit comments