diff --git a/src/Handler/Package.hs b/src/Handler/Package.hs index cfb238d..9a84724 100644 --- a/src/Handler/Package.hs +++ b/src/Handler/Package.hs @@ -102,7 +102,7 @@ handlePackage epi = do in if ms == authors then [] else ms - mdisplayedVersion = Nothing + mdisplayedVersion = msppi >>= sppiVersion defaultLayout $ do setTitle $ toHtml pname $(combineScripts 'StaticR [js_highlight_js]) diff --git a/src/Stackage/Database/Query.hs b/src/Stackage/Database/Query.hs index 747c564..3860f10 100644 --- a/src/Stackage/Database/Query.hs +++ b/src/Stackage/Database/Query.hs @@ -503,6 +503,7 @@ getSnapshotPackagePageInfoQuery spi maxDisplayedDeps = do if reverseDepsCount > 0 then getReverseDeps spi (Just maxDisplayedDeps) else pure [] + latestInfo <- getLatests (spiPackageName spi) moduleNames <- getModuleNames (spiSnapshotPackageId spi) mcabalBlobKey <- traverse getBlobKey $ spiCabalBlobId spi pure @@ -513,6 +514,7 @@ getSnapshotPackagePageInfoQuery spi maxDisplayedDeps = do , sppiForwardDepsCount = forwardDepsCount , sppiReverseDeps = map (first dropVersionRev) reverseDeps , sppiReverseDepsCount = reverseDepsCount + , sppiLatestInfo = latestInfo , sppiModuleNames = moduleNames , sppiPantryCabal = mcabalBlobKey RIO.<&> \cabalBlobKey -> @@ -521,6 +523,16 @@ getSnapshotPackagePageInfoQuery spi maxDisplayedDeps = do , pcVersion = spiVersion spi , pcCabalKey = cabalBlobKey } + , sppiVersion = + listToMaybe + [ spiVersionRev spi + | VersionRev ver mrev <- + maybe [] (pure . hciVersionRev) mhciLatest ++ + map liVersionRev latestInfo + , ver > curVer || + (ver == curVer && + fromMaybe (Revision 0) mrev > fromMaybe (Revision 0) mcurRev) + ] } where VersionRev curVer mcurRev = spiVersionRev spi diff --git a/src/Stackage/Database/Types.hs b/src/Stackage/Database/Types.hs index 1c1531e..02dabdb 100644 --- a/src/Stackage/Database/Types.hs +++ b/src/Stackage/Database/Types.hs @@ -249,8 +249,11 @@ data SnapshotPackagePageInfo = SnapshotPackagePageInfo -- ^ Limited list of packages in the snapshot that depend on this package , sppiReverseDepsCount :: !Int -- ^ Count of all packages in the snapshot that depends on this package + , sppiLatestInfo :: ![LatestInfo] , sppiModuleNames :: !(Map ModuleNameP Bool) , sppiPantryCabal :: !(Maybe PantryCabal) + , sppiVersion :: !(Maybe VersionRev) + -- ^ Version on this page. Should be present only if different from latest } toRevMaybe :: Revision -> Maybe Revision diff --git a/templates/package.hamlet b/templates/package.hamlet index 9d39e74..62bb56e 100644 --- a/templates/package.hamlet +++ b/templates/package.hamlet @@ -24,6 +24,21 @@ $newline never #{url}
| Version on this page: + |
+ #{displayedVersion}
+ $maybe sppi <- msppi
+ $forall li <- sppiLatestInfo sppi
+ |
+
+ #{snapshotPrettyNameShort (liSnapName li)}
+ :
+ |
+
+ #{liVersionRev li}
$maybe hciLatest <- mhciLatest
| Latest on Hackage:
| |