diff --git a/CHANGELOG.md b/CHANGELOG.md index 127278024..6394b99b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ### ✨ New features/enhancements +- Changed the colour of hybrid nodes to avoid a visual clash with the darkened background when selecting a focus + ### 🐛 Bug fixes ### 🔧 Internal changes @@ -36,6 +38,7 @@ - Refactored `Database.Tables.MeetTime` into `Models.Meeting` and renamed it to `MeetingParsedData`; consolidated and refactored timetable JSON parsing helpers - Restructured `courseography.cabal` to separate executable from library, extract shared settings, and remove `hlint` - Refactored `createReqBody` in `app/Config.hs` to use session field from `config.yaml` +- Changed SVG parsing to leave the `fill` column empty when inserting hybrid nodes into the database ## [0.8.1] - 2026-08-10 diff --git a/app/Svg/Parser.hs b/app/Svg/Parser.hs index d11fcb319..7aaeec15e 100644 --- a/app/Svg/Parser.hs +++ b/app/Svg/Parser.hs @@ -161,7 +161,7 @@ parseGraph key tags = ( not . \s -> shapePos s `elem` map shapePos shapes && isEdge s - && elem (shapeType_ s) [Node, Hybrid] + && shapeType_ s == Node ) shapes @@ -736,9 +736,12 @@ updateShape :: updateShape fill r = r { shapeFill = - if T.null (shapeFill r) || shapeFill r == "none" - then fill - else shapeFill r + let fill' = + ( if T.null (shapeFill r) || shapeFill r == "none" + then fill + else shapeFill r + ) + in if fill' == "#888888" then "" else fill' , shapeType_ = if fill == "#888888" then Hybrid diff --git a/style/app.scss b/style/app.scss index 4d610265a..c932f7ac8 100644 --- a/style/app.scss +++ b/style/app.scss @@ -84,7 +84,7 @@ $graph-overlay-side-margin: 15px; // Graph / course-map paths and nodes --main-path-color: var(--color-black); --missing-path-color: #c01; - --hybrid-node-fill-color: #888; + --hybrid-node-fill-color: #b7b7b7; --node-inactive-fill-color: #ccc; // Course/timetable status colors @@ -882,8 +882,9 @@ g.hybrid { } g.hybrid > text { - fill: var(--color-white); + fill: var(--color-black); font-size: 9pt; + font-style: italic; stroke: none; text-anchor: middle; } @@ -893,8 +894,21 @@ g.hybrid > rect { stroke: var(--color-black); } +g.hybrid.active > rect { + opacity: 1; +} + +g.hybrid.active > text { + opacity: 1; +} + g.hybrid.inactive > rect { - stroke-width: 0; + stroke-width: 1; + stroke-dasharray: none; +} + +g.hybrid.inactive > text { + opacity: 0.45; } g.active > rect {