Browse Source

enhance: display all the aliases in pre-block's properties

Tienson Qin 4 years ago
parent
commit
f626e8cc76
2 changed files with 21 additions and 4 deletions
  1. 10 1
      src/main/frontend/components/block.cljs
  2. 11 3
      src/main/frontend/db/model.cljs

+ 10 - 1
src/main/frontend/components/block.cljs

@@ -1361,7 +1361,16 @@
         properties (apply dissoc properties property/built-in-properties)
         pre-block? (:block/pre-block? block)
         properties (if pre-block?
-                     (dissoc properties :title :filters)
+                     (let [repo (state/get-current-repo)
+                           properties (dissoc properties :title :filters)
+                           aliases (db/get-page-alias-names repo
+                                                            (:block/name (db/pull (:db/id (:block/page block)))))]
+                       (if (seq aliases)
+                         (if (:alias properties)
+                           (update properties :alias (fn [c]
+                                                       (distinct (concat c aliases))))
+                           (assoc properties :alias aliases))
+                         properties))
                      properties)
         properties (sort properties)]
     (cond

+ 11 - 3
src/main/frontend/db/model.cljs

@@ -357,6 +357,9 @@
              [?e2 :block/alias ?e1]]
             [(alias ?e2 ?e1)
              [?e1 :block/alias ?e2]]
+            [(alias ?e1 ?e3)
+             [?e1 :block/alias ?e2]
+             [?e2 :block/alias ?e3]]
             [(alias ?e3 ?e1)
              [?e1 :block/alias ?e2]
              [?e2 :block/alias ?e3]]])
@@ -386,9 +389,14 @@
   [repo page-name]
   (let [alias-ids (page-alias-set repo page-name)]
     (when (seq alias-ids)
-      (->> (get-page-names-by-ids repo alias-ids)
-           distinct
-           (remove #(= (string/lower-case %) (string/lower-case page-name)))))))
+      (let [names (->> (get-page-names-by-ids repo alias-ids)
+                       distinct
+                       (remove #(= (string/lower-case %) (string/lower-case page-name))))
+            lookup-refs (map (fn [name]
+                               [:block/name (string/lower-case name)]) names)]
+        (->> (db-utils/pull-many repo '[:block/name :block/original-name] lookup-refs)
+             (map (fn [m]
+                    (or (:block/original-name m) (:block/name m)))))))))
 
 (defn with-block-refs-count
   [repo blocks]