mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 02:18:26 +00:00
Initial version.
Features: - Upload PDF files let them analyze - Manage meta data and items - See processing in webapp
This commit is contained in:
@ -4,19 +4,39 @@ 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.Home.View
|
||||
import Page.Login.View
|
||||
import Page.ManageData.View
|
||||
import Page.CollectiveSettings.View
|
||||
import Page.UserSettings.View
|
||||
import Page.Queue.View
|
||||
import Page.Register.View
|
||||
import Page.Upload.View
|
||||
import Page.NewInvite.View
|
||||
|
||||
view: Model -> Html Msg
|
||||
view model =
|
||||
case model.page of
|
||||
LoginPage ->
|
||||
LoginPage _ ->
|
||||
loginLayout model
|
||||
RegisterPage ->
|
||||
registerLayout model
|
||||
NewInvitePage ->
|
||||
newInviteLayout model
|
||||
_ ->
|
||||
defaultLayout model
|
||||
|
||||
registerLayout: Model -> Html Msg
|
||||
registerLayout model =
|
||||
div [class "register-layout"]
|
||||
[ (viewRegister model)
|
||||
, (footer model)
|
||||
]
|
||||
|
||||
loginLayout: Model -> Html Msg
|
||||
loginLayout model =
|
||||
div [class "login-layout"]
|
||||
@ -24,32 +44,81 @@ loginLayout model =
|
||||
, (footer model)
|
||||
]
|
||||
|
||||
newInviteLayout: Model -> Html Msg
|
||||
newInviteLayout model =
|
||||
div [class "newinvite-layout"]
|
||||
[ (viewNewInvite model)
|
||||
, (footer model)
|
||||
]
|
||||
|
||||
defaultLayout: Model -> Html Msg
|
||||
defaultLayout model =
|
||||
div [class "default-layout"]
|
||||
[ div [class "ui fixed top sticky attached large menu black-bg"]
|
||||
[ 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
|
||||
]
|
||||
[i [classList [("lemon outline icon", True)
|
||||
[i [classList [("umbrella icon", True)
|
||||
]]
|
||||
[]
|
||||
,text model.flags.config.appName]
|
||||
, (loginInfo model)
|
||||
]
|
||||
]
|
||||
, div [ class "ui fluid container main-content" ]
|
||||
, div [ class "main-content" ]
|
||||
[ (case model.page of
|
||||
HomePage ->
|
||||
viewHome model
|
||||
LoginPage ->
|
||||
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.map NewInviteMsg (Page.NewInvite.View.view model.flags model.newInviteModel)
|
||||
|
||||
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.map RegisterMsg (Page.Register.View.view model.flags model.registerModel)
|
||||
|
||||
viewQueue: Model -> Html Msg
|
||||
viewQueue model =
|
||||
Html.map QueueMsg (Page.Queue.View.view model.queueModel)
|
||||
|
||||
viewUserSettings: Model -> Html Msg
|
||||
viewUserSettings model =
|
||||
Html.map UserSettingsMsg (Page.UserSettings.View.view model.userSettingsModel)
|
||||
|
||||
viewCollectiveSettings: Model -> Html Msg
|
||||
viewCollectiveSettings model =
|
||||
Html.map CollSettingsMsg (Page.CollectiveSettings.View.view model.flags model.collSettingsModel)
|
||||
|
||||
viewManageData: Model -> Html Msg
|
||||
viewManageData model =
|
||||
Html.map ManageDataMsg (Page.ManageData.View.view model.manageDataModel)
|
||||
|
||||
viewLogin: Model -> Html Msg
|
||||
viewLogin model =
|
||||
Html.map LoginMsg (Page.Login.View.view model.loginModel)
|
||||
@ -59,29 +128,87 @@ viewHome model =
|
||||
Html.map HomeMsg (Page.Home.View.view model.homeModel)
|
||||
|
||||
|
||||
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
|
||||
|
||||
loginInfo: Model -> Html Msg
|
||||
loginInfo model =
|
||||
div [class "right menu"]
|
||||
(case model.flags.account of
|
||||
Just acc ->
|
||||
[a [class "item"
|
||||
]
|
||||
[text "Profile"
|
||||
[div [class "ui dropdown icon link item"
|
||||
, onClick ToggleNavMenu
|
||||
]
|
||||
,a [class "item"
|
||||
,Page.href model.page
|
||||
,onClick Logout
|
||||
]
|
||||
[text "Logout "
|
||||
,text (acc.collective ++ "/" ++ acc.user)
|
||||
[i [class "ui bars icon"][]
|
||||
,div [classList [("left menu", True)
|
||||
,("transition visible", model.navMenuOpen)
|
||||
]
|
||||
]
|
||||
[menuEntry model HomePage
|
||||
[i [class "umbrella icon"][]
|
||||
,text "Items"
|
||||
]
|
||||
,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"
|
||||
]
|
||||
,div [class "divider"][]
|
||||
,a [class "icon item"
|
||||
,href ""
|
||||
,onClick Logout]
|
||||
[i [class "sign-out icon"][]
|
||||
,text "Logout"
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
Nothing ->
|
||||
[a [class "item"
|
||||
,Page.href LoginPage
|
||||
,Page.href (Page.loginPage model.page)
|
||||
]
|
||||
[text "Login"
|
||||
]
|
||||
,a [class "item"
|
||||
,Page.href RegisterPage
|
||||
]
|
||||
[text "Register"
|
||||
]
|
||||
]
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user