Initial version.

Features:

- Upload PDF files let them analyze

- Manage meta data and items

- See processing in webapp
This commit is contained in:
Eike Kettner
2019-07-23 00:53:30 +02:00
parent 6154e6a387
commit 831cd8b655
341 changed files with 23634 additions and 484 deletions

View File

@ -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"
]
]
)