diff --git a/Assistant/Threads/WebApp.hs b/Assistant/Threads/WebApp.hs index cb5f58b2d1..8b9db1eaa5 100644 --- a/Assistant/Threads/WebApp.hs +++ b/Assistant/Threads/WebApp.hs @@ -17,6 +17,7 @@ import Assistant.WebApp.DashBoard import Assistant.WebApp.SideBar import Assistant.WebApp.Notifications import Assistant.WebApp.Configurators +import Assistant.WebApp.Configurators.Edit import Assistant.WebApp.Configurators.Local import Assistant.WebApp.Configurators.Ssh import Assistant.WebApp.Configurators.Pairing diff --git a/Assistant/WebApp/Configurators.hs b/Assistant/WebApp/Configurators.hs index 2be6ef8027..f7d891c066 100644 --- a/Assistant/WebApp/Configurators.hs +++ b/Assistant/WebApp/Configurators.hs @@ -44,8 +44,18 @@ getRepositoriesR = bootstrap (Just Config) $ do repolist <- lift $ repoList False $(widgetFile "configurators/repositories") +data SetupRepo = EnableRepo (Route WebApp) | EditRepo (Route WebApp) + +needsEnabled :: SetupRepo -> Bool +needsEnabled (EnableRepo _) = True +needsEnabled _ = False + +setupRepoLink :: SetupRepo -> Route WebApp +setupRepoLink (EnableRepo r) = r +setupRepoLink (EditRepo r) = r + {- A numbered list of known repositories, including the current one. -} -repoList :: Bool -> Handler [(String, String, Maybe (Route WebApp))] +repoList :: Bool -> Handler [(String, String, SetupRepo)] repoList onlyconfigured | onlyconfigured = list =<< configured | otherwise = list =<< (++) <$> configured <*> unconfigured @@ -55,7 +65,9 @@ repoList onlyconfigured (liftIO . getDaemonStatus =<< daemonStatus <$> getYesod) runAnnex [] $ do u <- getUUID - return $ zip (u : map Remote.uuid rs) (repeat Nothing) + let l = u : map Remote.uuid rs + return $ zip l (map editlink l) + editlink = EditRepo . EditRepositoryR unconfigured = runAnnex [] $ do m <- readRemoteLog catMaybes . map (findtype m) . snd @@ -67,7 +79,7 @@ repoList onlyconfigured Just "directory" -> u `enableswith` EnableDirectoryR Just "S3" -> u `enableswith` EnableS3R _ -> Nothing - u `enableswith` r = Just (u, Just $ r u) + u `enableswith` r = Just (u, EnableRepo $ r u) list l = runAnnex [] $ do let l' = nubBy (\x y -> fst x == fst y) l zip3 diff --git a/Assistant/WebApp/Configurators/Edit.hs b/Assistant/WebApp/Configurators/Edit.hs new file mode 100644 index 0000000000..ec849fe1cd --- /dev/null +++ b/Assistant/WebApp/Configurators/Edit.hs @@ -0,0 +1,43 @@ +{- git-annex assistant webapp configurator for editing existing repos + - + - Copyright 2012 Joey Hess + - + - 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 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 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 + +getEditRepositoryR :: UUID -> Handler RepHtml +getEditRepositoryR u = error "TODO" diff --git a/Assistant/WebApp/routes b/Assistant/WebApp/routes index dafe5aa4af..0d8417d32a 100644 --- a/Assistant/WebApp/routes +++ b/Assistant/WebApp/routes @@ -10,6 +10,7 @@ /config/repository/new/first FirstRepositoryR GET /config/repository/new NewRepositoryR GET /config/repository/switchto/#FilePath SwitchToRepositoryR GET +/config/repository/edit/#UUID EditRepositoryR GET /config/repository/add/drive AddDriveR GET /config/repository/add/ssh AddSshR GET diff --git a/templates/configurators/repositories.hamlet b/templates/configurators/repositories.hamlet index fd5dc7f06e..4fb8bd2c70 100644 --- a/templates/configurators/repositories.hamlet +++ b/templates/configurators/repositories.hamlet @@ -3,21 +3,24 @@ Your repositories - $forall (num, name, needsenabled) <- repolist + $forall (num, name, setuprepo) <- repolist
#{num} - $if isJust needsenabled + $if needsEnabled setuprepo #{name} $else #{name} - $maybe enable <- needsenabled + $if needsEnabled setuprepo not enabled here # → # - + enable + $else + + configure