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:
36
modules/webapp/src/main/elm/Page/ManageData/Data.elm
Normal file
36
modules/webapp/src/main/elm/Page/ManageData/Data.elm
Normal file
@ -0,0 +1,36 @@
|
||||
module Page.ManageData.Data exposing (..)
|
||||
|
||||
import Comp.TagManage
|
||||
import Comp.EquipmentManage
|
||||
import Comp.OrgManage
|
||||
import Comp.PersonManage
|
||||
|
||||
type alias Model =
|
||||
{ currentTab: Maybe Tab
|
||||
, tagManageModel: Comp.TagManage.Model
|
||||
, equipManageModel: Comp.EquipmentManage.Model
|
||||
, orgManageModel: Comp.OrgManage.Model
|
||||
, personManageModel: Comp.PersonManage.Model
|
||||
}
|
||||
|
||||
emptyModel: Model
|
||||
emptyModel =
|
||||
{ currentTab = Nothing
|
||||
, tagManageModel = Comp.TagManage.emptyModel
|
||||
, equipManageModel = Comp.EquipmentManage.emptyModel
|
||||
, orgManageModel = Comp.OrgManage.emptyModel
|
||||
, personManageModel = Comp.PersonManage.emptyModel
|
||||
}
|
||||
|
||||
type Tab
|
||||
= TagTab
|
||||
| EquipTab
|
||||
| OrgTab
|
||||
| PersonTab
|
||||
|
||||
type Msg
|
||||
= SetTab Tab
|
||||
| TagManageMsg Comp.TagManage.Msg
|
||||
| EquipManageMsg Comp.EquipmentManage.Msg
|
||||
| OrgManageMsg Comp.OrgManage.Msg
|
||||
| PersonManageMsg Comp.PersonManage.Msg
|
52
modules/webapp/src/main/elm/Page/ManageData/Update.elm
Normal file
52
modules/webapp/src/main/elm/Page/ManageData/Update.elm
Normal file
@ -0,0 +1,52 @@
|
||||
module Page.ManageData.Update exposing (update)
|
||||
|
||||
import Page.ManageData.Data exposing (..)
|
||||
import Data.Flags exposing (Flags)
|
||||
import Comp.TagManage
|
||||
import Comp.EquipmentManage
|
||||
import Comp.OrgManage
|
||||
import Comp.PersonManage
|
||||
|
||||
update: Flags -> Msg -> Model -> (Model, Cmd Msg)
|
||||
update flags msg model =
|
||||
case msg of
|
||||
SetTab t ->
|
||||
let
|
||||
m = { model | currentTab = Just t }
|
||||
in
|
||||
case t of
|
||||
TagTab ->
|
||||
update flags (TagManageMsg Comp.TagManage.LoadTags) m
|
||||
|
||||
EquipTab ->
|
||||
update flags (EquipManageMsg Comp.EquipmentManage.LoadEquipments) m
|
||||
|
||||
OrgTab ->
|
||||
update flags (OrgManageMsg Comp.OrgManage.LoadOrgs) m
|
||||
|
||||
PersonTab ->
|
||||
update flags (PersonManageMsg Comp.PersonManage.LoadPersons) m
|
||||
|
||||
TagManageMsg m ->
|
||||
let
|
||||
(m2, c2) = Comp.TagManage.update flags m model.tagManageModel
|
||||
in
|
||||
({model | tagManageModel = m2}, Cmd.map TagManageMsg c2)
|
||||
|
||||
EquipManageMsg m ->
|
||||
let
|
||||
(m2, c2) = Comp.EquipmentManage.update flags m model.equipManageModel
|
||||
in
|
||||
({model | equipManageModel = m2}, Cmd.map EquipManageMsg c2)
|
||||
|
||||
OrgManageMsg m ->
|
||||
let
|
||||
(m2, c2) = Comp.OrgManage.update flags m model.orgManageModel
|
||||
in
|
||||
({model | orgManageModel = m2}, Cmd.map OrgManageMsg c2)
|
||||
|
||||
PersonManageMsg m ->
|
||||
let
|
||||
(m2, c2) = Comp.PersonManage.update flags m model.personManageModel
|
||||
in
|
||||
({model | personManageModel = m2}, Cmd.map PersonManageMsg c2)
|
104
modules/webapp/src/main/elm/Page/ManageData/View.elm
Normal file
104
modules/webapp/src/main/elm/Page/ManageData/View.elm
Normal file
@ -0,0 +1,104 @@
|
||||
module Page.ManageData.View exposing (view)
|
||||
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
import Html.Events exposing (onClick)
|
||||
|
||||
import Util.Html exposing (classActive)
|
||||
import Page.ManageData.Data exposing (..)
|
||||
import Comp.TagManage
|
||||
import Comp.EquipmentManage
|
||||
import Comp.OrgManage
|
||||
import Comp.PersonManage
|
||||
|
||||
view: Model -> Html Msg
|
||||
view model =
|
||||
div [class "managedata-page ui padded grid"]
|
||||
[div [class "four wide column"]
|
||||
[h4 [class "ui top attached ablue-comp header"]
|
||||
[text "Manage Data"
|
||||
]
|
||||
,div [class "ui attached fluid segment"]
|
||||
[div [class "ui fluid vertical secondary menu"]
|
||||
[div [classActive (model.currentTab == Just TagTab) "link icon item"
|
||||
,onClick (SetTab TagTab)
|
||||
]
|
||||
[i [class "tag icon"][]
|
||||
,text "Tag"
|
||||
]
|
||||
,div [classActive (model.currentTab == Just EquipTab) "link icon item"
|
||||
,onClick (SetTab EquipTab)
|
||||
]
|
||||
[i [class "box icon"][]
|
||||
,text "Equipment"
|
||||
]
|
||||
,div [classActive (model.currentTab == Just OrgTab) "link icon item"
|
||||
,onClick (SetTab OrgTab)
|
||||
]
|
||||
[i [class "factory icon"][]
|
||||
,text "Organization"
|
||||
]
|
||||
,div [classActive (model.currentTab == Just PersonTab) "link icon item"
|
||||
,onClick (SetTab PersonTab)
|
||||
]
|
||||
[i [class "user icon"][]
|
||||
,text "Person"
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
,div [class "twelve wide column"]
|
||||
[div [class ""]
|
||||
(case model.currentTab of
|
||||
Just TagTab -> viewTags model
|
||||
Just EquipTab -> viewEquip model
|
||||
Just OrgTab -> viewOrg model
|
||||
Just PersonTab -> viewPerson model
|
||||
Nothing -> []
|
||||
)
|
||||
]
|
||||
]
|
||||
|
||||
viewTags: Model -> List (Html Msg)
|
||||
viewTags model =
|
||||
[h2 [class "ui header"]
|
||||
[i [class "ui tag icon"][]
|
||||
,div [class "content"]
|
||||
[text "Tags"
|
||||
]
|
||||
]
|
||||
,Html.map TagManageMsg (Comp.TagManage.view model.tagManageModel)
|
||||
]
|
||||
|
||||
viewEquip: Model -> List (Html Msg)
|
||||
viewEquip model =
|
||||
[h2 [class "ui header"]
|
||||
[i [class "ui box icon"][]
|
||||
,div [class "content"]
|
||||
[text "Equipment"
|
||||
]
|
||||
]
|
||||
,Html.map EquipManageMsg (Comp.EquipmentManage.view model.equipManageModel)
|
||||
]
|
||||
|
||||
viewOrg: Model -> List (Html Msg)
|
||||
viewOrg model =
|
||||
[h2 [class "ui header"]
|
||||
[i [class "ui factory icon"][]
|
||||
,div [class "content"]
|
||||
[text "Organizations"
|
||||
]
|
||||
]
|
||||
,Html.map OrgManageMsg (Comp.OrgManage.view model.orgManageModel)
|
||||
]
|
||||
|
||||
viewPerson: Model -> List (Html Msg)
|
||||
viewPerson model =
|
||||
[h2 [class "ui header"]
|
||||
[i [class "ui user icon"][]
|
||||
,div [class "content"]
|
||||
[text "Person"
|
||||
]
|
||||
]
|
||||
,Html.map PersonManageMsg (Comp.PersonManage.view model.personManageModel)
|
||||
]
|
Reference in New Issue
Block a user