subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
This commit is contained in:
commit
019f8fd211
766 changed files with 175420 additions and 0 deletions
62
users/wpcarro/assessments/tt/client/src/Main.elm
Normal file
62
users/wpcarro/assessments/tt/client/src/Main.elm
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
module Main exposing (main)
|
||||
|
||||
import Admin
|
||||
import Browser
|
||||
import Html exposing (..)
|
||||
import Login
|
||||
import Manager
|
||||
import State
|
||||
import Url
|
||||
import User
|
||||
|
||||
|
||||
viewForRoute : State.Route -> (State.Model -> Html State.Msg)
|
||||
viewForRoute route =
|
||||
case route of
|
||||
State.Login ->
|
||||
Login.render
|
||||
|
||||
State.UserHome ->
|
||||
User.render
|
||||
|
||||
State.ManagerHome ->
|
||||
Manager.render
|
||||
|
||||
State.AdminHome ->
|
||||
Admin.render
|
||||
|
||||
|
||||
view : State.Model -> Browser.Document State.Msg
|
||||
view model =
|
||||
{ title = "TripPlanner"
|
||||
, body =
|
||||
[ case ( model.session, model.route ) of
|
||||
-- Redirect to /login when someone is not authenticated.
|
||||
-- TODO(wpcarro): We should ensure that /login shows in the URL
|
||||
-- bar.
|
||||
( Nothing, _ ) ->
|
||||
Login.render model
|
||||
|
||||
( Just session, Nothing ) ->
|
||||
Login.render model
|
||||
|
||||
-- Authenticated
|
||||
( Just session, Just route ) ->
|
||||
if State.isAuthorized session.role route then
|
||||
viewForRoute route model
|
||||
|
||||
else
|
||||
text "Access denied. You are not authorized to be here. Evacuate the area immediately"
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
main =
|
||||
Browser.application
|
||||
{ init = State.init
|
||||
, onUrlChange = State.UrlChanged
|
||||
, onUrlRequest = State.LinkClicked
|
||||
, subscriptions = \_ -> Sub.none
|
||||
, update = State.update
|
||||
, view = view
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue