Browse Source

enhance(ux): remove #Task from todos when toggle Done

Tienson Qin 3 months ago
parent
commit
f339d0a712
1 changed files with 27 additions and 21 deletions
  1. 27 21
      deps/outliner/src/logseq/outliner/property.cljs

+ 27 - 21
deps/outliner/src/logseq/outliner/property.cljs

@@ -382,29 +382,35 @@
         block (d/entity @conn eid)
         block (d/entity @conn eid)
         property (d/entity @conn property-id)]
         property (d/entity @conn property-id)]
     (throw-error-if-protected-property [(:db/ident block)] property-id)
     (throw-error-if-protected-property [(:db/ident block)] property-id)
-    (cond
-      (= :logseq.property/empty-placeholder (:db/ident (get block property-id)))
-      nil
-
-      (= (:logseq.property/default-value property) (get block property-id))
-      (ldb/transact! conn
-                     [{:db/id (:db/id block)
-                       property-id :logseq.property/empty-placeholder}]
-                     {:outliner-op :save-block})
-
-      (and (ldb/class? block) (= property-id :logseq.property.class/extends))
-      (ldb/transact! conn
-                     [[:db/retract (:db/id block) :logseq.property.class/extends]
-                      [:db/add (:db/id block) :logseq.property.class/extends :logseq.class/Root]]
-                     {:outliner-op :save-block})
-
-      (contains? db-property/db-attribute-properties property-id)
-      (when block
+    (when block
+      (cond
+        (= :logseq.property/empty-placeholder (:db/ident (get block property-id)))
+        nil
+
+        (= :logseq.property/status property-id)
+        (ldb/transact! conn
+                       [[:db/retract (:db/id block) property-id]
+                        [:db/retract (:db/id block) :block/tags :logseq.class/Task]]
+                       {:outliner-op :save-block})
+
+        (= (:logseq.property/default-value property) (get block property-id))
+        (ldb/transact! conn
+                       [{:db/id (:db/id block)
+                         property-id :logseq.property/empty-placeholder}]
+                       {:outliner-op :save-block})
+
+        (and (ldb/class? block) (= property-id :logseq.property.class/extends))
+        (ldb/transact! conn
+                       [[:db/retract (:db/id block) :logseq.property.class/extends]
+                        [:db/add (:db/id block) :logseq.property.class/extends :logseq.class/Root]]
+                       {:outliner-op :save-block})
+
+        (contains? db-property/db-attribute-properties property-id)
         (ldb/transact! conn
         (ldb/transact! conn
                        [[:db/retract (:db/id block) property-id]]
                        [[:db/retract (:db/id block) property-id]]
-                       {:outliner-op :save-block}))
-      :else
-      (batch-remove-property! conn [eid] property-id))))
+                       {:outliner-op :save-block})
+        :else
+        (batch-remove-property! conn [eid] property-id)))))
 
 
 (defn set-block-property!
 (defn set-block-property!
   "Updates a block property's value for an existing property-id and block.  If
   "Updates a block property's value for an existing property-id and block.  If