From 795cd8bc80264b0cfd8c1b10d9c88747a3427ce7 Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Sat, 14 Nov 2020 01:44:15 +0100 Subject: [PATCH] Set search when clicking on parts of the item card When user clicks on correspondent etc. on an item card, the search is set to this value. --- .../webapp/src/main/elm/Page/Home/Update.elm | 23 ++++++++++++++++++- .../webapp/src/main/elm/Page/Home/View.elm | 15 +++++++++++- modules/webapp/src/main/elm/Util/Update.elm | 13 ++++++++++- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/modules/webapp/src/main/elm/Page/Home/Update.elm b/modules/webapp/src/main/elm/Page/Home/Update.elm index a4840e25..3a72dd3d 100644 --- a/modules/webapp/src/main/elm/Page/Home/Update.elm +++ b/modules/webapp/src/main/elm/Page/Home/Update.elm @@ -6,6 +6,7 @@ import Api.Model.ItemLightList exposing (ItemLightList) import Api.Model.ItemSearch import Browser.Navigation as Nav import Comp.FixedDropdown +import Comp.ItemCard import Comp.ItemCardList import Comp.ItemDetail.EditMenu exposing (SaveNameState(..)) import Comp.ItemDetail.FormChange exposing (FormChange(..)) @@ -93,6 +94,26 @@ update mId key flags settings msg model = m model.itemListModel + searchMsg = + case result.linkTarget of + Comp.ItemCard.LinkNone -> + Cmd.none + + Comp.ItemCard.LinkCorrOrg id -> + Util.Update.cmdUnit (SearchMenuMsg (Comp.SearchMenu.SetCorrOrg id)) + + Comp.ItemCard.LinkCorrPerson id -> + Util.Update.cmdUnit (SearchMenuMsg (Comp.SearchMenu.SetCorrPerson id)) + + Comp.ItemCard.LinkConcPerson id -> + Util.Update.cmdUnit (SearchMenuMsg (Comp.SearchMenu.SetConcPerson id)) + + Comp.ItemCard.LinkConcEquip id -> + Util.Update.cmdUnit (SearchMenuMsg (Comp.SearchMenu.SetConcEquip id)) + + Comp.ItemCard.LinkFolder id -> + Util.Update.cmdUnit (SearchMenuMsg (Comp.SearchMenu.SetFolder id)) + nextView = case ( model.viewMode, result.selection ) of ( SelectView svm, Data.ItemSelection.Active ids ) -> @@ -107,7 +128,7 @@ update mId key flags settings msg model = , viewMode = nextView , dragDropData = DD.DragDropData result.dragModel Nothing } - , Cmd.batch [ Cmd.map ItemCardListMsg result.cmd ] + , Cmd.batch [ Cmd.map ItemCardListMsg result.cmd, searchMsg ] ) ItemSearchResp scroll (Ok list) -> diff --git a/modules/webapp/src/main/elm/Page/Home/View.elm b/modules/webapp/src/main/elm/Page/Home/View.elm index 5a506ccc..1dbf2f36 100644 --- a/modules/webapp/src/main/elm/Page/Home/View.elm +++ b/modules/webapp/src/main/elm/Page/Home/View.elm @@ -300,7 +300,11 @@ viewSearchBar flags model = ] ] [ a - [ class "search-menu-toggle ui blue icon button" + [ classList + [ ( "search-menu-toggle ui icon button", True ) + , ( "primary", not (searchMenuFilled model) ) + , ( "secondary", searchMenuFilled model ) + ] , onClick ToggleSearchMenu , href "#" , title "Open search menu" @@ -345,6 +349,15 @@ viewSearchBar flags model = ] +searchMenuFilled : Model -> Bool +searchMenuFilled model = + let + is = + Comp.SearchMenu.getItemSearch model.searchMenuModel + in + is /= Api.Model.ItemSearch.empty + + hasMoreSearch : Model -> Bool hasMoreSearch model = let diff --git a/modules/webapp/src/main/elm/Util/Update.elm b/modules/webapp/src/main/elm/Util/Update.elm index 1d14f4ba..0a135e89 100644 --- a/modules/webapp/src/main/elm/Util/Update.elm +++ b/modules/webapp/src/main/elm/Util/Update.elm @@ -1,4 +1,10 @@ -module Util.Update exposing (andThen1, andThen2) +module Util.Update exposing + ( andThen1 + , andThen2 + , cmdUnit + ) + +import Task andThen1 : List (a -> ( a, Cmd b )) -> a -> ( a, Cmd b ) @@ -36,3 +42,8 @@ andThen2 fs m = in List.foldl update init fs |> combine + + +cmdUnit : a -> Cmd a +cmdUnit a = + Task.perform (\_ -> a) (Task.succeed ())