From f216c472ee632bab8cad58ae555f90f8f839a6d3 Mon Sep 17 00:00:00 2001 From: eikek Date: Wed, 6 Oct 2021 23:20:16 +0200 Subject: [PATCH] Detect how to display pdf files Closes: #1099 --- .../restserver/src/main/templates/index.html | 13 ++++ modules/webapp/src/main/elm/Comp/ItemCard.elm | 17 ++--- .../webapp/src/main/elm/Comp/ItemCardList.elm | 18 ++--- .../src/main/elm/Comp/ItemDetail/Model.elm | 3 - .../elm/Comp/ItemDetail/SingleAttachment.elm | 20 +----- .../src/main/elm/Comp/ItemDetail/Update.elm | 13 ---- .../src/main/elm/Comp/UiSettingsForm.elm | 56 ++++++++++------ modules/webapp/src/main/elm/Data/Flags.elm | 1 + modules/webapp/src/main/elm/Data/Pdf.elm | 67 +++++++++++++++++++ .../webapp/src/main/elm/Data/UiSettings.elm | 38 ++++++++--- .../main/elm/Messages/Comp/UiSettingsForm.elm | 5 ++ .../src/main/elm/Messages/Data/PdfMode.elm | 39 +++++++++++ .../webapp/src/main/elm/Page/Home/View2.elm | 3 +- .../src/main/elm/Page/Share/Results.elm | 7 +- .../webapp/src/main/elm/Page/Share/View.elm | 4 +- 15 files changed, 217 insertions(+), 87 deletions(-) create mode 100644 modules/webapp/src/main/elm/Data/Pdf.elm create mode 100644 modules/webapp/src/main/elm/Messages/Data/PdfMode.elm diff --git a/modules/restserver/src/main/templates/index.html b/modules/restserver/src/main/templates/index.html index 6ae141fb..2a61f28c 100644 --- a/modules/restserver/src/main/templates/index.html +++ b/modules/restserver/src/main/templates/index.html @@ -43,8 +43,21 @@ // this is required for transitioning; elm fails to parse the account account["requireSecondFactor"] = false; } + + // hack to guess if the browser can display PDFs natively. It + // seems that almost all browsers allow to query the + // navigator.mimeTypes array, except firefox. + var ua = navigator.userAgent.toLowerCase(); + var pdfSupported = false; + if (ua.indexOf("firefox") > -1) { + pdfSupported = ua.indexOf("mobile") == -1; + } else { + pdfSupported = "application/pdf" in navigator.mimeTypes; + } + var elmFlags = { "account": account, + "pdfSupported": pdfSupported, "config": {{{flagsJson}}} }; diff --git a/modules/webapp/src/main/elm/Comp/ItemCard.elm b/modules/webapp/src/main/elm/Comp/ItemCard.elm index 554cb1c5..093afbc2 100644 --- a/modules/webapp/src/main/elm/Comp/ItemCard.elm +++ b/modules/webapp/src/main/elm/Comp/ItemCard.elm @@ -22,6 +22,7 @@ import Api.Model.ItemLight exposing (ItemLight) import Comp.LinkTarget exposing (LinkTarget(..)) import Data.Direction import Data.Fields +import Data.Flags exposing (Flags) import Data.Icons as Icons import Data.ItemSelection exposing (ItemSelection) import Data.ItemTemplate as IT @@ -150,8 +151,8 @@ update ddm msg model = --- View2 -view2 : Texts -> ViewConfig -> UiSettings -> Model -> ItemLight -> Html Msg -view2 texts cfg settings model item = +view2 : Texts -> ViewConfig -> UiSettings -> Flags -> Model -> ItemLight -> Html Msg +view2 texts cfg settings flags model item = let isCreated = item.state == "created" @@ -221,7 +222,7 @@ view2 texts cfg settings model item = , metaDataContent2 texts settings item , notesContent2 settings item , fulltextResultsContent2 item - , previewMenu2 texts settings cfg model item (currentAttachment model item) + , previewMenu2 texts settings flags cfg model item (currentAttachment model item) , selectedDimmer ] ) @@ -475,8 +476,8 @@ previewImage2 cfg settings cardAction model item = ] -previewMenu2 : Texts -> UiSettings -> ViewConfig -> Model -> ItemLight -> Maybe AttachmentLight -> Html Msg -previewMenu2 texts settings cfg model item mainAttach = +previewMenu2 : Texts -> UiSettings -> Flags -> ViewConfig -> Model -> ItemLight -> Maybe AttachmentLight -> Html Msg +previewMenu2 texts settings flags cfg model item mainAttach = let pageCount = Maybe.andThen .pageCount mainAttach @@ -489,11 +490,7 @@ previewMenu2 texts settings cfg model item mainAttach = Data.UiSettings.fieldHidden settings f mkAttachUrl attach = - if settings.nativePdfPreview then - cfg.attachUrl attach - - else - cfg.attachUrl attach ++ "/view" + Data.UiSettings.pdfUrl settings flags (cfg.attachUrl attach) attachUrl = Maybe.map mkAttachUrl mainAttach diff --git a/modules/webapp/src/main/elm/Comp/ItemCardList.elm b/modules/webapp/src/main/elm/Comp/ItemCardList.elm index 1986411d..df8b7af4 100644 --- a/modules/webapp/src/main/elm/Comp/ItemCardList.elm +++ b/modules/webapp/src/main/elm/Comp/ItemCardList.elm @@ -169,19 +169,19 @@ type alias ViewConfig = } -view2 : Texts -> ViewConfig -> UiSettings -> Model -> Html Msg -view2 texts cfg settings model = +view2 : Texts -> ViewConfig -> UiSettings -> Flags -> Model -> Html Msg +view2 texts cfg settings flags model = div [ classList [ ( "ds-item-list", True ) , ( "ds-multi-select-mode", isMultiSelectMode cfg ) ] ] - (List.map (viewGroup2 texts model cfg settings) model.results.groups) + (List.map (viewGroup2 texts model cfg settings flags) model.results.groups) -viewGroup2 : Texts -> Model -> ViewConfig -> UiSettings -> ItemLightGroup -> Html Msg -viewGroup2 texts model cfg settings group = +viewGroup2 : Texts -> Model -> ViewConfig -> UiSettings -> Flags -> ItemLightGroup -> Html Msg +viewGroup2 texts model cfg settings flags group = div [ class "ds-item-group" ] [ div [ class "flex py-1 mt-2 mb-2 flex flex-row items-center" @@ -206,12 +206,12 @@ viewGroup2 texts model cfg settings group = [] ] , div [ class "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-4 gap-2" ] - (List.map (viewItem2 texts model cfg settings) group.items) + (List.map (viewItem2 texts model cfg settings flags) group.items) ] -viewItem2 : Texts -> Model -> ViewConfig -> UiSettings -> ItemLight -> Html Msg -viewItem2 texts model cfg settings item = +viewItem2 : Texts -> Model -> ViewConfig -> UiSettings -> Flags -> ItemLight -> Html Msg +viewItem2 texts model cfg settings flags item = let currentClass = if cfg.current == Just item.id then @@ -228,7 +228,7 @@ viewItem2 texts model cfg settings item = |> Maybe.withDefault Comp.ItemCard.init cardHtml = - Comp.ItemCard.view2 texts.itemCard vvcfg settings cardModel item + Comp.ItemCard.view2 texts.itemCard vvcfg settings flags cardModel item in Html.map (ItemCardMsg item) cardHtml diff --git a/modules/webapp/src/main/elm/Comp/ItemDetail/Model.elm b/modules/webapp/src/main/elm/Comp/ItemDetail/Model.elm index 1302791d..d995ef7d 100644 --- a/modules/webapp/src/main/elm/Comp/ItemDetail/Model.elm +++ b/modules/webapp/src/main/elm/Comp/ItemDetail/Model.elm @@ -100,7 +100,6 @@ type alias Model = , sentMailsOpen : Bool , attachMeta : Dict String Comp.AttachmentMeta.Model , attachMetaOpen : Bool - , pdfNativeView : Maybe Bool , attachModal : Maybe ConfirmModalValue , addFilesOpen : Bool , addFilesModel : Comp.Dropzone.Model @@ -236,7 +235,6 @@ emptyModel = , sentMailsOpen = False , attachMeta = Dict.empty , attachMetaOpen = False - , pdfNativeView = Nothing , attachModal = Nothing , addFilesOpen = False , addFilesModel = Comp.Dropzone.init [] @@ -316,7 +314,6 @@ type Msg | SentMailsResp (Result Http.Error SentMails) | AttachMetaClick String | AttachMetaMsg String Comp.AttachmentMeta.Msg - | TogglePdfNativeView Bool | RequestDeleteAttachment String | DeleteAttachConfirmed String | RequestDeleteSelected diff --git a/modules/webapp/src/main/elm/Comp/ItemDetail/SingleAttachment.elm b/modules/webapp/src/main/elm/Comp/ItemDetail/SingleAttachment.elm index 61143847..52f935f9 100644 --- a/modules/webapp/src/main/elm/Comp/ItemDetail/SingleAttachment.elm +++ b/modules/webapp/src/main/elm/Comp/ItemDetail/SingleAttachment.elm @@ -85,12 +85,8 @@ view texts flags settings model pos attach = , style "max-height" "calc(100vh - 140px)" , style "min-height" "500px" ] - [ iframe - [ if Maybe.withDefault settings.nativePdfPreview model.pdfNativeView then - src fileUrl - - else - src (fileUrl ++ "/view") + [ embed + [ src <| Data.UiSettings.pdfUrl settings flags fileUrl , class "absolute h-full w-full top-0 left-0 mx-0 py-0" , id "ds-pdf-view-iframe" ] @@ -254,18 +250,6 @@ attachHeader texts settings model _ attach = , classList [ ( "hidden", not attach.converted ) ] ] } - , { icon = - if Maybe.withDefault settings.nativePdfPreview model.pdfNativeView then - "fa fa-toggle-on" - - else - "fa fa-toggle-off" - , label = texts.renderPdfByBrowser - , attrs = - [ onClick (TogglePdfNativeView settings.nativePdfPreview) - , href "#" - ] - } , { icon = if isAttachMetaOpen model attach.id then "fa fa-toggle-on" diff --git a/modules/webapp/src/main/elm/Comp/ItemDetail/Update.elm b/modules/webapp/src/main/elm/Comp/ItemDetail/Update.elm index 4299e632..c6b41490 100644 --- a/modules/webapp/src/main/elm/Comp/ItemDetail/Update.elm +++ b/modules/webapp/src/main/elm/Comp/ItemDetail/Update.elm @@ -913,19 +913,6 @@ update key flags inav settings msg model = Nothing -> resultModel model - TogglePdfNativeView default -> - resultModel - { model - | pdfNativeView = - case model.pdfNativeView of - Just flag -> - Just (not flag) - - Nothing -> - Just (not default) - , attachmentDropdownOpen = False - } - DeleteAttachConfirmed attachId -> let cmd = diff --git a/modules/webapp/src/main/elm/Comp/UiSettingsForm.elm b/modules/webapp/src/main/elm/Comp/UiSettingsForm.elm index 4e4b1632..ecfb6781 100644 --- a/modules/webapp/src/main/elm/Comp/UiSettingsForm.elm +++ b/modules/webapp/src/main/elm/Comp/UiSettingsForm.elm @@ -28,6 +28,7 @@ import Data.DropdownStyle as DS import Data.Fields exposing (Field) import Data.Flags exposing (Flags) import Data.ItemTemplate as IT exposing (ItemTemplate) +import Data.Pdf exposing (PdfMode) import Data.TagOrder import Data.UiSettings exposing (ItemPattern, Pos(..), UiSettings) import Dict exposing (Dict) @@ -50,7 +51,8 @@ type alias Model = , searchPageSizeModel : Comp.IntField.Model , tagColors : Dict String Color , tagColorModel : Comp.ColorTagger.Model - , nativePdfPreview : Bool + , pdfMode : PdfMode + , pdfModeModel : Comp.FixedDropdown.Model PdfMode , itemSearchNoteLength : Maybe Int , searchNoteLengthModel : Comp.IntField.Model , searchMenuFolderCount : Maybe Int @@ -122,7 +124,8 @@ init flags settings = Comp.ColorTagger.init [] Data.Color.all - , nativePdfPreview = settings.nativePdfPreview + , pdfMode = settings.pdfMode + , pdfModeModel = Comp.FixedDropdown.init Data.Pdf.allModes , itemSearchNoteLength = Just settings.itemSearchNoteLength , searchNoteLengthModel = Comp.IntField.init @@ -169,7 +172,6 @@ type Msg = SearchPageSizeMsg Comp.IntField.Msg | TagColorMsg Comp.ColorTagger.Msg | GetTagsResp (Result Http.Error TagList) - | TogglePdfPreview | NoteLengthMsg Comp.IntField.Msg | SearchMenuFolderMsg Comp.IntField.Msg | SearchMenuTagMsg Comp.IntField.Msg @@ -185,6 +187,7 @@ type Msg | ToggleSideMenuVisible | TogglePowerSearch | UiLangMsg (Comp.FixedDropdown.Msg UiLanguage) + | PdfModeMsg (Comp.FixedDropdown.Msg PdfMode) @@ -290,15 +293,6 @@ update sett msg model = in ( model_, nextSettings ) - TogglePdfPreview -> - let - flag = - not model.nativePdfPreview - in - ( { model | nativePdfPreview = flag } - , Just { sett | nativePdfPreview = flag } - ) - GetTagsResp (Ok tl) -> let categories = @@ -463,6 +457,22 @@ update sett msg model = Just { sett | uiLang = newLang } ) + PdfModeMsg lm -> + let + ( m, sel ) = + Comp.FixedDropdown.update lm model.pdfModeModel + + newMode = + Maybe.withDefault model.pdfMode sel + in + ( { model | pdfModeModel = m, pdfMode = newMode } + , if newMode == model.pdfMode then + Nothing + + else + Just { sett | pdfMode = newMode } + ) + --- View2 @@ -516,6 +526,13 @@ settingFormTabs texts flags _ model = , style = DS.mainStyle , selectPlaceholder = texts.basics.selectPlaceholder } + + pdfModeCfg = + { display = texts.pdfMode + , icon = \_ -> Nothing + , style = DS.mainStyle + , selectPlaceholder = texts.basics.selectPlaceholder + } in [ { name = "general" , title = texts.general @@ -689,13 +706,14 @@ settingFormTabs texts flags _ model = , info = Nothing , body = [ div [ class "mb-4" ] - [ MB.viewItem <| - MB.Checkbox - { tagger = \_ -> TogglePdfPreview - , label = texts.browserNativePdfView - , value = model.nativePdfPreview - , id = "uisetting-pdfpreview-toggle" - } + [ label [ class S.inputLabel ] [ text texts.browserNativePdfView ] + , Html.map PdfModeMsg + (Comp.FixedDropdown.viewStyled2 + pdfModeCfg + False + (Just model.pdfMode) + model.pdfModeModel + ) ] , div [ class "mb-4" ] [ MB.viewItem <| diff --git a/modules/webapp/src/main/elm/Data/Flags.elm b/modules/webapp/src/main/elm/Data/Flags.elm index e605bd50..5ebfa9c7 100644 --- a/modules/webapp/src/main/elm/Data/Flags.elm +++ b/modules/webapp/src/main/elm/Data/Flags.elm @@ -41,6 +41,7 @@ type alias Config = type alias Flags = { account : Maybe AuthResult + , pdfSupported : Bool , config : Config } diff --git a/modules/webapp/src/main/elm/Data/Pdf.elm b/modules/webapp/src/main/elm/Data/Pdf.elm new file mode 100644 index 00000000..e4c691b8 --- /dev/null +++ b/modules/webapp/src/main/elm/Data/Pdf.elm @@ -0,0 +1,67 @@ +module Data.Pdf exposing (PdfMode(..), allModes, asString, detectUrl, fromString, serverUrl) + +{-| Makes use of the fact, that docspell uses a `/view` suffix on the +path to provide a browser independent PDF view. +-} + +import Data.Flags exposing (Flags) +import Html exposing (..) +import Html.Attributes exposing (..) + + +type PdfMode + = Detect + | Native + | Server + + +allModes : List PdfMode +allModes = + [ Detect, Native, Server ] + + +asString : PdfMode -> String +asString mode = + case mode of + Detect -> + "detect" + + Native -> + "native" + + Server -> + "server" + + +fromString : String -> Maybe PdfMode +fromString str = + case String.toLower str of + "detect" -> + Just Detect + + "native" -> + Just Native + + "server" -> + Just Server + + _ -> + Nothing + + +serverUrl : String -> String +serverUrl url = + if String.endsWith "/" url then + url ++ "view" + + else + url ++ "/view" + + +detectUrl : Flags -> String -> String +detectUrl flags url = + if flags.pdfSupported then + url + + else + serverUrl url diff --git a/modules/webapp/src/main/elm/Data/UiSettings.elm b/modules/webapp/src/main/elm/Data/UiSettings.elm index fa7180df..3b5d4d80 100644 --- a/modules/webapp/src/main/elm/Data/UiSettings.elm +++ b/modules/webapp/src/main/elm/Data/UiSettings.elm @@ -20,6 +20,7 @@ module Data.UiSettings exposing , fieldVisible , merge , mergeDefaults + , pdfUrl , posFromString , posToString , storedUiSettingsDecoder @@ -34,7 +35,9 @@ import Api.Model.Tag exposing (Tag) import Data.BasicSize exposing (BasicSize) import Data.Color exposing (Color) import Data.Fields exposing (Field) +import Data.Flags exposing (Flags) import Data.ItemTemplate exposing (ItemTemplate) +import Data.Pdf exposing (PdfMode) import Data.UiTheme exposing (UiTheme) import Dict exposing (Dict) import Html exposing (Attribute) @@ -57,7 +60,7 @@ force default settings. type alias StoredUiSettings = { itemSearchPageSize : Maybe Int , tagCategoryColors : List ( String, String ) - , nativePdfPreview : Bool + , pdfMode : Maybe String , itemSearchNoteLength : Maybe Int , itemDetailNotesPosition : Maybe String , searchMenuFolderCount : Maybe Int @@ -91,7 +94,7 @@ storedUiSettingsDecoder = Decode.succeed StoredUiSettings |> P.optional "itemSearchPageSize" maybeInt Nothing |> P.optional "tagCategoryColors" (Decode.keyValuePairs Decode.string) [] - |> P.optional "nativePdfPreview" Decode.bool False + |> P.optional "pdfMode" maybeString Nothing |> P.optional "itemSearchNoteLength" maybeInt Nothing |> P.optional "itemDetailNotesPosition" maybeString Nothing |> P.optional "searchMenuFolderCount" maybeInt Nothing @@ -121,7 +124,7 @@ storedUiSettingsEncode value = Encode.object [ ( "itemSearchPageSize", maybeEnc Encode.int value.itemSearchPageSize ) , ( "tagCategoryColors", Encode.dict identity Encode.string (Dict.fromList value.tagCategoryColors) ) - , ( "nativePdfPreview", Encode.bool value.nativePdfPreview ) + , ( "pdfMode", maybeEnc Encode.string value.pdfMode ) , ( "itemSearchNoteLength", maybeEnc Encode.int value.itemSearchNoteLength ) , ( "itemDetailNotesPosition", maybeEnc Encode.string value.itemDetailNotesPosition ) , ( "searchMenuFolderCount", maybeEnc Encode.int value.searchMenuFolderCount ) @@ -146,14 +149,15 @@ storedUiSettingsEncode value = {-| Settings for the web ui. These fields are all mandatory, since there is always a default value. -When loaded from local storage, all optional fields can fallback to a -default value, converting the StoredUiSettings into a UiSettings. +When loaded from local storage or the server, all optional fields can +fallback to a default value, converting the StoredUiSettings into a +UiSettings. -} type alias UiSettings = { itemSearchPageSize : Int , tagCategoryColors : Dict String Color - , nativePdfPreview : Bool + , pdfMode : PdfMode , itemSearchNoteLength : Int , itemDetailNotesPosition : Pos , searchMenuFolderCount : Int @@ -219,7 +223,7 @@ defaults : UiSettings defaults = { itemSearchPageSize = 60 , tagCategoryColors = Dict.empty - , nativePdfPreview = False + , pdfMode = Data.Pdf.Detect , itemSearchNoteLength = 0 , itemDetailNotesPosition = Bottom , searchMenuFolderCount = 3 @@ -259,7 +263,10 @@ merge given fallback = |> Dict.map (\_ -> Maybe.withDefault Data.Color.Grey) ) fallback.tagCategoryColors - , nativePdfPreview = given.nativePdfPreview + , pdfMode = + given.pdfMode + |> Maybe.andThen Data.Pdf.fromString + |> Maybe.withDefault fallback.pdfMode , itemSearchNoteLength = choose given.itemSearchNoteLength fallback.itemSearchNoteLength , itemDetailNotesPosition = @@ -313,7 +320,7 @@ toStoredUiSettings settings = , tagCategoryColors = Dict.map (\_ -> Data.Color.toString) settings.tagCategoryColors |> Dict.toList - , nativePdfPreview = settings.nativePdfPreview + , pdfMode = Just (Data.Pdf.asString settings.pdfMode) , itemSearchNoteLength = Just settings.itemSearchNoteLength , itemDetailNotesPosition = Just (posToString settings.itemDetailNotesPosition) , searchMenuFolderCount = Just settings.searchMenuFolderCount @@ -407,6 +414,19 @@ cardPreviewSize2 settings = "max-h-80" +pdfUrl : UiSettings -> Flags -> String -> String +pdfUrl settings flags originalUrl = + case settings.pdfMode of + Data.Pdf.Detect -> + Data.Pdf.detectUrl flags originalUrl + + Data.Pdf.Native -> + originalUrl + + Data.Pdf.Server -> + Data.Pdf.serverUrl originalUrl + + --- Helpers diff --git a/modules/webapp/src/main/elm/Messages/Comp/UiSettingsForm.elm b/modules/webapp/src/main/elm/Messages/Comp/UiSettingsForm.elm index 929128bd..a09151a3 100644 --- a/modules/webapp/src/main/elm/Messages/Comp/UiSettingsForm.elm +++ b/modules/webapp/src/main/elm/Messages/Comp/UiSettingsForm.elm @@ -13,9 +13,11 @@ module Messages.Comp.UiSettingsForm exposing import Data.Color exposing (Color) import Data.Fields exposing (Field) +import Data.Pdf exposing (PdfMode) import Messages.Basics import Messages.Data.Color import Messages.Data.Fields +import Messages.Data.PdfMode type alias Texts = @@ -53,6 +55,7 @@ type alias Texts = , fieldsInfo : String , fieldLabel : Field -> String , templateHelpMessage : String + , pdfMode : PdfMode -> String } @@ -127,6 +130,7 @@ for example `{{corrOrg|corrPerson|-}}` would render the organization and if that is not present the person. If both are absent a dash `-` is rendered. """ + , pdfMode = Messages.Data.PdfMode.gb } @@ -203,4 +207,5 @@ verknüpft werden, bis zur ersten die einen Wert enthält. Zum Beispiel: oder, wenn diese leer ist, die Person. Sind beide leer wird ein `-` dargestellt. """ + , pdfMode = Messages.Data.PdfMode.de } diff --git a/modules/webapp/src/main/elm/Messages/Data/PdfMode.elm b/modules/webapp/src/main/elm/Messages/Data/PdfMode.elm new file mode 100644 index 00000000..73748076 --- /dev/null +++ b/modules/webapp/src/main/elm/Messages/Data/PdfMode.elm @@ -0,0 +1,39 @@ +{- + Copyright 2020 Eike K. & Contributors + + SPDX-License-Identifier: AGPL-3.0-or-later +-} + + +module Messages.Data.PdfMode exposing + ( de + , gb + ) + +import Data.Pdf exposing (PdfMode(..)) + + +gb : PdfMode -> String +gb st = + case st of + Detect -> + "Detect automatically" + + Native -> + "Use the browser's native PDF view" + + Server -> + "Use cross-browser fallback" + + +de : PdfMode -> String +de st = + case st of + Detect -> + "Automatisch ermitteln" + + Native -> + "Browsernative Darstellung" + + Server -> + "Browserübergreifende Ersatzdarstellung" diff --git a/modules/webapp/src/main/elm/Page/Home/View2.elm b/modules/webapp/src/main/elm/Page/Home/View2.elm index da26662d..515c8c51 100644 --- a/modules/webapp/src/main/elm/Page/Home/View2.elm +++ b/modules/webapp/src/main/elm/Page/Home/View2.elm @@ -460,7 +460,7 @@ searchStats texts _ settings model = itemCardList : Texts -> Flags -> UiSettings -> Model -> List (Html Msg) -itemCardList texts _ settings model = +itemCardList texts flags settings model = let previewUrl attach = Api.attachmentPreviewURL attach.id @@ -489,6 +489,7 @@ itemCardList texts _ settings model = (Comp.ItemCardList.view2 texts.itemCardList itemViewCfg settings + flags model.itemListModel ) , loadMore texts settings model diff --git a/modules/webapp/src/main/elm/Page/Share/Results.elm b/modules/webapp/src/main/elm/Page/Share/Results.elm index e47d8583..6785663c 100644 --- a/modules/webapp/src/main/elm/Page/Share/Results.elm +++ b/modules/webapp/src/main/elm/Page/Share/Results.elm @@ -9,6 +9,7 @@ module Page.Share.Results exposing (view) import Api import Comp.ItemCardList +import Data.Flags exposing (Flags) import Data.ItemSelection import Data.UiSettings exposing (UiSettings) import Html exposing (..) @@ -18,8 +19,8 @@ import Page exposing (Page(..)) import Page.Share.Data exposing (Model, Msg(..)) -view : Texts -> UiSettings -> String -> Model -> Html Msg -view texts settings shareId model = +view : Texts -> UiSettings -> Flags -> String -> Model -> Html Msg +view texts settings flags shareId model = let viewCfg = { current = Nothing @@ -32,5 +33,5 @@ view texts settings shareId model = in div [] [ Html.map ItemListMsg - (Comp.ItemCardList.view2 texts.itemCardList viewCfg settings model.itemListModel) + (Comp.ItemCardList.view2 texts.itemCardList viewCfg settings flags model.itemListModel) ] diff --git a/modules/webapp/src/main/elm/Page/Share/View.elm b/modules/webapp/src/main/elm/Page/Share/View.elm index baaad70a..49bf8803 100644 --- a/modules/webapp/src/main/elm/Page/Share/View.elm +++ b/modules/webapp/src/main/elm/Page/Share/View.elm @@ -63,7 +63,7 @@ viewContent texts flags versionInfo uiSettings shareId model = mainContent : Texts -> Flags -> UiSettings -> String -> Model -> Html Msg -mainContent texts _ settings shareId model = +mainContent texts flags settings shareId model = div [ id "content" , class "h-full flex flex-col" @@ -76,7 +76,7 @@ mainContent texts _ settings shareId model = [ text <| Maybe.withDefault "" model.verifyResult.name ] , Menubar.view texts model - , Results.view texts settings shareId model + , Results.view texts settings flags shareId model ]