diff --git a/Handler/Home.hs b/Handler/Home.hs index 70f68a7..f392c12 100644 --- a/Handler/Home.hs +++ b/Handler/Home.hs @@ -2,6 +2,7 @@ module Handler.Home where import Import import qualified Text.Read as R +import Data.Maybe -- This is a handler function for the GET request method on the HomeR -- resource pattern. All of your resource patterns are defined in diff --git a/Handler/NewUser.hs b/Handler/NewUser.hs index b39f35b..a50fda0 100644 --- a/Handler/NewUser.hs +++ b/Handler/NewUser.hs @@ -41,7 +41,7 @@ newUserForm secs = renderDivs $ User data UserConf = UserConf { userConfEmail :: Maybe Text - , userConfNotify :: Bool + , userConfAvatar :: Maybe AvatarId } getModifyUserR :: UserId -> Handler Html @@ -63,11 +63,12 @@ postModifyUserR uId = do Just user -> do ((res, _), _) <- runFormPost $ modifyUserForm user case res of - FormSuccess email -> do + FormSuccess uc -> do runDB $ update uId - [ UserEmail =. email + [ UserEmail =. userConfEmail uc + , UserAvatar =. userConfAvatar uc ] - liftIO $ notify user email + liftIO $ notify user (userConfEmail uc) setMessageI MsgUserEdited redirect $ SelectR uId _ -> do @@ -77,9 +78,14 @@ postModifyUserR uId = do setMessageI MsgUserUnknown redirect $ HomeR -modifyUserForm :: User -> Form (Maybe Text) -modifyUserForm user = renderDivs $ - aopt emailField (fieldSettingsLabel MsgEmailNotify) (Just $ userEmail user) +modifyUserForm :: User -> Form UserConf +modifyUserForm user = renderDivs $ UserConf + <$> aopt emailField (fieldSettingsLabel MsgEmailNotify) (Just $ userEmail user) + <*> aopt (selectField avatars) (fieldSettingsLabel MsgSelectAvatar) (Just $ userAvatar user) + where + avatars = do + ents <- runDB $ selectList [] [Asc AvatarIdent] + optionsPairs $ map (\ent -> ((avatarIdent $ entityVal ent), entityKey ent)) ents notify :: User -> Maybe Text -> IO () notify user email diff --git a/Handler/Restock.hs b/Handler/Restock.hs index 389c41d..06c71b3 100644 --- a/Handler/Restock.hs +++ b/Handler/Restock.hs @@ -72,8 +72,8 @@ newArticleForm = renderDivs $ Beverage <*> areq currencyField (fieldSettingsLabel MsgPrice) (Just 100) <*> areq amountField (fieldSettingsLabel MsgAmount) (Just 0) <*> areq amountField (fieldSettingsLabel MsgAmountWarning) (Just 0) - <*> aopt (selectField albums) (fieldSettingsLabel MsgSelectAvatar) Nothing + <*> aopt (selectField avatars) (fieldSettingsLabel MsgSelectAvatar) Nothing where - albums = do + avatars = do ents <- runDB $ selectList [] [Asc AvatarIdent] optionsPairs $ map (\ent -> ((avatarIdent $ entityVal ent), entityKey ent)) ents diff --git a/Handler/Select.hs b/Handler/Select.hs index 13a12fb..a3d5fde 100644 --- a/Handler/Select.hs +++ b/Handler/Select.hs @@ -4,6 +4,7 @@ import Import import Handler.Common import qualified Text.Read as R import qualified Data.Text as T +import Data.Maybe getSelectR :: UserId -> Handler Html getSelectR uId = do diff --git a/static/css/main.css b/static/css/main.css index 6e637fb..5f496ae 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -35,12 +35,15 @@ article#func.article { position: relative; top: -7.75em; text-align: left; + z-index: 0; } .article a p { + position: relative; display: inline-block; vertical-align: middle; line-height: normal; + z-index: 1; } img.flag { diff --git a/templates/home.hamlet b/templates/home.hamlet index ba9f998..343b78a 100644 --- a/templates/home.hamlet +++ b/templates/home.hamlet @@ -15,6 +15,8 @@ $forall (Entity uId user) <- users

#{userIdent user} + $if userAvatar user /= Nothing +

diff --git a/templates/select.hamlet b/templates/select.hamlet index 7b2585e..8a72546 100644 --- a/templates/select.hamlet +++ b/templates/select.hamlet @@ -22,3 +22,5 @@ $forall (Entity bId bev) <- beverages

#{beverageIdent bev} + $if beverageAvatar bev /= Nothing + diff --git a/templates/selectCash.hamlet b/templates/selectCash.hamlet index 0c25127..5c6a5ed 100644 --- a/templates/selectCash.hamlet +++ b/templates/selectCash.hamlet @@ -7,3 +7,5 @@ $forall (Entity bId bev) <- beverages

#{beverageIdent bev} + $if beverageAvatar bev /= Nothing +