Click on tag in item detail to switch to search

This commit is contained in:
Eike Kettner 2020-11-14 13:16:35 +01:00
parent fe8c122968
commit b98edba9e5
5 changed files with 38 additions and 14 deletions

View File

@ -2,6 +2,7 @@ module Comp.ItemDetail.View exposing (view)
import Api
import Api.Model.Attachment exposing (Attachment)
import Api.Model.IdName exposing (IdName)
import Comp.AttachmentMeta
import Comp.DatePicker
import Comp.DetailEdit
@ -615,14 +616,12 @@ renderTags settings model =
[ div [ class "ui right aligned fluid container" ] <|
List.map
(\t ->
div
[ classList
Comp.LinkTarget.makeTagLink
(IdName t.id t.name)
[ ( "ui tag label", True )
, ( Data.UiSettings.tagColorString t settings, True )
]
]
[ text t.name
]
SetLinkTarget
)
model.item.tags
]

View File

@ -3,6 +3,7 @@ module Comp.LinkTarget exposing
, makeConcLink
, makeCorrLink
, makeFolderLink
, makeTagLink
)
import Api.Model.IdName exposing (IdName)
@ -17,6 +18,7 @@ type LinkTarget
| LinkConcPerson IdName
| LinkConcEquip IdName
| LinkFolder IdName
| LinkTag IdName
| LinkNone
@ -27,10 +29,10 @@ makeCorrLink :
makeCorrLink item tagger =
let
makeOrg idname =
makeLink (LinkCorrOrg >> tagger) idname
makeLink [] (LinkCorrOrg >> tagger) idname
makePerson idname =
makeLink (LinkCorrPerson >> tagger) idname
makeLink [] (LinkCorrPerson >> tagger) idname
in
combine (Maybe.map makeOrg item.corrOrg) (Maybe.map makePerson item.corrPerson)
@ -42,10 +44,10 @@ makeConcLink :
makeConcLink item tagger =
let
makePerson idname =
makeLink (LinkConcPerson >> tagger) idname
makeLink [] (LinkConcPerson >> tagger) idname
makeEquip idname =
makeLink (LinkConcEquip >> tagger) idname
makeLink [] (LinkConcEquip >> tagger) idname
in
combine (Maybe.map makePerson item.concPerson) (Maybe.map makeEquip item.concEquipment)
@ -57,12 +59,21 @@ makeFolderLink :
makeFolderLink item tagger =
let
makeFolder idname =
makeLink (LinkFolder >> tagger) idname
makeLink [] (LinkFolder >> tagger) idname
in
Maybe.map makeFolder item.folder
|> Maybe.withDefault (text "-")
makeTagLink :
IdName
-> List ( String, Bool )
-> (LinkTarget -> msg)
-> Html msg
makeTagLink tagId classes tagger =
makeLink classes (LinkTag >> tagger) tagId
--- Helpers
@ -83,11 +94,12 @@ combine ma mb =
[ text "-" ]
makeLink : (IdName -> msg) -> IdName -> Html msg
makeLink tagger idname =
makeLink : List ( String, Bool ) -> (IdName -> msg) -> IdName -> Html msg
makeLink classes tagger idname =
a
[ onClick (tagger idname)
, href "#"
, classList classes
]
[ text idname.name
]

View File

@ -259,6 +259,7 @@ type Msg
| SetConcPerson IdName
| SetConcEquip IdName
| SetFolder IdName
| SetTag String
type alias NextState =
@ -371,6 +372,9 @@ updateDrop ddm flags settings msg model =
in
resetAndSet (ConcEquipmentMsg (Comp.Dropdown.SetSelection [ equip ]))
SetTag id ->
resetAndSet (TagSelectMsg (Comp.TagSelect.toggleTag id))
GetTagsResp (Ok tags) ->
let
selectModel =

View File

@ -6,6 +6,7 @@ module Comp.TagSelect exposing
, emptySelection
, init
, reset
, toggleTag
, update
, updateDrop
, viewCats
@ -84,6 +85,11 @@ reset model =
}
toggleTag : String -> Msg
toggleTag id =
ToggleTag id
sumCategories : List TagCount -> List Category
sumCategories tags =
let

View File

@ -678,6 +678,9 @@ linkTargetMsg linkTarget =
Comp.LinkTarget.LinkFolder id ->
Just <| SearchMenuMsg (Comp.SearchMenu.SetFolder id)
Comp.LinkTarget.LinkTag id ->
Just <| SearchMenuMsg (Comp.SearchMenu.SetTag id.id)
doSearchMore : Flags -> UiSettings -> Model -> ( Model, Cmd Msg )
doSearchMore flags settings model =