@@ -27,11 +27,6 @@ import System.Directory (createDirectoryIfMissing)
27
27
import System.Directory.Extra (listFilesRecursive )
28
28
import System.FilePath (takeFileName , (</>) )
29
29
30
- {-
31
- TODO
32
- \* Select head menu
33
- -}
34
-
35
30
-- * Actions
36
31
37
32
renderAdvisoriesIndex :: FilePath -> FilePath -> IO ()
@@ -65,7 +60,7 @@ renderAdvisoriesIndex src dst = do
65
60
createDirectoryIfMissing False advisoriesDir
66
61
forM_ advisories $ \ advisory ->
67
62
renderToFile' (advisoriesDir </> T. unpack (advisoryHtmlFilename advisory. advisoryId)) $
68
- inPage $
63
+ inPage PageAdvisory $
69
64
div_ [class_ " pure-u-1" ] $
70
65
toHtmlRaw advisory. advisoryHtml
71
66
return ()
@@ -90,7 +85,7 @@ data AffectedPackageR = AffectedPackageR
90
85
91
86
listByDates :: [AdvisoryR ] -> Html ()
92
87
listByDates advisories =
93
- inPage $
88
+ inPage PageListByDates $
94
89
div_ [class_ " pure-u-1" ] $ do
95
90
div_ [class_ " advisories" ] $ do
96
91
table_ [class_ " pure-table pure-table-horizontal" ] $ do
@@ -113,7 +108,7 @@ listByDates advisories =
113
108
114
109
listByPackages :: [AdvisoryR ] -> Html ()
115
110
listByPackages advisories =
116
- inPage $ do
111
+ inPage PageListByPackages $
117
112
div_ [class_ " pure-u-1" ] $ do
118
113
let byPackage :: Map. Map Text [(AdvisoryR , AffectedPackageR )]
119
114
byPackage =
@@ -149,8 +144,14 @@ listByPackages advisories =
149
144
150
145
-- * Utils
151
146
152
- inPage :: Html () -> Html ()
153
- inPage content =
147
+ data NavigationPage
148
+ = PageListByDates
149
+ | PageListByPackages
150
+ | PageAdvisory
151
+ deriving stock (Eq , Show )
152
+
153
+ inPage :: NavigationPage -> Html () -> Html ()
154
+ inPage page content =
154
155
doctypehtml_ $
155
156
html_ $ do
156
157
head_ $ do
@@ -178,11 +179,15 @@ inPage content =
178
179
body_ $ do
179
180
div_ [class_ " pure-u-1" ] $ do
180
181
div_ [class_ " pure-menu pure-menu-horizontal" ] $ do
182
+ let selectedOn p cls =
183
+ if page == p
184
+ then cls <> " pure-menu-selected"
185
+ else cls
181
186
span_ [class_ " pure-menu-heading pure-menu-link" ] " Advisories list"
182
187
ul_ [class_ " pure-menu-list" ] $ do
183
- li_ [class_ " pure-menu-item" ] $
188
+ li_ [class_ $ selectedOn PageListByDates " pure-menu-item" ] $
184
189
a_ [href_ " /by-dates.html" , class_ " pure-menu-link" ] " by date"
185
- li_ [class_ " pure-menu-item" ] $
190
+ li_ [class_ $ selectedOn PageListByPackages " pure-menu-item" ] $
186
191
a_ [href_ " /by-packages.html" , class_ " pure-menu-link" ] " by package"
187
192
div_ [class_ " content" ] content
188
193
0 commit comments