diff --git a/Handler/StackageHome.hs b/Handler/StackageHome.hs index c188897..13977fe 100644 --- a/Handler/StackageHome.hs +++ b/Handler/StackageHome.hs @@ -11,13 +11,13 @@ import qualified Data.HashMap.Strict as HashMap import Data.These import Data.Time (FormatTime) import Stackage.Database -import Stackage.Database.Types (sortNicely) +import Stackage.Database.Types (sortNicely, previousSnapName) import Stackage.Snapshot.Diff getStackageHomeR :: SnapName -> Handler Html getStackageHomeR name = do Entity sid snapshot <- lookupSnapshot name >>= maybe notFound return - + snapNames <- map snapshotName . snd <$> getSnapshots 0 0 let hoogleForm = let queryText = "" :: Text exact = False diff --git a/Stackage/Database/Types.hs b/Stackage/Database/Types.hs index 6e9e067..d9b246e 100644 --- a/Stackage/Database/Types.hs +++ b/Stackage/Database/Types.hs @@ -1,6 +1,7 @@ module Stackage.Database.Types ( SnapName (..) , sortNicely + , previousSnapName ) where import ClassyPrelude.Conduit @@ -26,6 +27,10 @@ sortNicely :: [SnapName] -> [SnapName] sortNicely ns = reverse (sort lts) ++ reverse (sort nightly) where (lts, nightly) = partition isLTS ns +previousSnapName :: [SnapName] -> SnapName -> SnapName +previousSnapName ns n = + fromMaybe n $ maximumMay $ filter (< n) $ filter ((isLTS n ==) . isLTS) ns + instance PersistField SnapName where toPersistValue = toPersistValue . toPathPiece fromPersistValue v = do diff --git a/templates/stackage-home.hamlet b/templates/stackage-home.hamlet index 1556be8..798e7a8 100644 --- a/templates/stackage-home.hamlet +++ b/templates/stackage-home.hamlet @@ -5,6 +5,9 @@ $newline never

Published on #{yearMonthDay (snapshotCreated snapshot)} + + View changes + stack # resolver: #{toPathPiece name}