Basic ui for addons

This commit is contained in:
eikek
2022-05-08 14:01:41 +02:00
parent 7fdd78ad06
commit 73747c4ea3
33 changed files with 2881 additions and 13 deletions

View File

@@ -12,6 +12,8 @@ module Page.ManageData.Data exposing
, init
)
import Comp.AddonArchiveManage
import Comp.AddonRunConfigManage
import Comp.BookmarkManage
import Comp.CustomFieldManage
import Comp.EquipmentManage
@@ -31,6 +33,8 @@ type alias Model =
, folderManageModel : Comp.FolderManage.Model
, fieldManageModel : Comp.CustomFieldManage.Model
, bookmarkModel : Comp.BookmarkManage.Model
, addonArchiveModel : Comp.AddonArchiveManage.Model
, addonRunConfigModel : Comp.AddonRunConfigManage.Model
}
@@ -42,6 +46,12 @@ init flags =
( bm, bc ) =
Comp.BookmarkManage.init flags
( aam, aac ) =
Comp.AddonArchiveManage.init flags
( arm, arc ) =
Comp.AddonRunConfigManage.init flags
in
( { currentTab = Just TagTab
, tagManageModel = m2
@@ -51,10 +61,14 @@ init flags =
, folderManageModel = Comp.FolderManage.empty
, fieldManageModel = Comp.CustomFieldManage.empty
, bookmarkModel = bm
, addonArchiveModel = aam
, addonRunConfigModel = arm
}
, Cmd.batch
[ Cmd.map TagManageMsg c2
, Cmd.map BookmarkMsg bc
, Cmd.map AddonArchiveMsg aac
, Cmd.map AddonRunConfigMsg arc
]
)
@@ -67,6 +81,8 @@ type Tab
| FolderTab
| CustomFieldTab
| BookmarkTab
| AddonArchiveTab
| AddonRunConfigTab
type Msg
@@ -78,3 +94,5 @@ type Msg
| FolderMsg Comp.FolderManage.Msg
| CustomFieldMsg Comp.CustomFieldManage.Msg
| BookmarkMsg Comp.BookmarkManage.Msg
| AddonArchiveMsg Comp.AddonArchiveManage.Msg
| AddonRunConfigMsg Comp.AddonRunConfigManage.Msg

View File

@@ -7,6 +7,8 @@
module Page.ManageData.Update exposing (update)
import Comp.AddonArchiveManage
import Comp.AddonRunConfigManage
import Comp.BookmarkManage
import Comp.CustomFieldManage
import Comp.EquipmentManage
@@ -15,11 +17,12 @@ import Comp.OrgManage
import Comp.PersonManage
import Comp.TagManage
import Data.Flags exposing (Flags)
import Data.UiSettings exposing (UiSettings)
import Page.ManageData.Data exposing (..)
update : Flags -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
update flags msg model =
update : Flags -> UiSettings -> Msg -> Model -> ( Model, Cmd Msg, Sub Msg )
update flags uiSettings msg model =
case msg of
SetTab t ->
let
@@ -28,16 +31,16 @@ update flags msg model =
in
case t of
TagTab ->
update flags (TagManageMsg Comp.TagManage.LoadTags) m
update flags uiSettings (TagManageMsg Comp.TagManage.LoadTags) m
EquipTab ->
update flags (EquipManageMsg Comp.EquipmentManage.LoadEquipments) m
update flags uiSettings (EquipManageMsg Comp.EquipmentManage.LoadEquipments) m
OrgTab ->
update flags (OrgManageMsg Comp.OrgManage.LoadOrgs) m
update flags uiSettings (OrgManageMsg Comp.OrgManage.LoadOrgs) m
PersonTab ->
update flags (PersonManageMsg Comp.PersonManage.LoadPersons) m
update flags uiSettings (PersonManageMsg Comp.PersonManage.LoadPersons) m
FolderTab ->
let
@@ -60,6 +63,20 @@ update flags msg model =
in
( { m | bookmarkModel = bm }, Cmd.map BookmarkMsg bc, Sub.none )
AddonArchiveTab ->
let
( aam, aac ) =
Comp.AddonArchiveManage.init flags
in
( { m | addonArchiveModel = aam }, Cmd.map AddonArchiveMsg aac, Sub.none )
AddonRunConfigTab ->
let
( arm, arc ) =
Comp.AddonRunConfigManage.init flags
in
( { m | addonRunConfigModel = arm }, Cmd.map AddonRunConfigMsg arc, Sub.none )
TagManageMsg m ->
let
( m2, c2 ) =
@@ -117,3 +134,23 @@ update flags msg model =
, Cmd.map BookmarkMsg c2
, Sub.map BookmarkMsg s2
)
AddonArchiveMsg lm ->
let
( aam, aac, aas ) =
Comp.AddonArchiveManage.update flags lm model.addonArchiveModel
in
( { model | addonArchiveModel = aam }
, Cmd.map AddonArchiveMsg aac
, Sub.map AddonArchiveMsg aas
)
AddonRunConfigMsg lm ->
let
( arm, arc, ars ) =
Comp.AddonRunConfigManage.update flags uiSettings.timeZone lm model.addonRunConfigModel
in
( { model | addonRunConfigModel = arm }
, Cmd.map AddonRunConfigMsg arc
, Sub.map AddonRunConfigMsg ars
)

