Show new data about spaces in web-ui

This commit is contained in:
Eike Kettner 2020-07-10 01:04:59 +02:00
parent 60a08fc786
commit 0365c1980a
3 changed files with 51 additions and 8 deletions

View File

@ -221,10 +221,19 @@ getSpaceDetail flags id receive =
} }
getSpaces : Flags -> String -> (Result Http.Error SpaceList -> msg) -> Cmd msg getSpaces : Flags -> String -> Bool -> (Result Http.Error SpaceList -> msg) -> Cmd msg
getSpaces flags query receive = getSpaces flags query owningOnly receive =
Http2.authGet Http2.authGet
{ url = flags.config.baseUrl ++ "/api/v1/sec/space?q=" ++ Url.percentEncode query { url =
flags.config.baseUrl
++ "/api/v1/sec/space?q="
++ Url.percentEncode query
++ (if owningOnly then
"&owning=true"
else
""
)
, account = getAccount flags , account = getAccount flags
, expect = Http.expectJson receive Api.Model.SpaceList.decoder , expect = Http.expectJson receive Api.Model.SpaceList.decoder
} }

View File

@ -18,7 +18,7 @@ import Comp.SpaceTable
import Data.Flags exposing (Flags) import Data.Flags exposing (Flags)
import Html exposing (..) import Html exposing (..)
import Html.Attributes exposing (..) import Html.Attributes exposing (..)
import Html.Events exposing (onClick, onInput) import Html.Events exposing (onCheck, onClick, onInput)
import Http import Http
@ -28,6 +28,7 @@ type alias Model =
, spaces : List SpaceItem , spaces : List SpaceItem
, users : List User , users : List User
, query : String , query : String
, owningOnly : Bool
, loading : Bool , loading : Bool
} }
@ -40,6 +41,7 @@ type Msg
| SpaceDetailResp (Result Http.Error SpaceDetail) | SpaceDetailResp (Result Http.Error SpaceDetail)
| SetQuery String | SetQuery String
| InitNewSpace | InitNewSpace
| ToggleOwningOnly
empty : Model empty : Model
@ -49,6 +51,7 @@ empty =
, spaces = [] , spaces = []
, users = [] , users = []
, query = "" , query = ""
, owningOnly = True
, loading = False , loading = False
} }
@ -58,7 +61,7 @@ init flags =
( empty ( empty
, Cmd.batch , Cmd.batch
[ Api.getUsers flags UserListResp [ Api.getUsers flags UserListResp
, Api.getSpaces flags "" SpaceListResp , Api.getSpaces flags empty.query empty.owningOnly SpaceListResp
] ]
) )
@ -94,7 +97,7 @@ update flags msg model =
cmd = cmd =
if back then if back then
Api.getSpaces flags model.query SpaceListResp Api.getSpaces flags model.query model.owningOnly SpaceListResp
else else
Cmd.none Cmd.none
@ -117,7 +120,18 @@ update flags msg model =
( model, Cmd.none ) ( model, Cmd.none )
SetQuery str -> SetQuery str ->
( { model | query = str }, Api.getSpaces flags str SpaceListResp ) ( { model | query = str }
, Api.getSpaces flags str model.owningOnly SpaceListResp
)
ToggleOwningOnly ->
let
newOwning =
not model.owningOnly
in
( { model | owningOnly = newOwning }
, Api.getSpaces flags model.query newOwning SpaceListResp
)
UserListResp (Ok ul) -> UserListResp (Ok ul) ->
( { model | users = ul.items }, Cmd.none ) ( { model | users = ul.items }, Cmd.none )
@ -187,6 +201,17 @@ viewTable model =
[] []
] ]
] ]
, div [ class "item" ]
[ div [ class "ui checkbox" ]
[ input
[ type_ "checkbox"
, onCheck (\_ -> ToggleOwningOnly)
, checked model.owningOnly
]
[]
, label [] [ text "Show owning spaces only" ]
]
]
, div [ class "right menu" ] , div [ class "right menu" ]
[ div [ class "item" ] [ div [ class "item" ]
[ a [ a

View File

@ -8,10 +8,10 @@ module Comp.SpaceTable exposing
) )
import Api.Model.SpaceItem exposing (SpaceItem) import Api.Model.SpaceItem exposing (SpaceItem)
import Api.Model.SpaceList exposing (SpaceList)
import Html exposing (..) import Html exposing (..)
import Html.Attributes exposing (..) import Html.Attributes exposing (..)
import Html.Events exposing (onClick) import Html.Events exposing (onClick)
import Util.Html
import Util.Time import Util.Time
@ -48,6 +48,8 @@ view _ items =
[ th [ class "collapsing" ] [] [ th [ class "collapsing" ] []
, th [] [ text "Name" ] , th [] [ text "Name" ]
, th [] [ text "Owner" ] , th [] [ text "Owner" ]
, th [] [ text "Owner or Member" ]
, th [] [ text "#Member" ]
, th [] [ text "Created" ] , th [] [ text "Created" ]
] ]
, tbody [] , tbody []
@ -75,6 +77,13 @@ viewItem item =
, td [] , td []
[ text item.owner.name [ text item.owner.name
] ]
, td []
[ Util.Html.checkbox item.isMember
]
, td []
[ String.fromInt item.memberCount
|> text
]
, td [] , td []
[ Util.Time.formatDateShort item.created [ Util.Time.formatDateShort item.created
|> text |> text