mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-02-26 09:27:54 +01:00
Getting started section
This commit is contained in:
parent
e35eab4f27
commit
4f176c4c21
@ -1,11 +1,11 @@
|
|||||||
{-# LANGUAGE TupleSections, OverloadedStrings #-}
|
{-# LANGUAGE TupleSections, OverloadedStrings #-}
|
||||||
module Handler.Home where
|
module Handler.Home where
|
||||||
|
|
||||||
import Data.Slug
|
import Data.Slug
|
||||||
import qualified Database.Esqueleto as E
|
import Database.Esqueleto as E
|
||||||
import Import
|
import Import hiding ((=.),on,(||.),(==.))
|
||||||
|
|
||||||
-- This is a handler function for the GET request method on the HomeR
|
-- This is a handler function for the G request method on the HomeR
|
||||||
-- resource pattern. All of your resource patterns are defined in
|
-- resource pattern. All of your resource patterns are defined in
|
||||||
-- config/routes
|
-- config/routes
|
||||||
--
|
--
|
||||||
@ -15,19 +15,33 @@ import Import
|
|||||||
getHomeR :: Handler Html
|
getHomeR :: Handler Html
|
||||||
getHomeR = do
|
getHomeR = do
|
||||||
fpHandle <- mkSlug "fpcomplete"
|
fpHandle <- mkSlug "fpcomplete"
|
||||||
stackages <- runDB $ E.select $ E.from $ \(stackage `E.InnerJoin` user) -> do
|
stackages <- runDB $ select $ from $ \(stackage `InnerJoin` user) -> do
|
||||||
E.on (stackage E.^. StackageUser E.==. user E.^. UserId)
|
on (stackage ^. StackageUser ==. user ^. UserId)
|
||||||
E.orderBy [E.desc $ stackage E.^. StackageUploaded]
|
orderBy [desc $ stackage ^. StackageUploaded]
|
||||||
E.where_ (E.like (user E.^. UserDisplay) (E.val "%@fpcomplete.com") E.||.
|
where_ (like (user ^. UserDisplay) (val "%@fpcomplete.com") ||.
|
||||||
user E.^. UserHandle E.==. E.val fpHandle)
|
user ^. UserHandle ==. val fpHandle)
|
||||||
E.limit 4
|
limit 4
|
||||||
return
|
return
|
||||||
( stackage E.^. StackageIdent
|
( stackage ^. StackageIdent
|
||||||
, stackage E.^. StackageTitle
|
, stackage ^. StackageTitle
|
||||||
, stackage E.^. StackageUploaded
|
, stackage ^. StackageUploaded
|
||||||
, user E.^. UserDisplay
|
, user ^. UserDisplay
|
||||||
, user E.^. UserHandle
|
, user ^. UserHandle
|
||||||
)
|
)
|
||||||
|
windowsLatest <- linkFor "unstable-ghc78hp-inclusive"
|
||||||
|
restLatest <- linkFor "unstable-ghc78-inclusive"
|
||||||
defaultLayout $ do
|
defaultLayout $ do
|
||||||
setTitle "Stackage Server"
|
setTitle "Stackage Server"
|
||||||
$(widgetFile "homepage")
|
$(widgetFile "homepage")
|
||||||
|
where
|
||||||
|
linkFor name =
|
||||||
|
do slug <- mkSlug name
|
||||||
|
selecting (\alias ->
|
||||||
|
do where_ (alias ^. AliasName ==. val slug)
|
||||||
|
return (alias ^. AliasTarget))
|
||||||
|
where selecting =
|
||||||
|
fmap (fmap unValue . listToMaybe) .
|
||||||
|
runDB .
|
||||||
|
select .
|
||||||
|
from
|
||||||
|
where unValue (Value e) = e
|
||||||
|
|||||||
@ -8,6 +8,19 @@
|
|||||||
<li>
|
<li>
|
||||||
<a href=@{StackageHomeR ident}>
|
<a href=@{StackageHomeR ident}>
|
||||||
#{title}
|
#{title}
|
||||||
|
<h2 .getting-started>
|
||||||
|
Getting Started
|
||||||
|
<p>
|
||||||
|
To start using Stackage, choose your operating system below:
|
||||||
|
<ul .operating-systems>
|
||||||
|
$maybe win <- windowsLatest
|
||||||
|
<li>
|
||||||
|
<a href=@{StackageHomeR win}>
|
||||||
|
Windows & OS X (Haskell Platform-based snapshot)
|
||||||
|
$maybe rest <- restLatest
|
||||||
|
<li>
|
||||||
|
<a href=@{StackageHomeR rest}>
|
||||||
|
Linux & non-Haskell Platform users
|
||||||
|
|
||||||
<h2 .how-stackage-works>How Stackage Works
|
<h2 .how-stackage-works>How Stackage Works
|
||||||
<div .row .stackage-process>
|
<div .row .stackage-process>
|
||||||
|
|||||||
@ -57,6 +57,14 @@ h2 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.operating-systems {
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.getting-started {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* ul { */
|
/* ul { */
|
||||||
/* margin-top: 30px; */
|
/* margin-top: 30px; */
|
||||||
/* text-align: left; */
|
/* text-align: left; */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user