mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-23 19:08:26 +00:00
SearchMenu uses query string instead of json form
This commit is contained in:
@ -31,6 +31,7 @@ import Comp.SearchMenu
|
||||
import Comp.YesNoDimmer
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.ItemNav exposing (ItemNav)
|
||||
import Data.ItemQuery as Q
|
||||
import Data.Items
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Http
|
||||
@ -239,12 +240,13 @@ doSearchDefaultCmd : SearchParam -> Model -> Cmd Msg
|
||||
doSearchDefaultCmd param model =
|
||||
let
|
||||
smask =
|
||||
Comp.SearchMenu.getItemSearch model.searchMenuModel
|
||||
Q.request
|
||||
(Comp.SearchMenu.getItemQuery model.searchMenuModel)
|
||||
|
||||
mask =
|
||||
{ smask
|
||||
| limit = param.pageSize
|
||||
, offset = param.offset
|
||||
| limit = Just param.pageSize
|
||||
, offset = Just param.offset
|
||||
}
|
||||
in
|
||||
if param.offset == 0 then
|
||||
|
@ -3,7 +3,7 @@ module Page.Home.Update exposing (update)
|
||||
import Api
|
||||
import Api.Model.IdList exposing (IdList)
|
||||
import Api.Model.ItemLightList exposing (ItemLightList)
|
||||
import Api.Model.ItemSearch
|
||||
import Api.Model.ItemQuery
|
||||
import Browser.Navigation as Nav
|
||||
import Comp.FixedDropdown
|
||||
import Comp.ItemCardList
|
||||
@ -13,6 +13,7 @@ import Comp.LinkTarget exposing (LinkTarget)
|
||||
import Comp.SearchMenu
|
||||
import Comp.YesNoDimmer
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.ItemQuery as Q
|
||||
import Data.ItemSelection
|
||||
import Data.Items
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
@ -648,16 +649,15 @@ loadChangedItems flags ids =
|
||||
|
||||
else
|
||||
let
|
||||
searchInit =
|
||||
Api.Model.ItemSearch.empty
|
||||
|
||||
idList =
|
||||
IdList (Set.toList ids)
|
||||
Set.toList ids
|
||||
|
||||
searchInit =
|
||||
Q.request (Just <| Q.ItemIdIn idList)
|
||||
|
||||
search =
|
||||
{ searchInit
|
||||
| itemSubset = Just idList
|
||||
, limit = Set.size ids
|
||||
| limit = Just <| Set.size ids
|
||||
}
|
||||
in
|
||||
Api.itemSearch flags search ReplaceChangedItemsResp
|
||||
|
@ -320,8 +320,9 @@ viewSearchBar flags model =
|
||||
[ a
|
||||
[ classList
|
||||
[ ( "search-menu-toggle ui icon button", True )
|
||||
, ( "primary", not (searchMenuFilled model) )
|
||||
, ( "secondary", searchMenuFilled model )
|
||||
|
||||
-- , ( "primary", not (searchMenuFilled model) )
|
||||
-- , ( "secondary", searchMenuFilled model )
|
||||
]
|
||||
, onClick ToggleSearchMenu
|
||||
, href "#"
|
||||
@ -332,24 +333,23 @@ viewSearchBar flags model =
|
||||
, div [ class "right menu" ]
|
||||
[ div [ class "fitted item" ]
|
||||
[ div [ class "ui left icon right action input" ]
|
||||
[ i
|
||||
[ classList
|
||||
[ ( "search link icon", not model.searchInProgress )
|
||||
, ( "loading spinner icon", model.searchInProgress )
|
||||
]
|
||||
, href "#"
|
||||
, onClick (DoSearch model.searchTypeDropdownValue)
|
||||
]
|
||||
(if hasMoreSearch model then
|
||||
[ i [ class "icons search-corner-icons" ]
|
||||
[ i [ class "tiny blue circle icon" ] []
|
||||
]
|
||||
]
|
||||
|
||||
else
|
||||
[]
|
||||
)
|
||||
, input
|
||||
[ -- i
|
||||
-- [ classList
|
||||
-- [ ( "search link icon", not model.searchInProgress )
|
||||
-- , ( "loading spinner icon", model.searchInProgress )
|
||||
-- ]
|
||||
-- , href "#"
|
||||
-- , onClick (DoSearch model.searchTypeDropdownValue)
|
||||
-- ]
|
||||
-- (if hasMoreSearch model then
|
||||
-- [ i [ class "icons search-corner-icons" ]
|
||||
-- [ i [ class "tiny blue circle icon" ] []
|
||||
-- ]
|
||||
-- ]
|
||||
-- else
|
||||
-- []
|
||||
-- )
|
||||
input
|
||||
[ type_ "text"
|
||||
, placeholder
|
||||
(case model.searchTypeDropdownValue of
|
||||
@ -384,27 +384,6 @@ 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
|
||||
is =
|
||||
Comp.SearchMenu.getItemSearch model.searchMenuModel
|
||||
|
||||
is_ =
|
||||
{ is | allNames = Nothing, fullText = Nothing }
|
||||
in
|
||||
is_ /= Api.Model.ItemSearch.empty
|
||||
|
||||
|
||||
deleteAllDimmer : Comp.YesNoDimmer.Settings
|
||||
deleteAllDimmer =
|
||||
{ message = "Really delete all selected items?"
|
||||
|
Reference in New Issue
Block a user