mirror of https://github.com/logseq/logseq
fix: page/date closed values for *property queries
Also updated example graph to show closed value queries workingpull/11102/head
parent
44a4ecdcd0
commit
62e6084b45
|
@ -209,3 +209,8 @@
|
|||
(let [e (d/entity db [:block/uuid id])]
|
||||
(when (= (get-in e [:block/schema :value]) value-name)
|
||||
e))) values)))
|
||||
|
||||
(defn closed-value-name
|
||||
"Gets name of closed value given closed value ent/map. Works for all closed value types including pages"
|
||||
[ent]
|
||||
(or (:block/original-name ent) (get-in ent [:block/schema :value])))
|
|
@ -4,6 +4,7 @@
|
|||
NOTE: This script is also used in CI to confirm graph creation works"
|
||||
(:require [logseq.tasks.db-graph.create-graph :as create-graph]
|
||||
[logseq.common.util.date-time :as date-time-util]
|
||||
[logseq.common.util.page-ref :as page-ref]
|
||||
[logseq.db.frontend.property.type :as db-property-type]
|
||||
[clojure.string :as string]
|
||||
[datascript.core :as d]
|
||||
|
@ -48,8 +49,15 @@
|
|||
yesterday (subtract-days today 1)
|
||||
two-days-ago (subtract-days today 2)
|
||||
closed-values-config (build-closed-values-config {:dates [today yesterday two-days-ago]})
|
||||
random-closed-value #(-> closed-values-config % rand-nth :uuid)
|
||||
random-page-closed-value #(-> closed-values-config % rand-nth :value)]
|
||||
;; Stores random closed values for use with queries
|
||||
closed-values (atom {})
|
||||
random-closed-value #(let [val (-> closed-values-config % rand-nth)]
|
||||
(swap! closed-values assoc % (:value val))
|
||||
(:uuid val))
|
||||
random-page-closed-value #(let [val (-> closed-values-config % rand-nth :value)]
|
||||
(swap! closed-values assoc % (second val))
|
||||
val)
|
||||
get-closed-value #(get @closed-values %)]
|
||||
{:pages-and-blocks
|
||||
[{:page
|
||||
{:block/name (date-journal-title today) :block/journal? true :block/journal-day (date-journal-day today)}
|
||||
|
@ -83,13 +91,17 @@
|
|||
[{:block/content "{{query (property :default \"haha\")}}"}
|
||||
{:block/content "{{query (property :url \"https://logseq.com\")}}"}
|
||||
{:block/content "{{query (property :url-many \"https://logseq.com\")}}"}
|
||||
{:block/content (str "{{query (property :url-closed " (pr-str (get-closed-value :url-closed)) ")}}")}
|
||||
{:block/content "{{query (property :checkbox true)}}"}
|
||||
{:block/content "{{query (property :number 5)}}"}
|
||||
{:block/content "{{query (property :number-many 10)}}"}
|
||||
{:block/content (str "{{query (property :number-closed " (pr-str (get-closed-value :number-closed)) ")}}")}
|
||||
{:block/content "{{query (property :page [[Page 1]])}}"}
|
||||
{:block/content "{{query (property :page-many [[Page 2]])}}"}
|
||||
{:block/content (str "{{query (property :date [[" (string/capitalize (date-journal-title today)) "]])}}")}
|
||||
{:block/content (str "{{query (property :date-many [[" (string/capitalize (date-journal-title yesterday)) "]])}}")}]}
|
||||
{:block/content (str "{{query (property :page-closed " (page-ref/->page-ref (string/capitalize (get-closed-value :page-closed))) ")}}")}
|
||||
{:block/content (str "{{query (property :date " (page-ref/->page-ref (string/capitalize (date-journal-title today))) ")}}")}
|
||||
{:block/content (str "{{query (property :date-many " (page-ref/->page-ref (string/capitalize (date-journal-title yesterday))) ")}}")}
|
||||
{:block/content (str "{{query (property :date-closed " (page-ref/->page-ref (string/capitalize (get-closed-value :date-closed))) ")}}")}]}
|
||||
{:page {:block/name "page 1"}
|
||||
:blocks
|
||||
[{:block/content "yee"}
|
||||
|
|
|
@ -17,7 +17,8 @@
|
|||
[frontend.db.async :as db-async]
|
||||
[frontend.state :as state]
|
||||
[frontend.handler.property.util :as pu]
|
||||
[promesa.core :as p]))
|
||||
[promesa.core :as p]
|
||||
[logseq.db.frontend.property :as db-property]))
|
||||
|
||||
(defn- <upsert-closed-value!
|
||||
"Create new closed value and returns its block UUID."
|
||||
|
@ -110,8 +111,7 @@
|
|||
(rum/local false ::hover?)
|
||||
[state item {:keys [toggle-fn delete-choice update-icon]} parent-opts]
|
||||
(let [*hover? (::hover? state)
|
||||
value (or (:block/original-name item)
|
||||
(get-in item [:block/schema :value]))
|
||||
value (db-property/closed-value-name item)
|
||||
page? (:block/original-name item)]
|
||||
[:div.flex.flex-1.flex-row.items-center.gap-2.justify-between
|
||||
{:on-mouse-over #(reset! *hover? true)
|
||||
|
|
|
@ -24,7 +24,8 @@
|
|||
[promesa.core :as p]
|
||||
[frontend.db.async :as db-async]
|
||||
[logseq.common.util.macro :as macro-util]
|
||||
[logseq.db :as ldb]))
|
||||
[logseq.db :as ldb]
|
||||
[logseq.db.frontend.property :as db-property]))
|
||||
|
||||
(defn- select-type?
|
||||
[property type]
|
||||
|
@ -393,8 +394,7 @@
|
|||
(keep (fn [id]
|
||||
(when-let [block (when id (db/entity [:block/uuid id]))]
|
||||
(let [icon (pu/get-block-property-value block :icon)
|
||||
value (or (:block/original-name block)
|
||||
(get-in block [:block/schema :value]))]
|
||||
value (db-property/closed-value-name block)]
|
||||
{:label (if icon
|
||||
[:div.flex.flex-row.gap-2
|
||||
(icon-component/icon icon)
|
||||
|
|
|
@ -276,7 +276,7 @@
|
|||
values (get-in property [:block/schema :values])
|
||||
v' (if (seq values) ; closed values
|
||||
(or
|
||||
(some #(when-let [closed-value (get-in (db-utils/entity [:block/uuid %]) [:block/schema :value])]
|
||||
(some #(when-let [closed-value (db-property/closed-value-name (db-utils/entity [:block/uuid %]))]
|
||||
(when (= v closed-value)
|
||||
%))
|
||||
values)
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
(:require [frontend.db.utils :as db-utils]
|
||||
[frontend.state :as state]
|
||||
[logseq.common.util :as common-util]
|
||||
[frontend.db :as db]))
|
||||
[frontend.db :as db]
|
||||
[logseq.db.frontend.property :as db-property]))
|
||||
|
||||
(defn get-property-name
|
||||
"Get a property's name given its uuid"
|
||||
|
@ -39,8 +40,7 @@
|
|||
readable-property-val
|
||||
#(if (seq (get-in prop-ent [:block/schema :values])) ; closed values
|
||||
(when-let [block (db-utils/entity [:block/uuid %])]
|
||||
(or (:block/original-name block)
|
||||
(get-in block [:block/schema :value])))
|
||||
(db-property/closed-value-name block))
|
||||
%)]
|
||||
[(-> prop-ent :block/name keyword)
|
||||
(if (set? v)
|
||||
|
|
Loading…
Reference in New Issue