Introduce ui settings and let user set page size for item search

This commit is contained in:
Eike Kettner
2020-06-07 00:51:11 +02:00
parent 6abdb95f02
commit 79fc5a30a1
13 changed files with 530 additions and 66 deletions

View File

@ -11,6 +11,7 @@ import Api.Model.VersionInfo exposing (VersionInfo)
import Browser exposing (UrlRequest)
import Browser.Navigation exposing (Key)
import Data.Flags exposing (Flags)
import Data.UiSettings exposing (UiSettings)
import Http
import Page exposing (Page(..))
import Page.CollectiveSettings.Data
@ -90,6 +91,7 @@ type Msg
| LogoutResp (Result Http.Error ())
| SessionCheckResp (Result Http.Error AuthResult)
| ToggleNavMenu
| GetUiSettings UiSettings
isSignedIn : Flags -> Bool

View File

@ -40,7 +40,7 @@ update msg model =
( m, c, s ) =
updateWithSub msg model
in
( { m | subs = s }, c )
( { m | subs = Sub.batch [ m.subs, s ] }, c )
updateWithSub : Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
@ -92,7 +92,10 @@ updateWithSub msg model =
)
LogoutResp _ ->
( { model | loginModel = Page.Login.Data.emptyModel }, Page.goto (LoginPage Nothing), Sub.none )
( { model | loginModel = Page.Login.Data.emptyModel }
, Page.goto (LoginPage Nothing)
, Sub.none
)
SessionCheckResp res ->
case res of
@ -171,6 +174,14 @@ updateWithSub msg model =
ToggleNavMenu ->
( { model | navMenuOpen = not model.navMenuOpen }, Cmd.none, Sub.none )
GetUiSettings settings ->
Util.Update.andThen1
[ updateUserSettings (Page.UserSettings.Data.GetUiSettings settings)
, updateHome (Page.Home.Data.GetUiSettings settings)
]
model
|> noSub
updateItemDetail : Page.ItemDetail.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
updateItemDetail lmsg model =
@ -241,10 +252,17 @@ updateQueue lmsg model =
updateUserSettings : Page.UserSettings.Data.Msg -> Model -> ( Model, Cmd Msg )
updateUserSettings lmsg model =
let
( lm, lc ) =
( lm, lc, ls ) =
Page.UserSettings.Update.update model.flags lmsg model.userSettingsModel
in
( { model | userSettingsModel = lm }
( { model
| userSettingsModel = lm
, subs =
Sub.batch
[ model.subs
, Sub.map UserSettingsMsg ls
]
}
, Cmd.map UserSettingsMsg lc
)