Skip to content

Commit dff2012

Browse files
committed
refactor: Move inlined js into utils.js
1 parent 4f8384a commit dff2012

2 files changed

Lines changed: 52 additions & 19 deletions

File tree

‎src/e3sm_compareview/components/toolbars.py‎

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ def __init__(self):
580580
classes="text-caption mr-4",
581581
)
582582
html.Div(
583-
"{{ (() => { if (!simulation_configs.length) return 'Loaded simulations:\\nnone'; return `Loaded simulations:\\n${simulation_configs.map(sim => `${sim.label || sim.path.split('/').pop()}${sim.path === control_simulation_file ? ' (ctrl)' : ''}`).join('\\n')}`; })() }}",
583+
"{{ utils.quickcompare.loadedSimulationsText(simulation_configs, control_simulation_file) }}",
584584
style="white-space: pre-line;",
585585
)
586586
v3.VBtn(
@@ -646,11 +646,7 @@ def __init__(self):
646646
with v3.VCol(cols=12, md=6):
647647
v3.VTextField(
648648
model_value=("entry.label",),
649-
update_modelValue="""
650-
simulation_configs = simulation_configs.map((sim) =>
651-
sim.path === entry.path ? ({ ...sim, label: $event }) : sim
652-
);
653-
""",
649+
update_modelValue="utils.quickcompare.setSimulationLabel(entry.path, $event)",
654650
label="Label",
655651
density="compact",
656652
variant="outlined",
@@ -696,11 +692,7 @@ def __init__(self):
696692
model_value=(
697693
"control_simulation_file === entry.path ? true : entry.include",
698694
),
699-
update_modelValue="""
700-
simulation_configs = simulation_configs.map((sim) =>
701-
sim.path === entry.path ? ({ ...sim, include: !!$event }) : sim
702-
);
703-
""",
695+
update_modelValue="utils.quickcompare.setSimulationInclude(entry.path, $event)",
704696
label="Include",
705697
density="compact",
706698
hide_details=True,

‎src/e3sm_compareview/module/serve/utils.js‎

Lines changed: 49 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
(() => {
22
const isQuickCompareTauri = !!window.__TAURI__;
33

4+
function fileLabel(entry) {
5+
return entry.label || entry.path.split("/").pop();
6+
}
7+
48
function getGroupFileName(groupName) {
5-
const state = trame.state.state;
69
const nameTokens = [groupName];
710

8-
state.available_animation_tracks.forEach((name) => {
11+
trame.state.state.available_animation_tracks.forEach((name) => {
912
nameTokens.push(name);
10-
const nDigit = Math.floor(Math.log10(state[name].length) + 1);
11-
const idx = state[`${name}_idx`];
13+
const nDigit = Math.floor(Math.log10(trame.state.state[name].length) + 1);
14+
const idx = trame.state.state[`${name}_idx`];
1215
nameTokens.push(String(idx).padStart(nDigit, "0"));
1316
});
1417

@@ -55,11 +58,49 @@
5558
downloadURL(dataURL, fileName);
5659
}
5760

61+
62+
function setSimulationLabel(path, label) {
63+
trame.state.set(
64+
"simulation_configs",
65+
trame.state.state.simulation_configs.map((sim) =>
66+
sim.path === path ? { ...sim, label } : sim,
67+
),
68+
);
69+
}
70+
71+
function setSimulationInclude(path, include) {
72+
trame.state.set(
73+
"simulation_configs",
74+
trame.state.state.simulation_configs.map((sim) =>
75+
sim.path === path ? { ...sim, include: !!include } : sim,
76+
),
77+
);
78+
}
79+
80+
function loadedSimulationsText(simulationConfigs, controlPath) {
81+
if (!simulationConfigs?.length) {
82+
return "Loaded simulations:\nnone";
83+
}
84+
85+
const lines = simulationConfigs.map((sim) => {
86+
const suffix = sim.path === controlPath ? " (ctrl)" : "";
87+
return `${fileLabel(sim)}${suffix}`;
88+
});
89+
90+
return `Loaded simulations:\n${lines.join("\n")}`;
91+
}
92+
5893
window.trame = window.trame || {};
5994
window.trame.utils = window.trame.utils || {};
60-
window.trame.utils.quickcompare = {
61-
async captureGroup(groupName) {
62-
await captureTarget(findGroupToCapture(groupName), getGroupFileName(groupName));
95+
const quickcompare = window.trame.utils.quickcompare || {};
96+
97+
Object.assign(quickcompare, {
98+
captureGroup(groupName) {
99+
return captureTarget(findGroupToCapture(groupName), getGroupFileName(groupName));
63100
},
64-
};
101+
setSimulationLabel,
102+
setSimulationInclude,
103+
loadedSimulationsText,
104+
});
105+
window.trame.utils.quickcompare = quickcompare;
65106
})();

0 commit comments

Comments
 (0)