git-annex/Assistant/WebApp/Configurators/Edit.hs
Joey Hess f06587ba23 basic repository edit form
Only shows description so far.
2012-10-09 15:11:48 -04:00

56 lines
1.6 KiB
Haskell

{- git-annex assistant webapp configurator for editing existing repos
-
- Copyright 2012 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU AGPL version 3 or higher.
-}
{-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses, TemplateHaskell, OverloadedStrings, RankNTypes #-}
module Assistant.WebApp.Configurators.Edit where
import Assistant.Common
import Assistant.WebApp
import Assistant.WebApp.Types
import Assistant.WebApp.SideBar
import Utility.Yesod
import qualified Remote
import Logs.UUID
import Yesod
import Data.Text (Text)
import qualified Data.Text as T
import qualified Data.Map as M
data RepoConfig = RepoConfig
{ repoDescription :: Text
}
deriving (Show)
editRepositoryAForm :: RepoConfig -> AForm WebApp WebApp RepoConfig
editRepositoryAForm def = RepoConfig
<$> areq textField "Description" (Just $ repoDescription def)
getRepoConfig :: UUID -> Annex RepoConfig
getRepoConfig uuid = RepoConfig
<$> (T.pack . fromMaybe "" . M.lookup uuid <$> uuidMap)
getEditRepositoryR :: UUID -> Handler RepHtml
getEditRepositoryR uuid = bootstrap (Just Config) $ do
sideBarDisplay
setTitle "Configure repository"
curr <- lift $ runAnnex undefined $ getRepoConfig uuid
((result, form), enctype) <- lift $
runFormGet $ renderBootstrap $ editRepositoryAForm curr
case result of
FormSuccess input -> do
error (show input)
_ -> showform form enctype
where
showform form enctype = do
let authtoken = webAppFormAuthToken
description <- lift $
runAnnex T.empty $ T.pack . concat <$>
Remote.prettyListUUIDs [uuid]
$(widgetFile "configurators/editrepository")