From b4ee1a52e1365a01326ebf0bf8d4002504c57d71 Mon Sep 17 00:00:00 2001
From: eikek <eike.kettner@posteo.de>
Date: Sat, 9 Apr 2022 20:33:06 +0200
Subject: [PATCH 1/2] Fix loading collective settings

It responded with 404 when some sub-settings (classifier) didn't exist.
---
 .../src/main/scala/docspell/store/records/RCollective.scala | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/modules/store/src/main/scala/docspell/store/records/RCollective.scala b/modules/store/src/main/scala/docspell/store/records/RCollective.scala
index 19ade621..2bbecaa6 100644
--- a/modules/store/src/main/scala/docspell/store/records/RCollective.scala
+++ b/modules/store/src/main/scala/docspell/store/records/RCollective.scala
@@ -97,11 +97,11 @@ object RCollective {
   def getSettings(coll: Ident): ConnectionIO[Option[Settings]] =
     (for {
       sett <- OptionT(getRawSettings(coll))
-      prev <- OptionT.fromOption[ConnectionIO](sett.classifier)
+      prev <- OptionT.pure[ConnectionIO](sett.classifier)
       cats <- OptionT.liftF(RTag.listCategories(coll))
-      next = prev.copy(categories = prev.categories.intersect(cats))
+      next = prev.map(p => p.copy(categories = p.categories.intersect(cats)))
       pws <- OptionT.liftF(RCollectivePassword.findAll(coll))
-    } yield sett.copy(classifier = Some(next), passwords = pws.map(_.password))).value
+    } yield sett.copy(classifier = next, passwords = pws.map(_.password))).value
 
   private def getRawSettings(coll: Ident): ConnectionIO[Option[Settings]] = {
     import RClassifierSetting.stringListMeta

From 9759a9258a263159e12b83e96c2a3bf898e5886c Mon Sep 17 00:00:00 2001
From: eikek <eike.kettner@posteo.de>
Date: Sat, 9 Apr 2022 20:36:38 +0200
Subject: [PATCH 2/2] Hide delete button on new notification channels

---
 modules/webapp/src/main/elm/Comp/NotificationChannelManage.elm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/webapp/src/main/elm/Comp/NotificationChannelManage.elm b/modules/webapp/src/main/elm/Comp/NotificationChannelManage.elm
index dd302da6..7c26255d 100644
--- a/modules/webapp/src/main/elm/Comp/NotificationChannelManage.elm
+++ b/modules/webapp/src/main/elm/Comp/NotificationChannelManage.elm
@@ -302,7 +302,7 @@ viewForm texts settings outerModel model =
                 |> Maybe.map .id
 
         newChannel =
-            channelId |> (==) (Just "")
+            channelId == Just "" || channelId == Nothing
 
         headline =
             case Comp.ChannelForm.channelType model of