2016-02-14 18:10:21 +09:00
|
|
|
{- This file is part of Vervis.
|
|
|
|
-
|
|
|
|
- Written in 2016 by fr33domlover <fr33domlover@riseup.net>.
|
|
|
|
-
|
|
|
|
- ♡ Copying is an act of love. Please copy, reuse and share.
|
|
|
|
-
|
|
|
|
- The author(s) have dedicated all copyright and related and neighboring
|
|
|
|
- rights to this software to the public domain worldwide. This software is
|
|
|
|
- distributed without any warranty.
|
|
|
|
-
|
|
|
|
- You should have received a copy of the CC0 Public Domain Dedication along
|
|
|
|
- with this software. If not, see
|
|
|
|
- <http://creativecommons.org/publicdomain/zero/1.0/>.
|
|
|
|
-}
|
|
|
|
|
2016-02-23 17:45:03 +09:00
|
|
|
module Vervis.Handler.Home
|
2016-02-16 20:41:13 +09:00
|
|
|
( getHomeR
|
|
|
|
)
|
|
|
|
where
|
2016-02-13 12:35:30 +09:00
|
|
|
|
2016-02-23 17:45:03 +09:00
|
|
|
import Vervis.Import hiding ((==.))
|
2016-02-16 20:41:13 +09:00
|
|
|
|
2016-02-23 17:28:25 +09:00
|
|
|
import Database.Esqueleto
|
2016-02-23 17:45:03 +09:00
|
|
|
import Vervis.Git
|
|
|
|
import Vervis.Handler.Util (loggedIn)
|
2016-02-13 12:35:30 +09:00
|
|
|
|
|
|
|
getHomeR :: Handler Html
|
|
|
|
getHomeR = do
|
2016-02-23 17:28:25 +09:00
|
|
|
li <- loggedIn
|
|
|
|
if li
|
2016-02-23 12:19:55 +09:00
|
|
|
then do
|
|
|
|
rows <- do
|
|
|
|
repos <- runDB $ select $ from $ \ (sharer, project, repo) -> do
|
|
|
|
where_ $
|
|
|
|
project ^. ProjectSharer ==. sharer ^. SharerId &&.
|
|
|
|
repo ^. RepoProject ==. project ^. ProjectId
|
|
|
|
orderBy
|
|
|
|
[ asc $ sharer ^. SharerIdent
|
|
|
|
, asc $ project ^. ProjectIdent
|
|
|
|
, asc $ repo ^. RepoIdent
|
2016-02-16 20:41:13 +09:00
|
|
|
]
|
2016-02-23 12:19:55 +09:00
|
|
|
return
|
|
|
|
( sharer ^. SharerIdent
|
|
|
|
, project ^. ProjectIdent
|
|
|
|
, repo ^. RepoIdent
|
|
|
|
)
|
|
|
|
liftIO $ forM repos $ \ (Value sharer, Value project, Value repo) -> do
|
|
|
|
let path =
|
|
|
|
unpack $
|
|
|
|
intercalate "/"
|
|
|
|
[ "state2"
|
|
|
|
, sharer
|
|
|
|
, project
|
|
|
|
, repo
|
|
|
|
]
|
|
|
|
dt <- lastChange path
|
|
|
|
ago <- timeAgo dt
|
|
|
|
return (sharer, project, repo, ago)
|
|
|
|
defaultLayout $ do
|
|
|
|
setTitle "Welcome to Vervis!"
|
|
|
|
$(widgetFile "homepage")
|
|
|
|
else defaultLayout $ do
|
|
|
|
setTitle "Vervis > Overview"
|
|
|
|
$(widgetFile "personal-overview")
|