Skip to content

Commit 5fee3bd

Browse files
committed
moved navigation main to js directory
1 parent 6e72818 commit 5fee3bd

File tree

3 files changed

+36
-45
lines changed

3 files changed

+36
-45
lines changed

js/main.js

Lines changed: 0 additions & 42 deletions
This file was deleted.

templates/js/main.js

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,56 @@
1-
// js/main.js
21
import { fetchCombinedData } from './api.js';
32
import { populateBonesetDropdown, setupDropdownListeners } from './dropdowns.js';
43
import { initializeSidebar } from './sidebar.js';
4+
import { setupNavigation, setBoneAndSubbones, disableButtons } from './navigation.js';
5+
import { loadDescription } from './description.js'; // ✅ CORRECT function name
56

67
let combinedData = { bonesets: [], bones: [], subbones: [] };
78

89
document.addEventListener('DOMContentLoaded', async () => {
9-
// Initialize sidebar toggle behavior
10+
// 1. Sidebar behavior
1011
initializeSidebar();
1112

12-
// Fetch and render bone data
13+
// 2. Fetch data and populate dropdowns
1314
combinedData = await fetchCombinedData();
1415
populateBonesetDropdown(combinedData.bonesets);
1516
setupDropdownListeners(combinedData);
1617

18+
// 3. Hook up navigation buttons
19+
const prevButton = document.getElementById('prev-button');
20+
const nextButton = document.getElementById('next-button');
21+
const subboneDropdown = document.getElementById('subbone-select');
22+
const boneDropdown = document.getElementById('bone-select');
23+
24+
setupNavigation(prevButton, nextButton, subboneDropdown, loadDescription);
25+
26+
// 4. Update navigation when bone changes
27+
boneDropdown.addEventListener('change', (event) => {
28+
const selectedBone = event.target.value;
29+
30+
const relatedSubbones = combinedData.subbones
31+
.filter(sb => sb.bone === selectedBone)
32+
.map(sb => sb.id);
33+
34+
setBoneAndSubbones(selectedBone, relatedSubbones);
35+
populateSubboneDropdown(subboneDropdown, relatedSubbones);
36+
disableButtons(prevButton, nextButton);
37+
});
38+
39+
// 5. Auto-select the first boneset
1740
const boneset = combinedData.bonesets[0];
1841
if (boneset) {
1942
document.getElementById('boneset-select').value = boneset.id;
2043
const event = new Event('change');
2144
document.getElementById('boneset-select').dispatchEvent(event);
2245
}
2346
});
47+
48+
function populateSubboneDropdown(dropdown, subbones) {
49+
dropdown.innerHTML = '';
50+
subbones.forEach((subboneId) => {
51+
const option = document.createElement('option');
52+
option.value = subboneId;
53+
option.textContent = subboneId.replace(/_/g, ' ');
54+
dropdown.appendChild(option);
55+
});
56+
}

0 commit comments

Comments
 (0)