Skip to content

Commit 6e72818

Browse files
authored
Merge pull request #114 from oss-slu/Issue-112
Issue #112
2 parents e0206fa + ceb46e6 commit 6e72818

File tree

3 files changed

+92
-1
lines changed

3 files changed

+92
-1
lines changed

js/main.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { setupNavigation, setBoneAndSubbones, disableButtons } from './navigation.js';
2+
import { updateDescription } from './description.js'; // Assuming you already have this
3+
4+
document.addEventListener('DOMContentLoaded', () => {
5+
const prevButton = document.getElementById('prev-button');
6+
const nextButton = document.getElementById('next-button');
7+
const subboneDropdown = document.getElementById('subbone-dropdown');
8+
9+
setupNavigation(prevButton, nextButton, subboneDropdown, updateDescription);
10+
11+
// Example: when a new bone is selected
12+
document.getElementById('bone-dropdown').addEventListener('change', (event) => {
13+
const selectedBone = event.target.value;
14+
const selectedSubbones = getSubbonesForBone(selectedBone); // You need to implement this
15+
16+
setBoneAndSubbones(selectedBone, selectedSubbones);
17+
18+
// Update the dropdown options
19+
populateSubboneDropdown(subboneDropdown, selectedSubbones);
20+
21+
disableButtons(prevButton, nextButton);
22+
});
23+
});
24+
25+
function populateSubboneDropdown(dropdown, subbones) {
26+
dropdown.innerHTML = '';
27+
subbones.forEach((subbone, index) => {
28+
const option = document.createElement('option');
29+
option.value = index;
30+
option.textContent = subbone;
31+
dropdown.appendChild(option);
32+
});
33+
}
34+
35+
// Dummy placeholder for subbones fetching
36+
function getSubbonesForBone(bone) {
37+
const exampleData = {
38+
Humerus: ['Lateral Epicondyle', 'Medial Epicondyle'],
39+
Ulna: ['Olecranon', 'Coronoid Process']
40+
};
41+
return exampleData[bone] || [];
42+
}

js/navigation.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
let currentBone = null;
2+
let currentSubboneIndex = -1;
3+
let subbones = [];
4+
5+
export function setupNavigation(prevButton, nextButton, subboneDropdown, updateDescription) {
6+
prevButton.addEventListener('click', () => {
7+
prevSubbone();
8+
updateUI(subboneDropdown, updateDescription);
9+
});
10+
11+
nextButton.addEventListener('click', () => {
12+
nextSubbone();
13+
updateUI(subboneDropdown, updateDescription);
14+
});
15+
16+
disableButtons(prevButton, nextButton);
17+
}
18+
19+
export function setBoneAndSubbones(bone, boneSubbones) {
20+
currentBone = bone;
21+
subbones = boneSubbones || [];
22+
currentSubboneIndex = subbones.length > 0 ? 0 : -1;
23+
}
24+
25+
function prevSubbone() {
26+
if (currentSubboneIndex > 0) {
27+
currentSubboneIndex--;
28+
}
29+
}
30+
31+
function nextSubbone() {
32+
if (currentSubboneIndex < subbones.length - 1) {
33+
currentSubboneIndex++;
34+
}
35+
}
36+
37+
function updateUI(subboneDropdown, updateDescription) {
38+
if (subbones.length === 0 || currentSubboneIndex === -1) return;
39+
40+
subboneDropdown.selectedIndex = currentSubboneIndex;
41+
const selectedSubbone = subbones[currentSubboneIndex];
42+
updateDescription(selectedSubbone);
43+
}
44+
45+
export function disableButtons(prevButton, nextButton) {
46+
const disabled = subbones.length === 0;
47+
prevButton.disabled = disabled;
48+
nextButton.disabled = disabled;
49+
}

templates/boneset.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ <h3>Description</h3>
5454
</div>
5555
</div>
5656
</div>
57-
5857
<script type="module" src="js/main.js"></script>
58+
5959
</body>
6060

6161
</html>

0 commit comments

Comments
 (0)