From 589c41003f6ebf8daa97251773251e6d4655d037 Mon Sep 17 00:00:00 2001
From: wallace <11wallace11@gmail.com>
Date: Tue, 24 Aug 2021 01:19:42 +0300
Subject: [PATCH 1/2] Add hebrew document language

---
 docker/dockerfiles/joex.dockerfile              |  1 +
 .../scala/docspell/analysis/date/DateFind.scala |  1 +
 .../docspell/analysis/date/MonthName.scala      | 17 +++++++++++++++++
 .../main/scala/docspell/common/Language.scala   |  9 ++++++++-
 .../main/scala/docspell/ftssolr/SolrSetup.scala |  8 +++++++-
 modules/webapp/src/main/elm/Data/Language.elm   |  8 ++++++++
 .../src/main/elm/Messages/Data/Language.elm     |  6 ++++++
 7 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/docker/dockerfiles/joex.dockerfile b/docker/dockerfiles/joex.dockerfile
index 0d105e98..05a49367 100644
--- a/docker/dockerfiles/joex.dockerfile
+++ b/docker/dockerfiles/joex.dockerfile
@@ -30,6 +30,7 @@ RUN JDKPKG="openjdk11"; \
     tesseract-ocr-data-ron \
     tesseract-ocr-data-lav \
     tesseract-ocr-data-jpn \
+    tesseract-ocr-data-heb \
     unpaper \
     wkhtmltopdf \
     libreoffice \
diff --git a/modules/analysis/src/main/scala/docspell/analysis/date/DateFind.scala b/modules/analysis/src/main/scala/docspell/analysis/date/DateFind.scala
index 1257a5c9..d681eefa 100644
--- a/modules/analysis/src/main/scala/docspell/analysis/date/DateFind.scala
+++ b/modules/analysis/src/main/scala/docspell/analysis/date/DateFind.scala
@@ -102,6 +102,7 @@ object DateFind {
         case Language.Dutch      => dmy.or(ymd).or(mdy)
         case Language.Latvian    => dmy.or(lavLong).or(ymd)
         case Language.Japanese   => ymd
+        case Language.Hebrew     => dmy
       }
       p.read(parts) match {
         case Result.Success(sds, _) =>
diff --git a/modules/analysis/src/main/scala/docspell/analysis/date/MonthName.scala b/modules/analysis/src/main/scala/docspell/analysis/date/MonthName.scala
index 63d51a9a..5f13f302 100644
--- a/modules/analysis/src/main/scala/docspell/analysis/date/MonthName.scala
+++ b/modules/analysis/src/main/scala/docspell/analysis/date/MonthName.scala
@@ -52,6 +52,8 @@ object MonthName {
         latvian
       case Language.Japanese =>
         japanese
+      case Language.Hebrew =>
+        hebrew
     }
 
   private val numbers = List(
@@ -307,4 +309,19 @@ object MonthName {
     List("11", "十一"),
     List("12", "十二")
   )
+
+  private val hebrew = List(
+    List("1", "ינואר"),
+    List("2", "פברואר"),
+    List("3", "מרץ"),
+    List("4", "אפריל"),
+    List("5", "מאי"),
+    List("6", "יוני"),
+    List("7", "יולי"),
+    List("8", "אוגוסט"),
+    List("9", "ספטמבר"),
+    List("10", "אוקטובר"),
+    List("11", "נובמבר"),
+    List("12", "דצמבר")
+  )
 }
diff --git a/modules/common/src/main/scala/docspell/common/Language.scala b/modules/common/src/main/scala/docspell/common/Language.scala
index d46aba3a..db233296 100644
--- a/modules/common/src/main/scala/docspell/common/Language.scala
+++ b/modules/common/src/main/scala/docspell/common/Language.scala
@@ -113,6 +113,12 @@ object Language {
     val iso3 = "jpn"
   }
 
+  case object Hebrew extends Language {
+    val iso2 = "he"
+    val iso3 = "heb"
+  }
+
+
   val all: List[Language] =
     List(
       German,
@@ -130,7 +136,8 @@ object Language {
       Russian,
       Romanian,
       Latvian,
-      Japanese
+      Japanese,
+      Hebrew
     )
 
   def fromString(str: String): Either[String, Language] = {
diff --git a/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala b/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala
index 6aa7dd36..8ebd323b 100644
--- a/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala
+++ b/modules/fts-solr/src/main/scala/docspell/ftssolr/SolrSetup.scala
@@ -114,7 +114,13 @@ object SolrSetup {
             "Add japanese content field",
             addContentField(Language.Japanese)
           ),
-          SolrMigration.reIndexAll(15, "Re-Index after adding japanese content field")
+          SolrMigration.reIndexAll(15, "Re-Index after adding japanese content field"),
+          SolrMigration[F](
+            16,
+            "Add hebrew content field",
+            addContentField(Language.Hebrew)
+          ),
+          SolrMigration.reIndexAll(17, "Re-Index after adding hebrew content field")
         )
 
       def addFolderField: F[Unit] =
diff --git a/modules/webapp/src/main/elm/Data/Language.elm b/modules/webapp/src/main/elm/Data/Language.elm
index 41522878..3b7970bc 100644
--- a/modules/webapp/src/main/elm/Data/Language.elm
+++ b/modules/webapp/src/main/elm/Data/Language.elm
@@ -30,6 +30,7 @@ type Language
     | Dutch
     | Latvian
     | Japanese
+    | Hebrew
 
 
 fromString : String -> Maybe Language
@@ -82,6 +83,9 @@ fromString str =
     else if str == "jpn" || str == "ja" || str == "japanese" then
         Just Japanese
 
+    else if str == "heb" || str == "he" || str == "hebrew" then
+        Just Hebrew
+
     else
         Nothing
 
@@ -137,6 +141,9 @@ toIso3 lang =
         Japanese ->
             "jpn"
 
+        Hebrew ->
+            "heb"
+
 
 all : List Language
 all =
@@ -156,4 +163,5 @@ all =
     , Romanian
     , Latvian
     , Japanese
+    , Hebrew
     ]
diff --git a/modules/webapp/src/main/elm/Messages/Data/Language.elm b/modules/webapp/src/main/elm/Messages/Data/Language.elm
index 60070c56..6e7fac1e 100644
--- a/modules/webapp/src/main/elm/Messages/Data/Language.elm
+++ b/modules/webapp/src/main/elm/Messages/Data/Language.elm
@@ -64,6 +64,9 @@ gb lang =
         Japanese ->
             "Japanese"
 
+        Hebrew ->
+            "Hebrew"
+
 
 de : Language -> String
 de lang =
@@ -115,3 +118,6 @@ de lang =
 
         Japanese ->
             "Japanisch"
+
+        Hebrew ->
+            "Hebräisch"

From eab7fe57d278c508497496e602a6c0305479667a Mon Sep 17 00:00:00 2001
From: wallace <11wallace11@gmail.com>
Date: Tue, 24 Aug 2021 02:24:20 +0300
Subject: [PATCH 2/2] Fix formatting with scalafmt

---
 modules/common/src/main/scala/docspell/common/Language.scala | 1 -
 1 file changed, 1 deletion(-)

diff --git a/modules/common/src/main/scala/docspell/common/Language.scala b/modules/common/src/main/scala/docspell/common/Language.scala
index db233296..3a6c9eb0 100644
--- a/modules/common/src/main/scala/docspell/common/Language.scala
+++ b/modules/common/src/main/scala/docspell/common/Language.scala
@@ -118,7 +118,6 @@ object Language {
     val iso3 = "heb"
   }
 
-
   val all: List[Language] =
     List(
       German,