mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-23 10:58:26 +00:00
Allow to change use enum for org/equipment
This commit is contained in:
@ -10,6 +10,8 @@ module Comp.EquipmentForm exposing
|
||||
|
||||
import Api.Model.Equipment exposing (Equipment)
|
||||
import Comp.Basic as B
|
||||
import Comp.FixedDropdown
|
||||
import Data.EquipmentUse exposing (EquipmentUse)
|
||||
import Data.Flags exposing (Flags)
|
||||
import Html exposing (..)
|
||||
import Html.Attributes exposing (..)
|
||||
@ -22,6 +24,8 @@ type alias Model =
|
||||
{ equipment : Equipment
|
||||
, name : String
|
||||
, notes : Maybe String
|
||||
, use : EquipmentUse
|
||||
, useModel : Comp.FixedDropdown.Model EquipmentUse
|
||||
}
|
||||
|
||||
|
||||
@ -30,6 +34,11 @@ emptyModel =
|
||||
{ equipment = Api.Model.Equipment.empty
|
||||
, name = ""
|
||||
, notes = Nothing
|
||||
, use = Data.EquipmentUse.Concerning
|
||||
, useModel =
|
||||
Comp.FixedDropdown.initMap
|
||||
Data.EquipmentUse.label
|
||||
Data.EquipmentUse.all
|
||||
}
|
||||
|
||||
|
||||
@ -44,6 +53,7 @@ getEquipment model =
|
||||
, name = model.name
|
||||
, created = model.equipment.created
|
||||
, notes = model.notes
|
||||
, use = Data.EquipmentUse.asString model.use
|
||||
}
|
||||
|
||||
|
||||
@ -51,6 +61,7 @@ type Msg
|
||||
= SetName String
|
||||
| SetEquipment Equipment
|
||||
| SetNotes String
|
||||
| UseDropdownMsg (Comp.FixedDropdown.Msg EquipmentUse)
|
||||
|
||||
|
||||
update : Flags -> Msg -> Model -> ( Model, Cmd Msg )
|
||||
@ -61,6 +72,9 @@ update _ msg model =
|
||||
| equipment = t
|
||||
, name = t.name
|
||||
, notes = t.notes
|
||||
, use =
|
||||
Data.EquipmentUse.fromString t.use
|
||||
|> Maybe.withDefault Data.EquipmentUse.Concerning
|
||||
}
|
||||
, Cmd.none
|
||||
)
|
||||
@ -71,6 +85,16 @@ update _ msg model =
|
||||
SetNotes str ->
|
||||
( { model | notes = Util.Maybe.fromString str }, Cmd.none )
|
||||
|
||||
UseDropdownMsg lm ->
|
||||
let
|
||||
( nm, mu ) =
|
||||
Comp.FixedDropdown.update lm model.useModel
|
||||
|
||||
newUse =
|
||||
Maybe.withDefault model.use mu
|
||||
in
|
||||
( { model | useModel = nm, use = newUse }, Cmd.none )
|
||||
|
||||
|
||||
|
||||
--- View2
|
||||
@ -102,6 +126,22 @@ view2 model =
|
||||
]
|
||||
[]
|
||||
]
|
||||
, div [ class "mb-4" ]
|
||||
[ label
|
||||
[ class S.inputLabel
|
||||
]
|
||||
[ text "Use" ]
|
||||
, Html.map UseDropdownMsg
|
||||
(Comp.FixedDropdown.view2 (makeUseItem model) model.useModel)
|
||||
, span [ class "opacity-50 text-sm" ]
|
||||
[ case model.use of
|
||||
Data.EquipmentUse.Concerning ->
|
||||
text "Use as concerning equipment"
|
||||
|
||||
Data.EquipmentUse.Disabled ->
|
||||
text "Do not use for suggestions."
|
||||
]
|
||||
]
|
||||
, div [ class "mb-4" ]
|
||||
[ h3 [ class S.header3 ]
|
||||
[ text "Notes"
|
||||
@ -116,3 +156,9 @@ view2 model =
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
makeUseItem : Model -> Maybe (Comp.FixedDropdown.Item EquipmentUse)
|
||||
makeUseItem model =
|
||||
Just <|
|
||||
Comp.FixedDropdown.Item model.use (Data.EquipmentUse.label model.use)
|
||||
|
Reference in New Issue
Block a user