mirror of
				https://github.com/TheAnachronism/docspell.git
				synced 2025-10-30 21:40:12 +00:00 
			
		
		
		
	Make resetting search form more efficient
Instead of reloading the whole menu, only empty the fields.
This commit is contained in:
		| @@ -1,7 +1,9 @@ | ||||
| module Comp.FolderSelect exposing | ||||
|     ( Model | ||||
|     , Msg | ||||
|     , deselect | ||||
|     , init | ||||
|     , setSelected | ||||
|     , update | ||||
|     , updateDrop | ||||
|     , 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 | ||||
|  | ||||
|   | ||||
| @@ -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 | ||||
|  | ||||
| @@ -220,6 +254,11 @@ type Msg | ||||
|     | ToggleNameHelp | ||||
|     | FolderSelectMsg Comp.FolderSelect.Msg | ||||
|     | GetFolderResp (Result Http.Error FolderList) | ||||
|     | SetCorrOrg IdName | ||||
|     | SetCorrPerson IdName | ||||
|     | SetConcPerson IdName | ||||
|     | SetConcEquip IdName | ||||
|     | SetFolder IdName | ||||
|  | ||||
|  | ||||
| type alias NextState = | ||||
| @@ -237,6 +276,26 @@ update = | ||||
|  | ||||
| updateDrop : DD.Model -> Flags -> UiSettings -> Msg -> Model -> NextState | ||||
| 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 | ||||
|         Init -> | ||||
|             let | ||||
| @@ -278,11 +337,39 @@ updateDrop ddm flags settings msg model = | ||||
|             } | ||||
|  | ||||
|         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 | ||||
|                 next = | ||||
|                     update flags settings Init init | ||||
|                 equip = | ||||
|                     Equipment id.id id.name 0 | ||||
|             in | ||||
|             { next | stateChange = True } | ||||
|             resetAndSet (ConcEquipmentMsg (Comp.Dropdown.SetSelection [ equip ])) | ||||
|  | ||||
|         GetTagsResp (Ok tags) -> | ||||
|             let | ||||
|   | ||||
| @@ -5,6 +5,7 @@ module Comp.TagSelect exposing | ||||
|     , Selection | ||||
|     , emptySelection | ||||
|     , init | ||||
|     , reset | ||||
|     , update | ||||
|     , updateDrop | ||||
|     , 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 tags = | ||||
|     let | ||||
|   | ||||
		Reference in New Issue
	
	Block a user