mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-06 15:15:58 +00:00
Show new data about spaces in web-ui
This commit is contained in:
parent
60a08fc786
commit
0365c1980a
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user