Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
2abad9a
feat(dynamfit): implement smooth_prony_fit
richardsheridan May 19, 2026
0fa6df8
feat(dynamfit): generate dynamfit backend test suite
richardsheridan May 21, 2026
96ab924
feat(dynamfit): expose y_std in smooth_prony_fit all the way up to th…
richardsheridan May 24, 2026
4cdc2fa
chore: add .gitattributes to force LF on shell scripts and husky hooks
richardsheridan May 25, 2026
44f7448
feat(dynamfit): fit best-fit WLF/hybrid coefficients from shift-domai…
richardsheridan May 25, 2026
564024b
feat(dynamfit): co-fit reference offset a_T_ref in hybrid shift-facto…
richardsheridan May 29, 2026
e7aeac9
feat(dynamfit): Create new fit-shift route
richardsheridan Jun 1, 2026
5aa63d5
test(dynamfit): split monolithic suite into meaningful subsets
richardsheridan Jun 1, 2026
18bfcc1
fix(Dynamfit): Adding dynamfit-separator, dynamfit-toggle and moved a…
tholulomo Jun 16, 2026
52f6e8c
feat(Dynamfit): Major refactor to chartsettings and chart visualizer …
tholulomo Jun 16, 2026
adbdc9c
feat(Dynamfit): Added new coefficient dispatch actions and updated dy…
tholulomo Jun 16, 2026
c1b3462
merge: pull develop into dynamfit_revamp
tholulomo Jun 16, 2026
00ff47d
FEAT(Dynamfit): Dynamfit A/B Test
tholulomo Jun 30, 2026
044d3e8
FIX(Dynamfit): Fixing UI TTSP watcher bug
tholulomo Jul 4, 2026
40b5067
FIX(Dynamfit): Fixing curation form vertical stepper property search bug
tholulomo Jul 4, 2026
27fe655
FIX(Dynamfit): read non-UTF-8 and whitespace-delimited files in the u…
richardsheridan Jul 7, 2026
1b7b028
FIX(Dynamfit): harden TTSP transform with overflow-safe prony basis, …
richardsheridan Jul 7, 2026
6655b83
FIX(Dynamfit): wire the TTSP Update button to re-run the fit instead …
richardsheridan Jul 7, 2026
86b6479
FEAT(Dynamfit): keep error snackbars on screen for 8 seconds
richardsheridan Jul 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Default: let git normalize text, store LF in the repo
* text=auto

# Files executed in Linux containers / WSL — must be LF or the shebang breaks
*.sh text eol=lf
.husky/** text eol=lf
install text eol=lf
5 changes: 5 additions & 0 deletions app/src/assets/css/modules/_button.scss
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,8 @@ a.btn-text,
color: #fff !important;
}
}

a.disabled {
pointer-events: none;
cursor: default;
}
87 changes: 87 additions & 0 deletions app/src/assets/css/modules/_tools.scss
Original file line number Diff line number Diff line change
Expand Up @@ -385,4 +385,91 @@
min-height: 20vh;
}
}

&-separator {
border: none;
border-top: 1px solid $secondary-grey;
margin: 2.4rem 0 1.2rem;
}

&-toggle {
display: inline-flex;
border: 1px solid $primary;
border-radius: 3px;
overflow: hidden;

@include respond(phone) {
display: flex;
width: 100%;
}

&__option {
padding: 0.8rem 2.4rem;
font-size: $medium-size;
font-weight: 500;
cursor: pointer;
transition: all 0.2s;
color: $primary;
background-color: $primary-white;
border: none;
outline: none;

@include respond(phone) {
flex: 1;
text-align: center;
}

&--active {
background-color: $primary;
color: $primary-white;
}

&:not(:last-child) {
border-right: 1px solid $primary;
}
}
}

&-readonly {
display: flex;
align-items: center;
padding: 0.4rem 0.8rem;
background-color: rgba($secondary-light, 0.3);
border-left: 3px solid $secondary;
border-radius: 0 3px 3px 0;
font-size: $small-size;

&__label {
font-weight: 700;
color: $primary;
margin-right: 0.4rem;
}

&__value {
color: $primary-grey;
}
}

&-field--half {
max-width: 40% !important;

@include respond(phone) {
max-width: 100% !important;
}
}

&-shift-upload {
border: 2px dashed $secondary-grey;
border-radius: 3px;
padding: 1.2rem;
margin-bottom: 1.5rem;
text-align: center;

&__label {
font-size: $small-size;
font-weight: 500;
color: $primary;
margin-bottom: 0.6rem;
}
}
}
15 changes: 14 additions & 1 deletion app/src/components/Snackbar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<div>
<md-snackbar
:md-position="position"
:md-duration="!snackbar?.duration ? Infinity : snackbar.duration"
:md-duration="snackbarDuration"
class="md-snackbar-adjust"
v-model:mdActive="show"
>
Expand Down Expand Up @@ -57,6 +57,19 @@ const snackbar = computed(
}
);

// Error snackbars linger long enough to read the (often multi-word) backend
// error text; success/info toasts keep their own short duration. A falsy
// duration still means "persistent" (Infinity; dismissed via the Retry action
// or a route change), so retryable errors with an action stay until acted on.
const ERROR_MIN_MS = 8000;
const snackbarDuration = computed(() => {
const s = snackbar.value;
if (!s?.duration) return Infinity;
return s.type === 'error'
? Math.max(s.duration as number, ERROR_MIN_MS)
: (s.duration as number);
});

// Methods
const resetSnackbar = () => {
show.value = false;
Expand Down
Loading
Loading