Experimental changes to Vervis.

[[ 🗃 ^KrXYo vervis ]] :: [📥 Inbox] [📤 Outbox] [🐤 Followers] [🤝 Collaborators] [🛠 Changes]

Clone

HTTPS: darcs clone https://vervis.peers.community/repos/KrXYo

SSH: darcs clone USERNAME@vervis.peers.community:KrXYo

Tags

TODO

src / Vervis / Form /

Role.hs

{- This file is part of Vervis.
 -
 - Written in 2016 by fr33domlover <fr33domlover@riseup.net>.
 -
 - ♡ 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
 - <http://creativecommons.org/publicdomain/zero/1.0/>.
 -}

module Vervis.Form.Role
    ( NewRepoRole (..)
    , newRepoRoleForm
    , newRepoRoleOpForm
    , NewProjectRole (..)
    , newProjectRoleForm
    , newProjectRoleOpForm
    )
where

import Prelude

import Data.Text (Text)
import Yesod.Form.Fields (textField)
import Yesod.Form.Functions (areq, renderDivs)
import Yesod.Form.Types (AForm)

import Vervis.Field.Role
import Vervis.Foundation (Handler, Form, AppDB)
import Vervis.Model
import Vervis.Model.Ident (RlIdent)
import Vervis.Model.Role

data NewRepoRole = NewRepoRole
    { nrrIdent :: RlIdent
    , nrrDesc  :: Text
    }

newRepoRoleAForm :: SharerId -> AForm Handler NewRepoRole
newRepoRoleAForm sid = NewRepoRole
    <$> areq (newRepoRoleIdentField sid) "Name*"       Nothing
    <*> areq textField                   "Description" Nothing

newRepoRoleForm :: SharerId -> Form NewRepoRole
newRepoRoleForm sid = renderDivs $ newRepoRoleAForm sid

newRepoRoleOpAForm :: AppDB RepoRoleId -> AForm Handler RepoOperation
newRepoRoleOpAForm getrid = areq (newRepoOpField getrid) "Operation*" Nothing

newRepoRoleOpForm :: AppDB RepoRoleId -> Form RepoOperation
newRepoRoleOpForm getrid = renderDivs $ newRepoRoleOpAForm getrid

data NewProjectRole = NewProjectRole
    { nprIdent :: RlIdent
    , nprDesc  :: Text
    }

newProjectRoleAForm :: SharerId -> AForm Handler NewProjectRole
newProjectRoleAForm sid = NewProjectRole
    <$> areq (newProjectRoleIdentField sid) "Name*"       Nothing
    <*> areq textField                      "Description" Nothing

newProjectRoleForm :: SharerId -> Form NewProjectRole
newProjectRoleForm sid = renderDivs $ newProjectRoleAForm sid

newProjectRoleOpAForm :: AppDB ProjectRoleId -> AForm Handler ProjectOperation
newProjectRoleOpAForm getrid =
    areq (newProjectOpField getrid) "Operation*" Nothing

newProjectRoleOpForm :: AppDB ProjectRoleId -> Form ProjectOperation
newProjectRoleOpForm getrid = renderDivs $ newProjectRoleOpAForm getrid
[See repo JSON]