mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-23 02:48:26 +00:00
67
modules/webapp/src/main/elm/Data/Pdf.elm
Normal file
67
modules/webapp/src/main/elm/Data/Pdf.elm
Normal file
@ -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
|
Reference in New Issue
Block a user