Skip to content

Commit a5bf92c

Browse files
authored
List maintainers on package page (#1098)
* List maintainers on package page
1 parent 8b2be18 commit a5bf92c

File tree

5 files changed

+36
-8
lines changed

5 files changed

+36
-8
lines changed

datafiles/templates/Html/candidate-page.html.st

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,12 @@
130130
$downloadSection$
131131

132132
<h4>Maintainer's Corner</h4>
133+
<p>Package maintainers</p>
134+
<ul>
135+
<li>
136+
$maintainers$
137+
</li>
138+
</ul>
133139
<p>For package maintainers and hackage trustees</p>
134140
<ul>
135141
<li>

datafiles/templates/Html/package-page.html.st

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,13 @@
9494

9595
<div id="maintainer-corner">
9696
<h4>Maintainer's Corner</h4>
97-
<p>For $package.maintainerURL$ and hackage trustees</p>
97+
<p><a href="$package.maintainerURL$">Package maintainers</a></p>
98+
<ul>
99+
<li>
100+
$maintainers$
101+
</li>
102+
</ul>
103+
<p>For package maintainers and hackage trustees</p>
98104
<ul>
99105
<li>
100106
<a href="$baseurl$/package/$package.name$/maintain">

src/Distribution/Server/Features/Html.hs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ import qualified Text.XHtml.Strict as XHtml
7676
import Text.XHtml.Table (simpleTable)
7777
import Distribution.PackageDescription (hasLibs)
7878
import Distribution.PackageDescription.Configuration (flattenPackageDescription)
79+
import Distribution.Server.Pages.Group (listGroupCompact)
7980

8081

8182
-- TODO: move more of the below to Distribution.Server.Pages.*, it's getting
@@ -590,6 +591,7 @@ mkHtmlCore ServerEnv{serverBaseURI, serverBlobStore}
590591
docURL = packageDocsContentUri docs realpkg
591592
execs = rendExecNames render
592593
pkgdesc = flattenPackageDescription $ pkgDesc pkg
594+
maintainers = maintainersGroup pkgname
593595

594596
prefInfo <- queryGetPreferredInfo pkgname
595597
distributions <- queryPackageStatus pkgname
@@ -611,6 +613,8 @@ mkHtmlCore ServerEnv{serverBaseURI, serverBlobStore}
611613
mdocIndex <- maybe (return Nothing)
612614
(liftM Just . liftIO . cachedTarIndex) mdoctarblob
613615
analyticsPixels <- getPackageAnalyticsPixels pkgname
616+
userDb <- queryGetUserDb
617+
maintainerlist <- liftIO $ queryUserGroup maintainers
614618
let
615619
idAndReport = fmap (\(rptId, rpt, _) -> (rptId, rpt)) rptStats
616620
install = getInstall $ fmap (fst &&& BR.installOutcome . snd) idAndReport
@@ -661,6 +665,7 @@ mkHtmlCore ServerEnv{serverBaseURI, serverBlobStore}
661665
, "candidates" $= case candidates of
662666
[] -> [ toHtml "No Candidates"]
663667
_ -> [ PagesNew.commaList $ flip map candidates $ \cand -> anchor ! [href $ corePackageIdUri candidatesCore "" $ packageId cand] << display (packageVersion cand) ]
668+
, "maintainers" $= listGroupCompact (map (Users.userIdToName userDb) (Group.toList maintainerlist))
664669
] ++
665670
-- Items not related to IO (mostly pure functions)
666671
PagesNew.packagePageTemplate render
@@ -1118,7 +1123,7 @@ mkHtmlCandidates utilities@HtmlUtilities{..}
11181123
DocumentationFeature{documentationResource, queryDocumentation,..}
11191124
TarIndexCacheFeature{cachedTarIndex}
11201125
PackageCandidatesFeature{..}
1121-
UserFeature{ guardAuthorised, guardAuthorised_ }
1126+
UserFeature{ guardAuthorised, guardAuthorised_, queryGetUserDb }
11221127
templates = HtmlCandidates{..}
11231128
where
11241129
candidates = candidatesResource
@@ -1277,10 +1282,15 @@ mkHtmlCandidates utilities@HtmlUtilities{..}
12771282
[] -> []
12781283
warn -> [thediv ! [theclass "candidate-warn"] << [paragraph << strong (toHtml "Warnings:"), unordList warn]]
12791284

1285+
let maintainers = maintainersGroup pkgname
1286+
userDb <- queryGetUserDb
1287+
maintainerlist <- liftIO $ queryUserGroup maintainers
1288+
12801289
return $ toResponse . template $
12811290
[ "versions" $= (PagesNew.renderVersion (packageId cand) (classifyVersions prefInfo $ insert version otherVersions) Nothing)
12821291
, "maintainHtml" $= [maintainHtml]
12831292
, "warningBox" $= warningBox
1293+
, "maintainers" $= listGroupCompact (map (Users.userIdToName userDb) (Group.toList maintainerlist))
12841294
] ++
12851295
PagesNew.packagePageTemplate render
12861296
mdocIndex Nothing mreadme

src/Distribution/Server/Pages/Group.hs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
-- Body of the HTML page for a package
22
module Distribution.Server.Pages.Group (
33
groupPage,
4-
renderGroupName
4+
renderGroupName,
5+
listGroupCompact
56
-- renderGroupNameWithCands
67
) where
78

@@ -69,7 +70,13 @@ removeUser uname uri =
6970
]
7071

7172
listGroup :: [Users.UserName] -> Maybe String -> Html
72-
listGroup [] _ = p << "No member exist presently"
73-
listGroup users muri = unordList (map displayName users)
74-
where displayName uname = (anchor ! [href $ "/user/" ++ display uname] << display uname) +++
73+
listGroup [] _ = p << "No current members of group"
74+
listGroup users muri = unordList (map (displayName muri) users)
75+
76+
listGroupCompact :: [Users.UserName] -> Html
77+
listGroupCompact [] = toHtml "No current members of group"
78+
listGroupCompact users = foldr1 (\a b -> a +++ ", " +++ b) (map (displayName Nothing) users)
79+
80+
displayName :: Maybe String -> Users.UserName -> Html
81+
displayName muri uname = (anchor ! [href $ "/user/" ++ display uname] << display uname) +++
7582
maybe [] (removeUser uname) muri

src/Distribution/Server/Pages/PackageFromTemplate.hs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,7 @@ packagePageTemplate render
166166
, templateVal "license" (Old.rendLicense render)
167167
, templateVal "author" (toHtml $ author desc)
168168
, templateVal "maintainer" (Old.maintainField $ rendMaintainer render)
169-
, templateVal "maintainerURL" (toHtml $
170-
anchor ! [href $ "/package" </> pkgName </> "maintainers" ] << "package maintainers")
169+
, templateVal "maintainerURL" (toHtml $ "/package" </> pkgName </> "maintainers")
171170
, templateVal "buildDepends" (snd (Old.renderDependencies render))
172171
, templateVal "optional" optionalPackageInfoTemplate
173172
, templateVal "candidateBanner" candidateBanner

0 commit comments

Comments
 (0)