fix: custom query transform should support pages too

This commit is contained in:
Tienson Qin
2020-12-22 21:32:30 +08:00
parent c985bc6031
commit 88b37d2d70
2 changed files with 42 additions and 21 deletions

View File

@@ -1584,6 +1584,25 @@
{:style {:margin-top "0.25rem"
:margin-left "0.25rem"}})
;; page list
(and (seq result)
(:page/name (first result)))
[:ol
(for [{:page/keys [name original-name] :as page-entity} result]
[:li
[:a {:href (rfe/href :page {:name name})
:on-click (fn [e]
(util/stop e)
(if (gobj/get e "shiftKey")
(state/sidebar-add-block!
(state/get-current-repo)
(:db/id page-entity)
:page
{:page page-entity})
(route-handler/redirect! {:to :page
:path-params {:name name}})))}
(or original-name name)]])]
(seq result) ;TODO: table
(let [result (->>
(for [record result]

View File

@@ -69,24 +69,26 @@
(let [repo (state/get-current-repo)
result (db-utils/seq-flatten query-result)
block? (:block/uuid (first result))]
(if block?
(let [result (if (seq remove-blocks)
(let [remove-blocks (set remove-blocks)]
(remove (fn [h]
(contains? remove-blocks (:block/uuid h)))
result))
result)
result (some->> result
(db-utils/with-repo repo)
(model/with-block-refs-count repo)
(model/sort-blocks))]
(if-let [result-transform (:result-transform q)]
(if-let [f (sci/eval-string (pr-str result-transform))]
(try
(sci/call-fn f result)
(catch js/Error e
(log/error :sci/call-error e)
result))
result)
(db-utils/group-by-page result)))
result)))
(let [result (if block?
(let [result (if (seq remove-blocks)
(let [remove-blocks (set remove-blocks)]
(remove (fn [h]
(contains? remove-blocks (:block/uuid h)))
result))
result)]
(some->> result
(db-utils/with-repo repo)
(model/with-block-refs-count repo)
(model/sort-blocks)))
result)]
(if-let [result-transform (:result-transform q)]
(if-let [f (sci/eval-string (pr-str result-transform))]
(try
(sci/call-fn f result)
(catch js/Error e
(log/error :sci/call-error e)
result))
result)
(if block?
(db-utils/group-by-page result)
result)))))