Files
docspell/modules/webapp/src/main/elm/Data/Pdf.elm
2021-10-23 14:33:24 +02:00

75 lines
1.2 KiB
Elm

{-
Copyright 2020 Eike K. & Contributors
SPDX-License-Identifier: AGPL-3.0-or-later
-}
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