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

View File

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

View File

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

View File

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

View File

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