diff --git a/modules/webapp/src/main/elm/Comp/ItemDetail/View.elm b/modules/webapp/src/main/elm/Comp/ItemDetail/View.elm index 93ad348d..27eef314 100644 --- a/modules/webapp/src/main/elm/Comp/ItemDetail/View.elm +++ b/modules/webapp/src/main/elm/Comp/ItemDetail/View.elm @@ -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 - [ ( "ui tag label", True ) - , ( Data.UiSettings.tagColorString t settings, True ) - ] - ] - [ text t.name + Comp.LinkTarget.makeTagLink + (IdName t.id t.name) + [ ( "ui tag label", True ) + , ( Data.UiSettings.tagColorString t settings, True ) ] + SetLinkTarget ) model.item.tags ] diff --git a/modules/webapp/src/main/elm/Comp/LinkTarget.elm b/modules/webapp/src/main/elm/Comp/LinkTarget.elm index ca952e4d..c9908bb6 100644 --- a/modules/webapp/src/main/elm/Comp/LinkTarget.elm +++ b/modules/webapp/src/main/elm/Comp/LinkTarget.elm @@ -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 ] diff --git a/modules/webapp/src/main/elm/Comp/SearchMenu.elm b/modules/webapp/src/main/elm/Comp/SearchMenu.elm index 264e33c8..07af0830 100644 --- a/modules/webapp/src/main/elm/Comp/SearchMenu.elm +++ b/modules/webapp/src/main/elm/Comp/SearchMenu.elm @@ -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 = diff --git a/modules/webapp/src/main/elm/Comp/TagSelect.elm b/modules/webapp/src/main/elm/Comp/TagSelect.elm index 79d3d09e..77f11b23 100644 --- a/modules/webapp/src/main/elm/Comp/TagSelect.elm +++ b/modules/webapp/src/main/elm/Comp/TagSelect.elm @@ -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 diff --git a/modules/webapp/src/main/elm/Page/Home/Update.elm b/modules/webapp/src/main/elm/Page/Home/Update.elm index 08ffeb7f..a57fd172 100644 --- a/modules/webapp/src/main/elm/Page/Home/Update.elm +++ b/modules/webapp/src/main/elm/Page/Home/Update.elm @@ -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 =