webapp: Improve UI around remote that have no annex.uuid set, either because setup of them is incomplete, or because the remote git repository is not a git-annex repository.
Complicated by such repositories potentially being repos that should have an annex.uuid, but it failed to be gotten, perhaps due to the past ssh repo setup bugs. This is handled now by an Upgrade Repository button.
This commit is contained in:
parent
b7c15f3b60
commit
958312885f
26 changed files with 209 additions and 156 deletions
40
Assistant/WebApp/RepoId.hs
Normal file
40
Assistant/WebApp/RepoId.hs
Normal file
|
@ -0,0 +1,40 @@
|
|||
{- git-annex assistant webapp RepoId type
|
||||
-
|
||||
- Copyright 2012,2013 Joey Hess <joey@kitenet.net>
|
||||
-
|
||||
- Licensed under the GNU AGPL version 3 or higher.
|
||||
-}
|
||||
|
||||
module Assistant.WebApp.RepoId where
|
||||
|
||||
import Common.Annex
|
||||
import Git.Types (RemoteName)
|
||||
import qualified Remote
|
||||
|
||||
{- Parts of the webapp need to be able to act on repositories that may or
|
||||
- may not have a UUID. -}
|
||||
data RepoId
|
||||
= RepoUUID UUID
|
||||
| RepoName RemoteName
|
||||
deriving (Eq, Ord, Show, Read)
|
||||
|
||||
mkRepoId :: Remote -> RepoId
|
||||
mkRepoId r = case Remote.uuid r of
|
||||
NoUUID -> RepoName (Remote.name r)
|
||||
u -> RepoUUID u
|
||||
|
||||
|
||||
describeRepoId :: RepoId -> Annex String
|
||||
describeRepoId (RepoUUID u) = Remote.prettyUUID u
|
||||
describeRepoId (RepoName n) = return n
|
||||
|
||||
repoIdRemote :: RepoId -> Annex (Maybe Remote)
|
||||
repoIdRemote (RepoUUID u) = Remote.remoteFromUUID u
|
||||
repoIdRemote (RepoName n) = Remote.byNameOnly n
|
||||
|
||||
lacksUUID :: RepoId -> Bool
|
||||
lacksUUID r = asUUID r == NoUUID
|
||||
|
||||
asUUID :: RepoId -> UUID
|
||||
asUUID (RepoUUID u) = u
|
||||
asUUID _ = NoUUID
|
Loading…
Add table
Add a link
Reference in a new issue