View File

@@ -7,6 +7,8 @@
module Page.ManageData.View2 exposing (viewContent, viewSidebar)
import Comp.AddonArchiveManage
import Comp.AddonRunConfigManage
import Comp.BookmarkManage
import Comp.CustomFieldManage
import Comp.EquipmentManage
@@ -27,7 +29,7 @@ import Styles as S
viewSidebar : Texts -> Bool -> Flags -> UiSettings -> Model -> Html Msg
viewSidebar texts visible _ settings model =
viewSidebar texts visible flags settings model =
div
[ id "sidebar"
, class S.sidebar
@@ -134,6 +136,32 @@ viewSidebar texts visible _ settings model =
[ text texts.bookmarks
]
]
, a
[ href "#"
, onClick (SetTab AddonArchiveTab)
, menuEntryActive model AddonArchiveTab
, class S.sidebarLink
, classList [ ( "hidden", not flags.config.addonsEnabled ) ]
]
[ Icons.addonIcon ""
, span
[ class "ml-3" ]
[ text texts.addonArchives
]
]
, a
[ href "#"
, onClick (SetTab AddonRunConfigTab)
, menuEntryActive model AddonRunConfigTab
, class S.sidebarLink
, classList [ ( "hidden", not flags.config.addonsEnabled ) ]
]
[ Icons.addonRunConfigIcon ""
, span
[ class "ml-3" ]
[ text texts.addonRunConfigs
]
]
]
]
@@ -166,6 +194,20 @@ viewContent texts flags settings model =
Just BookmarkTab ->
viewBookmarks texts flags settings model
Just AddonArchiveTab ->
if flags.config.addonsEnabled then
viewAddonArchives texts flags settings model
else
[]
Just AddonRunConfigTab ->
if flags.config.addonsEnabled then
viewAddonRunConfigs texts flags settings model
else
[]
Nothing ->
[]
)
@@ -306,3 +348,33 @@ viewBookmarks texts flags settings model =
]
, Html.map BookmarkMsg (Comp.BookmarkManage.view texts.bookmarkManage settings flags model.bookmarkModel)
]
viewAddonArchives : Texts -> Flags -> UiSettings -> Model -> List (Html Msg)
viewAddonArchives texts flags settings model =
[ h2
[ class S.header1
, class "inline-flex items-center"
]
[ Icons.addonIcon ""
, div [ class "ml-2" ]
[ text texts.addonArchives
]
]
, Html.map AddonArchiveMsg (Comp.AddonArchiveManage.view texts.addonArchiveManage settings flags model.addonArchiveModel)
]
viewAddonRunConfigs : Texts -> Flags -> UiSettings -> Model -> List (Html Msg)
viewAddonRunConfigs texts flags settings model =
[ h2
[ class S.header1
, class "inline-flex items-center"
]
[ Icons.addonRunConfigIcon "mr-4"
, div [ class "ml-2" ]
[ text texts.addonRunConfigs
]
]
, Html.map AddonRunConfigMsg (Comp.AddonRunConfigManage.view texts.addonRunConfigManage settings flags model.addonRunConfigModel)
]