mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-08 23:59:52 +00:00
Even if there are no custom fields define, the control is shown now. The user can create a new one in this view.
65 lines
1.7 KiB
Elm
65 lines
1.7 KiB
Elm
module Comp.ItemDetail.FieldTabState exposing (tabState)
|
|
|
|
import Comp.CustomFieldMultiInput
|
|
import Comp.Tabs as TB
|
|
import Data.Fields
|
|
import Data.UiSettings exposing (UiSettings)
|
|
import Set exposing (Set)
|
|
|
|
|
|
tabState :
|
|
UiSettings
|
|
-> Set String
|
|
-> Maybe Comp.CustomFieldMultiInput.Model
|
|
-> (TB.Tab msg -> msg)
|
|
-> TB.Tab msg
|
|
-> ( TB.State, msg )
|
|
tabState settings openTabs cfmodel toggle tab =
|
|
let
|
|
isHidden f =
|
|
Data.UiSettings.fieldHidden settings f
|
|
|
|
hidden =
|
|
case tab.title of
|
|
"Tags" ->
|
|
isHidden Data.Fields.Tag
|
|
|
|
"Folder" ->
|
|
isHidden Data.Fields.Folder
|
|
|
|
"Correspondent" ->
|
|
isHidden Data.Fields.CorrOrg && isHidden Data.Fields.CorrPerson
|
|
|
|
"Concerning" ->
|
|
isHidden Data.Fields.ConcEquip && isHidden Data.Fields.ConcPerson
|
|
|
|
"Custom Fields" ->
|
|
isHidden Data.Fields.CustomFields
|
|
|| (Maybe.map Comp.CustomFieldMultiInput.isEmpty cfmodel
|
|
|> Maybe.withDefault False
|
|
)
|
|
|
|
"Date" ->
|
|
isHidden Data.Fields.Date
|
|
|
|
"Due Date" ->
|
|
isHidden Data.Fields.DueDate
|
|
|
|
"Direction" ->
|
|
isHidden Data.Fields.Direction
|
|
|
|
_ ->
|
|
False
|
|
|
|
state =
|
|
if hidden then
|
|
TB.Hidden
|
|
|
|
else if Set.member tab.title openTabs then
|
|
TB.Open
|
|
|
|
else
|
|
TB.Closed
|
|
in
|
|
( state, toggle tab )
|