diff --git a/modules/webapp/src/main/elm/App/Update.elm b/modules/webapp/src/main/elm/App/Update.elm index 48e2621d..6da2ac12 100644 --- a/modules/webapp/src/main/elm/App/Update.elm +++ b/modules/webapp/src/main/elm/App/Update.elm @@ -499,8 +499,11 @@ updateRegister lmsg model = updateQueue : Page.Queue.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg ) updateQueue lmsg model = let + notQueuePage = + model.page /= QueuePage + ( lm, lc ) = - Page.Queue.Update.update model.flags lmsg model.queueModel + Page.Queue.Update.update model.flags notQueuePage lmsg model.queueModel in ( { model | queueModel = lm } , Cmd.map QueueMsg lc @@ -509,7 +512,7 @@ updateQueue lmsg model = updateUserSettings : Messages -> Page.UserSettings.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg ) -updateUserSettings texts lmsg model = +updateUserSettings _ lmsg model = let result = Page.UserSettings.Update.update model.flags model.uiSettings lmsg model.userSettingsModel @@ -626,54 +629,50 @@ initPage model_ page = texts = Messages.get <| App.Data.getUiLanguage model + + noop = + ( model, Cmd.none, Sub.none ) in case page of SearchPage _ -> Util.Update.andThen2 [ updateSearch texts Page.Search.Data.Init - , updateQueue Page.Queue.Data.StopRefresh ] model LoginPage _ -> - updateQueue Page.Queue.Data.StopRefresh model + noop ManageDataPage -> - updateQueue Page.Queue.Data.StopRefresh model + noop CollectiveSettingPage -> Util.Update.andThen2 - [ updateQueue Page.Queue.Data.StopRefresh - , updateCollSettings texts Page.CollectiveSettings.Data.Init + [ updateCollSettings texts Page.CollectiveSettings.Data.Init ] model UserSettingPage -> - Util.Update.andThen2 - [ updateQueue Page.Queue.Data.StopRefresh - ] - model + noop QueuePage -> updateQueue Page.Queue.Data.Init model RegisterPage -> - updateQueue Page.Queue.Data.StopRefresh model + noop UploadPage _ -> Util.Update.andThen2 - [ updateQueue Page.Queue.Data.StopRefresh - , updateUpload Page.Upload.Data.reset + [ updateUpload Page.Upload.Data.reset ] model NewInvitePage -> - updateQueue Page.Queue.Data.StopRefresh model + noop ItemDetailPage id -> Util.Update.andThen2 [ updateItemDetail texts (Page.ItemDetail.Data.Init id) - , updateQueue Page.Queue.Data.StopRefresh ] model diff --git a/modules/webapp/src/main/elm/Page/Queue/Data.elm b/modules/webapp/src/main/elm/Page/Queue/Data.elm index 6683f2cd..a8a30116 100644 --- a/modules/webapp/src/main/elm/Page/Queue/Data.elm +++ b/modules/webapp/src/main/elm/Page/Queue/Data.elm @@ -31,7 +31,6 @@ type alias Model = , formState : FormState , pollingInterval : Float , init : Bool - , stopRefresh : Bool , currentMillis : Int , showLog : Maybe JobDetail , deleteConfirm : Comp.YesNoDimmer.Model @@ -60,7 +59,6 @@ emptyModel = , formState = InitialForm , pollingInterval = 1200 , init = False - , stopRefresh = False , currentMillis = 0 , showLog = Nothing , deleteConfirm = Comp.YesNoDimmer.emptyModel @@ -72,7 +70,6 @@ emptyModel = type Msg = Init | StateResp (Result Http.Error JobQueueState) - | StopRefresh | NewTime Time.Posix | ShowLog JobDetail | QuitShowLog diff --git a/modules/webapp/src/main/elm/Page/Queue/Update.elm b/modules/webapp/src/main/elm/Page/Queue/Update.elm index 124fa363..3407f74c 100644 --- a/modules/webapp/src/main/elm/Page/Queue/Update.elm +++ b/modules/webapp/src/main/elm/Page/Queue/Update.elm @@ -15,8 +15,8 @@ import Task import Time -update : Flags -> Msg -> Model -> ( Model, Cmd Msg ) -update flags msg model = +update : Flags -> Bool -> Msg -> Model -> ( Model, Cmd Msg ) +update flags stopRefresh msg model = case msg of Init -> let @@ -30,12 +30,15 @@ update flags msg model = , getNewTime ] in - ( { model | init = True, stopRefresh = False }, start ) + ( { model | init = True }, start ) StateResp (Ok s) -> let + stop = + model.pollingInterval <= 0 || stopRefresh + refresh = - if model.pollingInterval <= 0 || model.stopRefresh then + if stop then Cmd.none else @@ -44,14 +47,11 @@ update flags msg model = , getNewTime ] in - ( { model | state = s, stopRefresh = False }, refresh ) + ( { model | state = s, init = False }, refresh ) StateResp (Err err) -> ( { model | formState = HttpError err }, Cmd.none ) - StopRefresh -> - ( { model | stopRefresh = True, init = False }, Cmd.none ) - NewTime t -> ( { model | currentMillis = Time.posixToMillis t }, Cmd.none ) @@ -66,7 +66,7 @@ update flags msg model = newModel = { model | cancelJobRequest = Just job.id } in - update flags (DimmerMsg job Comp.YesNoDimmer.Activate) newModel + update flags stopRefresh (DimmerMsg job Comp.YesNoDimmer.Activate) newModel DimmerMsg job m -> let