Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
acd2046
Refactor main.js into responsibility-based controllers
Rhys18751996 Dec 17, 2025
20f9083
renaming core js files to have Controller suffix
Rhys18751996 Dec 17, 2025
2545169
feat: Add season selector and dynamic episode slider
Rhys18751996 Dec 18, 2025
a29d6c0
feat: integrate season selector with paths and markers
Rhys18751996 Dec 18, 2025
e4e32a9
mucking with DATA_SEASONS in seasonController.js splitting out movies
Rhys18751996 Dec 18, 2025
2728e7c
extracting season data into data folder and getting season dropdown t…
Rhys18751996 Dec 18, 2025
ea8a1c5
extracting season data into data folder and getting season dropdown t…
Rhys18751996 Dec 18, 2025
4409fa9
markersController commenting generated
Rhys18751996 Dec 18, 2025
f2191d7
adding season2 data
Rhys18751996 Dec 18, 2025
2a3c02f
adding season2 data
Rhys18751996 Dec 18, 2025
72d76d4
moving window.timelineChange into pathController.js because it loaded…
Rhys18751996 Dec 18, 2025
1180479
executing after the DOM loads SeasonController.initDropdown();
Rhys18751996 Dec 18, 2025
feb7cc5
removing the season change inline handler as it is created in javascr…
Rhys18751996 Dec 18, 2025
f461a5e
splitting season paths data into separate files
Rhys18751996 Dec 18, 2025
248c58d
adding code in pathsController and markersController to filter out b…
Rhys18751996 Dec 18, 2025
a14c55d
prototyping a character checkbox got pathsgrid
Rhys18751996 Dec 18, 2025
81edd7c
prototyping a character checkbox got pathsgrid
Rhys18751996 Dec 18, 2025
720e3f1
prototyping a character checkbox got pathsgrid
Rhys18751996 Dec 18, 2025
7ee9e7d
prototyping seasonsData.js
Rhys18751996 Dec 18, 2025
036f834
splitting out data marker data across 2 files and renaming for readab…
Rhys18751996 Dec 18, 2025
906cdad
splitting adding characterData data file for readability
Rhys18751996 Dec 18, 2025
e9228ce
removing unused data field from DATA_SEASONS.markersRelevant
Rhys18751996 Dec 18, 2025
7a44f34
bringing back relevant data that I thought was unrelevant
Rhys18751996 Dec 18, 2025
833da42
adding portrait field to DATA_CHARACTERS
Rhys18751996 Dec 18, 2025
ca914bb
adding portrait field to DATA_CHARACTERS
Rhys18751996 Dec 18, 2025
6ab985e
adding prototype code for pathUIController
Rhys18751996 Dec 18, 2025
f05732d
referencing pathsUIController in index.html
Rhys18751996 Dec 18, 2025
7bd4bdb
adding PathsUIController.rebuild(); to seasonController
Rhys18751996 Dec 18, 2025
7117e29
adding PathsUIController.rebuild(); to seasonController
Rhys18751996 Dec 18, 2025
c769f0d
adding PathsUIController.rebuild(); to seasonController
Rhys18751996 Dec 18, 2025
bca02f7
getting all the basic stuff (paths, markers, slider) all working with…
Rhys18751996 Dec 21, 2025
ec342cd
adding logic to update character checkbox icons when season is changed
Rhys18751996 Dec 21, 2025
abea427
updating a comment in CharacterCheckBoxController
Rhys18751996 Dec 22, 2025
e8536b3
adding some markers on different seasons and series to make sure all …
Rhys18751996 Dec 23, 2025
8f9a1f4
adding a field to hide specific seasons
Rhys18751996 Dec 23, 2025
2b6eac3
adding some markers to The Hobbit season/series
Rhys18751996 Dec 23, 2025
f2332f4
starting galadriel's paths in rop season2
Rhys18751996 Dec 23, 2025
15c13c1
adding Erech, the paths of the dead point of interest to markers
Rhys18751996 Dec 25, 2025
5da5a26
adding Amon_Hen to markers data
Rhys18751996 Dec 25, 2025
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
67 changes: 67 additions & 0 deletions data/characterData.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
const DATA_CHARACTERS = {
"characters": [
{
"name": "Nori",
"series": "Rings of Power",
"seasons": [1, 2, 3],
"color": "#2f4f22",
"portrait": "img/portraits/harfoots.webp"
},
{
"name": "Galadriel",
"series": "Rings of Power",
"seasons": [1, 2, 3],
"color": "#3c76b1",
"portrait": "img/portraits/galadriel.webp"
},
{
"name": "Elrond",
"series": "Rings of Power",
"seasons": [1, 2, 3],
"color": "#907826",
"portrait": "img/portraits/"
},
{
"name": "Arondir",
"series": "Rings of Power",
"seasons": [1, 2, 3],
"color": "#81639f",
"portrait": "img/portraits/"
},
{
"name": "Elendil",
"series": "Rings of Power",
"seasons": [1, 2, 3],
"color": "#494949",
"portrait": "img/portraits/"
},
{
"name": "Halbrand",
"series": "Rings of Power",
"seasons": [1, 2, 3],
"color": "#a9531f",
"portrait": "img/portraits/"
},
{
"name": "Frodo and Sam",
"series": "The Lord of the Rings: The Fellowship of the Ring",
"seasons": [100],
"color": "#912222",
"portrait": "img/portraits/frodosam.webp"
},
{
"name": "Elrond",
"series": "The Lord of the Rings: The Fellowship of the Ring",
"seasons": [100],
"color": "#907826",
"portrait": "img/portraits/"
},
{
"name": "Bilbo and Thorin",
"series": "The Hobbit",
"seasons": [104],
"color": "#4e2291",
"portrait": "img/portraits/"
}
]
};
159 changes: 117 additions & 42 deletions data/markers.js → data/dataMarkerMarkers.js
Original file line number Diff line number Diff line change
@@ -1,56 +1,20 @@
const DATA_MARKERS = {
"types": [
{
"name": "area",
"icon": "area.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
},
{
"name": "point of interest",
"icon": "poi.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
},
{
"name": "village",
"icon": "village.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
},
{
"name": "city",
"icon": "city.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
},
{
"name": "event",
"icon": "event.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
}
],
"markers": [
{
"title": "Hobbiton",
"coordinates": [779.6, 625.6],
"type": "village",
"image": "hobbiton.webp",
"episodes": [
{"episode": 1, "season": 100}
{"episode": 1, "season": 100},
{"episode": 1, "season": 104}
],
"decription": "Hobbiton is a Hobbit village in the central regions of the Shire, within the borders of the Westfarthing.",
"readMoreUrl": "https://tolkiengateway.net/wiki/Hobbiton",
"isConfirmed": true
},
{
"title": "Passing of the Evles",
"title": "Passing of the Elves",
"coordinates": [771, 631.8],
"type": "event",
"image": "passing-elves.webp",
Expand Down Expand Up @@ -79,7 +43,8 @@ const DATA_MARKERS = {
"type": "village",
"image": "bree.webp",
"episodes": [
{"episode": 1, "season": 100}
{"episode": 1, "season": 100},
{"episode": 1, "season": 104}
],
"decription": "Bree is a village of Men and hobbits, located east of the Shire and south of Fornost in Eriador.",
"readMoreUrl": "https://tolkiengateway.net/wiki/Bree",
Expand Down Expand Up @@ -139,7 +104,8 @@ const DATA_MARKERS = {
"type": "city",
"image": "rivendell.webp",
"episodes": [
{"episode": 1, "season": 100}
{"episode": 1, "season": 100},
{"episode": 1, "season": 104}
],
"decription": "Rivendell, or Imladris, is an Elven outpost established by Elrond in the Misty Mountains on the eastern edge of Eriador.",
"readMoreUrl": "https://tolkiengateway.net/wiki/Rivendell",
Expand All @@ -156,6 +122,18 @@ const DATA_MARKERS = {
"decription": "A blizzard summoned by Saruman forces the Fellowship of the Ring to turn back.",
"readMoreUrl": "https://tolkiengateway.net/wiki/Misty_Mountains",
"isConfirmed": true
},
{
"title": "The Lonely Mountain",
"coordinates": [851.25, 920.75],
"type": "area",
"image": "",
"episodes": [
{"episode": 1, "season": 104}
],
"decription": "The Lonely Mountain. Erebor",
"readMoreUrl": "https://tolkiengateway.net/wiki/Lonely_Mountain",
"isConfirmed": true
},
{
"title": "Caras Galadhon",
Expand Down Expand Up @@ -193,6 +171,30 @@ const DATA_MARKERS = {
"readMoreUrl": "https://tolkiengateway.net/wiki/Rauros",
"isConfirmed": true
},
{
"title": "Erech",
"coordinates": [564, 799.25],
"type": "point of interest",
"image": "",
"episodes": [
{"episode": 1, "season": 100}
],
"decription": "Paths of the Dead",
"readMoreUrl": "https://tolkiengateway.net/wiki/Erech",
"isConfirmed": true
},
{
"title": "Amon Hen",
"coordinates": [597.25, 859.875],
"type": "point of interest",
"image": "",
"episodes": [
{"episode": 1, "season": 100}
],
"decription": "An ancient watchtower hill with ruins, located by the wooded slopes of Parth Galen. The location Boromir is killed by Lurtz",
"readMoreUrl": "https://tolkiengateway.net/wiki/Amon_Hen",
"isConfirmed": true
},
{
"title": "Emyn Arnen",
"coordinates": [603.5, 881],
Expand Down Expand Up @@ -277,6 +279,78 @@ const DATA_MARKERS = {
"readMoreUrl": "",
"isConfirmed": true
},
{
"title": "ElvenKing's Halls",
"coordinates": [834.5, 900.31],
"type": "city",
"image": "",
"episodes": [
{"episode": 1, "season": 104}
],
"decription": "",
"readMoreUrl": "",
"isConfirmed": false
},
{
"title": "Dol Guldur",
"coordinates": [707.5, 865.75],
"type": "city",
"image": "",
"episodes": [
{"episode": 1, "season": 104}
],
"decription": "",
"readMoreUrl": "",
"isConfirmed": false
},
{
"title": "Goblin-town",
"coordinates": [807.25, 814.5],
"type": "city",
"image": "",
"episodes": [
{"episode": 1, "season": 104}
],
"decription": "The Goblin King (AKA The Great Goblin) rules from Goblin-town, a vast network of caves and tunnels deep within the Misty Mountains.",
"readMoreUrl": "",
"isConfirmed": false
},
{
"title": "Beorn's Home",
"coordinates": [809, 840.75],
"type": "point of interest",
"image": "",
"episodes": [
{"episode": 1, "season": 104}
],
"decription": "Beorn, a powerful skin-changer who can transform into a giant black bear, known for his immense strength, love of animals, and crucial intervention in the Battle of the Five Armies. He's a solitary, gruff figure who lives between the Misty Mountains and Mirkwood",
"readMoreUrl": "",
"isConfirmed": false
},
{
"title": "The Elf-path",
"coordinates": [827.75, 863.25],
"type": "event",
"image": "",
"episodes": [
{"episode": 1, "season": 104}
],
"decription": "Bilbo Baggins and the Dwarves encounter a large number of giant spiders in the northern section of Mirkwood, after they stray from the narrow Elf-path while trying to cross the forest",
"readMoreUrl": "",
"isConfirmed": false
},
{
"title": "Lake-Town (Esgaroth)",
"coordinates": [834.25, 920.75],
"type": "city",
"image": "",
"episodes": [
{"episode": 1, "season": 104}
],
"decription": "",
"readMoreUrl": "",
"isConfirmed": false
},
{
"title": "Grey Marshes",
"coordinates": [599.6, 889.9],
Expand Down Expand Up @@ -430,7 +504,8 @@ const DATA_MARKERS = {
{"episode": 2, "season": 1},
{"episode": 3, "season": 1},
{"episode": 4, "season": 1},
{"episode": 5, "season": 1}
{"episode": 5, "season": 1},
{"episode": 1, "season": 2}
],
"decription": "Mithlond, known also as Grey Havens, is the capital of the high elves, ruled by Gil-galad.",
"readMoreUrl": "https://tolkiengateway.net/wiki/Grey_Havens",
Expand Down
39 changes: 39 additions & 0 deletions data/dataMarkerTypes.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
const DATA_MARKER_TYPES = {
"types": [
{
"name": "area",
"icon": "area.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
},
{
"name": "point of interest",
"icon": "poi.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
},
{
"name": "village",
"icon": "village.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
},
{
"name": "city",
"icon": "city.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
},
{
"name": "event",
"icon": "event.webp",
"iconSize": [30, 30],
"iconAnchor": [15, 15],
"popupAnchor": [0, -5]
}
]
}
Loading