Skip to content

Commit ac6e6c6

Browse files
committed
Add loading spinner.
1 parent a0ac442 commit ac6e6c6

File tree

3 files changed

+45
-0
lines changed

3 files changed

+45
-0
lines changed

website/index.css

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,30 @@ main {
103103
color: #333;
104104
}
105105

106+
.spinner {
107+
border: 8px solid rgba(0, 0, 0, 0.1);
108+
width: 76px;
109+
height: 76px;
110+
border-radius: 50%;
111+
border-top-color: #3498db;
112+
animation: spin 1s ease-in-out infinite;
113+
}
114+
115+
@keyframes spin {
116+
to { transform: rotate(360deg); }
117+
}
118+
119+
.loading-overlay {
120+
position: fixed;
121+
top: 0;
122+
left: 0;
123+
right: 0;
124+
bottom: 0;
125+
display: flex;
126+
align-items: center;
127+
justify-content: center;
128+
}
129+
130+
.hidden {
131+
display: none;
132+
}

website/index.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
</head>
1414
<body>
1515
<div id="root">
16+
<div class="loading-overlay hidden" id="loadingOverlay">
17+
<div class="spinner"></div>
18+
</div>
1619
<header>
1720
<h1 class="bar-title">IVIM MRI Algorithm Fitting Dashboard</h1>
1821
<hr class="divider" />

website/index.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,19 @@ document.addEventListener('DOMContentLoaded', function() {
88
let selectedSNRRegion = '10';
99
let selectedTypeRegion = 'D_fitted';
1010
let selectedRangeRegion = 2;
11+
12+
const loadingOverlay = document.getElementById('loadingOverlay');
13+
const mainContent = document.getElementsByTagName('main')[0];
14+
function showLoading() {
15+
mainContent.classList.add('hidden');
16+
loadingOverlay.classList.remove('hidden');
17+
}
18+
19+
function hideLoading() {
20+
loadingOverlay.classList.add('hidden');
21+
mainContent.classList.remove('hidden')
22+
}
23+
1124
// Add event listener to algorithm select
1225
const algorithmSelect = document.getElementById('algorithm-select');
1326
algorithmSelect.addEventListener('change', function(event) {
@@ -114,12 +127,14 @@ document.addEventListener('DOMContentLoaded', function() {
114127
updateRangeRegion(newValue);
115128
}
116129
});
130+
showLoading();
117131

118132
Papa.parse('test_output.csv', {
119133
download: true,
120134
header: true,
121135
complete: results => {
122136
data = results;
137+
hideLoading();
123138
populateOptions(data);
124139
drawBoxPlot(data, selectedAlgorithm, selectedSNR, selectedType, selectedRange);
125140
drawRegionBoxPlot(data, selectedRegion, selectedSNRRegion, selectedTypeRegion, selectedRangeRegion);

0 commit comments

Comments
 (0)