Fix updating queue page

This commit is contained in:
eikek
2022-01-30 17:38:23 +01:00
parent 14a413e787
commit d67b063735
3 changed files with 24 additions and 28 deletions

View File

@ -499,8 +499,11 @@ updateRegister lmsg model =
updateQueue : Page.Queue.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg ) updateQueue : Page.Queue.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
updateQueue lmsg model = updateQueue lmsg model =
let let
notQueuePage =
model.page /= QueuePage
( lm, lc ) = ( lm, lc ) =
Page.Queue.Update.update model.flags lmsg model.queueModel Page.Queue.Update.update model.flags notQueuePage lmsg model.queueModel
in in
( { model | queueModel = lm } ( { model | queueModel = lm }
, Cmd.map QueueMsg lc , Cmd.map QueueMsg lc
@ -509,7 +512,7 @@ updateQueue lmsg model =
updateUserSettings : Messages -> Page.UserSettings.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg ) updateUserSettings : Messages -> Page.UserSettings.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
updateUserSettings texts lmsg model = updateUserSettings _ lmsg model =
let let
result = result =
Page.UserSettings.Update.update model.flags model.uiSettings lmsg model.userSettingsModel Page.UserSettings.Update.update model.flags model.uiSettings lmsg model.userSettingsModel
@ -626,54 +629,50 @@ initPage model_ page =
texts = texts =
Messages.get <| App.Data.getUiLanguage model Messages.get <| App.Data.getUiLanguage model
noop =
( model, Cmd.none, Sub.none )
in in
case page of case page of
SearchPage _ -> SearchPage _ ->
Util.Update.andThen2 Util.Update.andThen2
[ updateSearch texts Page.Search.Data.Init [ updateSearch texts Page.Search.Data.Init
, updateQueue Page.Queue.Data.StopRefresh
] ]
model model
LoginPage _ -> LoginPage _ ->
updateQueue Page.Queue.Data.StopRefresh model noop
ManageDataPage -> ManageDataPage ->
updateQueue Page.Queue.Data.StopRefresh model noop
CollectiveSettingPage -> CollectiveSettingPage ->
Util.Update.andThen2 Util.Update.andThen2
[ updateQueue Page.Queue.Data.StopRefresh [ updateCollSettings texts Page.CollectiveSettings.Data.Init
, updateCollSettings texts Page.CollectiveSettings.Data.Init
] ]
model model
UserSettingPage -> UserSettingPage ->
Util.Update.andThen2 noop
[ updateQueue Page.Queue.Data.StopRefresh
]
model
QueuePage -> QueuePage ->
updateQueue Page.Queue.Data.Init model updateQueue Page.Queue.Data.Init model
RegisterPage -> RegisterPage ->
updateQueue Page.Queue.Data.StopRefresh model noop
UploadPage _ -> UploadPage _ ->
Util.Update.andThen2 Util.Update.andThen2
[ updateQueue Page.Queue.Data.StopRefresh [ updateUpload Page.Upload.Data.reset
, updateUpload Page.Upload.Data.reset
] ]
model model
NewInvitePage -> NewInvitePage ->
updateQueue Page.Queue.Data.StopRefresh model noop
ItemDetailPage id -> ItemDetailPage id ->
Util.Update.andThen2 Util.Update.andThen2
[ updateItemDetail texts (Page.ItemDetail.Data.Init id) [ updateItemDetail texts (Page.ItemDetail.Data.Init id)
, updateQueue Page.Queue.Data.StopRefresh
] ]
model model

View File

@ -31,7 +31,6 @@ type alias Model =
, formState : FormState , formState : FormState
, pollingInterval : Float , pollingInterval : Float
, init : Bool , init : Bool
, stopRefresh : Bool
, currentMillis : Int , currentMillis : Int
, showLog : Maybe JobDetail , showLog : Maybe JobDetail
, deleteConfirm : Comp.YesNoDimmer.Model , deleteConfirm : Comp.YesNoDimmer.Model
@ -60,7 +59,6 @@ emptyModel =
, formState = InitialForm , formState = InitialForm
, pollingInterval = 1200 , pollingInterval = 1200
, init = False , init = False
, stopRefresh = False
, currentMillis = 0 , currentMillis = 0
, showLog = Nothing , showLog = Nothing
, deleteConfirm = Comp.YesNoDimmer.emptyModel , deleteConfirm = Comp.YesNoDimmer.emptyModel
@ -72,7 +70,6 @@ emptyModel =
type Msg type Msg
= Init = Init
| StateResp (Result Http.Error JobQueueState) | StateResp (Result Http.Error JobQueueState)
| StopRefresh
| NewTime Time.Posix | NewTime Time.Posix
| ShowLog JobDetail | ShowLog JobDetail
| QuitShowLog | QuitShowLog

View File

@ -15,8 +15,8 @@ import Task
import Time import Time
update : Flags -> Msg -> Model -> ( Model, Cmd Msg ) update : Flags -> Bool -> Msg -> Model -> ( Model, Cmd Msg )
update flags msg model = update flags stopRefresh msg model =
case msg of case msg of
Init -> Init ->
let let
@ -30,12 +30,15 @@ update flags msg model =
, getNewTime , getNewTime
] ]
in in
( { model | init = True, stopRefresh = False }, start ) ( { model | init = True }, start )
StateResp (Ok s) -> StateResp (Ok s) ->
let let
stop =
model.pollingInterval <= 0 || stopRefresh
refresh = refresh =
if model.pollingInterval <= 0 || model.stopRefresh then if stop then
Cmd.none Cmd.none
else else
@ -44,14 +47,11 @@ update flags msg model =
, getNewTime , getNewTime
] ]
in in
( { model | state = s, stopRefresh = False }, refresh ) ( { model | state = s, init = False }, refresh )
StateResp (Err err) -> StateResp (Err err) ->
( { model | formState = HttpError err }, Cmd.none ) ( { model | formState = HttpError err }, Cmd.none )
StopRefresh ->
( { model | stopRefresh = True, init = False }, Cmd.none )
NewTime t -> NewTime t ->
( { model | currentMillis = Time.posixToMillis t }, Cmd.none ) ( { model | currentMillis = Time.posixToMillis t }, Cmd.none )
@ -66,7 +66,7 @@ update flags msg model =
newModel = newModel =
{ model | cancelJobRequest = Just job.id } { model | cancelJobRequest = Just job.id }
in in
update flags (DimmerMsg job Comp.YesNoDimmer.Activate) newModel update flags stopRefresh (DimmerMsg job Comp.YesNoDimmer.Activate) newModel
DimmerMsg job m -> DimmerMsg job m ->
let let