mirror of https://github.com/logseq/logseq
fix: built-in props not being ignored in query table
also add timestamp columns for db graph blocks now that sorting is workingfeat/db-inferred-properties
parent
1e4cc1b4f2
commit
d48a3ca46b
|
@ -223,7 +223,7 @@
|
||||||
[:a.flex.ml-1.fade-link
|
[:a.flex.ml-1.fade-link
|
||||||
{:title "Setting properties"
|
{:title "Setting properties"
|
||||||
:on-click (fn []
|
:on-click (fn []
|
||||||
(let [all-keys (query-table/get-keys result page-list?)]
|
(let [all-keys (query-table/get-all-columns-for-result result page-list?)]
|
||||||
(state/pub-event! [:modal/set-query-properties current-block all-keys])))}
|
(state/pub-event! [:modal/set-query-properties current-block all-keys])))}
|
||||||
(ui/icon "settings" {:style {:font-size 20}})]
|
(ui/icon "settings" {:style {:font-size 20}})]
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
[medley.core :as medley]
|
[medley.core :as medley]
|
||||||
[rum.core :as rum]
|
[rum.core :as rum]
|
||||||
[logseq.graph-parser.text :as text]
|
[logseq.graph-parser.text :as text]
|
||||||
|
[logseq.graph-parser.property :as gp-property]
|
||||||
[frontend.handler.property.util :as pu]))
|
[frontend.handler.property.util :as pu]))
|
||||||
|
|
||||||
;; Util fns
|
;; Util fns
|
||||||
|
@ -96,15 +97,25 @@
|
||||||
[:span
|
[:span
|
||||||
(if sort-desc? (svg/caret-down) (svg/caret-up))])]]]))
|
(if sort-desc? (svg/caret-down) (svg/caret-up))])]]]))
|
||||||
|
|
||||||
(defn get-keys
|
(defn get-all-columns-for-result
|
||||||
"Get keys for a query table result, which are the columns in a table"
|
"Gets all possible columns for a given result. For a db graph, this is a mix
|
||||||
|
of property uuids and special keywords like :page. For a file graph, these are
|
||||||
|
all property names as keywords"
|
||||||
[result page?]
|
[result page?]
|
||||||
(let [keys (->> (distinct (mapcat keys (map :block/properties result)))
|
(let [repo (state/get-current-repo)
|
||||||
(remove (file-property/built-in-properties))
|
db-graph? (config/db-based-graph? repo)
|
||||||
(remove #{:template}))
|
hidden-properties (if db-graph?
|
||||||
keys (if page? (cons :page keys) (concat '(:block :page) keys))
|
;; TODO: Support additional hidden properties e.g. from user config
|
||||||
keys (if page? (distinct (concat keys [:created-at :updated-at])) keys)]
|
;; or gp-property/built-in-extended properties
|
||||||
keys))
|
(set (map #(:block/uuid (db/entity repo [:block/name %]))
|
||||||
|
gp-property/db-built-in-properties-keys-str))
|
||||||
|
(conj (file-property/built-in-properties) :template))
|
||||||
|
prop-keys* (->> (distinct (mapcat keys (map :block/properties result)))
|
||||||
|
(remove hidden-properties))
|
||||||
|
prop-keys (cond-> (if page? (cons :page prop-keys*) (concat '(:block :page) prop-keys*))
|
||||||
|
(or db-graph? page?)
|
||||||
|
(concat [:created-at :updated-at]))]
|
||||||
|
prop-keys))
|
||||||
|
|
||||||
(defn get-columns [current-block result {:keys [page?]}]
|
(defn get-columns [current-block result {:keys [page?]}]
|
||||||
(let [properties (:block/properties current-block)
|
(let [properties (:block/properties current-block)
|
||||||
|
@ -117,7 +128,7 @@
|
||||||
query-properties (if page? (remove #{:block} query-properties) query-properties)
|
query-properties (if page? (remove #{:block} query-properties) query-properties)
|
||||||
columns (if (seq query-properties)
|
columns (if (seq query-properties)
|
||||||
query-properties
|
query-properties
|
||||||
(get-keys result page?))
|
(get-all-columns-for-result result page?))
|
||||||
included-columns #{:created-at :updated-at}]
|
included-columns #{:created-at :updated-at}]
|
||||||
(distinct
|
(distinct
|
||||||
;; Ensure that timestamp columns are last columns since they take up space
|
;; Ensure that timestamp columns are last columns since they take up space
|
||||||
|
|
Loading…
Reference in New Issue