mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-23 10:58:26 +00:00
Client settings can be stored at the user and and the collective. The settings used in the application are merged from these two settings, where any user setting takes precedence. The form can now manage both variants. Refs: #838
97 lines
1.9 KiB
Elm
97 lines
1.9 KiB
Elm
{-
|
|
Copyright 2020 Eike K. & Contributors
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
-}
|
|
|
|
|
|
module Main exposing (init, main)
|
|
|
|
import Api
|
|
import App.Data exposing (..)
|
|
import App.Update exposing (..)
|
|
import App.View2
|
|
import Browser exposing (Document)
|
|
import Browser.Navigation exposing (Key)
|
|
import Data.Flags exposing (Flags)
|
|
import Data.UiSettings
|
|
import Html exposing (..)
|
|
import Html.Attributes exposing (..)
|
|
import Html.Events exposing (..)
|
|
import Page exposing (Page(..))
|
|
import Ports
|
|
import Url exposing (Url)
|
|
|
|
|
|
|
|
-- MAIN
|
|
|
|
|
|
main : Program Flags Model Msg
|
|
main =
|
|
Browser.application
|
|
{ init = init
|
|
, view = viewDoc
|
|
, update = update
|
|
, subscriptions = subscriptions
|
|
, onUrlRequest = NavRequest
|
|
, onUrlChange = NavChange
|
|
}
|
|
|
|
|
|
|
|
-- MODEL
|
|
|
|
|
|
init : Flags -> Url -> Key -> ( Model, Cmd Msg )
|
|
init flags url key =
|
|
let
|
|
( im, ic ) =
|
|
App.Data.init key url flags Data.UiSettings.defaults
|
|
|
|
( m, cmd, s ) =
|
|
App.Update.initPage im im.page
|
|
in
|
|
( { m | subs = s }
|
|
, Cmd.batch
|
|
[ cmd
|
|
, ic
|
|
, Api.versionInfo flags VersionResp
|
|
, if Page.isSecured im.page then
|
|
Api.loginSession flags SessionCheckResp
|
|
|
|
else
|
|
Cmd.none
|
|
, Api.getClientSettings flags GetUiSettings
|
|
]
|
|
)
|
|
|
|
|
|
viewDoc : Model -> Document Msg
|
|
viewDoc model =
|
|
let
|
|
title =
|
|
case model.page of
|
|
ItemDetailPage _ ->
|
|
model.itemDetailModel.detail.item.name
|
|
|
|
_ ->
|
|
Page.pageName model.page
|
|
in
|
|
{ title = model.flags.config.appName ++ ": " ++ title
|
|
, body =
|
|
App.View2.view model
|
|
}
|
|
|
|
|
|
|
|
-- SUBSCRIPTIONS
|
|
|
|
|
|
subscriptions : Model -> Sub Msg
|
|
subscriptions model =
|
|
Sub.batch
|
|
[ model.subs
|
|
, Ports.receiveServerEvent ReceiveWsMessage
|
|
]
|