mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-09-30 00:28:23 +00:00
Bookmark queries scoped to user or collective
This commit is contained in:
@@ -13,6 +13,7 @@ module Page.Home.Data exposing
|
||||
, SearchType(..)
|
||||
, SelectActionMode(..)
|
||||
, SelectViewModel
|
||||
, TopWidgetModel(..)
|
||||
, ViewMode(..)
|
||||
, createQuery
|
||||
, doSearchCmd
|
||||
@@ -30,6 +31,7 @@ import Api.Model.BasicResult exposing (BasicResult)
|
||||
import Api.Model.ItemLightList exposing (ItemLightList)
|
||||
import Api.Model.SearchStats exposing (SearchStats)
|
||||
import Browser.Dom as Dom
|
||||
import Comp.BookmarkQueryManage
|
||||
import Comp.ItemCardList
|
||||
import Comp.ItemDetail.FormChange exposing (FormChange)
|
||||
import Comp.ItemDetail.MultiEditMenu exposing (SaveNameState(..))
|
||||
@@ -68,9 +70,15 @@ type alias Model =
|
||||
, powerSearchInput : Comp.PowerSearchInput.Model
|
||||
, viewMenuOpen : Bool
|
||||
, itemRowsOpen : Set String
|
||||
, topWidgetModel : TopWidgetModel
|
||||
}
|
||||
|
||||
|
||||
type TopWidgetModel
|
||||
= TopWidgetHidden
|
||||
| BookmarkQuery Comp.BookmarkQueryManage.Model
|
||||
|
||||
|
||||
type ConfirmModalValue
|
||||
= ConfirmReprocessItems
|
||||
| ConfirmDelete
|
||||
@@ -137,6 +145,7 @@ init flags viewMode =
|
||||
, powerSearchInput = Comp.PowerSearchInput.init
|
||||
, viewMenuOpen = False
|
||||
, itemRowsOpen = Set.empty
|
||||
, topWidgetModel = TopWidgetHidden
|
||||
}
|
||||
|
||||
|
||||
@@ -238,6 +247,8 @@ type Msg
|
||||
| ToggleShowGroups
|
||||
| ToggleArrange ItemArrange
|
||||
| ToggleExpandCollapseRows
|
||||
| ToggleBookmarkCurrentQueryView
|
||||
| BookmarkQueryMsg Comp.BookmarkQueryManage.Msg
|
||||
|
||||
|
||||
type SearchType
|
||||
|
@@ -13,6 +13,7 @@ module Page.Home.Update exposing
|
||||
import Api
|
||||
import Api.Model.ItemLightList exposing (ItemLightList)
|
||||
import Browser.Navigation as Nav
|
||||
import Comp.BookmarkQueryManage
|
||||
import Comp.ItemCardList
|
||||
import Comp.ItemDetail.FormChange exposing (FormChange(..))
|
||||
import Comp.ItemDetail.MultiEditMenu exposing (SaveNameState(..))
|
||||
@@ -927,6 +928,54 @@ update mId key flags texts settings msg model =
|
||||
Nothing ->
|
||||
noSub ( model, Cmd.none )
|
||||
|
||||
ToggleBookmarkCurrentQueryView ->
|
||||
case createQuery model of
|
||||
Just q ->
|
||||
case model.topWidgetModel of
|
||||
BookmarkQuery _ ->
|
||||
noSub ( { model | topWidgetModel = TopWidgetHidden, viewMenuOpen = False }, Cmd.none )
|
||||
|
||||
TopWidgetHidden ->
|
||||
let
|
||||
( qm, qc ) =
|
||||
Comp.BookmarkQueryManage.init (Q.render q)
|
||||
in
|
||||
noSub
|
||||
( { model | topWidgetModel = BookmarkQuery qm, viewMenuOpen = False }
|
||||
, Cmd.map BookmarkQueryMsg qc
|
||||
)
|
||||
|
||||
Nothing ->
|
||||
noSub ( model, Cmd.none )
|
||||
|
||||
BookmarkQueryMsg lm ->
|
||||
case model.topWidgetModel of
|
||||
BookmarkQuery bm ->
|
||||
let
|
||||
res =
|
||||
Comp.BookmarkQueryManage.update flags lm bm
|
||||
|
||||
nextModel =
|
||||
if
|
||||
res.outcome
|
||||
== Comp.BookmarkQueryManage.Cancelled
|
||||
|| res.outcome
|
||||
== Comp.BookmarkQueryManage.Done
|
||||
then
|
||||
TopWidgetHidden
|
||||
|
||||
else
|
||||
BookmarkQuery res.model
|
||||
in
|
||||
makeResult
|
||||
( { model | topWidgetModel = nextModel }
|
||||
, Cmd.map BookmarkQueryMsg res.cmd
|
||||
, Sub.map BookmarkQueryMsg res.sub
|
||||
)
|
||||
|
||||
TopWidgetHidden ->
|
||||
noSub ( model, Cmd.none )
|
||||
|
||||
PublishViewMsg lmsg ->
|
||||
case model.viewMode of
|
||||
PublishView inPM ->
|
||||
|
@@ -9,6 +9,7 @@ module Page.Home.View2 exposing (viewContent, viewSidebar)
|
||||
|
||||
import Api
|
||||
import Comp.Basic as B
|
||||
import Comp.BookmarkQueryManage
|
||||
import Comp.ConfirmModal
|
||||
import Comp.ItemCardList
|
||||
import Comp.ItemMerge
|
||||
@@ -103,7 +104,21 @@ mainView texts flags settings model =
|
||||
body
|
||||
|
||||
Nothing ->
|
||||
itemCardList texts flags settings model
|
||||
bookmarkQueryWidget texts settings flags model
|
||||
++ itemCardList texts flags settings model
|
||||
|
||||
|
||||
bookmarkQueryWidget : Texts -> UiSettings -> Flags -> Model -> List (Html Msg)
|
||||
bookmarkQueryWidget texts settings flags model =
|
||||
case model.topWidgetModel of
|
||||
BookmarkQuery m ->
|
||||
[ div [ class "px-2 mb-4 border-l border-r border-b dark:border-slate-600" ]
|
||||
[ Html.map BookmarkQueryMsg (Comp.BookmarkQueryManage.view texts.bookmarkManage m)
|
||||
]
|
||||
]
|
||||
|
||||
TopWidgetHidden ->
|
||||
[]
|
||||
|
||||
|
||||
itemPublishView : Texts -> UiSettings -> Flags -> SelectViewModel -> List (Html Msg)
|
||||
@@ -354,7 +369,7 @@ defaultMenuBar texts flags settings model =
|
||||
]
|
||||
}
|
||||
, menuSep
|
||||
, { label = "Share Results"
|
||||
, { label = texts.shareResults
|
||||
, icon = Icons.shareIcon ""
|
||||
, disabled = createQuery model == Nothing
|
||||
, attrs =
|
||||
@@ -372,6 +387,24 @@ defaultMenuBar texts flags settings model =
|
||||
onClick TogglePublishCurrentQueryView
|
||||
]
|
||||
}
|
||||
, { label = texts.bookmarkQuery
|
||||
, icon = i [ class "fa fa-bookmark" ] []
|
||||
, disabled = createQuery model == Nothing
|
||||
, attrs =
|
||||
[ title <|
|
||||
if createQuery model == Nothing then
|
||||
texts.nothingToBookmark
|
||||
|
||||
else
|
||||
texts.bookmarkQuery
|
||||
, href "#"
|
||||
, if createQuery model == Nothing then
|
||||
class ""
|
||||
|
||||
else
|
||||
onClick ToggleBookmarkCurrentQueryView
|
||||
]
|
||||
}
|
||||
, { label =
|
||||
if settings.cardPreviewFullWidth then
|
||||
texts.fullHeightPreviewTitle
|
||||
|
Reference in New Issue
Block a user