High level model helpers
- class MonadIO m => FrameIO m
- class (FrameConfig m, FrameState m, FrameIO m) => FrameModel m
- liftIO :: MonadIO m => forall a. IO a -> m a
- module Database.HaskellDB
- module Database.HaskellDB.BoundedList
- module Database.HaskellDB.BoundedString
- fieldName :: String -> String -> String
- tableName :: Table t -> TableName
- (-.-) :: Table r -> Attr f a -> String
- run :: FrameModel m => (Database -> m a) -> m a
- merge :: FrameModel m => m (Maybe Fields) -> m (Maybe Fields)
- field :: Wrappable a => DBInfo -> FieldName -> a -> (FieldName, WrapperType)
- posted :: FrameModel m => (Fields -> m a) -> m Bool
- wrapStringField :: Size n => FieldName -> BoundedList Char n -> (FieldName, WrapperType)
- wrapIntField :: FieldName -> Int -> (FieldName, WrapperType)
- wrapMaybeIntField :: FieldName -> Maybe Int -> (FieldName, WrapperType)
- wrapBoolField :: FieldName -> Bool -> (FieldName, WrapperType)
Documentation
class (FrameConfig m, FrameState m, FrameIO m) => FrameModel m Source
(FrameConfig m, FrameState m, FrameIO m) => FrameModel m |
module Database.HaskellDB
Convenience function for creating a qualified attribute name
Convenience function for a stringed representation fo a table and attribute
:: FrameModel m | |
=> (Database -> m a) | The function that requires a database |
-> m a | The executed result |
Execute a database function against the DB
merge :: FrameModel m => m (Maybe Fields) -> m (Maybe Fields)Source
Take the fields updated by some model action and merge them in to the state
:: FrameModel m | |
=> (Fields -> m a) | The computation to run |
-> m Bool | Did the computation succeed? |
Should a form have been posted and all of the fields validate, run some computation which maps fields to a model (with an empty return type)
wrapStringField :: Size n => FieldName -> BoundedList Char n -> (FieldName, WrapperType)Source
wrapIntField :: FieldName -> Int -> (FieldName, WrapperType)Source
wrapMaybeIntField :: FieldName -> Maybe Int -> (FieldName, WrapperType)Source
wrapBoolField :: FieldName -> Bool -> (FieldName, WrapperType)Source