mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-03-26 17:15:05 +00:00
Make resetting search form more efficient
Instead of reloading the whole menu, only empty the fields.
This commit is contained in:
parent
b1d0ae0cc8
commit
faf97222ea
@ -1,7 +1,9 @@
|
|||||||
module Comp.FolderSelect exposing
|
module Comp.FolderSelect exposing
|
||||||
( Model
|
( Model
|
||||||
, Msg
|
, Msg
|
||||||
|
, deselect
|
||||||
, init
|
, init
|
||||||
|
, setSelected
|
||||||
, update
|
, update
|
||||||
, updateDrop
|
, updateDrop
|
||||||
, view
|
, view
|
||||||
@ -32,6 +34,23 @@ init selected all =
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
setSelected : String -> Model -> Maybe Msg
|
||||||
|
setSelected id model =
|
||||||
|
List.filter (\fi -> fi.id == id) model.all
|
||||||
|
|> List.head
|
||||||
|
|> Maybe.map Toggle
|
||||||
|
|
||||||
|
|
||||||
|
deselect : Model -> Maybe Msg
|
||||||
|
deselect model =
|
||||||
|
case model.selected of
|
||||||
|
Just id ->
|
||||||
|
setSelected id model
|
||||||
|
|
||||||
|
Nothing ->
|
||||||
|
Nothing
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- Update
|
--- Update
|
||||||
|
|
||||||
|
@ -191,6 +191,40 @@ getItemSearch model =
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
resetModel : Model -> Model
|
||||||
|
resetModel model =
|
||||||
|
let
|
||||||
|
emptyDropdown dm =
|
||||||
|
Comp.Dropdown.update (Comp.Dropdown.SetSelection []) dm
|
||||||
|
|> Tuple.first
|
||||||
|
|
||||||
|
emptyFolder fm =
|
||||||
|
Comp.FolderSelect.deselect fm
|
||||||
|
|> Maybe.map (\msg -> Comp.FolderSelect.update msg fm)
|
||||||
|
|> Maybe.map Tuple.first
|
||||||
|
|> Maybe.withDefault fm
|
||||||
|
in
|
||||||
|
{ model
|
||||||
|
| tagSelection = Comp.TagSelect.emptySelection
|
||||||
|
, tagSelectModel = Comp.TagSelect.reset model.tagSelectModel
|
||||||
|
, directionModel = emptyDropdown model.directionModel
|
||||||
|
, orgModel = emptyDropdown model.orgModel
|
||||||
|
, corrPersonModel = emptyDropdown model.corrPersonModel
|
||||||
|
, concPersonModel = emptyDropdown model.concPersonModel
|
||||||
|
, concEquipmentModel = emptyDropdown model.concEquipmentModel
|
||||||
|
, folderList = emptyFolder model.folderList
|
||||||
|
, selectedFolder = Nothing
|
||||||
|
, inboxCheckbox = False
|
||||||
|
, fromDate = Nothing
|
||||||
|
, untilDate = Nothing
|
||||||
|
, fromDueDate = Nothing
|
||||||
|
, untilDueDate = Nothing
|
||||||
|
, nameModel = Nothing
|
||||||
|
, allNameModel = Nothing
|
||||||
|
, fulltextModel = Nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Update
|
-- Update
|
||||||
|
|
||||||
@ -220,6 +254,11 @@ type Msg
|
|||||||
| ToggleNameHelp
|
| ToggleNameHelp
|
||||||
| FolderSelectMsg Comp.FolderSelect.Msg
|
| FolderSelectMsg Comp.FolderSelect.Msg
|
||||||
| GetFolderResp (Result Http.Error FolderList)
|
| GetFolderResp (Result Http.Error FolderList)
|
||||||
|
| SetCorrOrg IdName
|
||||||
|
| SetCorrPerson IdName
|
||||||
|
| SetConcPerson IdName
|
||||||
|
| SetConcEquip IdName
|
||||||
|
| SetFolder IdName
|
||||||
|
|
||||||
|
|
||||||
type alias NextState =
|
type alias NextState =
|
||||||
@ -237,6 +276,26 @@ update =
|
|||||||
|
|
||||||
updateDrop : DD.Model -> Flags -> UiSettings -> Msg -> Model -> NextState
|
updateDrop : DD.Model -> Flags -> UiSettings -> Msg -> Model -> NextState
|
||||||
updateDrop ddm flags settings msg model =
|
updateDrop ddm flags settings msg model =
|
||||||
|
let
|
||||||
|
resetAndSet : Msg -> NextState
|
||||||
|
resetAndSet m =
|
||||||
|
let
|
||||||
|
reset =
|
||||||
|
resetModel model
|
||||||
|
|
||||||
|
set =
|
||||||
|
updateDrop ddm
|
||||||
|
flags
|
||||||
|
settings
|
||||||
|
m
|
||||||
|
reset
|
||||||
|
in
|
||||||
|
{ model = set.model
|
||||||
|
, cmd = set.cmd
|
||||||
|
, stateChange = True
|
||||||
|
, dragDrop = set.dragDrop
|
||||||
|
}
|
||||||
|
in
|
||||||
case msg of
|
case msg of
|
||||||
Init ->
|
Init ->
|
||||||
let
|
let
|
||||||
@ -278,11 +337,39 @@ updateDrop ddm flags settings msg model =
|
|||||||
}
|
}
|
||||||
|
|
||||||
ResetForm ->
|
ResetForm ->
|
||||||
|
{ model = resetModel model
|
||||||
|
, cmd = Cmd.none
|
||||||
|
, stateChange = True
|
||||||
|
, dragDrop = DD.DragDropData ddm Nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
SetCorrOrg id ->
|
||||||
|
resetAndSet (OrgMsg (Comp.Dropdown.SetSelection [ id ]))
|
||||||
|
|
||||||
|
SetCorrPerson id ->
|
||||||
|
resetAndSet (CorrPersonMsg (Comp.Dropdown.SetSelection [ id ]))
|
||||||
|
|
||||||
|
SetConcPerson id ->
|
||||||
|
resetAndSet (ConcPersonMsg (Comp.Dropdown.SetSelection [ id ]))
|
||||||
|
|
||||||
|
SetFolder id ->
|
||||||
|
case Comp.FolderSelect.setSelected id.id model.folderList of
|
||||||
|
Just lm ->
|
||||||
|
resetAndSet (FolderSelectMsg lm)
|
||||||
|
|
||||||
|
Nothing ->
|
||||||
|
{ model = model
|
||||||
|
, cmd = Cmd.none
|
||||||
|
, stateChange = False
|
||||||
|
, dragDrop = DD.DragDropData ddm Nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
SetConcEquip id ->
|
||||||
let
|
let
|
||||||
next =
|
equip =
|
||||||
update flags settings Init init
|
Equipment id.id id.name 0
|
||||||
in
|
in
|
||||||
{ next | stateChange = True }
|
resetAndSet (ConcEquipmentMsg (Comp.Dropdown.SetSelection [ equip ]))
|
||||||
|
|
||||||
GetTagsResp (Ok tags) ->
|
GetTagsResp (Ok tags) ->
|
||||||
let
|
let
|
||||||
|
@ -5,6 +5,7 @@ module Comp.TagSelect exposing
|
|||||||
, Selection
|
, Selection
|
||||||
, emptySelection
|
, emptySelection
|
||||||
, init
|
, init
|
||||||
|
, reset
|
||||||
, update
|
, update
|
||||||
, updateDrop
|
, updateDrop
|
||||||
, viewCats
|
, viewCats
|
||||||
@ -75,6 +76,14 @@ init sel tags =
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
reset : Model -> Model
|
||||||
|
reset model =
|
||||||
|
{ model
|
||||||
|
| selectedTags = Dict.empty
|
||||||
|
, selectedCats = Dict.empty
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sumCategories : List TagCount -> List Category
|
sumCategories : List TagCount -> List Category
|
||||||
sumCategories tags =
|
sumCategories tags =
|
||||||
let
|
let
|
||||||
|
Loading…
x
Reference in New Issue
Block a user