From f06587ba23662d33dc11a1096cad41a776820ff0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 9 Oct 2012 15:11:48 -0400 Subject: [PATCH] basic repository edit form Only shows description so far. --- Assistant/WebApp/Configurators/Edit.hs | 55 ++++++++++++------- templates/configurators/editrepository.hamlet | 13 +++++ 2 files changed, 47 insertions(+), 21 deletions(-) create mode 100644 templates/configurators/editrepository.hamlet diff --git a/Assistant/WebApp/Configurators/Edit.hs b/Assistant/WebApp/Configurators/Edit.hs index ec849fe1cd..8deb2d8d03 100644 --- a/Assistant/WebApp/Configurators/Edit.hs +++ b/Assistant/WebApp/Configurators/Edit.hs @@ -13,31 +13,44 @@ import Assistant.Common import Assistant.WebApp import Assistant.WebApp.Types import Assistant.WebApp.SideBar -import Assistant.Sync -import Assistant.MakeRemote import Utility.Yesod -import Init -import qualified Git -import qualified Git.Construct -import qualified Git.Config -import qualified Annex -import Locations.UserConfig -import Utility.FreeDesktop -import Utility.Mounts -import Utility.DiskFree -import Utility.DataUnits -import Utility.Network -import Remote (prettyListUUIDs) -import Logs.Group -import Annex.UUID +import qualified Remote +import Logs.UUID import Yesod import Data.Text (Text) import qualified Data.Text as T -import qualified Data.Set as S -import Data.Char -import System.Posix.Directory -import qualified Control.Exception as E +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 u = error "TODO" +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") diff --git a/templates/configurators/editrepository.hamlet b/templates/configurators/editrepository.hamlet new file mode 100644 index 0000000000..5ea3dc6efc --- /dev/null +++ b/templates/configurators/editrepository.hamlet @@ -0,0 +1,13 @@ +
+

+ Configuring #{description} +

+

+
+ ^{form} + ^{authtoken} +
+