enhance: import built-in logseq.* props - part of LOG-2977

pull/11049/head
Gabriel Horner 2024-02-15 15:01:01 -05:00
parent 18d3c87016
commit 0bba0a2ca9
3 changed files with 43 additions and 18 deletions

View File

@ -172,3 +172,16 @@
(defn shape-block?
[repo db block]
(= :whiteboard-shape (get-block-property-value repo db block :ls-type)))
(defn get-closed-property-values
[db property-name]
(when-let [property (get-property db property-name)]
(get-in property [:block/schema :values])))
(defn get-closed-value-entity-by-name
[db property-name value-name]
(let [values (get-closed-property-values db property-name)]
(some (fn [id]
(let [e (d/entity db [:block/uuid id])]
(when (= (get-in e [:block/schema :value]) value-name)
e))) values)))

View File

@ -122,6 +122,28 @@
(map #(add-uuid-to-page-map % page-names-to-uuids)))))
block)))
(defn- update-built-in-property-values
[props db]
(->> props
(map (fn [[prop val]]
[prop
(case prop
:query-properties
(try
(mapv #(if (#{:page :block :created-at :updated-at} %) % (get-pid db %))
(edn/read-string val))
(catch :default e
(js/console.error "Translating query properties failed with:" e)
[]))
:query-sort-by
(if (#{:page :block :created-at :updated-at} val) val (get-pid db val))
(:logseq.color :logseq.table.headers :logseq.table.hover)
(:block/uuid (db-property/get-closed-value-entity-by-name db prop val))
:logseq.table.version
(parse-long val)
val)]))
(into {})))
(defn- update-block-properties [props db page-names-to-uuids {:keys [whiteboard?]}]
(let [prop-name->uuid (if whiteboard?
(fn prop-name->uuid [k]
@ -139,17 +161,8 @@
:card-last-interval :card-repeats :card-last-reviewed :card-next-schedule
:card-ease-factor :card-last-score])]
(cond-> (apply dissoc props dissoced-props)
(:query-properties props)
(update :query-properties
(fn [val]
(try
(mapv #(if (#{:page :block :created-at :updated-at} %) % (get-pid db %))
(edn/read-string val))
(catch :default e
(js/console.error "Translating query properties failed with:" e)
[]))))
(:query-sort-by props)
(update :query-sort-by #(if (#{:page :block :created-at :updated-at} %) % (get-pid db %)))
(seq (select-keys props db-property/built-in-properties-keys))
(update-built-in-property-values db)
true
(update-keys prop-name->uuid))))

View File

@ -55,13 +55,12 @@
(defn get-closed-property-values
[property-name]
(when-let [property (get-property property-name)]
(get-in property [:block/schema :values])))
(let [repo (state/get-current-repo)
db (db/get-db repo)]
(db-property/get-closed-property-values db property-name)))
(defn get-closed-value-entity-by-name
[property-name value-name]
(let [values (get-closed-property-values property-name)]
(some (fn [id]
(let [e (db/entity [:block/uuid id])]
(when (= (get-in e [:block/schema :value]) value-name)
e))) values)))
(let [repo (state/get-current-repo)
db (db/get-db repo)]
(db-property/get-closed-value-entity-by-name db property-name value-name)))