Initial outline for managing spaces

This commit is contained in:
Eike Kettner
2020-07-05 00:37:27 +02:00
parent d43e17d9fb
commit 0e8c9b1819
9 changed files with 457 additions and 11 deletions

View File

@ -2,13 +2,15 @@ module Page.ManageData.Data exposing
( Model
, Msg(..)
, Tab(..)
, emptyModel
, init
)
import Comp.EquipmentManage
import Comp.OrgManage
import Comp.PersonManage
import Comp.SpaceManage
import Comp.TagManage
import Data.Flags exposing (Flags)
type alias Model =
@ -17,17 +19,21 @@ type alias Model =
, equipManageModel : Comp.EquipmentManage.Model
, orgManageModel : Comp.OrgManage.Model
, personManageModel : Comp.PersonManage.Model
, spaceManageModel : Comp.SpaceManage.Model
}
emptyModel : Model
emptyModel =
{ currentTab = Nothing
, tagManageModel = Comp.TagManage.emptyModel
, equipManageModel = Comp.EquipmentManage.emptyModel
, orgManageModel = Comp.OrgManage.emptyModel
, personManageModel = Comp.PersonManage.emptyModel
}
init : Flags -> ( Model, Cmd Msg )
init _ =
( { currentTab = Nothing
, tagManageModel = Comp.TagManage.emptyModel
, equipManageModel = Comp.EquipmentManage.emptyModel
, orgManageModel = Comp.OrgManage.emptyModel
, personManageModel = Comp.PersonManage.emptyModel
, spaceManageModel = Comp.SpaceManage.empty
}
, Cmd.none
)
type Tab
@ -35,6 +41,7 @@ type Tab
| EquipTab
| OrgTab
| PersonTab
| SpaceTab
type Msg
@ -43,3 +50,4 @@ type Msg
| EquipManageMsg Comp.EquipmentManage.Msg
| OrgManageMsg Comp.OrgManage.Msg
| PersonManageMsg Comp.PersonManage.Msg
| SpaceMsg Comp.SpaceManage.Msg

View File

@ -3,6 +3,7 @@ module Page.ManageData.Update exposing (update)
import Comp.EquipmentManage
import Comp.OrgManage
import Comp.PersonManage
import Comp.SpaceManage
import Comp.TagManage
import Data.Flags exposing (Flags)
import Page.ManageData.Data exposing (..)
@ -29,6 +30,13 @@ update flags msg model =
PersonTab ->
update flags (PersonManageMsg Comp.PersonManage.LoadPersons) m
SpaceTab ->
let
( sm, sc ) =
Comp.SpaceManage.init flags
in
( { m | spaceManageModel = sm }, Cmd.map SpaceMsg sc )
TagManageMsg m ->
let
( m2, c2 ) =
@ -56,3 +64,12 @@ update flags msg model =
Comp.PersonManage.update flags m model.personManageModel
in
( { model | personManageModel = m2 }, Cmd.map PersonManageMsg c2 )
SpaceMsg lm ->
let
( m2, c2 ) =
Comp.SpaceManage.update flags lm model.spaceManageModel
in
( { model | spaceManageModel = m2 }
, Cmd.map SpaceMsg c2
)

View File

@ -3,6 +3,7 @@ module Page.ManageData.View exposing (view)
import Comp.EquipmentManage
import Comp.OrgManage
import Comp.PersonManage
import Comp.SpaceManage
import Comp.TagManage
import Data.Icons as Icons
import Data.UiSettings exposing (UiSettings)
@ -50,6 +51,13 @@ view settings model =
[ Icons.personIcon ""
, text "Person"
]
, div
[ classActive (model.currentTab == Just SpaceTab) "link icon item"
, onClick (SetTab SpaceTab)
]
[ Icons.spaceIcon ""
, text "Space"
]
]
]
]
@ -68,6 +76,9 @@ view settings model =
Just PersonTab ->
viewPerson settings model
Just SpaceTab ->
viewSpace settings model
Nothing ->
[]
)
@ -75,6 +86,22 @@ view settings model =
]
viewSpace : UiSettings -> Model -> List (Html Msg)
viewSpace _ model =
[ h2
[ class "ui header"
]
[ Icons.spaceIcon ""
, div
[ class "content"
]
[ text "Spaces"
]
]
, Html.map SpaceMsg (Comp.SpaceManage.view model.spaceManageModel)
]
viewTags : Model -> List (Html Msg)
viewTags model =
[ h2 [ class "ui header" ]