{- This file is part of Vervis. - - Written in 2016 by fr33domlover . - - ♡ 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 - . -} module Vervis.Form.Repo ( newRepoForm ) where --import Prelude import Vervis.Import import Vervis.Field.Repo import Vervis.Model.Ident (prj2text, text2rp) import Vervis.Model.Repo newRepoAForm :: SharerId -> Maybe ProjectId -> AForm Handler Repo newRepoAForm sid mpid = Repo <$> (text2rp <$> areq (mkIdentField sid) "Identifier*" Nothing) <*> pure sid <*> areq (selectFieldList vcsList) "Version control system*" Nothing <*> aopt selectProject "Project" (Just mpid) <*> aopt textField "Description" Nothing <*> pure "master" where vcsList :: [(Text, VersionControlSystem)] vcsList = [ ("Darcs", VCSDarcs) , ("Git" , VCSGit) ] selectProject = selectField $ optionsPersistKey [ProjectSharer ==. sid] [Asc ProjectIdent] $ prj2text . projectIdent newRepoForm :: SharerId -> Maybe ProjectId -> Form Repo newRepoForm sid mpid = renderDivs $ newRepoAForm sid mpid