From 67e8994aecc3ca56d16f3d13365c3da3cae1d7a1 Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Mon, 9 Nov 2020 14:29:52 +0100 Subject: [PATCH] Use attachment preview urls This changes the preview urls to use the concrete attachment ids. This way browsers have it easier to switch the preview image when the attachment position is changed. --- modules/webapp/src/main/elm/Api.elm | 17 +++++++++++++++-- .../webapp/src/main/elm/Comp/ItemCardList.elm | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/modules/webapp/src/main/elm/Api.elm b/modules/webapp/src/main/elm/Api.elm index 7230be7e..601f092e 100644 --- a/modules/webapp/src/main/elm/Api.elm +++ b/modules/webapp/src/main/elm/Api.elm @@ -144,6 +144,7 @@ import Api.Model.InviteResult exposing (InviteResult) import Api.Model.ItemDetail exposing (ItemDetail) import Api.Model.ItemFtsSearch exposing (ItemFtsSearch) import Api.Model.ItemInsights exposing (ItemInsights) +import Api.Model.ItemLight exposing (ItemLight) import Api.Model.ItemLightList exposing (ItemLightList) import Api.Model.ItemProposals exposing (ItemProposals) import Api.Model.ItemSearch exposing (ItemSearch) @@ -1503,8 +1504,20 @@ deleteAllItems flags ids receive = --- Item -itemPreviewURL : String -> String -itemPreviewURL itemId = +itemPreviewURL : ItemLight -> String +itemPreviewURL item = + let + makeUrl a = + "/api/v1/sec/attachment/" ++ a.id ++ "/preview?withFallback=true" + in + List.sortBy .position item.attachments + |> List.head + |> Maybe.map makeUrl + |> Maybe.withDefault (itemBasePreviewURL item.id) + + +itemBasePreviewURL : String -> String +itemBasePreviewURL itemId = "/api/v1/sec/item/" ++ itemId ++ "/preview?withFallback=true" diff --git a/modules/webapp/src/main/elm/Comp/ItemCardList.elm b/modules/webapp/src/main/elm/Comp/ItemCardList.elm index b9595b67..2b6fd4fc 100644 --- a/modules/webapp/src/main/elm/Comp/ItemCardList.elm +++ b/modules/webapp/src/main/elm/Comp/ItemCardList.elm @@ -238,7 +238,7 @@ viewItem cfg settings item = div [ class "image" ] [ img [ class "preview-image" - , src (Api.itemPreviewURL item.id) + , src (Api.itemPreviewURL item) , Data.UiSettings.cardPreviewSize settings ] []