diff --git a/modules/webapp/src/main/elm/Comp/ExpandCollapse.elm b/modules/webapp/src/main/elm/Comp/ExpandCollapse.elm new file mode 100644 index 00000000..29ab4635 --- /dev/null +++ b/modules/webapp/src/main/elm/Comp/ExpandCollapse.elm @@ -0,0 +1,60 @@ +module Comp.ExpandCollapse exposing + ( collapseToggle + , expandToggle + ) + +import Html exposing (..) +import Html.Attributes exposing (..) +import Html.Events exposing (onClick) +import Messages.Comp.ExpandCollapse exposing (Texts) +import Styles as S + + +type alias Model = + { max : Int + , all : Int + } + + + +--- View2 + + +expandToggle : Texts -> Model -> msg -> List (Html msg) +expandToggle texts model m = + if model.max >= model.all then + [] + + else + [ a + [ class S.link + , class "flex flex-row items-center" + , onClick m + , href "#" + ] + [ i [ class "fa fa-angle-down" ] [] + , div [ class "font-italics text-sm ml-2" ] + [ text texts.showMoreLabel + ] + ] + ] + + +collapseToggle : Texts -> Model -> msg -> List (Html msg) +collapseToggle texts model m = + if model.max >= model.all then + [] + + else + [ a + [ class S.link + , class "flex flex-row items-center" + , onClick m + , href "#" + ] + [ i [ class "fa fa-angle-up" ] [] + , div [ class "font-italics text-sm ml-2" ] + [ text texts.showLessLabel + ] + ] + ] diff --git a/modules/webapp/src/main/elm/Comp/FolderSelect.elm b/modules/webapp/src/main/elm/Comp/FolderSelect.elm index f7034af8..ff5be07f 100644 --- a/modules/webapp/src/main/elm/Comp/FolderSelect.elm +++ b/modules/webapp/src/main/elm/Comp/FolderSelect.elm @@ -11,11 +11,12 @@ module Comp.FolderSelect exposing ) import Api.Model.FolderStats exposing (FolderStats) +import Comp.ExpandCollapse import Dict import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onClick) -import Util.ExpandCollapse +import Messages.Comp.FolderSelect exposing (Texts) import Util.ItemDragDrop as DD import Util.List @@ -134,24 +135,28 @@ selectedFolder model = --- View2 -expandToggle : Int -> Model -> List (Html Msg) -expandToggle max model = - Util.ExpandCollapse.expandToggle - max - (List.length model.all) +expandToggle : Texts -> Int -> Model -> List (Html Msg) +expandToggle texts max model = + Comp.ExpandCollapse.expandToggle + texts.expandCollapse + { max = max + , all = List.length model.all + } ToggleExpand -collapseToggle : Int -> Model -> List (Html Msg) -collapseToggle max model = - Util.ExpandCollapse.collapseToggle - max - (List.length model.all) +collapseToggle : Texts -> Int -> Model -> List (Html Msg) +collapseToggle texts max model = + Comp.ExpandCollapse.collapseToggle + texts.expandCollapse + { max = max + , all = List.length model.all + } ToggleExpand -viewDrop2 : DD.Model -> Int -> Model -> Html Msg -viewDrop2 dropModel constr model = +viewDrop2 : Texts -> DD.Model -> Int -> Model -> Html Msg +viewDrop2 texts dropModel constr model = let highlightDrop = DD.getDropId dropModel == Just DD.FolderRemove @@ -169,20 +174,20 @@ viewDrop2 dropModel constr model = [ text "Folders" ] , div [ class "flex flex-col space-y-2 md:space-y-1" ] - (renderItems2 dropModel constr model) + (renderItems2 texts dropModel constr model) ] -renderItems2 : DD.Model -> Int -> Model -> List (Html Msg) -renderItems2 dropModel constr model = +renderItems2 : Texts -> DD.Model -> Int -> Model -> List (Html Msg) +renderItems2 texts dropModel constr model = if constr <= 0 then List.map (viewItem2 dropModel model) model.all else if model.expanded then - List.map (viewItem2 dropModel model) model.all ++ collapseToggle constr model + List.map (viewItem2 dropModel model) model.all ++ collapseToggle texts constr model else - List.map (viewItem2 dropModel model) (List.take constr model.all) ++ expandToggle constr model + List.map (viewItem2 dropModel model) (List.take constr model.all) ++ expandToggle texts constr model viewItem2 : DD.Model -> Model -> FolderStats -> Html Msg diff --git a/modules/webapp/src/main/elm/Comp/SearchMenu.elm b/modules/webapp/src/main/elm/Comp/SearchMenu.elm index 09607a90..c12f0e46 100644 --- a/modules/webapp/src/main/elm/Comp/SearchMenu.elm +++ b/modules/webapp/src/main/elm/Comp/SearchMenu.elm @@ -1223,6 +1223,7 @@ searchTabs texts ddd flags settings model = , body = [ Html.map TagSelectMsg (Comp.TagSelect.viewCats2 + texts.tagSelect settings tagSelectWM model.tagSelectModel @@ -1235,7 +1236,8 @@ searchTabs texts ddd flags settings model = , info = Nothing , body = [ Html.map FolderSelectMsg - (Comp.FolderSelect.viewDrop2 ddd.model + (Comp.FolderSelect.viewDrop2 texts.folderSelect + ddd.model settings.searchMenuFolderCount model.folderList ) diff --git a/modules/webapp/src/main/elm/Comp/TagSelect.elm b/modules/webapp/src/main/elm/Comp/TagSelect.elm index 2ace84cc..d9c690df 100644 --- a/modules/webapp/src/main/elm/Comp/TagSelect.elm +++ b/modules/webapp/src/main/elm/Comp/TagSelect.elm @@ -21,6 +21,7 @@ module Comp.TagSelect exposing import Api.Model.NameCount exposing (NameCount) import Api.Model.Tag exposing (Tag) import Api.Model.TagCount exposing (TagCount) +import Comp.ExpandCollapse import Data.Icons as I import Data.UiSettings exposing (UiSettings) import Dict exposing (Dict) @@ -32,7 +33,6 @@ import Set import Simple.Fuzzy import String as S import Styles as S -import Util.ExpandCollapse import Util.ItemDragDrop as DD import Util.Maybe @@ -405,7 +405,7 @@ viewAll2 texts ddm settings sel model = wm = makeWorkModel sel model in - viewTagsDrop2 texts ddm wm settings model ++ [ viewCats2 settings wm model ] + viewTagsDrop2 texts ddm wm settings model ++ [ viewCats2 texts settings wm model ] viewTagsDrop2 : Texts -> DD.Model -> WorkModel -> UiSettings -> Model -> List (Html Msg) @@ -440,20 +440,20 @@ viewTagsDrop2 texts ddm wm settings model = ] ] , div [ class "flex flex-col space-y-2 md:space-y-1" ] - (renderTagItems2 ddm settings model wm) + (renderTagItems2 texts ddm settings model wm) ] -viewCats2 : UiSettings -> WorkModel -> Model -> Html Msg -viewCats2 settings wm model = +viewCats2 : Texts -> UiSettings -> WorkModel -> Model -> Html Msg +viewCats2 texts settings wm model = div [ class "flex flex-col" ] [ div [ class "flex flex-col space-y-2 md:space-y-1" ] - (renderCatItems2 settings model wm) + (renderCatItems2 texts settings model wm) ] -renderTagItems2 : DD.Model -> UiSettings -> Model -> WorkModel -> List (Html Msg) -renderTagItems2 ddm settings model wm = +renderTagItems2 : Texts -> DD.Model -> UiSettings -> Model -> WorkModel -> List (Html Msg) +renderTagItems2 texts ddm settings model wm = let tags = wm.filteredTags @@ -462,15 +462,19 @@ renderTagItems2 ddm settings model wm = settings.searchMenuTagCount expLink = - Util.ExpandCollapse.expandToggle2 - max - (List.length tags) + Comp.ExpandCollapse.expandToggle + texts.expandCollapse + { max = max + , all = List.length tags + } ToggleExpandTags cpsLink = - Util.ExpandCollapse.collapseToggle2 - max - (List.length tags) + Comp.ExpandCollapse.collapseToggle + texts.expandCollapse + { max = max + , all = List.length tags + } ToggleExpandTags in if max <= 0 then @@ -557,8 +561,8 @@ viewCategoryItem2 settings model cat = ] -renderCatItems2 : UiSettings -> Model -> WorkModel -> List (Html Msg) -renderCatItems2 settings model wm = +renderCatItems2 : Texts -> UiSettings -> Model -> WorkModel -> List (Html Msg) +renderCatItems2 texts settings model wm = let cats = wm.filteredCats @@ -567,15 +571,19 @@ renderCatItems2 settings model wm = settings.searchMenuTagCatCount expLink = - Util.ExpandCollapse.expandToggle2 - max - (List.length cats) + Comp.ExpandCollapse.expandToggle + texts.expandCollapse + { max = max + , all = List.length cats + } ToggleExpandCats cpsLink = - Util.ExpandCollapse.collapseToggle2 - max - (List.length cats) + Comp.ExpandCollapse.collapseToggle + texts.expandCollapse + { max = max + , all = List.length cats + } ToggleExpandCats in if max <= 0 then diff --git a/modules/webapp/src/main/elm/Messages/Comp/ExpandCollapse.elm b/modules/webapp/src/main/elm/Messages/Comp/ExpandCollapse.elm new file mode 100644 index 00000000..94fd8a15 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/Comp/ExpandCollapse.elm @@ -0,0 +1,17 @@ +module Messages.Comp.ExpandCollapse exposing + ( Texts + , gb + ) + + +type alias Texts = + { showMoreLabel : String + , showLessLabel : String + } + + +gb : Texts +gb = + { showMoreLabel = "Show More …" + , showLessLabel = "Show Less …" + } diff --git a/modules/webapp/src/main/elm/Messages/Comp/FolderSelect.elm b/modules/webapp/src/main/elm/Messages/Comp/FolderSelect.elm new file mode 100644 index 00000000..cc0d84f2 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/Comp/FolderSelect.elm @@ -0,0 +1,17 @@ +module Messages.Comp.FolderSelect exposing + ( Texts + , gb + ) + +import Messages.Comp.ExpandCollapse + + +type alias Texts = + { expandCollapse : Messages.Comp.ExpandCollapse.Texts + } + + +gb : Texts +gb = + { expandCollapse = Messages.Comp.ExpandCollapse.gb + } diff --git a/modules/webapp/src/main/elm/Messages/Comp/SearchMenu.elm b/modules/webapp/src/main/elm/Messages/Comp/SearchMenu.elm index d6e35912..717e337f 100644 --- a/modules/webapp/src/main/elm/Messages/Comp/SearchMenu.elm +++ b/modules/webapp/src/main/elm/Messages/Comp/SearchMenu.elm @@ -2,6 +2,7 @@ module Messages.Comp.SearchMenu exposing (Texts, gb) import Messages.Basics import Messages.Comp.CustomFieldMultiInput +import Messages.Comp.FolderSelect import Messages.Comp.TagSelect @@ -9,6 +10,7 @@ type alias Texts = { basics : Messages.Basics.Texts , customFieldMultiInput : Messages.Comp.CustomFieldMultiInput.Texts , tagSelect : Messages.Comp.TagSelect.Texts + , folderSelect : Messages.Comp.FolderSelect.Texts , chooseDirection : String , choosePerson : String , chooseEquipment : String @@ -38,6 +40,7 @@ gb = { basics = Messages.Basics.gb , customFieldMultiInput = Messages.Comp.CustomFieldMultiInput.gb , tagSelect = Messages.Comp.TagSelect.gb + , folderSelect = Messages.Comp.FolderSelect.gb , chooseDirection = "Choose a direction…" , choosePerson = "Choose a person" , chooseEquipment = "Choose an equipment" diff --git a/modules/webapp/src/main/elm/Messages/Comp/TagSelect.elm b/modules/webapp/src/main/elm/Messages/Comp/TagSelect.elm index bcef2152..4a3020db 100644 --- a/modules/webapp/src/main/elm/Messages/Comp/TagSelect.elm +++ b/modules/webapp/src/main/elm/Messages/Comp/TagSelect.elm @@ -1,8 +1,11 @@ module Messages.Comp.TagSelect exposing (Texts, gb) +import Messages.Comp.ExpandCollapse + type alias Texts = - { hideEmpty : String + { expandCollapse : Messages.Comp.ExpandCollapse.Texts + , hideEmpty : String , showEmpty : String , filterPlaceholder : String } @@ -10,7 +13,8 @@ type alias Texts = gb : Texts gb = - { hideEmpty = "Hide empty" + { expandCollapse = Messages.Comp.ExpandCollapse.gb + , hideEmpty = "Hide empty" , showEmpty = "Show empty" , filterPlaceholder = "Filter …" } diff --git a/modules/webapp/src/main/elm/Util/ExpandCollapse.elm b/modules/webapp/src/main/elm/Util/ExpandCollapse.elm deleted file mode 100644 index b3172cf7..00000000 --- a/modules/webapp/src/main/elm/Util/ExpandCollapse.elm +++ /dev/null @@ -1,97 +0,0 @@ -module Util.ExpandCollapse exposing - ( collapseToggle - , collapseToggle2 - , expandToggle - , expandToggle2 - ) - -import Html exposing (..) -import Html.Attributes exposing (..) -import Html.Events exposing (onClick) -import Styles as S - - -expandToggle : Int -> Int -> msg -> List (Html msg) -expandToggle max all m = - if max >= all then - [] - - else - [ a - [ class "item" - , onClick m - , href "#" - ] - [ i [ class "angle down icon" ] [] - , div [ class "content" ] - [ div [ class "description" ] - [ em [] [ text "Show More …" ] - ] - ] - ] - ] - - -collapseToggle : Int -> Int -> msg -> List (Html msg) -collapseToggle max all m = - if max >= all then - [] - - else - [ a - [ class "item" - , onClick m - , href "#" - ] - [ i [ class "angle up icon" ] [] - , div [ class "content" ] - [ div [ class "description" ] - [ em [] [ text "Show Less …" ] - ] - ] - ] - ] - - - ---- View2 - - -expandToggle2 : Int -> Int -> msg -> List (Html msg) -expandToggle2 max all m = - if max >= all then - [] - - else - [ a - [ class S.link - , class "flex flex-row items-center" - , onClick m - , href "#" - ] - [ i [ class "fa fa-angle-down" ] [] - , div [ class "font-italics text-sm ml-2" ] - [ text "Show More …" - ] - ] - ] - - -collapseToggle2 : Int -> Int -> msg -> List (Html msg) -collapseToggle2 max all m = - if max >= all then - [] - - else - [ a - [ class S.link - , class "flex flex-row items-center" - , onClick m - , href "#" - ] - [ i [ class "fa fa-angle-up" ] [] - , div [ class "font-italics text-sm ml-2" ] - [ text "Show Less …" - ] - ] - ]