diff --git a/modules/webapp/src/main/elm/Comp/SearchMenu.elm b/modules/webapp/src/main/elm/Comp/SearchMenu.elm index b3411b28..10f6843d 100644 --- a/modules/webapp/src/main/elm/Comp/SearchMenu.elm +++ b/modules/webapp/src/main/elm/Comp/SearchMenu.elm @@ -599,24 +599,6 @@ view flags settings model = ] ] ] - , div - [ classList - [ ( "field", True ) - , ( "invisible hidden", not flags.config.fullTextSearchEnabled ) - ] - ] - [ label [] [ text "Content Search" ] - , input - [ type_ "text" - , onInput SetFulltext - , Util.Html.onKeyUpCode KeyUpMsg - , model.fulltextModel |> Maybe.withDefault "" |> value - ] - [] - , span [ class "small-info" ] - [ text "Fulltext search in document contents." - ] - ] , formHeaderHelp nameIcon "Names" ToggleNameHelp , span [ classList @@ -632,7 +614,7 @@ view flags settings model = , text " to start searching." ] , div [ class "field" ] - [ label [] [ text "All Names" ] + [ label [] [ text "Names" ] , input [ type_ "text" , onInput SetAllName @@ -649,24 +631,6 @@ view flags settings model = [ text "Looks in correspondents, concerned entities, item name and notes." ] ] - , div [ class "field" ] - [ label [] [ text "Name" ] - , input - [ type_ "text" - , onInput SetName - , Util.Html.onKeyUpCode KeyUpMsg - , model.nameModel |> Maybe.withDefault "" |> value - ] - [] - , span - [ classList - [ ( "small-info", True ) - , ( "invisible hidden", not model.showNameHelp ) - ] - ] - [ text "Looks in item name only." - ] - ] , formHeader (Icons.folderIcon "") "Folder" , div [ class "field" ] [ label [] [ text "Folder" ] @@ -681,6 +645,25 @@ view flags settings model = [ label [] [ text "Exclude (or)" ] , Html.map TagExcMsg (Comp.Dropdown.view settings model.tagExclModel) ] + , formHeader (Icons.searchIcon "") "Content" + , div + [ classList + [ ( "field", True ) + , ( "invisible hidden", not flags.config.fullTextSearchEnabled ) + ] + ] + [ label [] [ text "Content Search" ] + , input + [ type_ "text" + , onInput SetFulltext + , Util.Html.onKeyUpCode KeyUpMsg + , model.fulltextModel |> Maybe.withDefault "" |> value + ] + [] + , span [ class "small-info" ] + [ text "Fulltext search in document contents and notes." + ] + ] , formHeader (Icons.correspondentIcon "") (case getDirection model of Just Data.Direction.Incoming -> diff --git a/modules/webapp/src/main/elm/Data/Icons.elm b/modules/webapp/src/main/elm/Data/Icons.elm index 86999931..72c78be0 100644 --- a/modules/webapp/src/main/elm/Data/Icons.elm +++ b/modules/webapp/src/main/elm/Data/Icons.elm @@ -21,6 +21,8 @@ module Data.Icons exposing , organizationIcon , person , personIcon + , search + , searchIcon , tag , tagIcon , tags @@ -31,6 +33,16 @@ import Html exposing (Html, i) import Html.Attributes exposing (class) +search : String +search = + "search icon" + + +searchIcon : String -> Html msg +searchIcon classes = + i [ class (search ++ " " ++ classes) ] [] + + folder : String folder = "folder outline icon" diff --git a/modules/webapp/src/main/elm/Page/Home/Data.elm b/modules/webapp/src/main/elm/Page/Home/Data.elm index ad60e3db..b49ddc02 100644 --- a/modules/webapp/src/main/elm/Page/Home/Data.elm +++ b/modules/webapp/src/main/elm/Page/Home/Data.elm @@ -13,6 +13,7 @@ module Page.Home.Data exposing import Api import Api.Model.ItemLightList exposing (ItemLightList) +import Api.Model.ItemSearch import Comp.FixedDropdown import Comp.ItemCardList import Comp.SearchMenu @@ -45,7 +46,7 @@ init flags = let searchTypeOptions = if flags.config.fullTextSearchEnabled then - [ BasicSearch, ContentSearch, ContentOnlySearch ] + [ BasicSearch, ContentOnlySearch ] else [ BasicSearch ] @@ -70,7 +71,7 @@ init flags = defaultSearchType : Flags -> SearchType defaultSearchType flags = if flags.config.fullTextSearchEnabled then - ContentSearch + ContentOnlySearch else BasicSearch @@ -103,7 +104,7 @@ searchTypeString : SearchType -> String searchTypeString st = case st of BasicSearch -> - "All Names" + "Names" ContentSearch -> "Contents" @@ -133,15 +134,19 @@ itemNav id model = doSearchCmd : Flags -> UiSettings -> Int -> Model -> Cmd Msg doSearchCmd flags settings offset model = - case model.searchType of - BasicSearch -> - doSearchDefaultCmd flags settings offset model + if model.menuCollapsed then + case model.searchType of + BasicSearch -> + doSearchDefaultCmd flags settings offset model - ContentSearch -> - doSearchDefaultCmd flags settings offset model + ContentSearch -> + doSearchDefaultCmd flags settings offset model - ContentOnlySearch -> - doSearchIndexCmd flags settings offset model + ContentOnlySearch -> + doSearchIndexCmd flags settings offset model + + else + doSearchDefaultCmd flags settings offset model doSearchDefaultCmd : Flags -> UiSettings -> Int -> Model -> Cmd Msg @@ -181,7 +186,16 @@ doSearchIndexCmd flags settings offset model = Api.itemIndexSearch flags mask ItemSearchAddResp Nothing -> - Cmd.none + -- If there is no fulltext query, render simply the most + -- current ones + let + emptyMask = + Api.Model.ItemSearch.empty + + mask = + { emptyMask | limit = settings.itemSearchPageSize } + in + Api.itemSearch flags mask ItemSearchResp resultsBelowLimit : UiSettings -> Model -> Bool