mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-04-07 06:39:32 +00:00
Store item selection globally
This commit is contained in:
parent
203788c746
commit
63e0258db7
modules/webapp/src/main/elm
@ -1727,42 +1727,42 @@ mergeItems flags items receive =
|
||||
|
||||
reprocessMultiple :
|
||||
Flags
|
||||
-> Set String
|
||||
-> List String
|
||||
-> (Result Http.Error BasicResult -> msg)
|
||||
-> Cmd msg
|
||||
reprocessMultiple flags items receive =
|
||||
Http2.authPost
|
||||
{ url = flags.config.baseUrl ++ "/api/v1/sec/items/reprocess"
|
||||
, account = getAccount flags
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (Set.toList items |> IdList))
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (IdList items))
|
||||
, expect = Http.expectJson receive Api.Model.BasicResult.decoder
|
||||
}
|
||||
|
||||
|
||||
confirmMultiple :
|
||||
Flags
|
||||
-> Set String
|
||||
-> List String
|
||||
-> (Result Http.Error BasicResult -> msg)
|
||||
-> Cmd msg
|
||||
confirmMultiple flags ids receive =
|
||||
Http2.authPut
|
||||
{ url = flags.config.baseUrl ++ "/api/v1/sec/items/confirm"
|
||||
, account = getAccount flags
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (IdList (Set.toList ids)))
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (IdList ids))
|
||||
, expect = Http.expectJson receive Api.Model.BasicResult.decoder
|
||||
}
|
||||
|
||||
|
||||
unconfirmMultiple :
|
||||
Flags
|
||||
-> Set String
|
||||
-> List String
|
||||
-> (Result Http.Error BasicResult -> msg)
|
||||
-> Cmd msg
|
||||
unconfirmMultiple flags ids receive =
|
||||
Http2.authPut
|
||||
{ url = flags.config.baseUrl ++ "/api/v1/sec/items/unconfirm"
|
||||
, account = getAccount flags
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (IdList (Set.toList ids)))
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (IdList ids))
|
||||
, expect = Http.expectJson receive Api.Model.BasicResult.decoder
|
||||
}
|
||||
|
||||
@ -1937,28 +1937,28 @@ setConcEquipmentMultiple flags data receive =
|
||||
|
||||
deleteAllItems :
|
||||
Flags
|
||||
-> Set String
|
||||
-> List String
|
||||
-> (Result Http.Error BasicResult -> msg)
|
||||
-> Cmd msg
|
||||
deleteAllItems flags ids receive =
|
||||
Http2.authPost
|
||||
{ url = flags.config.baseUrl ++ "/api/v1/sec/items/deleteAll"
|
||||
, account = getAccount flags
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (IdList (Set.toList ids)))
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (IdList ids))
|
||||
, expect = Http.expectJson receive Api.Model.BasicResult.decoder
|
||||
}
|
||||
|
||||
|
||||
restoreAllItems :
|
||||
Flags
|
||||
-> Set String
|
||||
-> List String
|
||||
-> (Result Http.Error BasicResult -> msg)
|
||||
-> Cmd msg
|
||||
restoreAllItems flags ids receive =
|
||||
Http2.authPost
|
||||
{ url = flags.config.baseUrl ++ "/api/v1/sec/items/restoreAll"
|
||||
, account = getAccount flags
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (IdList (Set.toList ids)))
|
||||
, body = Http.jsonBody (Api.Model.IdList.encode (IdList ids))
|
||||
, expect = Http.expectJson receive Api.Model.BasicResult.decoder
|
||||
}
|
||||
|
||||
|
@ -19,6 +19,7 @@ import Api.Model.VersionInfo exposing (VersionInfo)
|
||||
import Browser exposing (UrlRequest)
|
||||
import Browser.Navigation exposing (Key)
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.ItemIds exposing (ItemIds)
|
||||
import Data.ServerEvent exposing (ServerEvent)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Data.UiTheme exposing (UiTheme)
|
||||
@ -69,6 +70,7 @@ type alias Model =
|
||||
, langMenuOpen : Bool
|
||||
, showNewItemsArrived : Bool
|
||||
, jobsWaiting : Int
|
||||
, selectedItems : ItemIds
|
||||
}
|
||||
|
||||
|
||||
@ -133,6 +135,7 @@ init key url flags_ settings =
|
||||
, langMenuOpen = False
|
||||
, showNewItemsArrived = False
|
||||
, jobsWaiting = 0
|
||||
, selectedItems = Data.ItemIds.empty
|
||||
}
|
||||
, Cmd.batch
|
||||
[ Cmd.map DashboardMsg dbc
|
||||
|
@ -584,11 +584,20 @@ updateSearch texts lmsg model =
|
||||
_ ->
|
||||
( Nothing, Nothing )
|
||||
|
||||
env =
|
||||
{ bookmarkId = bmId
|
||||
, lastViewedItemId = mid
|
||||
, key = model.key
|
||||
, selectedItems = model.selectedItems
|
||||
, flags = model.flags
|
||||
, settings = model.uiSettings
|
||||
}
|
||||
|
||||
result =
|
||||
Page.Search.Update.update bmId mid model.key model.flags texts.search model.uiSettings lmsg model.searchModel
|
||||
Page.Search.Update.update texts.search env lmsg model.searchModel
|
||||
|
||||
model_ =
|
||||
{ model | searchModel = result.model }
|
||||
{ model | searchModel = result.model, selectedItems = result.selectedItems }
|
||||
|
||||
lc =
|
||||
case result.appEvent of
|
||||
|
@ -549,17 +549,22 @@ viewShareDetail texts shareId itemId model =
|
||||
|
||||
viewSearch : Messages -> Maybe String -> Model -> List (Html Msg)
|
||||
viewSearch texts bmId model =
|
||||
let
|
||||
env =
|
||||
{ sidebarVisible = model.sidebarVisible
|
||||
, flags = model.flags
|
||||
, settings = model.uiSettings
|
||||
, selectedItems = model.selectedItems
|
||||
}
|
||||
in
|
||||
[ Html.map SearchMsg
|
||||
(Search.viewSidebar texts.search
|
||||
model.sidebarVisible
|
||||
model.flags
|
||||
model.uiSettings
|
||||
env
|
||||
model.searchModel
|
||||
)
|
||||
, Html.map SearchMsg
|
||||
(Search.viewContent texts.search
|
||||
model.flags
|
||||
model.uiSettings
|
||||
env
|
||||
model.searchModel
|
||||
)
|
||||
]
|
||||
|
@ -24,6 +24,7 @@ import Data.Fields
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.Icons as Icons
|
||||
import Data.ItemArrange exposing (ItemArrange)
|
||||
import Data.ItemIds exposing (ItemIdChange, ItemIds)
|
||||
import Data.ItemSelection exposing (ItemSelection)
|
||||
import Data.ItemTemplate as IT
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
@ -49,7 +50,7 @@ type alias Model =
|
||||
|
||||
type Msg
|
||||
= CyclePreview ItemLight
|
||||
| ToggleSelectItem (Set String) String
|
||||
| ToggleSelectItem ItemIds String
|
||||
| ItemDDMsg DD.Msg
|
||||
| SetLinkTarget LinkTarget
|
||||
| ToggleRowOpen String
|
||||
@ -70,7 +71,7 @@ type alias ViewConfig =
|
||||
type alias UpdateResult =
|
||||
{ model : Model
|
||||
, dragModel : DD.Model
|
||||
, selection : ItemSelection
|
||||
, selection : ItemIdChange
|
||||
, linkTarget : LinkTarget
|
||||
, toggleRow : Maybe String
|
||||
}
|
||||
@ -117,25 +118,21 @@ update : DD.Model -> Msg -> Model -> UpdateResult
|
||||
update ddm msg model =
|
||||
case msg of
|
||||
ToggleRowOpen id ->
|
||||
UpdateResult model ddm Data.ItemSelection.Inactive LinkNone (Just id)
|
||||
UpdateResult model ddm Data.ItemIds.noChange LinkNone (Just id)
|
||||
|
||||
ItemDDMsg lm ->
|
||||
let
|
||||
ddd =
|
||||
DD.update lm ddm
|
||||
in
|
||||
UpdateResult model ddd.model Data.ItemSelection.Inactive LinkNone Nothing
|
||||
UpdateResult model ddd.model Data.ItemIds.noChange LinkNone Nothing
|
||||
|
||||
ToggleSelectItem ids id ->
|
||||
let
|
||||
newSet =
|
||||
if Set.member id ids then
|
||||
Set.remove id ids
|
||||
|
||||
else
|
||||
Set.insert id ids
|
||||
Data.ItemIds.toggle ids id
|
||||
in
|
||||
UpdateResult model ddm (Data.ItemSelection.Active newSet) LinkNone Nothing
|
||||
UpdateResult model ddm newSet LinkNone Nothing
|
||||
|
||||
CyclePreview item ->
|
||||
let
|
||||
@ -147,12 +144,12 @@ update ddm msg model =
|
||||
in
|
||||
UpdateResult { model | previewAttach = next }
|
||||
ddm
|
||||
Data.ItemSelection.Inactive
|
||||
Data.ItemIds.noChange
|
||||
LinkNone
|
||||
Nothing
|
||||
|
||||
SetLinkTarget target ->
|
||||
UpdateResult model ddm Data.ItemSelection.Inactive target Nothing
|
||||
UpdateResult model ddm Data.ItemIds.noChange target Nothing
|
||||
|
||||
|
||||
|
||||
@ -532,7 +529,7 @@ viewCard texts cfg settings flags model item =
|
||||
|
||||
|
||||
mkCardAction : Texts -> ViewConfig -> UiSettings -> ItemLight -> List (Attribute Msg)
|
||||
mkCardAction texts cfg settings item =
|
||||
mkCardAction texts cfg _ item =
|
||||
case cfg.selection of
|
||||
Data.ItemSelection.Inactive ->
|
||||
case cfg.arrange of
|
||||
@ -977,7 +974,7 @@ isSelected : ViewConfig -> String -> Bool
|
||||
isSelected cfg id =
|
||||
case cfg.selection of
|
||||
Data.ItemSelection.Active ids ->
|
||||
Set.member id ids
|
||||
Data.ItemIds.isMember ids id
|
||||
|
||||
Data.ItemSelection.Inactive ->
|
||||
False
|
||||
|
@ -25,6 +25,7 @@ import Comp.ItemCard
|
||||
import Comp.LinkTarget exposing (LinkTarget)
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.ItemArrange exposing (ItemArrange)
|
||||
import Data.ItemIds exposing (ItemIdChange)
|
||||
import Data.ItemSelection exposing (ItemSelection)
|
||||
import Data.Items
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
@ -83,7 +84,7 @@ type alias UpdateResult =
|
||||
{ model : Model
|
||||
, cmd : Cmd Msg
|
||||
, dragModel : DD.Model
|
||||
, selection : ItemSelection
|
||||
, selection : ItemIdChange
|
||||
, linkTarget : LinkTarget
|
||||
, toggleOpenRow : Maybe String
|
||||
}
|
||||
@ -105,7 +106,7 @@ updateDrag dm _ msg model =
|
||||
UpdateResult newModel
|
||||
Cmd.none
|
||||
dm
|
||||
Data.ItemSelection.Inactive
|
||||
Data.ItemIds.noChange
|
||||
Comp.LinkTarget.LinkNone
|
||||
Nothing
|
||||
|
||||
@ -114,7 +115,7 @@ updateDrag dm _ msg model =
|
||||
UpdateResult model
|
||||
Cmd.none
|
||||
dm
|
||||
Data.ItemSelection.Inactive
|
||||
Data.ItemIds.noChange
|
||||
Comp.LinkTarget.LinkNone
|
||||
Nothing
|
||||
|
||||
@ -126,7 +127,7 @@ updateDrag dm _ msg model =
|
||||
UpdateResult newModel
|
||||
Cmd.none
|
||||
dm
|
||||
Data.ItemSelection.Inactive
|
||||
Data.ItemIds.noChange
|
||||
Comp.LinkTarget.LinkNone
|
||||
Nothing
|
||||
|
||||
@ -153,7 +154,7 @@ updateDrag dm _ msg model =
|
||||
UpdateResult { model | results = removeItemById id model.results }
|
||||
Cmd.none
|
||||
dm
|
||||
Data.ItemSelection.Inactive
|
||||
Data.ItemIds.noChange
|
||||
Comp.LinkTarget.LinkNone
|
||||
Nothing
|
||||
|
||||
|
@ -24,8 +24,8 @@ import Api.Model.ItemsAndRefs exposing (ItemsAndRefs)
|
||||
import Api.Model.ReferenceList exposing (ReferenceList)
|
||||
import Data.Direction exposing (Direction)
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.ItemIds exposing (ItemIds)
|
||||
import Http
|
||||
import Set exposing (Set)
|
||||
|
||||
|
||||
type FormChange
|
||||
@ -49,14 +49,14 @@ type FormChange
|
||||
|
||||
multiUpdate :
|
||||
Flags
|
||||
-> Set String
|
||||
-> ItemIds
|
||||
-> FormChange
|
||||
-> (Result Http.Error BasicResult -> msg)
|
||||
-> Cmd msg
|
||||
multiUpdate flags ids change receive =
|
||||
let
|
||||
items =
|
||||
Set.toList ids
|
||||
Data.ItemIds.toList ids
|
||||
in
|
||||
case change of
|
||||
CustomValueChange field value ->
|
||||
@ -159,10 +159,10 @@ multiUpdate flags ids change receive =
|
||||
|
||||
ConfirmChange flag ->
|
||||
if flag then
|
||||
Api.confirmMultiple flags ids receive
|
||||
Api.confirmMultiple flags items receive
|
||||
|
||||
else
|
||||
Api.unconfirmMultiple flags ids receive
|
||||
Api.unconfirmMultiple flags items receive
|
||||
|
||||
NoFormChange ->
|
||||
Cmd.none
|
||||
|
31
modules/webapp/src/main/elm/Data/Environment.elm
Normal file
31
modules/webapp/src/main/elm/Data/Environment.elm
Normal file
@ -0,0 +1,31 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Data.Environment exposing (..)
|
||||
|
||||
import Browser.Navigation as Nav
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.ItemIds exposing (ItemIds)
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
|
||||
|
||||
type alias Update =
|
||||
{ bookmarkId : Maybe String
|
||||
, lastViewedItemId : Maybe String
|
||||
, key : Nav.Key
|
||||
, selectedItems : ItemIds
|
||||
, flags : Flags
|
||||
, settings : UiSettings
|
||||
}
|
||||
|
||||
|
||||
type alias View =
|
||||
{ flags : Flags
|
||||
, sidebarVisible : Bool
|
||||
, settings : UiSettings
|
||||
, selectedItems : ItemIds
|
||||
}
|
132
modules/webapp/src/main/elm/Data/ItemIds.elm
Normal file
132
modules/webapp/src/main/elm/Data/ItemIds.elm
Normal file
@ -0,0 +1,132 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Data.ItemIds exposing
|
||||
( ItemIdChange
|
||||
, ItemIds
|
||||
, apply
|
||||
, combine
|
||||
, combineAll
|
||||
, deselect
|
||||
, empty
|
||||
, fromSet
|
||||
, isEmpty
|
||||
, isMember
|
||||
, noChange
|
||||
, select
|
||||
, selectAll
|
||||
, size
|
||||
, toList
|
||||
, toQuery
|
||||
, toggle
|
||||
, union
|
||||
)
|
||||
|
||||
import Data.ItemQuery exposing (ItemQuery)
|
||||
import Set exposing (Set)
|
||||
|
||||
|
||||
type ItemIds
|
||||
= ItemIds (Set String)
|
||||
|
||||
|
||||
empty : ItemIds
|
||||
empty =
|
||||
ItemIds Set.empty
|
||||
|
||||
|
||||
isEmpty : ItemIds -> Bool
|
||||
isEmpty (ItemIds ids) =
|
||||
Set.isEmpty ids
|
||||
|
||||
|
||||
isMember : ItemIds -> String -> Bool
|
||||
isMember (ItemIds ids) id =
|
||||
Set.member id ids
|
||||
|
||||
|
||||
size : ItemIds -> Int
|
||||
size (ItemIds ids) =
|
||||
Set.size ids
|
||||
|
||||
|
||||
fromSet : Set String -> ItemIds
|
||||
fromSet ids =
|
||||
ItemIds ids
|
||||
|
||||
|
||||
union : ItemIds -> ItemIds -> ItemIds
|
||||
union (ItemIds ids1) (ItemIds ids2) =
|
||||
ItemIds (Set.union ids1 ids2)
|
||||
|
||||
|
||||
toList : ItemIds -> List String
|
||||
toList (ItemIds ids) =
|
||||
Set.toList ids
|
||||
|
||||
|
||||
toQuery : ItemIds -> ItemQuery
|
||||
toQuery (ItemIds ids) =
|
||||
Data.ItemQuery.ItemIdIn (Set.toList ids)
|
||||
|
||||
|
||||
|
||||
--- Change item ids
|
||||
|
||||
|
||||
type ItemIdChange
|
||||
= ItemIdChange
|
||||
{ remove : Set String
|
||||
, add : Set String
|
||||
}
|
||||
|
||||
|
||||
apply : ItemIds -> ItemIdChange -> ItemIds
|
||||
apply (ItemIds ids) (ItemIdChange { remove, add }) =
|
||||
ItemIds (Set.diff ids remove |> Set.union add)
|
||||
|
||||
|
||||
noChange : ItemIdChange
|
||||
noChange =
|
||||
ItemIdChange { remove = Set.empty, add = Set.empty }
|
||||
|
||||
|
||||
combine : ItemIdChange -> ItemIdChange -> ItemIdChange
|
||||
combine (ItemIdChange c1) (ItemIdChange c2) =
|
||||
ItemIdChange
|
||||
{ remove = Set.union c1.remove c2.remove
|
||||
, add = Set.union c1.add c2.add
|
||||
}
|
||||
|
||||
|
||||
combineAll : List ItemIdChange -> ItemIdChange
|
||||
combineAll all =
|
||||
List.foldl combine noChange all
|
||||
|
||||
|
||||
select : String -> ItemIdChange
|
||||
select id =
|
||||
ItemIdChange { add = Set.singleton id, remove = Set.empty }
|
||||
|
||||
|
||||
selectAll : Set String -> ItemIdChange
|
||||
selectAll ids =
|
||||
ItemIdChange { add = ids, remove = Set.empty }
|
||||
|
||||
|
||||
deselect : String -> ItemIdChange
|
||||
deselect id =
|
||||
ItemIdChange { add = Set.empty, remove = Set.singleton id }
|
||||
|
||||
|
||||
toggle : ItemIds -> String -> ItemIdChange
|
||||
toggle ids id =
|
||||
if isMember ids id then
|
||||
deselect id
|
||||
|
||||
else
|
||||
select id
|
@ -11,12 +11,12 @@ module Data.ItemSelection exposing
|
||||
, isSelected
|
||||
)
|
||||
|
||||
import Set exposing (Set)
|
||||
import Data.ItemIds exposing (ItemIds)
|
||||
|
||||
|
||||
type ItemSelection
|
||||
= Inactive
|
||||
| Active (Set String)
|
||||
| Active ItemIds
|
||||
|
||||
|
||||
isSelected : String -> ItemSelection -> Bool
|
||||
@ -26,7 +26,7 @@ isSelected id set =
|
||||
False
|
||||
|
||||
Active ids ->
|
||||
Set.member id ids
|
||||
Data.ItemIds.isMember ids id
|
||||
|
||||
|
||||
isActive : ItemSelection -> Bool
|
||||
|
@ -84,8 +84,7 @@ type ConfirmModalValue
|
||||
|
||||
|
||||
type alias SelectViewModel =
|
||||
{ ids : Set String
|
||||
, action : SelectActionMode
|
||||
{ action : SelectActionMode
|
||||
, confirmModal : Maybe ConfirmModalValue
|
||||
, editModel : Comp.ItemDetail.MultiEditMenu.Model
|
||||
, mergeModel : Comp.ItemMerge.Model
|
||||
@ -97,8 +96,7 @@ type alias SelectViewModel =
|
||||
|
||||
initSelectViewModel : Flags -> SelectViewModel
|
||||
initSelectViewModel flags =
|
||||
{ ids = Set.empty
|
||||
, action = NoneAction
|
||||
{ action = NoneAction
|
||||
, confirmModal = Nothing
|
||||
, editModel = Comp.ItemDetail.MultiEditMenu.init
|
||||
, mergeModel = Comp.ItemMerge.init []
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -18,9 +18,11 @@ import Comp.PowerSearchInput
|
||||
import Comp.PublishItems
|
||||
import Comp.SearchMenu
|
||||
import Comp.SearchStatsView
|
||||
import Data.Environment as Env
|
||||
import Data.Flags exposing (Flags)
|
||||
import Data.Icons as Icons
|
||||
import Data.ItemArrange
|
||||
import Data.ItemIds exposing (ItemIds)
|
||||
import Data.ItemSelection
|
||||
import Data.SearchMode
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
@ -36,27 +38,27 @@ import Styles as S
|
||||
import Util.Html
|
||||
|
||||
|
||||
viewSidebar : Texts -> Bool -> Flags -> UiSettings -> Model -> Html Msg
|
||||
viewSidebar texts visible flags settings model =
|
||||
viewSidebar : Texts -> Env.View -> Model -> Html Msg
|
||||
viewSidebar texts env model =
|
||||
div
|
||||
[ id "sidebar"
|
||||
, class S.sidebar
|
||||
, class S.sidebarBg
|
||||
, classList [ ( "hidden", not visible ) ]
|
||||
, classList [ ( "hidden", not env.sidebarVisible ) ]
|
||||
]
|
||||
[ Page.Search.SideMenu.view texts.sideMenu flags settings model
|
||||
[ Page.Search.SideMenu.view texts.sideMenu env.flags env.settings model
|
||||
]
|
||||
|
||||
|
||||
viewContent : Texts -> Flags -> UiSettings -> Model -> Html Msg
|
||||
viewContent texts flags settings model =
|
||||
viewContent : Texts -> Env.View -> Model -> Html Msg
|
||||
viewContent texts env model =
|
||||
div
|
||||
[ id "item-card-list" -- this id is used in scroll-to-card
|
||||
, class S.content
|
||||
]
|
||||
(searchStats texts flags settings model
|
||||
++ itemsBar texts flags settings model
|
||||
++ mainView texts flags settings model
|
||||
(searchStats texts env.flags env.settings model
|
||||
++ itemsBar texts env model
|
||||
++ mainView texts env model
|
||||
++ confirmModal texts model
|
||||
)
|
||||
|
||||
@ -65,8 +67,8 @@ viewContent texts flags settings model =
|
||||
--- Helpers
|
||||
|
||||
|
||||
mainView : Texts -> Flags -> UiSettings -> Model -> List (Html Msg)
|
||||
mainView texts flags settings model =
|
||||
mainView : Texts -> Env.View -> Model -> List (Html Msg)
|
||||
mainView texts env model =
|
||||
let
|
||||
otherView =
|
||||
case model.viewMode of
|
||||
@ -75,13 +77,13 @@ mainView texts flags settings model =
|
||||
MergeSelected ->
|
||||
Just
|
||||
[ div [ class "sm:relative mb-2" ]
|
||||
(itemMergeView texts settings svm)
|
||||
(itemMergeView texts env.settings svm)
|
||||
]
|
||||
|
||||
PublishSelected ->
|
||||
Just
|
||||
[ div [ class "sm:relative mb-2" ]
|
||||
(itemPublishView texts settings flags svm)
|
||||
(itemPublishView texts env.settings env.flags svm)
|
||||
]
|
||||
|
||||
_ ->
|
||||
@ -90,7 +92,7 @@ mainView texts flags settings model =
|
||||
PublishView pm ->
|
||||
Just
|
||||
[ div [ class "sm:relative mb-2" ]
|
||||
(publishResults texts settings flags model pm)
|
||||
(publishResults texts env.settings env.flags model pm)
|
||||
]
|
||||
|
||||
SearchView ->
|
||||
@ -101,8 +103,8 @@ mainView texts flags settings model =
|
||||
body
|
||||
|
||||
Nothing ->
|
||||
bookmarkQueryWidget texts settings flags model
|
||||
++ itemCardList texts flags settings model
|
||||
bookmarkQueryWidget texts env.settings env.flags model
|
||||
++ itemCardList texts env model
|
||||
|
||||
|
||||
bookmarkQueryWidget : Texts -> UiSettings -> Flags -> Model -> List (Html Msg)
|
||||
@ -182,17 +184,17 @@ confirmModal texts model =
|
||||
[]
|
||||
|
||||
|
||||
itemsBar : Texts -> Flags -> UiSettings -> Model -> List (Html Msg)
|
||||
itemsBar texts flags settings model =
|
||||
itemsBar : Texts -> Env.View -> Model -> List (Html Msg)
|
||||
itemsBar texts env model =
|
||||
case model.viewMode of
|
||||
SearchView ->
|
||||
[ defaultMenuBar texts flags settings model ]
|
||||
[ defaultMenuBar texts env.flags env.settings model ]
|
||||
|
||||
SelectView svm ->
|
||||
[ editMenuBar texts model svm ]
|
||||
[ editMenuBar texts model env.selectedItems svm ]
|
||||
|
||||
PublishView _ ->
|
||||
[ defaultMenuBar texts flags settings model ]
|
||||
[ defaultMenuBar texts env.flags env.settings model ]
|
||||
|
||||
|
||||
defaultMenuBar : Texts -> Flags -> UiSettings -> Model -> Html Msg
|
||||
@ -427,11 +429,11 @@ defaultMenuBar texts flags settings model =
|
||||
}
|
||||
|
||||
|
||||
editMenuBar : Texts -> Model -> SelectViewModel -> Html Msg
|
||||
editMenuBar texts model svm =
|
||||
editMenuBar : Texts -> Model -> ItemIds -> SelectViewModel -> Html Msg
|
||||
editMenuBar texts model selectedItems svm =
|
||||
let
|
||||
selectCount =
|
||||
Set.size svm.ids
|
||||
Data.ItemIds.size selectedItems
|
||||
|
||||
btnStyle =
|
||||
S.secondaryBasicButton ++ " text-sm"
|
||||
@ -565,8 +567,8 @@ searchStats texts _ settings model =
|
||||
[]
|
||||
|
||||
|
||||
itemCardList : Texts -> Flags -> UiSettings -> Model -> List (Html Msg)
|
||||
itemCardList texts flags settings model =
|
||||
itemCardList : Texts -> Env.View -> Model -> List (Html Msg)
|
||||
itemCardList texts env model =
|
||||
let
|
||||
previewUrl attach =
|
||||
Api.attachmentPreviewURL attach.id
|
||||
@ -581,15 +583,15 @@ itemCardList texts flags settings model =
|
||||
, previewUrlFallback = previewUrlFallback
|
||||
, attachUrl = .id >> Api.fileURL
|
||||
, detailPage = .id >> ItemDetailPage
|
||||
, arrange = settings.itemSearchArrange
|
||||
, showGroups = settings.itemSearchShowGroups
|
||||
, arrange = env.settings.itemSearchArrange
|
||||
, showGroups = env.settings.itemSearchShowGroups
|
||||
, rowOpen = \id -> Set.member "all" model.itemRowsOpen || Set.member id model.itemRowsOpen
|
||||
}
|
||||
|
||||
itemViewCfg =
|
||||
case model.viewMode of
|
||||
SelectView svm ->
|
||||
viewCfg (Data.ItemSelection.Active svm.ids)
|
||||
SelectView _ ->
|
||||
viewCfg (Data.ItemSelection.Active env.selectedItems)
|
||||
|
||||
_ ->
|
||||
viewCfg Data.ItemSelection.Inactive
|
||||
@ -597,11 +599,11 @@ itemCardList texts flags settings model =
|
||||
[ Html.map ItemCardListMsg
|
||||
(Comp.ItemCardList.view texts.itemCardList
|
||||
itemViewCfg
|
||||
settings
|
||||
flags
|
||||
env.settings
|
||||
env.flags
|
||||
model.itemListModel
|
||||
)
|
||||
, loadMore texts settings model
|
||||
, loadMore texts env.settings model
|
||||
]
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user