mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
Using elm-format for all files
This commit is contained in:
@ -1,63 +1,73 @@
|
||||
module App.Data exposing (..)
|
||||
module App.Data exposing
|
||||
( Model
|
||||
, Msg(..)
|
||||
, checkPage
|
||||
, defaultPage
|
||||
, init
|
||||
)
|
||||
|
||||
import Api.Model.AuthResult exposing (AuthResult)
|
||||
import Api.Model.VersionInfo exposing (VersionInfo)
|
||||
import Browser exposing (UrlRequest)
|
||||
import Browser.Navigation exposing (Key)
|
||||
import Url exposing (Url)
|
||||
import Http
|
||||
import Data.Flags exposing (Flags)
|
||||
import Api.Model.VersionInfo exposing (VersionInfo)
|
||||
import Api.Model.AuthResult exposing (AuthResult)
|
||||
import Http
|
||||
import Page exposing (Page(..))
|
||||
import Page.CollectiveSettings.Data
|
||||
import Page.Home.Data
|
||||
import Page.Login.Data
|
||||
import Page.ManageData.Data
|
||||
import Page.CollectiveSettings.Data
|
||||
import Page.UserSettings.Data
|
||||
import Page.NewInvite.Data
|
||||
import Page.Queue.Data
|
||||
import Page.Register.Data
|
||||
import Page.Upload.Data
|
||||
import Page.NewInvite.Data
|
||||
import Page.UserSettings.Data
|
||||
import Url exposing (Url)
|
||||
|
||||
|
||||
type alias Model =
|
||||
{ flags: Flags
|
||||
, key: Key
|
||||
, page: Page
|
||||
, version: VersionInfo
|
||||
, homeModel: Page.Home.Data.Model
|
||||
, loginModel: Page.Login.Data.Model
|
||||
, manageDataModel: Page.ManageData.Data.Model
|
||||
, collSettingsModel: Page.CollectiveSettings.Data.Model
|
||||
, userSettingsModel: Page.UserSettings.Data.Model
|
||||
, queueModel: Page.Queue.Data.Model
|
||||
, registerModel: Page.Register.Data.Model
|
||||
, uploadModel: Page.Upload.Data.Model
|
||||
, newInviteModel: Page.NewInvite.Data.Model
|
||||
, navMenuOpen: Bool
|
||||
, subs: Sub Msg
|
||||
{ flags : Flags
|
||||
, key : Key
|
||||
, page : Page
|
||||
, version : VersionInfo
|
||||
, homeModel : Page.Home.Data.Model
|
||||
, loginModel : Page.Login.Data.Model
|
||||
, manageDataModel : Page.ManageData.Data.Model
|
||||
, collSettingsModel : Page.CollectiveSettings.Data.Model
|
||||
, userSettingsModel : Page.UserSettings.Data.Model
|
||||
, queueModel : Page.Queue.Data.Model
|
||||
, registerModel : Page.Register.Data.Model
|
||||
, uploadModel : Page.Upload.Data.Model
|
||||
, newInviteModel : Page.NewInvite.Data.Model
|
||||
, navMenuOpen : Bool
|
||||
, subs : Sub Msg
|
||||
}
|
||||
|
||||
init: Key -> Url -> Flags -> Model
|
||||
|
||||
init : Key -> Url -> Flags -> Model
|
||||
init key url flags =
|
||||
let
|
||||
page = Page.fromUrl url
|
||||
|> Maybe.withDefault (defaultPage flags)
|
||||
page =
|
||||
Page.fromUrl url
|
||||
|> Maybe.withDefault (defaultPage flags)
|
||||
in
|
||||
{ flags = flags
|
||||
, key = key
|
||||
, page = page
|
||||
, version = Api.Model.VersionInfo.empty
|
||||
, homeModel = Page.Home.Data.emptyModel
|
||||
, loginModel = Page.Login.Data.emptyModel
|
||||
, manageDataModel = Page.ManageData.Data.emptyModel
|
||||
, collSettingsModel = Page.CollectiveSettings.Data.emptyModel
|
||||
, userSettingsModel = Page.UserSettings.Data.emptyModel
|
||||
, queueModel = Page.Queue.Data.emptyModel
|
||||
, registerModel = Page.Register.Data.emptyModel
|
||||
, uploadModel = Page.Upload.Data.emptyModel
|
||||
, newInviteModel = Page.NewInvite.Data.emptyModel
|
||||
, navMenuOpen = False
|
||||
, subs = Sub.none
|
||||
}
|
||||
{ flags = flags
|
||||
, key = key
|
||||
, page = page
|
||||
, version = Api.Model.VersionInfo.empty
|
||||
, homeModel = Page.Home.Data.emptyModel
|
||||
, loginModel = Page.Login.Data.emptyModel
|
||||
, manageDataModel = Page.ManageData.Data.emptyModel
|
||||
, collSettingsModel = Page.CollectiveSettings.Data.emptyModel
|
||||
, userSettingsModel = Page.UserSettings.Data.emptyModel
|
||||
, queueModel = Page.Queue.Data.emptyModel
|
||||
, registerModel = Page.Register.Data.emptyModel
|
||||
, uploadModel = Page.Upload.Data.emptyModel
|
||||
, newInviteModel = Page.NewInvite.Data.emptyModel
|
||||
, navMenuOpen = False
|
||||
, subs = Sub.none
|
||||
}
|
||||
|
||||
|
||||
type Msg
|
||||
= NavRequest UrlRequest
|
||||
@ -77,18 +87,30 @@ type Msg
|
||||
| SessionCheckResp (Result Http.Error AuthResult)
|
||||
| ToggleNavMenu
|
||||
|
||||
isSignedIn: Flags -> Bool
|
||||
|
||||
isSignedIn : Flags -> Bool
|
||||
isSignedIn flags =
|
||||
flags.account
|
||||
|> Maybe.map .success
|
||||
|> Maybe.withDefault False
|
||||
|
||||
checkPage: Flags -> Page -> Page
|
||||
checkPage flags page =
|
||||
if Page.isSecured page && isSignedIn flags then page
|
||||
else if Page.isOpen page then page
|
||||
else Page.loginPage page
|
||||
|
||||
defaultPage: Flags -> Page
|
||||
checkPage : Flags -> Page -> Page
|
||||
checkPage flags page =
|
||||
if Page.isSecured page && isSignedIn flags then
|
||||
page
|
||||
|
||||
else if Page.isOpen page then
|
||||
page
|
||||
|
||||
else
|
||||
Page.loginPage page
|
||||
|
||||
|
||||
defaultPage : Flags -> Page
|
||||
defaultPage flags =
|
||||
if isSignedIn flags then HomePage else (LoginPage Nothing)
|
||||
if isSignedIn flags then
|
||||
HomePage
|
||||
|
||||
else
|
||||
LoginPage Nothing
|
||||
|
@ -1,42 +1,48 @@
|
||||
module App.Update exposing (update, initPage)
|
||||
module App.Update exposing
|
||||
( initPage
|
||||
, update
|
||||
)
|
||||
|
||||
import Api
|
||||
import Ports
|
||||
import App.Data exposing (..)
|
||||
import Browser exposing (UrlRequest(..))
|
||||
import Browser.Navigation as Nav
|
||||
import Url
|
||||
import Data.Flags
|
||||
import App.Data exposing (..)
|
||||
import Page exposing (Page(..))
|
||||
import Page.CollectiveSettings.Data
|
||||
import Page.CollectiveSettings.Update
|
||||
import Page.Home.Data
|
||||
import Page.Home.Update
|
||||
import Page.Login.Data
|
||||
import Page.Login.Update
|
||||
import Page.ManageData.Data
|
||||
import Page.ManageData.Update
|
||||
import Page.CollectiveSettings.Data
|
||||
import Page.CollectiveSettings.Update
|
||||
import Page.UserSettings.Data
|
||||
import Page.UserSettings.Update
|
||||
import Page.NewInvite.Data
|
||||
import Page.NewInvite.Update
|
||||
import Page.Queue.Data
|
||||
import Page.Queue.Update
|
||||
import Page.Register.Data
|
||||
import Page.Register.Update
|
||||
import Page.Upload.Data
|
||||
import Page.Upload.Update
|
||||
import Page.NewInvite.Data
|
||||
import Page.NewInvite.Update
|
||||
import Page.UserSettings.Data
|
||||
import Page.UserSettings.Update
|
||||
import Ports
|
||||
import Url
|
||||
import Util.Update
|
||||
|
||||
update: Msg -> Model -> (Model, Cmd Msg)
|
||||
|
||||
update : Msg -> Model -> ( Model, Cmd Msg )
|
||||
update msg model =
|
||||
let
|
||||
(m, c, s) = updateWithSub msg model
|
||||
( m, c, s ) =
|
||||
updateWithSub msg model
|
||||
in
|
||||
({m|subs = s}, c)
|
||||
( { m | subs = s }, c )
|
||||
|
||||
updateWithSub: Msg -> Model -> (Model, Cmd Msg, Sub Msg)
|
||||
updateWithSub msg model =
|
||||
|
||||
updateWithSub : Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||
updateWithSub msg model =
|
||||
case msg of
|
||||
HomeMsg lm ->
|
||||
updateHome lm model |> noSub
|
||||
@ -66,49 +72,75 @@ updateWithSub msg model =
|
||||
updateNewInvite m model |> noSub
|
||||
|
||||
VersionResp (Ok info) ->
|
||||
({model|version = info}, Cmd.none) |> noSub
|
||||
( { model | version = info }, Cmd.none ) |> noSub
|
||||
|
||||
VersionResp (Err err) ->
|
||||
(model, Cmd.none, Sub.none)
|
||||
VersionResp (Err _) ->
|
||||
( model, Cmd.none, Sub.none )
|
||||
|
||||
Logout ->
|
||||
(model
|
||||
( model
|
||||
, Cmd.batch
|
||||
[ Api.logout model.flags LogoutResp
|
||||
, Ports.removeAccount ()
|
||||
]
|
||||
, Sub.none)
|
||||
, Sub.none
|
||||
)
|
||||
|
||||
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
|
||||
Ok lr ->
|
||||
let
|
||||
newFlags = if lr.success then Data.Flags.withAccount model.flags lr
|
||||
else Data.Flags.withoutAccount model.flags
|
||||
command = if lr.success then Api.refreshSession newFlags SessionCheckResp
|
||||
else Cmd.batch [Ports.removeAccount (), Page.goto (Page.loginPage model.page)]
|
||||
newFlags =
|
||||
if lr.success then
|
||||
Data.Flags.withAccount model.flags lr
|
||||
|
||||
else
|
||||
Data.Flags.withoutAccount model.flags
|
||||
|
||||
command =
|
||||
if lr.success then
|
||||
Api.refreshSession newFlags SessionCheckResp
|
||||
|
||||
else
|
||||
Cmd.batch
|
||||
[ Ports.removeAccount ()
|
||||
, Page.goto (Page.loginPage model.page)
|
||||
]
|
||||
in
|
||||
({model | flags = newFlags}, command, Sub.none)
|
||||
( { model | flags = newFlags }, command, Sub.none )
|
||||
|
||||
Err _ ->
|
||||
(model, Cmd.batch [Ports.removeAccount (), Page.goto (Page.loginPage model.page)], Sub.none)
|
||||
( model
|
||||
, Cmd.batch
|
||||
[ Ports.removeAccount ()
|
||||
, Page.goto (Page.loginPage model.page)
|
||||
]
|
||||
, Sub.none
|
||||
)
|
||||
|
||||
NavRequest req ->
|
||||
case req of
|
||||
Internal url ->
|
||||
let
|
||||
newPage = Page.fromUrl url
|
||||
newPage =
|
||||
Page.fromUrl url
|
||||
|
||||
isCurrent =
|
||||
Page.fromUrl url |>
|
||||
Maybe.map (\p -> p == model.page) |>
|
||||
Maybe.withDefault True
|
||||
Page.fromUrl url
|
||||
|> Maybe.map (\p -> p == model.page)
|
||||
|> Maybe.withDefault True
|
||||
in
|
||||
( model
|
||||
, if isCurrent then Cmd.none else Nav.pushUrl model.key (Url.toString url)
|
||||
, Sub.none
|
||||
)
|
||||
( model
|
||||
, if isCurrent then
|
||||
Cmd.none
|
||||
|
||||
else
|
||||
Nav.pushUrl model.key (Url.toString url)
|
||||
, Sub.none
|
||||
)
|
||||
|
||||
External url ->
|
||||
( model
|
||||
@ -118,111 +150,148 @@ updateWithSub msg model =
|
||||
|
||||
NavChange url ->
|
||||
let
|
||||
page = Page.fromUrl url
|
||||
|> Maybe.withDefault (defaultPage model.flags)
|
||||
check = checkPage model.flags page
|
||||
(m, c) = initPage model page
|
||||
page =
|
||||
Page.fromUrl url
|
||||
|> Maybe.withDefault (defaultPage model.flags)
|
||||
|
||||
check =
|
||||
checkPage model.flags page
|
||||
|
||||
( m, c ) =
|
||||
initPage model page
|
||||
in
|
||||
if check == page then ( { m | page = page }, c, Sub.none )
|
||||
else (model, Page.goto check, Sub.none)
|
||||
if check == page then
|
||||
( { m | page = page }, c, Sub.none )
|
||||
|
||||
else
|
||||
( model, Page.goto check, Sub.none )
|
||||
|
||||
ToggleNavMenu ->
|
||||
({model | navMenuOpen = not model.navMenuOpen }, Cmd.none, Sub.none)
|
||||
( { model | navMenuOpen = not model.navMenuOpen }, Cmd.none, Sub.none )
|
||||
|
||||
|
||||
updateNewInvite: Page.NewInvite.Data.Msg -> Model -> (Model, Cmd Msg)
|
||||
updateNewInvite : Page.NewInvite.Data.Msg -> Model -> ( Model, Cmd Msg )
|
||||
updateNewInvite lmsg model =
|
||||
let
|
||||
(lm, lc) = Page.NewInvite.Update.update model.flags lmsg model.newInviteModel
|
||||
( lm, lc ) =
|
||||
Page.NewInvite.Update.update model.flags lmsg model.newInviteModel
|
||||
in
|
||||
( {model | newInviteModel = lm }
|
||||
, Cmd.map NewInviteMsg lc
|
||||
)
|
||||
( { model | newInviteModel = lm }
|
||||
, Cmd.map NewInviteMsg lc
|
||||
)
|
||||
|
||||
updateUpload: Page.Upload.Data.Msg -> Model -> (Model, Cmd Msg, Sub Msg)
|
||||
|
||||
updateUpload : Page.Upload.Data.Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
|
||||
updateUpload lmsg model =
|
||||
let
|
||||
(lm, lc, ls) = Page.Upload.Update.update (Page.uploadId model.page) model.flags lmsg model.uploadModel
|
||||
( lm, lc, ls ) =
|
||||
Page.Upload.Update.update
|
||||
(Page.uploadId model.page)
|
||||
model.flags
|
||||
lmsg
|
||||
model.uploadModel
|
||||
in
|
||||
( { model | uploadModel = lm }
|
||||
, Cmd.map UploadMsg lc
|
||||
, Sub.map UploadMsg ls
|
||||
)
|
||||
( { model | uploadModel = lm }
|
||||
, Cmd.map UploadMsg lc
|
||||
, Sub.map UploadMsg ls
|
||||
)
|
||||
|
||||
updateRegister: Page.Register.Data.Msg -> Model -> (Model, Cmd Msg)
|
||||
|
||||
updateRegister : Page.Register.Data.Msg -> Model -> ( Model, Cmd Msg )
|
||||
updateRegister lmsg model =
|
||||
let
|
||||
(lm, lc) = Page.Register.Update.update model.flags lmsg model.registerModel
|
||||
( lm, lc ) =
|
||||
Page.Register.Update.update model.flags lmsg model.registerModel
|
||||
in
|
||||
( { model | registerModel = lm }
|
||||
, Cmd.map RegisterMsg lc
|
||||
)
|
||||
( { model | registerModel = lm }
|
||||
, Cmd.map RegisterMsg lc
|
||||
)
|
||||
|
||||
updateQueue: Page.Queue.Data.Msg -> Model -> (Model, Cmd Msg)
|
||||
|
||||
updateQueue : Page.Queue.Data.Msg -> Model -> ( Model, Cmd Msg )
|
||||
updateQueue lmsg model =
|
||||
let
|
||||
(lm, lc) = Page.Queue.Update.update model.flags lmsg model.queueModel
|
||||
( lm, lc ) =
|
||||
Page.Queue.Update.update model.flags lmsg model.queueModel
|
||||
in
|
||||
( { model | queueModel = lm }
|
||||
, Cmd.map QueueMsg lc
|
||||
)
|
||||
( { model | queueModel = lm }
|
||||
, Cmd.map QueueMsg lc
|
||||
)
|
||||
|
||||
|
||||
updateUserSettings: Page.UserSettings.Data.Msg -> Model -> (Model, Cmd Msg)
|
||||
updateUserSettings : Page.UserSettings.Data.Msg -> Model -> ( Model, Cmd Msg )
|
||||
updateUserSettings lmsg model =
|
||||
let
|
||||
(lm, lc) = Page.UserSettings.Update.update model.flags lmsg model.userSettingsModel
|
||||
( lm, lc ) =
|
||||
Page.UserSettings.Update.update model.flags lmsg model.userSettingsModel
|
||||
in
|
||||
( { model | userSettingsModel = lm }
|
||||
, Cmd.map UserSettingsMsg lc
|
||||
)
|
||||
( { model | userSettingsModel = lm }
|
||||
, Cmd.map UserSettingsMsg lc
|
||||
)
|
||||
|
||||
updateCollSettings: Page.CollectiveSettings.Data.Msg -> Model -> (Model, Cmd Msg)
|
||||
|
||||
updateCollSettings : Page.CollectiveSettings.Data.Msg -> Model -> ( Model, Cmd Msg )
|
||||
updateCollSettings lmsg model =
|
||||
let
|
||||
(lm, lc) = Page.CollectiveSettings.Update.update model.flags lmsg model.collSettingsModel
|
||||
( lm, lc ) =
|
||||
Page.CollectiveSettings.Update.update model.flags
|
||||
lmsg
|
||||
model.collSettingsModel
|
||||
in
|
||||
( { model | collSettingsModel = lm }
|
||||
, Cmd.map CollSettingsMsg lc
|
||||
)
|
||||
( { model | collSettingsModel = lm }
|
||||
, Cmd.map CollSettingsMsg lc
|
||||
)
|
||||
|
||||
updateLogin: Page.Login.Data.Msg -> Model -> (Model, Cmd Msg)
|
||||
|
||||
updateLogin : Page.Login.Data.Msg -> Model -> ( Model, Cmd Msg )
|
||||
updateLogin lmsg model =
|
||||
let
|
||||
(lm, lc, ar) = Page.Login.Update.update (Page.loginPageReferrer model.page) model.flags lmsg model.loginModel
|
||||
newFlags = Maybe.map (Data.Flags.withAccount model.flags) ar
|
||||
|> Maybe.withDefault model.flags
|
||||
in
|
||||
({model | loginModel = lm, flags = newFlags}
|
||||
,Cmd.map LoginMsg lc
|
||||
)
|
||||
( lm, lc, ar ) =
|
||||
Page.Login.Update.update (Page.loginPageReferrer model.page)
|
||||
model.flags
|
||||
lmsg
|
||||
model.loginModel
|
||||
|
||||
updateHome: Page.Home.Data.Msg -> Model -> (Model, Cmd Msg)
|
||||
newFlags =
|
||||
Maybe.map (Data.Flags.withAccount model.flags) ar
|
||||
|> Maybe.withDefault model.flags
|
||||
in
|
||||
( { model | loginModel = lm, flags = newFlags }
|
||||
, Cmd.map LoginMsg lc
|
||||
)
|
||||
|
||||
|
||||
updateHome : Page.Home.Data.Msg -> Model -> ( Model, Cmd Msg )
|
||||
updateHome lmsg model =
|
||||
let
|
||||
(lm, lc) = Page.Home.Update.update model.flags lmsg model.homeModel
|
||||
( lm, lc ) =
|
||||
Page.Home.Update.update model.flags lmsg model.homeModel
|
||||
in
|
||||
( {model | homeModel = lm }
|
||||
, Cmd.map HomeMsg lc
|
||||
)
|
||||
( { model | homeModel = lm }
|
||||
, Cmd.map HomeMsg lc
|
||||
)
|
||||
|
||||
updateManageData: Page.ManageData.Data.Msg -> Model -> (Model, Cmd Msg)
|
||||
|
||||
updateManageData : Page.ManageData.Data.Msg -> Model -> ( Model, Cmd Msg )
|
||||
updateManageData lmsg model =
|
||||
let
|
||||
(lm, lc) = Page.ManageData.Update.update model.flags lmsg model.manageDataModel
|
||||
( lm, lc ) =
|
||||
Page.ManageData.Update.update model.flags lmsg model.manageDataModel
|
||||
in
|
||||
({ model | manageDataModel = lm }
|
||||
,Cmd.map ManageDataMsg lc
|
||||
)
|
||||
( { model | manageDataModel = lm }
|
||||
, Cmd.map ManageDataMsg lc
|
||||
)
|
||||
|
||||
initPage: Model -> Page -> (Model, Cmd Msg)
|
||||
|
||||
initPage : Model -> Page -> ( Model, Cmd Msg )
|
||||
initPage model page =
|
||||
case page of
|
||||
HomePage ->
|
||||
Util.Update.andThen1
|
||||
[updateHome Page.Home.Data.Init
|
||||
,updateQueue Page.Queue.Data.StopRefresh
|
||||
] model
|
||||
[ updateHome Page.Home.Data.Init
|
||||
, updateQueue Page.Queue.Data.StopRefresh
|
||||
]
|
||||
model
|
||||
|
||||
LoginPage _ ->
|
||||
updateQueue Page.Queue.Data.StopRefresh model
|
||||
@ -232,9 +301,10 @@ initPage model page =
|
||||
|
||||
CollectiveSettingPage ->
|
||||
Util.Update.andThen1
|
||||
[updateQueue Page.Queue.Data.StopRefresh
|
||||
,updateCollSettings Page.CollectiveSettings.Data.Init
|
||||
] model
|
||||
[ updateQueue Page.Queue.Data.StopRefresh
|
||||
, updateCollSettings Page.CollectiveSettings.Data.Init
|
||||
]
|
||||
model
|
||||
|
||||
UserSettingPage ->
|
||||
updateQueue Page.Queue.Data.StopRefresh model
|
||||
@ -252,6 +322,6 @@ initPage model page =
|
||||
updateQueue Page.Queue.Data.StopRefresh model
|
||||
|
||||
|
||||
noSub: (Model, Cmd Msg) -> (Model, Cmd Msg, Sub Msg)
|
||||
noSub (m, c) =
|
||||
(m, c, Sub.none)
|
||||
noSub : ( Model, Cmd Msg ) -> ( Model, Cmd Msg, Sub Msg )
|
||||
noSub ( m, c ) =
|
||||
( m, c, Sub.none )
|
||||
|
@ -1,227 +1,278 @@
|
||||
module App.View exposing (view)
|
||||
|
||||
import App.Data exposing (..)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
import Html.Events exposing (onClick)
|
||||
|
||||
import Page
|
||||
import App.Data exposing (..)
|
||||
import Data.Flags exposing (Flags)
|
||||
import Page exposing (Page(..))
|
||||
import Page.CollectiveSettings.View
|
||||
import Page.Home.View
|
||||
import Page.Login.View
|
||||
import Page.ManageData.View
|
||||
import Page.CollectiveSettings.View
|
||||
import Page.UserSettings.View
|
||||
import Page.NewInvite.View
|
||||
import Page.Queue.View
|
||||
import Page.Register.View
|
||||
import Page.Upload.View
|
||||
import Page.NewInvite.View
|
||||
import Page.UserSettings.View
|
||||
|
||||
view: Model -> Html Msg
|
||||
|
||||
view : Model -> Html Msg
|
||||
view model =
|
||||
case model.page of
|
||||
LoginPage _ ->
|
||||
loginLayout model
|
||||
|
||||
RegisterPage ->
|
||||
registerLayout model
|
||||
|
||||
NewInvitePage ->
|
||||
newInviteLayout model
|
||||
|
||||
_ ->
|
||||
defaultLayout model
|
||||
|
||||
registerLayout: Model -> Html Msg
|
||||
|
||||
registerLayout : Model -> Html Msg
|
||||
registerLayout model =
|
||||
div [class "register-layout"]
|
||||
[ (viewRegister model)
|
||||
, (footer model)
|
||||
div [ class "register-layout" ]
|
||||
[ viewRegister model
|
||||
, footer model
|
||||
]
|
||||
|
||||
loginLayout: Model -> Html Msg
|
||||
|
||||
loginLayout : Model -> Html Msg
|
||||
loginLayout model =
|
||||
div [class "login-layout"]
|
||||
[ (viewLogin model)
|
||||
, (footer model)
|
||||
div [ class "login-layout" ]
|
||||
[ viewLogin model
|
||||
, footer model
|
||||
]
|
||||
|
||||
newInviteLayout: Model -> Html Msg
|
||||
|
||||
newInviteLayout : Model -> Html Msg
|
||||
newInviteLayout model =
|
||||
div [class "newinvite-layout"]
|
||||
[ (viewNewInvite model)
|
||||
, (footer model)
|
||||
div [ class "newinvite-layout" ]
|
||||
[ viewNewInvite model
|
||||
, footer model
|
||||
]
|
||||
|
||||
defaultLayout: Model -> Html Msg
|
||||
|
||||
defaultLayout : Model -> Html Msg
|
||||
defaultLayout model =
|
||||
div [class "default-layout"]
|
||||
[ div [class "ui fixed top sticky attached large menu top-menu"]
|
||||
[div [class "ui fluid container"]
|
||||
[ a [class "header item narrow-item"
|
||||
,Page.href HomePage
|
||||
]
|
||||
[img [class "image"
|
||||
,src (model.flags.config.docspellAssetPath ++ "/img/logo-96.png")][]
|
||||
,div [class "content"]
|
||||
[text model.flags.config.appName
|
||||
]
|
||||
]
|
||||
, (loginInfo model)
|
||||
]
|
||||
]
|
||||
, div [ class "main-content" ]
|
||||
[ (case model.page of
|
||||
HomePage ->
|
||||
viewHome model
|
||||
LoginPage _ ->
|
||||
viewLogin model
|
||||
ManageDataPage ->
|
||||
viewManageData model
|
||||
CollectiveSettingPage ->
|
||||
viewCollectiveSettings model
|
||||
UserSettingPage ->
|
||||
viewUserSettings model
|
||||
QueuePage ->
|
||||
viewQueue model
|
||||
RegisterPage ->
|
||||
viewRegister model
|
||||
UploadPage mid ->
|
||||
viewUpload mid model
|
||||
NewInvitePage ->
|
||||
viewNewInvite model
|
||||
)
|
||||
div [ class "default-layout" ]
|
||||
[ div [ class "ui fixed top sticky attached large menu top-menu" ]
|
||||
[ div [ class "ui fluid container" ]
|
||||
[ a
|
||||
[ class "header item narrow-item"
|
||||
, Page.href HomePage
|
||||
]
|
||||
[ img
|
||||
[ class "image"
|
||||
, src (model.flags.config.docspellAssetPath ++ "/img/logo-96.png")
|
||||
]
|
||||
[]
|
||||
, div [ class "content" ]
|
||||
[ text model.flags.config.appName
|
||||
]
|
||||
]
|
||||
, loginInfo model
|
||||
]
|
||||
]
|
||||
, (footer model)
|
||||
, div [ class "main-content" ]
|
||||
[ case model.page of
|
||||
HomePage ->
|
||||
viewHome model
|
||||
|
||||
LoginPage _ ->
|
||||
viewLogin model
|
||||
|
||||
ManageDataPage ->
|
||||
viewManageData model
|
||||
|
||||
CollectiveSettingPage ->
|
||||
viewCollectiveSettings model
|
||||
|
||||
UserSettingPage ->
|
||||
viewUserSettings model
|
||||
|
||||
QueuePage ->
|
||||
viewQueue model
|
||||
|
||||
RegisterPage ->
|
||||
viewRegister model
|
||||
|
||||
UploadPage mid ->
|
||||
viewUpload mid model
|
||||
|
||||
NewInvitePage ->
|
||||
viewNewInvite model
|
||||
]
|
||||
, footer model
|
||||
]
|
||||
|
||||
viewNewInvite: Model -> Html Msg
|
||||
|
||||
viewNewInvite : Model -> Html Msg
|
||||
viewNewInvite model =
|
||||
Html.map NewInviteMsg (Page.NewInvite.View.view model.flags model.newInviteModel)
|
||||
|
||||
viewUpload: (Maybe String) ->Model -> Html Msg
|
||||
|
||||
viewUpload : Maybe String -> Model -> Html Msg
|
||||
viewUpload mid model =
|
||||
Html.map UploadMsg (Page.Upload.View.view mid model.uploadModel)
|
||||
|
||||
viewRegister: Model -> Html Msg
|
||||
|
||||
viewRegister : Model -> Html Msg
|
||||
viewRegister model =
|
||||
Html.map RegisterMsg (Page.Register.View.view model.flags model.registerModel)
|
||||
|
||||
viewQueue: Model -> Html Msg
|
||||
|
||||
viewQueue : Model -> Html Msg
|
||||
viewQueue model =
|
||||
Html.map QueueMsg (Page.Queue.View.view model.queueModel)
|
||||
|
||||
viewUserSettings: Model -> Html Msg
|
||||
|
||||
viewUserSettings : Model -> Html Msg
|
||||
viewUserSettings model =
|
||||
Html.map UserSettingsMsg (Page.UserSettings.View.view model.userSettingsModel)
|
||||
|
||||
viewCollectiveSettings: Model -> Html Msg
|
||||
|
||||
viewCollectiveSettings : Model -> Html Msg
|
||||
viewCollectiveSettings model =
|
||||
Html.map CollSettingsMsg (Page.CollectiveSettings.View.view model.flags model.collSettingsModel)
|
||||
|
||||
viewManageData: Model -> Html Msg
|
||||
|
||||
viewManageData : Model -> Html Msg
|
||||
viewManageData model =
|
||||
Html.map ManageDataMsg (Page.ManageData.View.view model.manageDataModel)
|
||||
|
||||
viewLogin: Model -> Html Msg
|
||||
|
||||
viewLogin : Model -> Html Msg
|
||||
viewLogin model =
|
||||
Html.map LoginMsg (Page.Login.View.view model.flags model.loginModel)
|
||||
|
||||
viewHome: Model -> Html Msg
|
||||
|
||||
viewHome : Model -> Html Msg
|
||||
viewHome model =
|
||||
Html.map HomeMsg (Page.Home.View.view model.homeModel)
|
||||
|
||||
|
||||
menuEntry: Model -> Page -> List (Html Msg) -> Html Msg
|
||||
menuEntry : Model -> Page -> List (Html Msg) -> Html Msg
|
||||
menuEntry model page children =
|
||||
a [classList [("icon item", True)
|
||||
,("active", model.page == page)
|
||||
]
|
||||
, Page.href page]
|
||||
children
|
||||
a
|
||||
[ classList
|
||||
[ ( "icon item", True )
|
||||
, ( "active", model.page == page )
|
||||
]
|
||||
, Page.href page
|
||||
]
|
||||
children
|
||||
|
||||
loginInfo: Model -> Html Msg
|
||||
|
||||
loginInfo : Model -> Html Msg
|
||||
loginInfo model =
|
||||
div [class "right menu"]
|
||||
div [ class "right menu" ]
|
||||
(case model.flags.account of
|
||||
Just acc ->
|
||||
[div [class "ui dropdown icon link item"
|
||||
, onClick ToggleNavMenu
|
||||
]
|
||||
[i [class "ui bars icon"][]
|
||||
,div [classList [("left menu", True)
|
||||
,("transition visible", model.navMenuOpen)
|
||||
]
|
||||
]
|
||||
[menuEntry model HomePage
|
||||
[img [class "image icon"
|
||||
,src (model.flags.config.docspellAssetPath ++ "/img/logo-mc-96.png")
|
||||
][]
|
||||
,text "Items"
|
||||
Just _ ->
|
||||
[ div
|
||||
[ class "ui dropdown icon link item"
|
||||
, onClick ToggleNavMenu
|
||||
]
|
||||
[ i [ class "ui bars icon" ] []
|
||||
, div
|
||||
[ classList
|
||||
[ ( "left menu", True )
|
||||
, ( "transition visible", model.navMenuOpen )
|
||||
]
|
||||
,div [class "divider"][]
|
||||
,menuEntry model CollectiveSettingPage
|
||||
[i [class "users circle icon"][]
|
||||
,text "Collective Settings"
|
||||
]
|
||||
,menuEntry model UserSettingPage
|
||||
[i [class "user circle icon"][]
|
||||
,text "User Settings"
|
||||
]
|
||||
,div [class "divider"][]
|
||||
,menuEntry model ManageDataPage
|
||||
[i [class "cubes icon"][]
|
||||
,text "Manage Data"
|
||||
]
|
||||
,div [class "divider"][]
|
||||
,menuEntry model (UploadPage Nothing)
|
||||
[i [class "upload icon"][]
|
||||
,text "Upload files"
|
||||
]
|
||||
[ menuEntry model
|
||||
HomePage
|
||||
[ img
|
||||
[ class "image icon"
|
||||
, src (model.flags.config.docspellAssetPath ++ "/img/logo-mc-96.png")
|
||||
]
|
||||
[]
|
||||
, text "Items"
|
||||
]
|
||||
,menuEntry model QueuePage
|
||||
[i [class "tachometer alternate icon"][]
|
||||
,text "Procesing Queue"
|
||||
]
|
||||
,div [classList [("divider", True)
|
||||
,("invisible", model.flags.config.signupMode /= "invite")
|
||||
]]
|
||||
[]
|
||||
,a [classList [("icon item", True)
|
||||
,("invisible", model.flags.config.signupMode /= "invite")
|
||||
]
|
||||
, div [ class "divider" ] []
|
||||
, menuEntry model
|
||||
CollectiveSettingPage
|
||||
[ i [ class "users circle icon" ] []
|
||||
, text "Collective Settings"
|
||||
]
|
||||
, menuEntry model
|
||||
UserSettingPage
|
||||
[ i [ class "user circle icon" ] []
|
||||
, text "User Settings"
|
||||
]
|
||||
, div [ class "divider" ] []
|
||||
, menuEntry model
|
||||
ManageDataPage
|
||||
[ i [ class "cubes icon" ] []
|
||||
, text "Manage Data"
|
||||
]
|
||||
, div [ class "divider" ] []
|
||||
, menuEntry model
|
||||
(UploadPage Nothing)
|
||||
[ i [ class "upload icon" ] []
|
||||
, text "Upload files"
|
||||
]
|
||||
, menuEntry model
|
||||
QueuePage
|
||||
[ i [ class "tachometer alternate icon" ] []
|
||||
, text "Procesing Queue"
|
||||
]
|
||||
, div
|
||||
[ classList
|
||||
[ ( "divider", True )
|
||||
, ( "invisible", model.flags.config.signupMode /= "invite" )
|
||||
]
|
||||
]
|
||||
[]
|
||||
, a
|
||||
[ classList
|
||||
[ ( "icon item", True )
|
||||
, ( "invisible", model.flags.config.signupMode /= "invite" )
|
||||
]
|
||||
, Page.href NewInvitePage
|
||||
]
|
||||
[i [class "key icon"][]
|
||||
,text "New Invites"
|
||||
[ i [ class "key icon" ] []
|
||||
, text "New Invites"
|
||||
]
|
||||
,div [class "divider"][]
|
||||
,a [class "icon item"
|
||||
,href ""
|
||||
,onClick Logout]
|
||||
[i [class "sign-out icon"][]
|
||||
,text "Logout"
|
||||
]
|
||||
]
|
||||
]
|
||||
, div [ class "divider" ] []
|
||||
, a
|
||||
[ class "icon item"
|
||||
, href ""
|
||||
, onClick Logout
|
||||
]
|
||||
[ i [ class "sign-out icon" ] []
|
||||
, text "Logout"
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
Nothing ->
|
||||
[a [class "item"
|
||||
,Page.href (Page.loginPage model.page)
|
||||
]
|
||||
[text "Login"
|
||||
]
|
||||
,a [class "item"
|
||||
,Page.href RegisterPage
|
||||
]
|
||||
[text "Register"
|
||||
[ a
|
||||
[ class "item"
|
||||
, Page.href (Page.loginPage model.page)
|
||||
]
|
||||
[ text "Login"
|
||||
]
|
||||
, a
|
||||
[ class "item"
|
||||
, Page.href RegisterPage
|
||||
]
|
||||
[ text "Register"
|
||||
]
|
||||
]
|
||||
)
|
||||
|
||||
footer: Model -> Html Msg
|
||||
|
||||
footer : Model -> Html Msg
|
||||
footer model =
|
||||
div [ class "ui footer" ]
|
||||
[ a [href "https://github.com/eikek/docspell"]
|
||||
[ i [class "ui github icon"][]
|
||||
]
|
||||
[ a [ href "https://github.com/eikek/docspell" ]
|
||||
[ i [ class "ui github icon" ] []
|
||||
]
|
||||
, span []
|
||||
[ text "Docspell "
|
||||
, text model.version.version
|
||||
|
Reference in New Issue
Block a user