From fde52bbbb0ef7c337be96a10994ae7605fd77d97 Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Fri, 14 Aug 2020 23:02:21 +0200 Subject: [PATCH] Make dropdowns searchable by default and improve open/close clicks Ref #207 --- modules/webapp/src/main/elm/Comp/Dropdown.elm | 26 ++++++++++++++----- .../webapp/src/main/elm/Comp/SearchMenu.elm | 4 +-- modules/webapp/src/main/elm/Util/Tag.elm | 4 +-- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/modules/webapp/src/main/elm/Comp/Dropdown.elm b/modules/webapp/src/main/elm/Comp/Dropdown.elm index d6247e0a..f6d50ef3 100644 --- a/modules/webapp/src/main/elm/Comp/Dropdown.elm +++ b/modules/webapp/src/main/elm/Comp/Dropdown.elm @@ -106,7 +106,7 @@ makeSingle : makeSingle opts = makeModel { multiple = False - , searchable = \n -> n > 5 + , searchable = \n -> n > 0 , makeOption = opts.makeOption , labelColor = \_ -> \_ -> "" , placeholder = opts.placeholder @@ -144,7 +144,7 @@ makeMultiple : makeMultiple opts = makeModel { multiple = True - , searchable = \n -> n > 5 + , searchable = \n -> n > 0 , makeOption = opts.makeOption , labelColor = opts.labelColor , placeholder = "" @@ -403,7 +403,6 @@ viewSingle model = div [ class "message" , style "display" "inline-block !important" - , onClick ToggleMenu ] [ i [ class "delete icon", onClick (RemoveItem item) ] [] , text item.option.text @@ -429,13 +428,28 @@ viewSingle model = ] in div - [ classList + (classList [ ( "ui search dropdown selection", True ) , ( "open", model.menuOpen ) ] - ] + :: (if model.menuOpen then + [] + + else + [ onClick ToggleMenu ] + ) + ) (List.append - [ i [ class "dropdown icon", onClick ToggleMenu ] [] + [ i + (class "dropdown icon" + :: (if model.menuOpen then + [ onClick ToggleMenu ] + + else + [] + ) + ) + [] ] <| if model.menuOpen && isSearchable model then diff --git a/modules/webapp/src/main/elm/Comp/SearchMenu.elm b/modules/webapp/src/main/elm/Comp/SearchMenu.elm index e6dfd8ce..926ea672 100644 --- a/modules/webapp/src/main/elm/Comp/SearchMenu.elm +++ b/modules/webapp/src/main/elm/Comp/SearchMenu.elm @@ -89,7 +89,7 @@ init = , orgModel = Comp.Dropdown.makeModel { multiple = False - , searchable = \n -> n > 5 + , searchable = \n -> n > 0 , makeOption = \e -> { value = e.id, text = e.name, additional = "" } , labelColor = \_ -> \_ -> "" , placeholder = "Choose an organization" @@ -107,7 +107,7 @@ init = , concEquipmentModel = Comp.Dropdown.makeModel { multiple = False - , searchable = \n -> n > 5 + , searchable = \n -> n > 0 , makeOption = \e -> { value = e.id, text = e.name, additional = "" } , labelColor = \_ -> \_ -> "" , placeholder = "Choose an equipment" diff --git a/modules/webapp/src/main/elm/Util/Tag.elm b/modules/webapp/src/main/elm/Util/Tag.elm index 8e59b36c..d794cbde 100644 --- a/modules/webapp/src/main/elm/Util/Tag.elm +++ b/modules/webapp/src/main/elm/Util/Tag.elm @@ -14,7 +14,7 @@ makeDropdownModel : Comp.Dropdown.Model Tag makeDropdownModel = Comp.Dropdown.makeModel { multiple = True - , searchable = \n -> n > 5 + , searchable = \n -> n > 0 , makeOption = \tag -> { value = tag.id, text = tag.name, additional = "" } , labelColor = \tag -> @@ -28,7 +28,7 @@ makeCatDropdownModel : Comp.Dropdown.Model String makeCatDropdownModel = Comp.Dropdown.makeModel { multiple = True - , searchable = \n -> n > 5 + , searchable = \n -> n > 0 , makeOption = \cat -> { value = cat, text = cat, additional = "" } , labelColor = \_ -> \_ -> "" , placeholder = "Choose a tag category…"