Browse Source

fix: show tag's extends when auto-complete or setting extends

fixes https://github.com/logseq/db-test/issues/466
Tienson Qin 1 month ago
parent
commit
1849d7a96a

+ 2 - 0
deps/db/src/logseq/db.cljs

@@ -594,3 +594,5 @@
           true
           :else
           (recur (:block/parent parent)))))))
+
+(def get-class-title-with-extends db-db/get-class-title-with-extends)

+ 3 - 3
deps/db/src/logseq/db/frontend/db.cljs

@@ -55,14 +55,14 @@
                (conj parents' current-parent))
         (vec (reverse parents'))))))
 
-(defn- get-class-title-with-extends
+(defn get-class-title-with-extends
   [entity]
   (let [parents' (->> (db-class/get-class-extends entity)
                       (remove (fn [e] (= :logseq.class/Root (:db/ident e))))
                       vec)]
     (string/join
      ns-util/parent-char
-     (map :block/title (conj (vec parents') entity)))))
+     (map :block/title (conj parents' entity)))))
 
 (defn get-title-with-parents
   [entity]
@@ -131,4 +131,4 @@
 (defn library?
   [page]
   (and (entity-util/built-in? page)
-       (= common-config/library-page-name (:block/title page))))
+       (= common-config/library-page-name (:block/title page))))

+ 11 - 11
src/main/frontend/components/property/value.cljs

@@ -709,17 +709,17 @@
                                             (remove (fn [e] (contains? exclude-ids (:block/uuid e)))))]
                   excluded-options)
 
-                (contains? #{:class :property} property-type)
-                (let [classes (cond->
-                               (model/get-all-classes
-                                repo
-                                {:except-root-class? true
-                                 :except-private-tags? (not (contains? #{:logseq.property/template-applied-to} (:db/ident property)))})
-                                (not (or (and (entity-util/page? block) (not (ldb/internal-page? block))) (:logseq.property/created-from-property block)))
-                                (conj (db/entity :logseq.class/Page)))]
-                  (if (= property-type :class)
-                    classes
-                    (property-handler/get-class-property-choices)))
+                (= :class property-type)
+                (cond->
+                 (model/get-all-classes
+                  repo
+                  {:except-root-class? true
+                   :except-private-tags? (not (contains? #{:logseq.property/template-applied-to} (:db/ident property)))})
+                  (not (or (and (entity-util/page? block) (not (ldb/internal-page? block))) (:logseq.property/created-from-property block)))
+                  (conj (db/entity :logseq.class/Page)))
+
+                (= :property property-type)
+                (property-handler/get-class-property-choices)
 
                 (seq classes)
                 (->>

+ 6 - 1
src/main/frontend/handler/block.cljs

@@ -146,7 +146,11 @@
                        (or (some-> (:block/raw-title block-e) (ldb/inline-tag? t))
                            (ldb/private-tags (:db/ident t))))
                      (map (fn [tag] (if (number? tag) (db/entity tag) tag)) (:block/tags block)))]
-    (if (seq tags)
+    (cond
+      (ldb/class? block)
+      (ldb/get-class-title-with-extends block)
+
+      (seq tags)
       (str (:block/title block)
            " "
            (string/join
@@ -155,6 +159,7 @@
                     (when-let [title (:block/title tag)]
                       (str "#" title)))
                   tags)))
+      :else
       (:block/title block))))
 
 (defn edit-block!