mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-05 22:55:58 +00:00
Initial outline for managing spaces
This commit is contained in:
parent
d43e17d9fb
commit
0e8c9b1819
@ -42,6 +42,7 @@ module Api exposing
|
|||||||
, getScanMailbox
|
, getScanMailbox
|
||||||
, getSentMails
|
, getSentMails
|
||||||
, getSources
|
, getSources
|
||||||
|
, getSpaces
|
||||||
, getTags
|
, getTags
|
||||||
, getUsers
|
, getUsers
|
||||||
, itemDetail
|
, itemDetail
|
||||||
@ -132,6 +133,7 @@ import Api.Model.SentMails exposing (SentMails)
|
|||||||
import Api.Model.SimpleMail exposing (SimpleMail)
|
import Api.Model.SimpleMail exposing (SimpleMail)
|
||||||
import Api.Model.Source exposing (Source)
|
import Api.Model.Source exposing (Source)
|
||||||
import Api.Model.SourceList exposing (SourceList)
|
import Api.Model.SourceList exposing (SourceList)
|
||||||
|
import Api.Model.SpaceList exposing (SpaceList)
|
||||||
import Api.Model.Tag exposing (Tag)
|
import Api.Model.Tag exposing (Tag)
|
||||||
import Api.Model.TagList exposing (TagList)
|
import Api.Model.TagList exposing (TagList)
|
||||||
import Api.Model.User exposing (User)
|
import Api.Model.User exposing (User)
|
||||||
@ -150,6 +152,19 @@ import Util.Http as Http2
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- Spaces
|
||||||
|
|
||||||
|
|
||||||
|
getSpaces : Flags -> (Result Http.Error SpaceList -> msg) -> Cmd msg
|
||||||
|
getSpaces flags receive =
|
||||||
|
Http2.authGet
|
||||||
|
{ url = flags.config.baseUrl ++ "/api/v1/sec/space"
|
||||||
|
, account = getAccount flags
|
||||||
|
, expect = Http.expectJson receive Api.Model.SpaceList.decoder
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Full-Text
|
--- Full-Text
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,6 +57,9 @@ init key url flags settings =
|
|||||||
|
|
||||||
( um, uc ) =
|
( um, uc ) =
|
||||||
Page.UserSettings.Data.init flags settings
|
Page.UserSettings.Data.init flags settings
|
||||||
|
|
||||||
|
( mdm, mdc ) =
|
||||||
|
Page.ManageData.Data.init flags
|
||||||
in
|
in
|
||||||
( { flags = flags
|
( { flags = flags
|
||||||
, key = key
|
, key = key
|
||||||
@ -64,7 +67,7 @@ init key url flags settings =
|
|||||||
, version = Api.Model.VersionInfo.empty
|
, version = Api.Model.VersionInfo.empty
|
||||||
, homeModel = Page.Home.Data.init flags
|
, homeModel = Page.Home.Data.init flags
|
||||||
, loginModel = Page.Login.Data.emptyModel
|
, loginModel = Page.Login.Data.emptyModel
|
||||||
, manageDataModel = Page.ManageData.Data.emptyModel
|
, manageDataModel = mdm
|
||||||
, collSettingsModel = Page.CollectiveSettings.Data.emptyModel
|
, collSettingsModel = Page.CollectiveSettings.Data.emptyModel
|
||||||
, userSettingsModel = um
|
, userSettingsModel = um
|
||||||
, queueModel = Page.Queue.Data.emptyModel
|
, queueModel = Page.Queue.Data.emptyModel
|
||||||
@ -76,7 +79,10 @@ init key url flags settings =
|
|||||||
, subs = Sub.none
|
, subs = Sub.none
|
||||||
, uiSettings = settings
|
, uiSettings = settings
|
||||||
}
|
}
|
||||||
, Cmd.map UserSettingsMsg uc
|
, Cmd.batch
|
||||||
|
[ Cmd.map UserSettingsMsg uc
|
||||||
|
, Cmd.map ManageDataMsg mdc
|
||||||
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
154
modules/webapp/src/main/elm/Comp/SpaceDetail.elm
Normal file
154
modules/webapp/src/main/elm/Comp/SpaceDetail.elm
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
module Comp.SpaceDetail exposing
|
||||||
|
( Model
|
||||||
|
, Msg
|
||||||
|
, init
|
||||||
|
, update
|
||||||
|
, view
|
||||||
|
)
|
||||||
|
|
||||||
|
import Api
|
||||||
|
import Api.Model.BasicResult exposing (BasicResult)
|
||||||
|
import Api.Model.IdName exposing (IdName)
|
||||||
|
import Api.Model.SpaceDetail exposing (SpaceDetail)
|
||||||
|
import Api.Model.User exposing (User)
|
||||||
|
import Api.Model.UserList exposing (UserList)
|
||||||
|
import Comp.FixedDropdown
|
||||||
|
import Data.Flags exposing (Flags)
|
||||||
|
import Html exposing (..)
|
||||||
|
import Html.Attributes exposing (..)
|
||||||
|
import Html.Events exposing (onClick, onInput)
|
||||||
|
import Http
|
||||||
|
import Util.Http
|
||||||
|
import Util.Maybe
|
||||||
|
|
||||||
|
|
||||||
|
type alias Model =
|
||||||
|
{ result : Maybe BasicResult
|
||||||
|
, name : Maybe String
|
||||||
|
, members : List IdName
|
||||||
|
, users : List User
|
||||||
|
, memberDropdown : Comp.FixedDropdown.Model IdName
|
||||||
|
, selectedMember : Maybe IdName
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type Msg
|
||||||
|
= SetName String
|
||||||
|
| MemberDropdownMsg (Comp.FixedDropdown.Msg IdName)
|
||||||
|
|
||||||
|
|
||||||
|
init : List User -> SpaceDetail -> Model
|
||||||
|
init users space =
|
||||||
|
{ result = Nothing
|
||||||
|
, name = Util.Maybe.fromString space.name
|
||||||
|
, members = space.members
|
||||||
|
, users = users
|
||||||
|
, memberDropdown =
|
||||||
|
Comp.FixedDropdown.initMap .name
|
||||||
|
(makeOptions users space.members)
|
||||||
|
, selectedMember = Nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
makeOptions : List User -> List IdName -> List IdName
|
||||||
|
makeOptions users members =
|
||||||
|
let
|
||||||
|
toIdName u =
|
||||||
|
IdName u.id u.login
|
||||||
|
|
||||||
|
notMember idn =
|
||||||
|
List.member idn members |> not
|
||||||
|
in
|
||||||
|
List.map toIdName users
|
||||||
|
|> List.filter notMember
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- Update
|
||||||
|
|
||||||
|
|
||||||
|
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||||
|
update flags msg model =
|
||||||
|
case msg of
|
||||||
|
SetName str ->
|
||||||
|
( { model | name = Util.Maybe.fromString str }
|
||||||
|
, Cmd.none
|
||||||
|
)
|
||||||
|
|
||||||
|
MemberDropdownMsg lmsg ->
|
||||||
|
let
|
||||||
|
( mm, sel ) =
|
||||||
|
Comp.FixedDropdown.update lmsg model.memberDropdown
|
||||||
|
in
|
||||||
|
( { model
|
||||||
|
| memberDropdown = mm
|
||||||
|
, selectedMember = sel
|
||||||
|
}
|
||||||
|
, Cmd.none
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- View
|
||||||
|
|
||||||
|
|
||||||
|
view : Model -> Html Msg
|
||||||
|
view model =
|
||||||
|
div []
|
||||||
|
[ div [ class "ui header" ]
|
||||||
|
[ text "Name"
|
||||||
|
]
|
||||||
|
, div [ class "ui action input" ]
|
||||||
|
[ input
|
||||||
|
[ type_ "text"
|
||||||
|
, onInput SetName
|
||||||
|
, Maybe.withDefault "" model.name
|
||||||
|
|> value
|
||||||
|
]
|
||||||
|
[]
|
||||||
|
, button
|
||||||
|
[ class "ui icon button"
|
||||||
|
]
|
||||||
|
[ i [ class "save icon" ] []
|
||||||
|
]
|
||||||
|
]
|
||||||
|
, div [ class "ui header" ]
|
||||||
|
[ text "Members"
|
||||||
|
]
|
||||||
|
, div [ class "ui form" ]
|
||||||
|
[ div [ class "inline field" ]
|
||||||
|
[ Html.map MemberDropdownMsg
|
||||||
|
(Comp.FixedDropdown.view
|
||||||
|
(Maybe.map makeItem model.selectedMember)
|
||||||
|
model.memberDropdown
|
||||||
|
)
|
||||||
|
, button
|
||||||
|
[ class "ui primary button"
|
||||||
|
]
|
||||||
|
[ text "Add"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
, div
|
||||||
|
[ class "ui list"
|
||||||
|
]
|
||||||
|
(List.map viewMember model.members)
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
makeItem : IdName -> Comp.FixedDropdown.Item IdName
|
||||||
|
makeItem idn =
|
||||||
|
Comp.FixedDropdown.Item idn idn.name
|
||||||
|
|
||||||
|
|
||||||
|
viewMember : IdName -> Html Msg
|
||||||
|
viewMember member =
|
||||||
|
div
|
||||||
|
[ class "item"
|
||||||
|
]
|
||||||
|
[ button
|
||||||
|
[ class "ui primary icon button"
|
||||||
|
]
|
||||||
|
[ i [ class "delete icon" ] []
|
||||||
|
]
|
||||||
|
]
|
118
modules/webapp/src/main/elm/Comp/SpaceManage.elm
Normal file
118
modules/webapp/src/main/elm/Comp/SpaceManage.elm
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
module Comp.SpaceManage exposing
|
||||||
|
( Model
|
||||||
|
, Msg
|
||||||
|
, empty
|
||||||
|
, init
|
||||||
|
, update
|
||||||
|
, view
|
||||||
|
)
|
||||||
|
|
||||||
|
import Api
|
||||||
|
import Api.Model.SpaceDetail exposing (SpaceDetail)
|
||||||
|
import Api.Model.SpaceItem exposing (SpaceItem)
|
||||||
|
import Api.Model.SpaceList exposing (SpaceList)
|
||||||
|
import Api.Model.User exposing (User)
|
||||||
|
import Api.Model.UserList exposing (UserList)
|
||||||
|
import Comp.SpaceDetail
|
||||||
|
import Comp.SpaceTable
|
||||||
|
import Data.Flags exposing (Flags)
|
||||||
|
import Html exposing (..)
|
||||||
|
import Html.Attributes exposing (..)
|
||||||
|
import Html.Events exposing (onClick, onInput)
|
||||||
|
import Http
|
||||||
|
|
||||||
|
|
||||||
|
type alias Model =
|
||||||
|
{ tableModel : Comp.SpaceTable.Model
|
||||||
|
, detailModel : Maybe Comp.SpaceDetail.Model
|
||||||
|
, spaces : List SpaceItem
|
||||||
|
, users : List User
|
||||||
|
, query : String
|
||||||
|
, loading : Bool
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
type Msg
|
||||||
|
= TableMsg Comp.SpaceTable.Msg
|
||||||
|
| DetailMsg Comp.SpaceDetail.Msg
|
||||||
|
| UserListResp (Result Http.Error UserList)
|
||||||
|
| SpaceListResp (Result Http.Error SpaceList)
|
||||||
|
| SpaceDetailResp (Result Http.Error SpaceDetail)
|
||||||
|
| SetQuery String
|
||||||
|
| InitNewSpace
|
||||||
|
|
||||||
|
|
||||||
|
empty : Model
|
||||||
|
empty =
|
||||||
|
{ tableModel = Comp.SpaceTable.init
|
||||||
|
, detailModel = Nothing
|
||||||
|
, spaces = []
|
||||||
|
, users = []
|
||||||
|
, query = ""
|
||||||
|
, loading = False
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
init : Flags -> ( Model, Cmd Msg )
|
||||||
|
init flags =
|
||||||
|
( empty
|
||||||
|
, Cmd.batch
|
||||||
|
[ Api.getUsers flags UserListResp
|
||||||
|
, Api.getSpaces flags SpaceListResp
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- Update
|
||||||
|
|
||||||
|
|
||||||
|
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||||
|
update flags msg model =
|
||||||
|
( model, Cmd.none )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--- View
|
||||||
|
|
||||||
|
|
||||||
|
view : Model -> Html Msg
|
||||||
|
view model =
|
||||||
|
div []
|
||||||
|
[ div [ class "ui secondary menu" ]
|
||||||
|
[ div [ class "horizontally fitted item" ]
|
||||||
|
[ div [ class "ui icon input" ]
|
||||||
|
[ input
|
||||||
|
[ type_ "text"
|
||||||
|
, onInput SetQuery
|
||||||
|
, value model.query
|
||||||
|
, placeholder "Search…"
|
||||||
|
]
|
||||||
|
[]
|
||||||
|
, i [ class "ui search icon" ]
|
||||||
|
[]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
, div [ class "right menu" ]
|
||||||
|
[ div [ class "item" ]
|
||||||
|
[ a
|
||||||
|
[ class "ui primary button"
|
||||||
|
, href "#"
|
||||||
|
, onClick InitNewSpace
|
||||||
|
]
|
||||||
|
[ i [ class "plus icon" ] []
|
||||||
|
, text "New Space"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
, Html.map TableMsg (Comp.SpaceTable.view model.tableModel model.spaces)
|
||||||
|
, div
|
||||||
|
[ classList
|
||||||
|
[ ( "ui dimmer", True )
|
||||||
|
, ( "active", model.loading )
|
||||||
|
]
|
||||||
|
]
|
||||||
|
[ div [ class "ui loader" ] []
|
||||||
|
]
|
||||||
|
]
|
89
modules/webapp/src/main/elm/Comp/SpaceTable.elm
Normal file
89
modules/webapp/src/main/elm/Comp/SpaceTable.elm
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
module Comp.SpaceTable exposing
|
||||||
|
( Action(..)
|
||||||
|
, Model
|
||||||
|
, Msg
|
||||||
|
, init
|
||||||
|
, update
|
||||||
|
, view
|
||||||
|
)
|
||||||
|
|
||||||
|
import Api.Model.SpaceItem exposing (SpaceItem)
|
||||||
|
import Api.Model.SpaceList exposing (SpaceList)
|
||||||
|
import Html exposing (..)
|
||||||
|
import Html.Attributes exposing (..)
|
||||||
|
import Html.Events exposing (onClick)
|
||||||
|
import Util.Time
|
||||||
|
|
||||||
|
|
||||||
|
type alias Model =
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
type Msg
|
||||||
|
= EditItem SpaceItem
|
||||||
|
|
||||||
|
|
||||||
|
type Action
|
||||||
|
= NoAction
|
||||||
|
| EditAction SpaceItem
|
||||||
|
|
||||||
|
|
||||||
|
init : Model
|
||||||
|
init =
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
update : Msg -> Model -> ( Model, Action )
|
||||||
|
update msg model =
|
||||||
|
case msg of
|
||||||
|
EditItem item ->
|
||||||
|
( model, EditAction item )
|
||||||
|
|
||||||
|
|
||||||
|
view : Model -> List SpaceItem -> Html Msg
|
||||||
|
view _ items =
|
||||||
|
div []
|
||||||
|
[ table [ class "ui very basic center aligned table" ]
|
||||||
|
[ thead []
|
||||||
|
[ th [ class "collapsing" ] []
|
||||||
|
, th [] [ text "Name" ]
|
||||||
|
, th [] [ text "Owner" ]
|
||||||
|
, th [] [ text "Members" ]
|
||||||
|
, th [] [ text "Created" ]
|
||||||
|
]
|
||||||
|
, tbody []
|
||||||
|
(List.map viewItem items)
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
viewItem : SpaceItem -> Html Msg
|
||||||
|
viewItem item =
|
||||||
|
tr []
|
||||||
|
[ td [ class "collapsing" ]
|
||||||
|
[ a
|
||||||
|
[ href "#"
|
||||||
|
, class "ui basic small blue label"
|
||||||
|
, onClick (EditItem item)
|
||||||
|
]
|
||||||
|
[ i [ class "edit icon" ] []
|
||||||
|
, text "Edit"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
, td []
|
||||||
|
[ code []
|
||||||
|
[ text item.name
|
||||||
|
]
|
||||||
|
]
|
||||||
|
, td []
|
||||||
|
[ text item.owner.name
|
||||||
|
]
|
||||||
|
, td []
|
||||||
|
[ String.fromInt item.members
|
||||||
|
|> text
|
||||||
|
]
|
||||||
|
, td []
|
||||||
|
[ Util.Time.formatDateShort item.created
|
||||||
|
|> text
|
||||||
|
]
|
||||||
|
]
|
@ -19,6 +19,8 @@ module Data.Icons exposing
|
|||||||
, organizationIcon
|
, organizationIcon
|
||||||
, person
|
, person
|
||||||
, personIcon
|
, personIcon
|
||||||
|
, space
|
||||||
|
, spaceIcon
|
||||||
, tag
|
, tag
|
||||||
, tagIcon
|
, tagIcon
|
||||||
, tags
|
, tags
|
||||||
@ -29,6 +31,16 @@ import Html exposing (Html, i)
|
|||||||
import Html.Attributes exposing (class)
|
import Html.Attributes exposing (class)
|
||||||
|
|
||||||
|
|
||||||
|
space : String
|
||||||
|
space =
|
||||||
|
"folder outline icon"
|
||||||
|
|
||||||
|
|
||||||
|
spaceIcon : String -> Html msg
|
||||||
|
spaceIcon classes =
|
||||||
|
i [ class (space ++ " " ++ classes) ] []
|
||||||
|
|
||||||
|
|
||||||
concerned : String
|
concerned : String
|
||||||
concerned =
|
concerned =
|
||||||
"crosshairs icon"
|
"crosshairs icon"
|
||||||
|
@ -2,13 +2,15 @@ module Page.ManageData.Data exposing
|
|||||||
( Model
|
( Model
|
||||||
, Msg(..)
|
, Msg(..)
|
||||||
, Tab(..)
|
, Tab(..)
|
||||||
, emptyModel
|
, init
|
||||||
)
|
)
|
||||||
|
|
||||||
import Comp.EquipmentManage
|
import Comp.EquipmentManage
|
||||||
import Comp.OrgManage
|
import Comp.OrgManage
|
||||||
import Comp.PersonManage
|
import Comp.PersonManage
|
||||||
|
import Comp.SpaceManage
|
||||||
import Comp.TagManage
|
import Comp.TagManage
|
||||||
|
import Data.Flags exposing (Flags)
|
||||||
|
|
||||||
|
|
||||||
type alias Model =
|
type alias Model =
|
||||||
@ -17,17 +19,21 @@ type alias Model =
|
|||||||
, equipManageModel : Comp.EquipmentManage.Model
|
, equipManageModel : Comp.EquipmentManage.Model
|
||||||
, orgManageModel : Comp.OrgManage.Model
|
, orgManageModel : Comp.OrgManage.Model
|
||||||
, personManageModel : Comp.PersonManage.Model
|
, personManageModel : Comp.PersonManage.Model
|
||||||
|
, spaceManageModel : Comp.SpaceManage.Model
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
emptyModel : Model
|
init : Flags -> ( Model, Cmd Msg )
|
||||||
emptyModel =
|
init _ =
|
||||||
{ currentTab = Nothing
|
( { currentTab = Nothing
|
||||||
, tagManageModel = Comp.TagManage.emptyModel
|
, tagManageModel = Comp.TagManage.emptyModel
|
||||||
, equipManageModel = Comp.EquipmentManage.emptyModel
|
, equipManageModel = Comp.EquipmentManage.emptyModel
|
||||||
, orgManageModel = Comp.OrgManage.emptyModel
|
, orgManageModel = Comp.OrgManage.emptyModel
|
||||||
, personManageModel = Comp.PersonManage.emptyModel
|
, personManageModel = Comp.PersonManage.emptyModel
|
||||||
}
|
, spaceManageModel = Comp.SpaceManage.empty
|
||||||
|
}
|
||||||
|
, Cmd.none
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
type Tab
|
type Tab
|
||||||
@ -35,6 +41,7 @@ type Tab
|
|||||||
| EquipTab
|
| EquipTab
|
||||||
| OrgTab
|
| OrgTab
|
||||||
| PersonTab
|
| PersonTab
|
||||||
|
| SpaceTab
|
||||||
|
|
||||||
|
|
||||||
type Msg
|
type Msg
|
||||||
@ -43,3 +50,4 @@ type Msg
|
|||||||
| EquipManageMsg Comp.EquipmentManage.Msg
|
| EquipManageMsg Comp.EquipmentManage.Msg
|
||||||
| OrgManageMsg Comp.OrgManage.Msg
|
| OrgManageMsg Comp.OrgManage.Msg
|
||||||
| PersonManageMsg Comp.PersonManage.Msg
|
| PersonManageMsg Comp.PersonManage.Msg
|
||||||
|
| SpaceMsg Comp.SpaceManage.Msg
|
||||||
|
@ -3,6 +3,7 @@ module Page.ManageData.Update exposing (update)
|
|||||||
import Comp.EquipmentManage
|
import Comp.EquipmentManage
|
||||||
import Comp.OrgManage
|
import Comp.OrgManage
|
||||||
import Comp.PersonManage
|
import Comp.PersonManage
|
||||||
|
import Comp.SpaceManage
|
||||||
import Comp.TagManage
|
import Comp.TagManage
|
||||||
import Data.Flags exposing (Flags)
|
import Data.Flags exposing (Flags)
|
||||||
import Page.ManageData.Data exposing (..)
|
import Page.ManageData.Data exposing (..)
|
||||||
@ -29,6 +30,13 @@ update flags msg model =
|
|||||||
PersonTab ->
|
PersonTab ->
|
||||||
update flags (PersonManageMsg Comp.PersonManage.LoadPersons) m
|
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 ->
|
TagManageMsg m ->
|
||||||
let
|
let
|
||||||
( m2, c2 ) =
|
( m2, c2 ) =
|
||||||
@ -56,3 +64,12 @@ update flags msg model =
|
|||||||
Comp.PersonManage.update flags m model.personManageModel
|
Comp.PersonManage.update flags m model.personManageModel
|
||||||
in
|
in
|
||||||
( { model | personManageModel = m2 }, Cmd.map PersonManageMsg c2 )
|
( { 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
|
||||||
|
)
|
||||||
|
@ -3,6 +3,7 @@ module Page.ManageData.View exposing (view)
|
|||||||
import Comp.EquipmentManage
|
import Comp.EquipmentManage
|
||||||
import Comp.OrgManage
|
import Comp.OrgManage
|
||||||
import Comp.PersonManage
|
import Comp.PersonManage
|
||||||
|
import Comp.SpaceManage
|
||||||
import Comp.TagManage
|
import Comp.TagManage
|
||||||
import Data.Icons as Icons
|
import Data.Icons as Icons
|
||||||
import Data.UiSettings exposing (UiSettings)
|
import Data.UiSettings exposing (UiSettings)
|
||||||
@ -50,6 +51,13 @@ view settings model =
|
|||||||
[ Icons.personIcon ""
|
[ Icons.personIcon ""
|
||||||
, text "Person"
|
, 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 ->
|
Just PersonTab ->
|
||||||
viewPerson settings model
|
viewPerson settings model
|
||||||
|
|
||||||
|
Just SpaceTab ->
|
||||||
|
viewSpace settings model
|
||||||
|
|
||||||
Nothing ->
|
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 -> List (Html Msg)
|
||||||
viewTags model =
|
viewTags model =
|
||||||
[ h2 [ class "ui header" ]
|
[ h2 [ class "ui header" ]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user