mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-04-04 18:39:33 +00:00
Use correct category count in search menu
This commit is contained in:
parent
3e0914ece7
commit
39ed246a42
@ -92,7 +92,7 @@ type TextSearchModel
|
||||
|
||||
init : Flags -> Model
|
||||
init flags =
|
||||
{ tagSelectModel = Comp.TagSelect.init [] []
|
||||
{ tagSelectModel = Comp.TagSelect.init [] [] [] []
|
||||
, tagSelection = Comp.TagSelect.emptySelection
|
||||
, directionModel =
|
||||
Comp.Dropdown.makeSingleList
|
||||
@ -483,7 +483,9 @@ updateDrop ddm flags settings msg model =
|
||||
GetAllTagsResp (Ok stats) ->
|
||||
let
|
||||
tagSel =
|
||||
Comp.TagSelect.modifyAll stats.tagCloud.items model.tagSelectModel
|
||||
Comp.TagSelect.modifyAll stats.tagCloud.items
|
||||
stats.tagCategoryCloud.items
|
||||
model.tagSelectModel
|
||||
in
|
||||
{ model = { model | tagSelectModel = tagSel }
|
||||
, cmd = Cmd.none
|
||||
@ -500,9 +502,14 @@ updateDrop ddm flags settings msg model =
|
||||
|
||||
GetStatsResp (Ok stats) ->
|
||||
let
|
||||
selectModel =
|
||||
tagCount =
|
||||
List.sortBy .count stats.tagCloud.items
|
||||
|> Comp.TagSelect.modifyCount model.tagSelectModel
|
||||
|
||||
catCount =
|
||||
List.sortBy .count stats.tagCategoryCloud.items
|
||||
|
||||
selectModel =
|
||||
Comp.TagSelect.modifyCount model.tagSelectModel tagCount catCount
|
||||
|
||||
model_ =
|
||||
{ model
|
||||
|
@ -1,6 +1,5 @@
|
||||
module Comp.TagSelect exposing
|
||||
( Category
|
||||
, Model
|
||||
( Model
|
||||
, Msg
|
||||
, Selection
|
||||
, WorkModel
|
||||
@ -18,6 +17,7 @@ module Comp.TagSelect exposing
|
||||
, viewTagsDrop2
|
||||
)
|
||||
|
||||
import Api.Model.NameCount exposing (NameCount)
|
||||
import Api.Model.Tag exposing (Tag)
|
||||
import Api.Model.TagCount exposing (TagCount)
|
||||
import Data.Icons as I
|
||||
@ -38,9 +38,9 @@ import Util.Maybe
|
||||
|
||||
type alias Model =
|
||||
{ availableTags : Dict String TagCount
|
||||
, availableCats : Dict String Category
|
||||
, availableCats : Dict String NameCount
|
||||
, tagCounts : List TagCount
|
||||
, categoryCounts : List Category
|
||||
, categoryCounts : List NameCount
|
||||
, filterTerm : Maybe String
|
||||
, expandedTags : Bool
|
||||
, expandedCats : Bool
|
||||
@ -48,23 +48,16 @@ type alias Model =
|
||||
}
|
||||
|
||||
|
||||
type alias Category =
|
||||
{ name : String
|
||||
, count : Int
|
||||
}
|
||||
|
||||
|
||||
init : List TagCount -> List TagCount -> Model
|
||||
init allTags tags =
|
||||
init : List TagCount -> List NameCount -> List TagCount -> List NameCount -> Model
|
||||
init allTags allCats tags cats =
|
||||
{ availableTags =
|
||||
List.map (\e -> ( e.tag.id, e )) allTags
|
||||
|> Dict.fromList
|
||||
, availableCats = sumCategories allTags
|
||||
, availableCats =
|
||||
List.map (\e -> ( e.name, e )) allCats
|
||||
|> Dict.fromList
|
||||
, tagCounts = tags
|
||||
, categoryCounts =
|
||||
sumCategories tags
|
||||
|> Dict.toList
|
||||
|> List.map Tuple.second
|
||||
, categoryCounts = cats
|
||||
, filterTerm = Nothing
|
||||
, expandedTags = False
|
||||
, expandedCats = False
|
||||
@ -72,24 +65,23 @@ init allTags tags =
|
||||
}
|
||||
|
||||
|
||||
modifyAll : List TagCount -> Model -> Model
|
||||
modifyAll allTags model =
|
||||
modifyAll : List TagCount -> List NameCount -> Model -> Model
|
||||
modifyAll allTags allCats model =
|
||||
{ model
|
||||
| availableTags =
|
||||
List.map (\e -> ( e.tag.id, e )) allTags
|
||||
|> Dict.fromList
|
||||
, availableCats = sumCategories allTags
|
||||
, availableCats =
|
||||
List.map (\e -> ( e.name, e )) allCats
|
||||
|> Dict.fromList
|
||||
}
|
||||
|
||||
|
||||
modifyCount : Model -> List TagCount -> Model
|
||||
modifyCount model tags =
|
||||
modifyCount : Model -> List TagCount -> List NameCount -> Model
|
||||
modifyCount model tags cats =
|
||||
{ model
|
||||
| tagCounts = tags
|
||||
, categoryCounts =
|
||||
sumCategories tags
|
||||
|> Dict.toList
|
||||
|> List.map Tuple.second
|
||||
, categoryCounts = cats
|
||||
}
|
||||
|
||||
|
||||
@ -108,34 +100,11 @@ toggleTag id =
|
||||
ToggleTag id
|
||||
|
||||
|
||||
sumCategories : List TagCount -> Dict String Category
|
||||
sumCategories tags =
|
||||
let
|
||||
filterCat tc =
|
||||
Maybe.map (\cat -> Category cat tc.count) tc.tag.category
|
||||
|
||||
withCats =
|
||||
List.filterMap filterCat tags
|
||||
|
||||
sum cat mc =
|
||||
Maybe.map ((+) cat.count) mc
|
||||
|> Maybe.withDefault cat.count
|
||||
|> Just
|
||||
|
||||
sumCounts cat dict =
|
||||
Dict.update cat.name (sum cat) dict
|
||||
|
||||
cats =
|
||||
List.foldl sumCounts Dict.empty withCats
|
||||
in
|
||||
Dict.map (\name -> \count -> Category name count) cats
|
||||
|
||||
|
||||
type alias Selection =
|
||||
{ includeTags : List TagCount
|
||||
, excludeTags : List TagCount
|
||||
, includeCats : List Category
|
||||
, excludeCats : List Category
|
||||
, includeCats : List NameCount
|
||||
, excludeCats : List NameCount
|
||||
}
|
||||
|
||||
|
||||
@ -145,7 +114,7 @@ emptySelection =
|
||||
|
||||
|
||||
type alias WorkModel =
|
||||
{ filteredCats : List Category
|
||||
{ filteredCats : List NameCount
|
||||
, filteredTags : List TagCount
|
||||
, selectedTags : Dict String Bool
|
||||
, selectedCats : Dict String Bool
|
||||
@ -166,7 +135,7 @@ orderTagCountStable model tagCounts =
|
||||
List.sortBy order tagCounts
|
||||
|
||||
|
||||
orderCatCountStable : Model -> List Category -> List Category
|
||||
orderCatCountStable : Model -> List NameCount -> List NameCount
|
||||
orderCatCountStable model catCounts =
|
||||
let
|
||||
order cat =
|
||||
@ -193,7 +162,7 @@ removeEmptyTagCounts sel tagCounts =
|
||||
List.filter (\tc -> isSelected tc || tc.count > 0) tagCounts
|
||||
|
||||
|
||||
removeEmptyCatCounts : Selection -> List Category -> List Category
|
||||
removeEmptyCatCounts : Selection -> List NameCount -> List NameCount
|
||||
removeEmptyCatCounts sel catCounts =
|
||||
let
|
||||
selected =
|
||||
@ -548,7 +517,7 @@ viewTagItem2 ddm settings model tag =
|
||||
]
|
||||
|
||||
|
||||
viewCategoryItem2 : UiSettings -> WorkModel -> Category -> Html Msg
|
||||
viewCategoryItem2 : UiSettings -> WorkModel -> NameCount -> Html Msg
|
||||
viewCategoryItem2 settings model cat =
|
||||
let
|
||||
state =
|
||||
|
Loading…
x
Reference in New Issue
Block a user