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:
eikek
2021-10-05 01:44:50 +02:00
parent 83dd675e4f
commit 7b0f378558
10 changed files with 111 additions and 39 deletions

View File

@@ -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 )

View File

@@ -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

View File

@@ -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

View File

@@ -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 []

View File

@@ -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

View File

@@ -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)