Allow to click on custom fields in detail view

Closes: #514
This commit is contained in:
Eike Kettner
2021-01-08 18:14:16 +01:00
parent 48d182667d
commit 9bc2084499
6 changed files with 71 additions and 3 deletions

View File

@ -636,7 +636,10 @@ renderCustomValues : UiSettings -> Model -> List (Html Msg)
renderCustomValues settings model =
let
fieldView cv =
Util.CustomField.renderValue "ui secondary basic label" cv
Comp.LinkTarget.makeCustomFieldLink
cv
[ ( "ui secondary basic label", True ) ]
SetLinkTarget
labelThenName cv =
Maybe.withDefault cv.name cv.label

View File

@ -2,14 +2,17 @@ module Comp.LinkTarget exposing
( LinkTarget(..)
, makeConcLink
, makeCorrLink
, makeCustomFieldLink
, makeFolderLink
, makeTagLink
)
import Api.Model.IdName exposing (IdName)
import Api.Model.ItemFieldValue exposing (ItemFieldValue)
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (onClick)
import Util.CustomField
type LinkTarget
@ -19,6 +22,7 @@ type LinkTarget
| LinkConcEquip IdName
| LinkFolder IdName
| LinkTag IdName
| LinkCustomField ItemFieldValue
| LinkNone
@ -74,6 +78,18 @@ makeTagLink tagId classes tagger =
makeLink classes (LinkTag >> tagger) tagId
makeCustomFieldLink :
ItemFieldValue
-> List ( String, Bool )
-> (LinkTarget -> msg)
-> Html msg
makeCustomFieldLink cv classes tagger =
Util.CustomField.renderValue1
classes
(tagger (LinkCustomField cv) |> Just)
cv
--- Helpers

View File

@ -19,6 +19,7 @@ import Api.Model.Equipment exposing (Equipment)
import Api.Model.EquipmentList exposing (EquipmentList)
import Api.Model.FolderStats exposing (FolderStats)
import Api.Model.IdName exposing (IdName)
import Api.Model.ItemFieldValue exposing (ItemFieldValue)
import Api.Model.ItemSearch exposing (ItemSearch)
import Api.Model.PersonList exposing (PersonList)
import Api.Model.ReferenceList exposing (ReferenceList)
@ -353,6 +354,7 @@ type Msg
| SetConcEquip IdName
| SetFolder IdName
| SetTag String
| SetCustomField ItemFieldValue
| CustomFieldMsg Comp.CustomFieldMultiInput.Msg
| SetSource String
| GetStatsResp (Result Http.Error SearchStats)
@ -829,6 +831,22 @@ updateDrop ddm flags settings msg model =
, dragDrop = DD.DragDropData ddm Nothing
}
SetCustomField cv ->
let
lm =
Comp.CustomFieldMultiInput.setValues [ cv ]
values =
Data.CustomFieldChange.fromItemValues [ cv ]
next =
updateDrop ddm flags settings (CustomFieldMsg lm) model
m =
next.model
in
{ next | model = { m | customValues = values } }
SetSource str ->
let
next =