diff --git a/config/routes b/config/routes index d683688..7a48683 100644 --- a/config/routes +++ b/config/routes @@ -4,7 +4,7 @@ /favicon.ico FaviconR GET /robots.txt RobotsR GET -/ HomeR GET POST +/ HomeR GET /comments CommentR POST diff --git a/src/Handler/Home.hs b/src/Handler/Home.hs index 11dec1c..1b29c0c 100644 --- a/src/Handler/Home.hs +++ b/src/Handler/Home.hs @@ -6,62 +6,6 @@ module Handler.Home where import Import -import Yesod.Form.Bootstrap3 (BootstrapFormLayout (..), renderBootstrap3) -import Text.Julius (RawJS (..)) --- Define our data that will be used for creating the form. -data FileForm = FileForm - { fileInfo :: FileInfo - , fileDescription :: Text - } - --- This is a handler function for the GET request method on the HomeR --- resource pattern. All of your resource patterns are defined in --- config/routes --- --- The majority of the code you will write in Yesod lives in these handler --- functions. You can spread them across multiple files if you are so --- inclined, or create a single monolithic file. getHomeR :: Handler Html -getHomeR = do - (formWidget, formEnctype) <- generateFormPost sampleForm - let submission = Nothing :: Maybe FileForm - handlerName = "getHomeR" :: Text - defaultLayout $ do - let (commentFormId, commentTextareaId, commentListId) = commentIds - aDomId <- newIdent - setTitle "Welcome To Yesod!" - $(widgetFile "homepage") - -postHomeR :: Handler Html -postHomeR = do - ((result, formWidget), formEnctype) <- runFormPost sampleForm - let handlerName = "postHomeR" :: Text - submission = case result of - FormSuccess res -> Just res - _ -> Nothing - - defaultLayout $ do - let (commentFormId, commentTextareaId, commentListId) = commentIds - aDomId <- newIdent - setTitle "Welcome To Yesod!" - $(widgetFile "homepage") - -sampleForm :: Form FileForm -sampleForm = renderBootstrap3 BootstrapBasicForm $ FileForm - <$> fileAFormReq "Choose a file" - <*> areq textField textSettings Nothing - -- Add attributes like the placeholder and CSS classes. - where textSettings = FieldSettings - { fsLabel = "What's on the file?" - , fsTooltip = Nothing - , fsId = Nothing - , fsName = Nothing - , fsAttrs = - [ ("class", "form-control") - , ("placeholder", "File description") - ] - } - -commentIds :: (Text, Text, Text) -commentIds = ("js-commentForm", "js-createCommentTextarea", "js-commentList") +getHomeR = defaultLayout $(widgetFile "homepage") diff --git a/templates/homepage.hamlet b/templates/homepage.hamlet index fb79965..e69de29 100644 --- a/templates/homepage.hamlet +++ b/templates/homepage.hamlet @@ -1,139 +0,0 @@ -
-
-
-

- Yesod—a modern framework for blazing fast websites -

- Fast, stable & spiced with great community - - Read the Book - -
- -
-
-
-
-

Starting - -

- Now that you have a working project you should use the - Yesod book to learn more. -

- You can also use this scaffolded site to explore some concepts, and best practices. - -

    - -
  • - This page was generated by the #{handlerName} handler in - Handler/Home.hs. - -
  • - The #{handlerName} handler is set to generate your - site's home screen in Routes file - config/routes - -
  • - We can link to other handlers, like the Profile. - Try it out as an anonymous user and see the access denied. - Then, try to login with the dummy authentication added - while in development. - -
  • - The HTML you are seeing now is actually composed by a number of widgets, # - most of them are brought together by the defaultLayout function which # - is defined in the Foundation.hs module, and used by #{handlerName}. # - All the files for templates and wigdets are in templates. - -
  • - A Widget's Html, Css and Javascript are separated in three files with the - .hamlet, .lucius and .julius extensions. - -
  • - If you had javascript enabled then you wouldn't be seeing this. - -
    - - -
    -
    -
    -
    -

    Forms - -

    - This is an example of a form. Read the - Forms chapter # - on the yesod book to learn more about them. - -

    -
    -
    -
    - ^{formWidget} - -