mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-09-30 00:28:23 +00:00
Refactor to allow internal card links into search menu
Also allows to exchange the preview-url in the item card
This commit is contained in:
@@ -1035,33 +1035,7 @@ doSearch param model =
|
||||
|
||||
linkTargetMsg : LinkTarget -> Maybe Msg
|
||||
linkTargetMsg linkTarget =
|
||||
case linkTarget of
|
||||
Comp.LinkTarget.LinkNone ->
|
||||
Nothing
|
||||
|
||||
Comp.LinkTarget.LinkCorrOrg id ->
|
||||
Just <| SearchMenuMsg (Comp.SearchMenu.SetCorrOrg id)
|
||||
|
||||
Comp.LinkTarget.LinkCorrPerson id ->
|
||||
Just <| SearchMenuMsg (Comp.SearchMenu.SetCorrPerson id)
|
||||
|
||||
Comp.LinkTarget.LinkConcPerson id ->
|
||||
Just <| SearchMenuMsg (Comp.SearchMenu.SetConcPerson id)
|
||||
|
||||
Comp.LinkTarget.LinkConcEquip id ->
|
||||
Just <| SearchMenuMsg (Comp.SearchMenu.SetConcEquip id)
|
||||
|
||||
Comp.LinkTarget.LinkFolder id ->
|
||||
Just <| SearchMenuMsg (Comp.SearchMenu.SetFolder id)
|
||||
|
||||
Comp.LinkTarget.LinkTag id ->
|
||||
Just <| SearchMenuMsg (Comp.SearchMenu.SetTag id.id)
|
||||
|
||||
Comp.LinkTarget.LinkCustomField id ->
|
||||
Just <| SearchMenuMsg (Comp.SearchMenu.SetCustomField id)
|
||||
|
||||
Comp.LinkTarget.LinkSource str ->
|
||||
Just <| SearchMenuMsg (Comp.SearchMenu.ResetToSource str)
|
||||
Maybe.map SearchMenuMsg (Comp.SearchMenu.linkTargetMsg linkTarget)
|
||||
|
||||
|
||||
doSearchMore : Flags -> UiSettings -> Model -> ( Model, Cmd Msg )
|
||||
|
@@ -7,6 +7,7 @@
|
||||
|
||||
module Page.Home.View2 exposing (viewContent, viewSidebar)
|
||||
|
||||
import Api
|
||||
import Comp.Basic as B
|
||||
import Comp.ConfirmModal
|
||||
import Comp.ItemCardList
|
||||
@@ -461,17 +462,27 @@ searchStats texts _ settings model =
|
||||
itemCardList : Texts -> Flags -> UiSettings -> Model -> List (Html Msg)
|
||||
itemCardList texts _ settings model =
|
||||
let
|
||||
previewUrl attach =
|
||||
Api.attachmentPreviewURL attach.id
|
||||
|
||||
previewUrlFallback item =
|
||||
Api.itemBasePreviewURL item.id
|
||||
|
||||
itemViewCfg =
|
||||
case model.viewMode of
|
||||
SelectView svm ->
|
||||
Comp.ItemCardList.ViewConfig
|
||||
model.scrollToCard
|
||||
(Data.ItemSelection.Active svm.ids)
|
||||
previewUrl
|
||||
previewUrlFallback
|
||||
|
||||
_ ->
|
||||
Comp.ItemCardList.ViewConfig
|
||||
model.scrollToCard
|
||||
Data.ItemSelection.Inactive
|
||||
previewUrl
|
||||
previewUrlFallback
|
||||
in
|
||||
[ Html.map ItemCardListMsg
|
||||
(Comp.ItemCardList.view2 texts.itemCardList
|
||||
|
@@ -1,3 +1,10 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Page.Share.Menubar exposing (view)
|
||||
|
||||
import Comp.Basic as B
|
||||
|
@@ -1,5 +1,13 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Page.Share.Results exposing (view)
|
||||
|
||||
import Api
|
||||
import Comp.ItemCardList
|
||||
import Data.ItemSelection
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
@@ -15,6 +23,8 @@ view texts settings model =
|
||||
viewCfg =
|
||||
{ current = Nothing
|
||||
, selection = Data.ItemSelection.Inactive
|
||||
, previewUrl = \attach -> Api.shareAttachmentPreviewURL attach.id
|
||||
, previewUrlFallback = \item -> Api.shareItemBasePreviewURL item.id
|
||||
}
|
||||
in
|
||||
div []
|
||||
|
@@ -1,3 +1,10 @@
|
||||
{-
|
||||
Copyright 2020 Eike K. & Contributors
|
||||
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-}
|
||||
|
||||
|
||||
module Page.Share.Sidebar exposing (..)
|
||||
|
||||
import Comp.SearchMenu
|
||||
|
@@ -10,6 +10,7 @@ module Page.Share.Update exposing (UpdateResult, update)
|
||||
import Api
|
||||
import Api.Model.ItemQuery
|
||||
import Comp.ItemCardList
|
||||
import Comp.LinkTarget exposing (LinkTarget)
|
||||
import Comp.PowerSearchInput
|
||||
import Comp.SearchMenu
|
||||
import Data.Flags exposing (Flags)
|
||||
@@ -17,6 +18,7 @@ import Data.ItemQuery as Q
|
||||
import Data.SearchMode
|
||||
import Data.UiSettings exposing (UiSettings)
|
||||
import Page.Share.Data exposing (..)
|
||||
import Util.Update
|
||||
|
||||
|
||||
type alias UpdateResult =
|
||||
@@ -155,10 +157,17 @@ update flags settings shareId msg model =
|
||||
|
||||
ItemListMsg lm ->
|
||||
let
|
||||
( im, ic ) =
|
||||
( im, ic, linkTarget ) =
|
||||
Comp.ItemCardList.update flags lm model.itemListModel
|
||||
|
||||
searchMsg =
|
||||
Maybe.map Util.Update.cmdUnit (linkTargetMsg linkTarget)
|
||||
|> Maybe.withDefault Cmd.none
|
||||
in
|
||||
noSub ( { model | itemListModel = im }, Cmd.map ItemListMsg ic )
|
||||
noSub
|
||||
( { model | itemListModel = im }
|
||||
, Cmd.batch [ Cmd.map ItemListMsg ic, searchMsg ]
|
||||
)
|
||||
|
||||
|
||||
noSub : ( Model, Cmd Msg ) -> UpdateResult
|
||||
@@ -184,3 +193,8 @@ makeSearchCmd flags model =
|
||||
}
|
||||
in
|
||||
Api.searchShare flags model.verifyResult.token (request xq) SearchResp
|
||||
|
||||
|
||||
linkTargetMsg : LinkTarget -> Maybe Msg
|
||||
linkTargetMsg linkTarget =
|
||||
Maybe.map SearchMenuMsg (Comp.SearchMenu.linkTargetMsg linkTarget)
|
||||
|
Reference in New Issue
Block a user