mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-03-25 16:45:05 +00:00
commit
b5038255a9
@ -47,7 +47,7 @@ object MakePreviewTask {
|
|||||||
_ <- ra
|
_ <- ra
|
||||||
.map(AttachmentPreview.createPreview(ctx, preview, cfg.chunkSize))
|
.map(AttachmentPreview.createPreview(ctx, preview, cfg.chunkSize))
|
||||||
.getOrElse(
|
.getOrElse(
|
||||||
ctx.logger.warn(s"No attachment found with id: ${ctx.args.attachment}")
|
ctx.logger.error(s"No attachment found with id: ${ctx.args.attachment}")
|
||||||
)
|
)
|
||||||
} yield ()
|
} yield ()
|
||||||
|
|
||||||
|
@ -57,13 +57,17 @@ object AttachmentPreview {
|
|||||||
case MimeType.PdfMatch(_) =>
|
case MimeType.PdfMatch(_) =>
|
||||||
preview.previewPNG(loadFile(ctx)(ra)).flatMap {
|
preview.previewPNG(loadFile(ctx)(ra)).flatMap {
|
||||||
case Some(out) =>
|
case Some(out) =>
|
||||||
createRecord(ctx, out, ra, chunkSize).map(_.some)
|
ctx.logger.debug("Preview generated, saving to database…") *>
|
||||||
|
createRecord(ctx, out, ra, chunkSize).map(_.some)
|
||||||
case None =>
|
case None =>
|
||||||
(None: Option[RAttachmentPreview]).pure[F]
|
ctx.logger
|
||||||
|
.info(s"Preview could not be generated. Maybe the pdf has no pages?") *>
|
||||||
|
(None: Option[RAttachmentPreview]).pure[F]
|
||||||
}
|
}
|
||||||
|
|
||||||
case _ =>
|
case mt =>
|
||||||
(None: Option[RAttachmentPreview]).pure[F]
|
ctx.logger.warn(s"Not a pdf file, but ${mt.asString}, cannot get page count.") *>
|
||||||
|
(None: Option[RAttachmentPreview]).pure[F]
|
||||||
}
|
}
|
||||||
|
|
||||||
private def createRecord[F[_]: Sync](
|
private def createRecord[F[_]: Sync](
|
||||||
|
@ -4,6 +4,7 @@ import Api
|
|||||||
import Api.Model.AttachmentLight exposing (AttachmentLight)
|
import Api.Model.AttachmentLight exposing (AttachmentLight)
|
||||||
import Api.Model.HighlightEntry exposing (HighlightEntry)
|
import Api.Model.HighlightEntry exposing (HighlightEntry)
|
||||||
import Api.Model.ItemLight exposing (ItemLight)
|
import Api.Model.ItemLight exposing (ItemLight)
|
||||||
|
import Data.BasicSize
|
||||||
import Data.Direction
|
import Data.Direction
|
||||||
import Data.Fields
|
import Data.Fields
|
||||||
import Data.Icons as Icons
|
import Data.Icons as Icons
|
||||||
@ -117,29 +118,6 @@ update ddm msg model =
|
|||||||
view : ViewConfig -> UiSettings -> Model -> ItemLight -> Html Msg
|
view : ViewConfig -> UiSettings -> Model -> ItemLight -> Html Msg
|
||||||
view cfg settings model item =
|
view cfg settings model item =
|
||||||
let
|
let
|
||||||
dirIcon =
|
|
||||||
i [ class (Data.Direction.iconFromMaybe item.direction) ] []
|
|
||||||
|
|
||||||
corr =
|
|
||||||
List.filterMap identity [ item.corrOrg, item.corrPerson ]
|
|
||||||
|> List.map .name
|
|
||||||
|> List.intersperse ", "
|
|
||||||
|> String.concat
|
|
||||||
|
|
||||||
conc =
|
|
||||||
List.filterMap identity [ item.concPerson, item.concEquip ]
|
|
||||||
|> List.map .name
|
|
||||||
|> List.intersperse ", "
|
|
||||||
|> String.concat
|
|
||||||
|
|
||||||
folder =
|
|
||||||
Maybe.map .name item.folder
|
|
||||||
|> Maybe.withDefault ""
|
|
||||||
|
|
||||||
dueDate =
|
|
||||||
Maybe.map Util.Time.formatDateShort item.dueDate
|
|
||||||
|> Maybe.withDefault ""
|
|
||||||
|
|
||||||
isConfirmed =
|
isConfirmed =
|
||||||
item.state /= "created"
|
item.state /= "created"
|
||||||
|
|
||||||
@ -163,55 +141,6 @@ view cfg settings model item =
|
|||||||
|
|
||||||
Data.ItemSelection.Active ids ->
|
Data.ItemSelection.Active ids ->
|
||||||
onClick (ToggleSelectItem ids item.id)
|
onClick (ToggleSelectItem ids item.id)
|
||||||
|
|
||||||
mainAttach =
|
|
||||||
currentAttachment model item
|
|
||||||
|
|
||||||
previewUrl =
|
|
||||||
Maybe.map .id mainAttach
|
|
||||||
|> Maybe.map Api.attachmentPreviewURL
|
|
||||||
|> Maybe.withDefault (Api.itemBasePreviewURL item.id)
|
|
||||||
|
|
||||||
pageCount =
|
|
||||||
Maybe.andThen .pageCount mainAttach
|
|
||||||
|> Maybe.withDefault 0
|
|
||||||
|
|
||||||
pageCountLabel =
|
|
||||||
div
|
|
||||||
[ classList
|
|
||||||
[ ( "card-attachment-nav top", True )
|
|
||||||
, ( "invisible", pageCount == 0 || (item.fileCount == 1 && pageCount == 1) )
|
|
||||||
]
|
|
||||||
]
|
|
||||||
[ if item.fileCount == 1 then
|
|
||||||
div
|
|
||||||
[ class "ui secondary basic mini label"
|
|
||||||
, title "Number of pages"
|
|
||||||
]
|
|
||||||
[ text "p."
|
|
||||||
, text (String.fromInt pageCount)
|
|
||||||
]
|
|
||||||
|
|
||||||
else
|
|
||||||
div [ class "ui left labeled mini button" ]
|
|
||||||
[ div [ class "ui basic right pointing mini label" ]
|
|
||||||
[ currentPosition model item
|
|
||||||
|> String.fromInt
|
|
||||||
|> text
|
|
||||||
, text "/"
|
|
||||||
, text (String.fromInt item.fileCount)
|
|
||||||
, text " p."
|
|
||||||
, text (String.fromInt pageCount)
|
|
||||||
]
|
|
||||||
, a
|
|
||||||
[ class "ui mini icon secondary button"
|
|
||||||
, href "#"
|
|
||||||
, onClick (CyclePreview item)
|
|
||||||
]
|
|
||||||
[ i [ class "arrow right icon" ] []
|
|
||||||
]
|
|
||||||
]
|
|
||||||
]
|
|
||||||
in
|
in
|
||||||
div
|
div
|
||||||
([ classList
|
([ classList
|
||||||
@ -227,183 +156,292 @@ view cfg settings model item =
|
|||||||
span [ class "invisible" ] []
|
span [ class "invisible" ] []
|
||||||
|
|
||||||
else
|
else
|
||||||
div
|
previewImage settings model item
|
||||||
[ class "image ds-card-image"
|
, mainContent cardAction cardColor isConfirmed settings cfg item
|
||||||
, Data.UiSettings.cardPreviewSize settings
|
, notesContent settings item
|
||||||
]
|
, metaDataContent settings item
|
||||||
[ img
|
, fulltextResultsContent item
|
||||||
[ class "preview-image"
|
]
|
||||||
, src previewUrl
|
|
||||||
, Data.UiSettings.cardPreviewSize settings
|
|
||||||
]
|
fulltextResultsContent : ItemLight -> Html Msg
|
||||||
[]
|
fulltextResultsContent item =
|
||||||
, pageCountLabel
|
div
|
||||||
]
|
[ classList
|
||||||
, a
|
[ ( "content search-highlight", True )
|
||||||
[ class "link content"
|
, ( "invisible hidden", item.highlighting == [] )
|
||||||
, href "#"
|
|
||||||
, cardAction
|
|
||||||
]
|
]
|
||||||
[ case cfg.selection of
|
]
|
||||||
Data.ItemSelection.Active ids ->
|
[ div [ class "ui list" ]
|
||||||
|
(List.map renderHighlightEntry item.highlighting)
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
metaDataContent : UiSettings -> ItemLight -> Html Msg
|
||||||
|
metaDataContent settings item =
|
||||||
|
let
|
||||||
|
fieldHidden f =
|
||||||
|
Data.UiSettings.fieldHidden settings f
|
||||||
|
|
||||||
|
corr =
|
||||||
|
List.filterMap identity [ item.corrOrg, item.corrPerson ]
|
||||||
|
|> List.map .name
|
||||||
|
|> List.intersperse ", "
|
||||||
|
|> String.concat
|
||||||
|
|
||||||
|
conc =
|
||||||
|
List.filterMap identity [ item.concPerson, item.concEquip ]
|
||||||
|
|> List.map .name
|
||||||
|
|> List.intersperse ", "
|
||||||
|
|> String.concat
|
||||||
|
|
||||||
|
folder =
|
||||||
|
Maybe.map .name item.folder
|
||||||
|
|> Maybe.withDefault ""
|
||||||
|
|
||||||
|
dueDate =
|
||||||
|
Maybe.map Util.Time.formatDateShort item.dueDate
|
||||||
|
|> Maybe.withDefault ""
|
||||||
|
in
|
||||||
|
div [ class "content" ]
|
||||||
|
[ div [ class "ui horizontal list" ]
|
||||||
|
[ div
|
||||||
|
[ classList
|
||||||
|
[ ( "item", True )
|
||||||
|
, ( "invisible hidden"
|
||||||
|
, fieldHidden Data.Fields.CorrOrg
|
||||||
|
&& fieldHidden Data.Fields.CorrPerson
|
||||||
|
)
|
||||||
|
]
|
||||||
|
, title "Correspondent"
|
||||||
|
]
|
||||||
|
[ Icons.correspondentIcon ""
|
||||||
|
, text " "
|
||||||
|
, Util.String.withDefault "-" corr |> text
|
||||||
|
]
|
||||||
|
, div
|
||||||
|
[ classList
|
||||||
|
[ ( "item", True )
|
||||||
|
, ( "invisible hidden"
|
||||||
|
, fieldHidden Data.Fields.ConcPerson
|
||||||
|
&& fieldHidden Data.Fields.ConcEquip
|
||||||
|
)
|
||||||
|
]
|
||||||
|
, title "Concerning"
|
||||||
|
]
|
||||||
|
[ Icons.concernedIcon
|
||||||
|
, text " "
|
||||||
|
, Util.String.withDefault "-" conc |> text
|
||||||
|
]
|
||||||
|
, div
|
||||||
|
[ classList
|
||||||
|
[ ( "item", True )
|
||||||
|
, ( "invisible hidden", fieldHidden Data.Fields.Folder )
|
||||||
|
]
|
||||||
|
, title "Folder"
|
||||||
|
]
|
||||||
|
[ Icons.folderIcon ""
|
||||||
|
, text " "
|
||||||
|
, Util.String.withDefault "-" folder |> text
|
||||||
|
]
|
||||||
|
]
|
||||||
|
, div [ class "right floated meta" ]
|
||||||
|
[ div [ class "ui horizontal list" ]
|
||||||
|
[ div
|
||||||
|
[ class "item"
|
||||||
|
, title "Source"
|
||||||
|
]
|
||||||
|
[ text item.source
|
||||||
|
]
|
||||||
|
, div
|
||||||
|
[ classList
|
||||||
|
[ ( "item", True )
|
||||||
|
, ( "invisible hidden"
|
||||||
|
, item.dueDate
|
||||||
|
== Nothing
|
||||||
|
|| fieldHidden Data.Fields.DueDate
|
||||||
|
)
|
||||||
|
]
|
||||||
|
, title ("Due on " ++ dueDate)
|
||||||
|
]
|
||||||
|
[ div
|
||||||
|
[ class "ui basic grey label"
|
||||||
|
]
|
||||||
|
[ Icons.dueDateIcon ""
|
||||||
|
, text (" " ++ dueDate)
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
notesContent : UiSettings -> ItemLight -> Html Msg
|
||||||
|
notesContent settings item =
|
||||||
|
div
|
||||||
|
[ classList
|
||||||
|
[ ( "content", True )
|
||||||
|
, ( "invisible hidden"
|
||||||
|
, settings.itemSearchNoteLength
|
||||||
|
<= 0
|
||||||
|
|| Util.String.isNothingOrBlank item.notes
|
||||||
|
)
|
||||||
|
]
|
||||||
|
]
|
||||||
|
[ span [ class "small-info" ]
|
||||||
|
[ Maybe.withDefault "" item.notes
|
||||||
|
|> Util.String.ellipsis settings.itemSearchNoteLength
|
||||||
|
|> text
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
mainContent : Attribute Msg -> String -> Bool -> UiSettings -> ViewConfig -> ItemLight -> Html Msg
|
||||||
|
mainContent cardAction cardColor isConfirmed settings cfg item =
|
||||||
|
let
|
||||||
|
dirIcon =
|
||||||
|
i [ class (Data.Direction.iconFromMaybe item.direction) ] []
|
||||||
|
|
||||||
|
fieldHidden f =
|
||||||
|
Data.UiSettings.fieldHidden settings f
|
||||||
|
in
|
||||||
|
a
|
||||||
|
[ class "link content"
|
||||||
|
, href "#"
|
||||||
|
, cardAction
|
||||||
|
]
|
||||||
|
[ case cfg.selection of
|
||||||
|
Data.ItemSelection.Active ids ->
|
||||||
|
div [ class "header" ]
|
||||||
|
[ Util.Html.checkbox (Set.member item.id ids)
|
||||||
|
, dirIcon
|
||||||
|
, Util.String.underscoreToSpace item.name
|
||||||
|
|> text
|
||||||
|
]
|
||||||
|
|
||||||
|
Data.ItemSelection.Inactive ->
|
||||||
|
if fieldHidden Data.Fields.Direction then
|
||||||
div [ class "header" ]
|
div [ class "header" ]
|
||||||
[ Util.Html.checkbox (Set.member item.id ids)
|
[ Util.String.underscoreToSpace item.name |> text
|
||||||
, dirIcon
|
]
|
||||||
|
|
||||||
|
else
|
||||||
|
div
|
||||||
|
[ class "header"
|
||||||
|
, Data.Direction.labelFromMaybe item.direction
|
||||||
|
|> title
|
||||||
|
]
|
||||||
|
[ dirIcon
|
||||||
, Util.String.underscoreToSpace item.name
|
, Util.String.underscoreToSpace item.name
|
||||||
|> text
|
|> text
|
||||||
]
|
]
|
||||||
|
, div
|
||||||
Data.ItemSelection.Inactive ->
|
[ classList
|
||||||
if fieldHidden Data.Fields.Direction then
|
[ ( "ui right corner label", True )
|
||||||
div [ class "header" ]
|
, ( cardColor, True )
|
||||||
[ Util.String.underscoreToSpace item.name |> text
|
, ( "invisible", isConfirmed )
|
||||||
]
|
]
|
||||||
|
, title "New"
|
||||||
else
|
]
|
||||||
|
[ i [ class "exclamation icon" ] []
|
||||||
|
]
|
||||||
|
, div
|
||||||
|
[ classList
|
||||||
|
[ ( "meta", True )
|
||||||
|
, ( "invisible hidden", fieldHidden Data.Fields.Date )
|
||||||
|
]
|
||||||
|
]
|
||||||
|
[ Util.Time.formatDate item.date |> text
|
||||||
|
]
|
||||||
|
, div [ class "meta description" ]
|
||||||
|
[ div
|
||||||
|
[ classList
|
||||||
|
[ ( "ui right floated tiny labels", True )
|
||||||
|
, ( "invisible hidden", item.tags == [] || fieldHidden Data.Fields.Tag )
|
||||||
|
]
|
||||||
|
]
|
||||||
|
(List.map
|
||||||
|
(\tag ->
|
||||||
div
|
div
|
||||||
[ class "header"
|
[ classList
|
||||||
, Data.Direction.labelFromMaybe item.direction
|
[ ( "ui basic label", True )
|
||||||
|> title
|
, ( Data.UiSettings.tagColorString tag settings, True )
|
||||||
]
|
|
||||||
[ dirIcon
|
|
||||||
, Util.String.underscoreToSpace item.name
|
|
||||||
|> text
|
|
||||||
]
|
|
||||||
, div
|
|
||||||
[ classList
|
|
||||||
[ ( "ui right corner label", True )
|
|
||||||
, ( cardColor, True )
|
|
||||||
, ( "invisible", isConfirmed )
|
|
||||||
]
|
|
||||||
, title "New"
|
|
||||||
]
|
|
||||||
[ i [ class "exclamation icon" ] []
|
|
||||||
]
|
|
||||||
, div
|
|
||||||
[ classList
|
|
||||||
[ ( "meta", True )
|
|
||||||
, ( "invisible hidden", fieldHidden Data.Fields.Date )
|
|
||||||
]
|
|
||||||
]
|
|
||||||
[ Util.Time.formatDate item.date |> text
|
|
||||||
]
|
|
||||||
, div [ class "meta description" ]
|
|
||||||
[ div
|
|
||||||
[ classList
|
|
||||||
[ ( "ui right floated tiny labels", True )
|
|
||||||
, ( "invisible hidden", item.tags == [] || fieldHidden Data.Fields.Tag )
|
|
||||||
]
|
|
||||||
]
|
|
||||||
(List.map
|
|
||||||
(\tag ->
|
|
||||||
div
|
|
||||||
[ classList
|
|
||||||
[ ( "ui basic label", True )
|
|
||||||
, ( Data.UiSettings.tagColorString tag settings, True )
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
[ text tag.name ]
|
]
|
||||||
)
|
[ text tag.name ]
|
||||||
item.tags
|
|
||||||
)
|
)
|
||||||
]
|
item.tags
|
||||||
|
)
|
||||||
]
|
]
|
||||||
, div
|
]
|
||||||
[ classList
|
|
||||||
[ ( "content", True )
|
|
||||||
, ( "invisible hidden"
|
previewImage : UiSettings -> Model -> ItemLight -> Html Msg
|
||||||
, settings.itemSearchNoteLength
|
previewImage settings model item =
|
||||||
<= 0
|
let
|
||||||
|| Util.String.isNothingOrBlank item.notes
|
previewUrl =
|
||||||
)
|
Maybe.map .id mainAttach
|
||||||
]
|
|> Maybe.map Api.attachmentPreviewURL
|
||||||
|
|> Maybe.withDefault (Api.itemBasePreviewURL item.id)
|
||||||
|
|
||||||
|
mainAttach =
|
||||||
|
currentAttachment model item
|
||||||
|
in
|
||||||
|
div
|
||||||
|
[ class "image ds-card-image"
|
||||||
|
, Data.UiSettings.cardPreviewSize settings
|
||||||
|
]
|
||||||
|
[ img
|
||||||
|
[ class "preview-image"
|
||||||
|
, src previewUrl
|
||||||
|
, Data.UiSettings.cardPreviewSize settings
|
||||||
]
|
]
|
||||||
[ span [ class "small-info" ]
|
[]
|
||||||
[ Maybe.withDefault "" item.notes
|
, pageCountLabel model item mainAttach
|
||||||
|> Util.String.ellipsis settings.itemSearchNoteLength
|
]
|
||||||
|> text
|
|
||||||
]
|
|
||||||
|
pageCountLabel : Model -> ItemLight -> Maybe AttachmentLight -> Html Msg
|
||||||
|
pageCountLabel model item mainAttach =
|
||||||
|
let
|
||||||
|
pageCount =
|
||||||
|
Maybe.andThen .pageCount mainAttach
|
||||||
|
|> Maybe.withDefault 0
|
||||||
|
in
|
||||||
|
div
|
||||||
|
[ classList
|
||||||
|
[ ( "card-attachment-nav top", True )
|
||||||
|
, ( "invisible", pageCount == 0 || (item.fileCount == 1 && pageCount == 1) )
|
||||||
]
|
]
|
||||||
, div [ class "content" ]
|
]
|
||||||
[ div [ class "ui horizontal list" ]
|
[ if item.fileCount == 1 then
|
||||||
[ div
|
div
|
||||||
[ classList
|
[ class "ui secondary basic mini label"
|
||||||
[ ( "item", True )
|
, title "Number of pages"
|
||||||
, ( "invisible hidden"
|
]
|
||||||
, fieldHidden Data.Fields.CorrOrg
|
[ text "p."
|
||||||
&& fieldHidden Data.Fields.CorrPerson
|
, text (String.fromInt pageCount)
|
||||||
)
|
]
|
||||||
]
|
|
||||||
, title "Correspondent"
|
else
|
||||||
|
div [ class "ui left labeled mini button" ]
|
||||||
|
[ div [ class "ui basic right pointing mini label" ]
|
||||||
|
[ currentPosition model item
|
||||||
|
|> String.fromInt
|
||||||
|
|> text
|
||||||
|
, text "/"
|
||||||
|
, text (String.fromInt item.fileCount)
|
||||||
|
, text " p."
|
||||||
|
, text (String.fromInt pageCount)
|
||||||
]
|
]
|
||||||
[ Icons.correspondentIcon ""
|
, a
|
||||||
, text " "
|
[ class "ui mini icon secondary button"
|
||||||
, Util.String.withDefault "-" corr |> text
|
, href "#"
|
||||||
|
, onClick (CyclePreview item)
|
||||||
]
|
]
|
||||||
, div
|
[ i [ class "arrow right icon" ] []
|
||||||
[ classList
|
|
||||||
[ ( "item", True )
|
|
||||||
, ( "invisible hidden"
|
|
||||||
, fieldHidden Data.Fields.ConcPerson
|
|
||||||
&& fieldHidden Data.Fields.ConcEquip
|
|
||||||
)
|
|
||||||
]
|
|
||||||
, title "Concerning"
|
|
||||||
]
|
|
||||||
[ Icons.concernedIcon
|
|
||||||
, text " "
|
|
||||||
, Util.String.withDefault "-" conc |> text
|
|
||||||
]
|
|
||||||
, div
|
|
||||||
[ classList
|
|
||||||
[ ( "item", True )
|
|
||||||
, ( "invisible hidden", fieldHidden Data.Fields.Folder )
|
|
||||||
]
|
|
||||||
, title "Folder"
|
|
||||||
]
|
|
||||||
[ Icons.folderIcon ""
|
|
||||||
, text " "
|
|
||||||
, Util.String.withDefault "-" folder |> text
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
, div [ class "right floated meta" ]
|
|
||||||
[ div [ class "ui horizontal list" ]
|
|
||||||
[ div
|
|
||||||
[ class "item"
|
|
||||||
, title "Source"
|
|
||||||
]
|
|
||||||
[ text item.source
|
|
||||||
]
|
|
||||||
, div
|
|
||||||
[ classList
|
|
||||||
[ ( "item", True )
|
|
||||||
, ( "invisible hidden"
|
|
||||||
, item.dueDate
|
|
||||||
== Nothing
|
|
||||||
|| fieldHidden Data.Fields.DueDate
|
|
||||||
)
|
|
||||||
]
|
|
||||||
, title ("Due on " ++ dueDate)
|
|
||||||
]
|
|
||||||
[ div
|
|
||||||
[ class "ui basic grey label"
|
|
||||||
]
|
|
||||||
[ Icons.dueDateIcon ""
|
|
||||||
, text (" " ++ dueDate)
|
|
||||||
]
|
|
||||||
]
|
|
||||||
]
|
|
||||||
]
|
|
||||||
]
|
|
||||||
, div
|
|
||||||
[ classList
|
|
||||||
[ ( "content search-highlight", True )
|
|
||||||
, ( "invisible hidden", item.highlighting == [] )
|
|
||||||
]
|
|
||||||
]
|
|
||||||
[ div [ class "ui list" ]
|
|
||||||
(List.map renderHighlightEntry item.highlighting)
|
|
||||||
]
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ object Dependencies {
|
|||||||
val Icu4jVersion = "68.1"
|
val Icu4jVersion = "68.1"
|
||||||
val JsoupVersion = "1.13.1"
|
val JsoupVersion = "1.13.1"
|
||||||
val KindProjectorVersion = "0.10.3"
|
val KindProjectorVersion = "0.10.3"
|
||||||
|
val LevigoJbig2Version = "2.0"
|
||||||
val Log4sVersion = "1.9.0"
|
val Log4sVersion = "1.9.0"
|
||||||
val LogbackVersion = "1.2.3"
|
val LogbackVersion = "1.2.3"
|
||||||
val MariaDbVersion = "2.7.0"
|
val MariaDbVersion = "2.7.0"
|
||||||
@ -85,12 +86,16 @@ object Dependencies {
|
|||||||
"com.twelvemonkeys.imageio" % "imageio-tiff" % TwelveMonkeysVersion
|
"com.twelvemonkeys.imageio" % "imageio-tiff" % TwelveMonkeysVersion
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val levigoJbig2 = Seq(
|
||||||
|
"com.levigo.jbig2" % "levigo-jbig2-imageio" % LevigoJbig2Version
|
||||||
|
)
|
||||||
|
|
||||||
val pdfbox = Seq(
|
val pdfbox = Seq(
|
||||||
("org.apache.pdfbox" % "pdfbox" % PdfboxVersion).excludeAll(
|
("org.apache.pdfbox" % "pdfbox" % PdfboxVersion).excludeAll(
|
||||||
ExclusionRule("org.bouncycastle"),
|
ExclusionRule("org.bouncycastle"),
|
||||||
ExclusionRule("commons-logging")
|
ExclusionRule("commons-logging")
|
||||||
)
|
)
|
||||||
) ++ jclOverSlf4j
|
) ++ jclOverSlf4j ++ levigoJbig2
|
||||||
|
|
||||||
val emilCommon = Seq(
|
val emilCommon = Seq(
|
||||||
"com.github.eikek" %% "emil-common" % EmilVersion
|
"com.github.eikek" %% "emil-common" % EmilVersion
|
||||||
|
Loading…
x
Reference in New Issue
Block a user