diff --git a/Handler/Tag.hs b/Handler/Tag.hs index 09087f0..8966dc5 100644 --- a/Handler/Tag.hs +++ b/Handler/Tag.hs @@ -7,10 +7,11 @@ import Import getTagListR :: Handler Html getTagListR = do - tags <- fmap (map (\(E.Value v) -> v)) $ runDB $ - E.selectDistinct $ E.from $ \tag -> do - E.orderBy [E.asc (tag E.^. TagTag)] - return (tag E.^. TagTag) + tags <- fmap (zip [0::Int ..] . (map (\(E.Value v,E.Value i) -> (v,i::Int)))) $ runDB $ + E.select $ E.from $ \tag -> do + E.groupBy (tag E.^. TagTag) + E.orderBy [E.desc (E.count (tag E.^. TagTag) :: E.SqlExpr (E.Value Int))] + return (tag E.^. TagTag, E.count (tag E.^. TagTag)) defaultLayout $ do setTitle "Stackage tags" $(widgetFile "tag-list") diff --git a/templates/tag-list.hamlet b/templates/tag-list.hamlet index c98e4f1..58c6432 100644 --- a/templates/tag-list.hamlet +++ b/templates/tag-list.hamlet @@ -1,7 +1,11 @@ +$newline never
+ $forall (i,(tag,count)) <- tags
+ $if i /= 0
+ , #
+
- #{tag}
+ #{tag} #
+ (#{count})
diff --git a/templates/tag-list.lucius b/templates/tag-list.lucius
index dc6bff6..a3fc41d 100644
--- a/templates/tag-list.lucius
+++ b/templates/tag-list.lucius
@@ -10,3 +10,7 @@
h1 {
margin-bottom: 0.5em;
}
+
+.count {
+ color: #666;
+}
diff --git a/templates/tag.hamlet b/templates/tag.hamlet
index 2d900bf..fdfc8df 100644
--- a/templates/tag.hamlet
+++ b/templates/tag.hamlet
@@ -2,7 +2,7 @@ $newline never
- Packages tagged: #{tag} (
+ Tag: #{tag} (
all tags
)