mirror of https://github.com/logseq/logseq
chore: rename :property/value to :property.value/content
property-value is widely being used to refer to the entity or value associated with a property entity. Naming the content of a property-entity :property/value is confusing. property-value content is a unique name and consistent with :block/content. Also rename related fns which had similarly confusing namesexperiment/tanstack-table
parent
4b5ba7c600
commit
244a86557f
|
@ -360,7 +360,7 @@
|
||||||
(vec
|
(vec
|
||||||
(concat
|
(concat
|
||||||
[:map]
|
[:map]
|
||||||
[[:property/value [:or :string :double]]]
|
[[:property.value/content [:or :string :double]]]
|
||||||
(remove #(#{:block/content} (first %)) block-attrs)
|
(remove #(#{:block/content} (first %)) block-attrs)
|
||||||
page-or-block-attrs)))
|
page-or-block-attrs)))
|
||||||
|
|
||||||
|
@ -372,7 +372,7 @@
|
||||||
;; for built-in properties
|
;; for built-in properties
|
||||||
[:db/ident {:optional true} logseq-property-ident]
|
[:db/ident {:optional true} logseq-property-ident]
|
||||||
[:block/content {:optional true} :string]
|
[:block/content {:optional true} :string]
|
||||||
[:property/value {:optional true} [:or :string :double]]
|
[:property.value/content {:optional true} [:or :string :double]]
|
||||||
[:block/closed-value-property {:optional true} [:set :int]]
|
[:block/closed-value-property {:optional true} [:set :int]]
|
||||||
[:block/schema {:optional true}
|
[:block/schema {:optional true}
|
||||||
[:map
|
[:map
|
||||||
|
@ -383,10 +383,10 @@
|
||||||
(def closed-value-block
|
(def closed-value-block
|
||||||
"A closed value for a property with closed/allowed values"
|
"A closed value for a property with closed/allowed values"
|
||||||
[:and closed-value-block*
|
[:and closed-value-block*
|
||||||
[:fn {:error/message ":block/content or :property/value required"
|
[:fn {:error/message ":block/content or :property.value/content required"
|
||||||
:error/path [:property/value]}
|
:error/path [:property.value/content]}
|
||||||
(fn [m]
|
(fn [m]
|
||||||
(or (:block/content m) (:property/value m)))]])
|
(or (:block/content m) (:property.value/content m)))]])
|
||||||
|
|
||||||
(def normal-block
|
(def normal-block
|
||||||
"A block with content and no special type or tag behavior"
|
"A block with content and no special type or tag behavior"
|
||||||
|
|
|
@ -223,44 +223,43 @@
|
||||||
(when-let [property (d/entity db property-id)]
|
(when-let [property (d/entity db property-id)]
|
||||||
(:property/closed-values property)))
|
(:property/closed-values property)))
|
||||||
|
|
||||||
(defn closed-value-name
|
(defn closed-value-content
|
||||||
"Gets name of closed value given closed value ent/map. Works for all closed value types"
|
"Gets content/value of a given closed value ent/map. Works for all closed value types"
|
||||||
[ent]
|
[ent]
|
||||||
(or (:block/content ent)
|
(or (:block/content ent)
|
||||||
(:property/value ent)))
|
(:property.value/content ent)))
|
||||||
|
|
||||||
(defn get-property-value-name
|
(defn property-value-content
|
||||||
"Given an entity, gets a readable name for the property value of a ref type
|
"Given an entity, gets the content for the property value of a ref type
|
||||||
property. Different than closed-value-name as there implementation will likely
|
property i.e. what the user sees. For page types the content is the page name"
|
||||||
differ"
|
|
||||||
[ent]
|
[ent]
|
||||||
(or (:block/content ent)
|
(or (:block/content ent)
|
||||||
(:property/value ent)
|
(:property.value/content ent)
|
||||||
(:block/original-name ent)))
|
(:block/original-name ent)))
|
||||||
|
|
||||||
(defn get-property-value-name-from-ref
|
(defn ref->property-value-content
|
||||||
"Given a ref from a pulled query e.g. `{:db/id X}`, gets a readable name for
|
"Given a ref from a pulled query e.g. `{:db/id X}`, gets a readable name for
|
||||||
the property value of a ref type property"
|
the property value of a ref type property"
|
||||||
[db ref]
|
[db ref]
|
||||||
(some->> (:db/id ref)
|
(some->> (:db/id ref)
|
||||||
(d/entity db)
|
(d/entity db)
|
||||||
get-property-value-name))
|
property-value-content))
|
||||||
|
|
||||||
(defn get-property-value-names-from-ref
|
(defn ref->property-value-contents
|
||||||
"Given a ref or refs from a pulled query e.g. `{:db/id X}`, gets a readable
|
"Given a ref or refs from a pulled query e.g. `{:db/id X}`, gets a readable
|
||||||
name for the property values of a ref type property"
|
name for the property values of a ref type property"
|
||||||
[db ref]
|
[db ref]
|
||||||
(if (or (set? ref) (sequential? ref))
|
(if (or (set? ref) (sequential? ref))
|
||||||
(set (map #(get-property-value-name-from-ref db %) ref))
|
(set (map #(ref->property-value-content db %) ref))
|
||||||
(get-property-value-name-from-ref db ref)))
|
(ref->property-value-content db ref)))
|
||||||
|
|
||||||
(defn get-closed-value-entity-by-name
|
(defn get-closed-value-entity-by-name
|
||||||
"Given a property, finds one of its closed values by name or nil if none
|
"Given a property, finds one of its closed values by name or nil if none
|
||||||
found. Works for all closed value types"
|
found. Works for all closed value types"
|
||||||
[db db-ident value-name]
|
[db db-ident value-content]
|
||||||
(let [values (get-closed-property-values db db-ident)]
|
(let [values (get-closed-property-values db db-ident)]
|
||||||
(some (fn [e]
|
(some (fn [e]
|
||||||
(when (= (closed-value-name e) value-name)
|
(when (= (closed-value-content e) value-content)
|
||||||
e)) values)))
|
e)) values)))
|
||||||
|
|
||||||
(def default-user-namespace "user.property")
|
(def default-user-namespace "user.property")
|
||||||
|
@ -281,7 +280,7 @@
|
||||||
(and (map? block)
|
(and (map? block)
|
||||||
(:logseq.property/created-from-property block)
|
(:logseq.property/created-from-property block)
|
||||||
(:block/page block)
|
(:block/page block)
|
||||||
(not (some? (closed-value-name block)))))
|
(not (some? (closed-value-content block)))))
|
||||||
|
|
||||||
(defn many?
|
(defn many?
|
||||||
[property]
|
[property]
|
||||||
|
@ -294,5 +293,5 @@
|
||||||
(->> (properties block)
|
(->> (properties block)
|
||||||
(map (fn [[k v]]
|
(map (fn [[k v]]
|
||||||
[(:block/original-name (d/entity db k))
|
[(:block/original-name (d/entity db k))
|
||||||
(get-property-value-names-from-ref db v)]))
|
(ref->property-value-contents db v)]))
|
||||||
(into {})))
|
(into {})))
|
|
@ -16,7 +16,7 @@
|
||||||
:logseq.property/created-from-property property-id
|
:logseq.property/created-from-property property-id
|
||||||
:block/parent property-id}
|
:block/parent property-id}
|
||||||
(if (db-property-type/original-value-ref-property-types (get-in property [:block/schema :type]))
|
(if (db-property-type/original-value-ref-property-types (get-in property [:block/schema :type]))
|
||||||
{:property/value value}
|
{:property.value/content value}
|
||||||
{:block/content value}))))
|
{:block/content value}))))
|
||||||
|
|
||||||
(defn build-closed-value-block
|
(defn build-closed-value-block
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
:logseq.property/created-from-property (or (:db/id property) {:db/ident (:db/ident property)})
|
:logseq.property/created-from-property (or (:db/id property) {:db/ident (:db/ident property)})
|
||||||
:block/order (db-order/gen-key)}
|
:block/order (db-order/gen-key)}
|
||||||
(if (db-property-type/original-value-ref-property-types (get-in property [:block/schema :type]))
|
(if (db-property-type/original-value-ref-property-types (get-in property [:block/schema :type]))
|
||||||
{:property/value value}
|
{:property.value/content value}
|
||||||
{:block/content value}))
|
{:block/content value}))
|
||||||
sqlite-util/block-with-timestamps))
|
sqlite-util/block-with-timestamps))
|
||||||
|
|
||||||
|
|
|
@ -30,13 +30,13 @@
|
||||||
|
|
||||||
(def original-value-ref-property-types
|
(def original-value-ref-property-types
|
||||||
"Property value ref types where the refed entity stores its value in
|
"Property value ref types where the refed entity stores its value in
|
||||||
:property/value e.g. :number is stored as a number. new value-ref-property-types
|
:property.value/content e.g. :number is stored as a number. new value-ref-property-types
|
||||||
should default to this as it allows for more querying power"
|
should default to this as it allows for more querying power"
|
||||||
#{:number :url})
|
#{:number :url})
|
||||||
|
|
||||||
(def value-ref-property-types
|
(def value-ref-property-types
|
||||||
"Property value ref types where the refed entities either store their value in
|
"Property value ref types where the refed entities either store their value in
|
||||||
:property/value or block/content"
|
:property.value/content or block/content"
|
||||||
(into #{:default :template}
|
(into #{:default :template}
|
||||||
original-value-ref-property-types))
|
original-value-ref-property-types))
|
||||||
|
|
||||||
|
@ -89,14 +89,14 @@
|
||||||
(if new-closed-value?
|
(if new-closed-value?
|
||||||
(url? val)
|
(url? val)
|
||||||
(when-let [ent (d/entity db val)]
|
(when-let [ent (d/entity db val)]
|
||||||
(url? (:property/value ent)))))
|
(url? (:property.value/content ent)))))
|
||||||
|
|
||||||
(defn- number-entity?
|
(defn- number-entity?
|
||||||
[db id-or-value {:keys [new-closed-value?]}]
|
[db id-or-value {:keys [new-closed-value?]}]
|
||||||
(if new-closed-value?
|
(if new-closed-value?
|
||||||
(number? id-or-value)
|
(number? id-or-value)
|
||||||
(when-let [entity (d/entity db id-or-value)]
|
(when-let [entity (d/entity db id-or-value)]
|
||||||
(number? (:property/value entity)))))
|
(number? (:property.value/content entity)))))
|
||||||
|
|
||||||
(defn- text-entity?
|
(defn- text-entity?
|
||||||
[db s {:keys [new-closed-value?]}]
|
[db s {:keys [new-closed-value?]}]
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
[repo coll db-ident]
|
[repo coll db-ident]
|
||||||
(if (sqlite-util/db-based-graph? repo)
|
(if (sqlite-util/db-based-graph? repo)
|
||||||
(let [val (get coll db-ident)]
|
(let [val (get coll db-ident)]
|
||||||
(if (built-in-has-ref-value? db-ident) (db-property/get-property-value-name val) val))
|
(if (built-in-has-ref-value? db-ident) (db-property/property-value-content val) val))
|
||||||
(get coll (get-pid repo db-ident))))
|
(get coll (get-pid repo db-ident))))
|
||||||
|
|
||||||
(defn get-block-property-value
|
(defn get-block-property-value
|
||||||
|
|
|
@ -172,7 +172,7 @@
|
||||||
[?p :block/name]
|
[?p :block/name]
|
||||||
[?p ?prop ?pv]
|
[?p ?prop ?pv]
|
||||||
(or [?pv :block/content ?val]
|
(or [?pv :block/content ?val]
|
||||||
[?pv :property/value ?val]
|
[?pv :property.value/content ?val]
|
||||||
[?pv :block/original-name ?val])
|
[?pv :block/original-name ?val])
|
||||||
[?prop-e :db/ident ?prop]
|
[?prop-e :db/ident ?prop]
|
||||||
[?prop-e :block/type "property"]]
|
[?prop-e :block/type "property"]]
|
||||||
|
@ -188,7 +188,7 @@
|
||||||
'[(property ?b ?prop ?val)
|
'[(property ?b ?prop ?val)
|
||||||
[?b ?prop ?pv]
|
[?b ?prop ?pv]
|
||||||
(or [?pv :block/content ?val]
|
(or [?pv :block/content ?val]
|
||||||
[?pv :property/value ?val]
|
[?pv :property.value/content ?val]
|
||||||
[?pv :block/original-name ?val])
|
[?pv :block/original-name ?val])
|
||||||
[(missing? $ ?b :block/name)]
|
[(missing? $ ?b :block/name)]
|
||||||
[?prop-e :db/ident ?prop]
|
[?prop-e :db/ident ?prop]
|
||||||
|
|
|
@ -135,7 +135,7 @@
|
||||||
:db/cardinality :db.cardinality/many}
|
:db/cardinality :db.cardinality/many}
|
||||||
:property/schema.classes {:db/valueType :db.type/ref
|
:property/schema.classes {:db/valueType :db.type/ref
|
||||||
:db/cardinality :db.cardinality/many}
|
:db/cardinality :db.cardinality/many}
|
||||||
:property/value {}
|
:property.value/content {}
|
||||||
:file/last-modified-at {}
|
:file/last-modified-at {}
|
||||||
:asset/uuid {:db/unique :db.unique/identity}
|
:asset/uuid {:db/unique :db.unique/identity}
|
||||||
:asset/meta {}}))
|
:asset/meta {}}))
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
:where [?b :block/content "Jrue Holiday"]])
|
:where [?b :block/content "Jrue Holiday"]])
|
||||||
first
|
first
|
||||||
:user.property/description
|
:user.property/description
|
||||||
(db-property/get-property-value-name-from-ref @conn)))
|
(db-property/ref->property-value-contents @conn)))
|
||||||
"description property is created and correctly associated to a block")
|
"description property is created and correctly associated to a block")
|
||||||
|
|
||||||
(is (= "Awesome selfless basketball"
|
(is (= "Awesome selfless basketball"
|
||||||
|
@ -49,5 +49,5 @@
|
||||||
:where [?b :block/original-name "Jayson Tatum"]])
|
:where [?b :block/original-name "Jayson Tatum"]])
|
||||||
first
|
first
|
||||||
:user.property/description
|
:user.property/description
|
||||||
(db-property/get-property-value-name-from-ref @conn)))
|
(db-property/ref->property-value-contents @conn)))
|
||||||
"description property is created and correctly associated to a page")))
|
"description property is created and correctly associated to a page")))
|
|
@ -426,7 +426,7 @@
|
||||||
(assoc schema :description description)
|
(assoc schema :description description)
|
||||||
(dissoc schema :description))}
|
(dissoc schema :description))}
|
||||||
(if (db-property-type/original-value-ref-property-types (get-in property [:block/schema :type]))
|
(if (db-property-type/original-value-ref-property-types (get-in property [:block/schema :type]))
|
||||||
{:property/value resolved-value}
|
{:property.value/content resolved-value}
|
||||||
{:block/content resolved-value})))
|
{:block/content resolved-value})))
|
||||||
icon
|
icon
|
||||||
(assoc :logseq.property/icon icon)))]
|
(assoc :logseq.property/icon icon)))]
|
||||||
|
@ -459,7 +459,7 @@
|
||||||
resolved-value)]
|
resolved-value)]
|
||||||
(cond
|
(cond
|
||||||
(some (fn [b]
|
(some (fn [b]
|
||||||
(and (= (str resolved-value) (str (or (db-property/closed-value-name b)
|
(and (= (str resolved-value) (str (or (db-property/closed-value-content b)
|
||||||
(:block/uuid b))))
|
(:block/uuid b))))
|
||||||
(not= id (:block/uuid b))))
|
(not= id (:block/uuid b))))
|
||||||
(:property/closed-values property))
|
(:property/closed-values property))
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
(when-some [props (and block page (:block/properties block))]
|
(when-some [props (and block page (:block/properties block))]
|
||||||
;; Can't use db-property-util/lookup b/c repo isn't available
|
;; Can't use db-property-util/lookup b/c repo isn't available
|
||||||
(let [prop-lookup-fn (if (entity-plus/db-based-graph? db)
|
(let [prop-lookup-fn (if (entity-plus/db-based-graph? db)
|
||||||
#(db-property/get-property-value-name (get %1 %2))
|
#(db-property/property-value-content (get %1 %2))
|
||||||
#(get %1 (keyword (name %2))))]
|
#(get %1 (keyword (name %2))))]
|
||||||
(when-some [uuid (:block/uuid block)]
|
(when-some [uuid (:block/uuid block)]
|
||||||
(when-some [stamp (prop-lookup-fn props :logseq.property.pdf/hl-stamp)]
|
(when-some [stamp (prop-lookup-fn props :logseq.property.pdf/hl-stamp)]
|
||||||
|
|
|
@ -374,7 +374,7 @@
|
||||||
(assoc :block/properties (-> (update-keys props name)
|
(assoc :block/properties (-> (update-keys props name)
|
||||||
(update-vals (fn [v]
|
(update-vals (fn [v]
|
||||||
(if (:db/id v)
|
(if (:db/id v)
|
||||||
(db-property/get-property-value-name (d/entity db (:db/id v)))
|
(db-property/property-value-content (d/entity db (:db/id v)))
|
||||||
v)))))
|
v)))))
|
||||||
(seq (:class/schema.properties m))
|
(seq (:class/schema.properties m))
|
||||||
(update :class/schema.properties #(set (map :block/original-name %)))
|
(update :class/schema.properties #(set (map :block/original-name %)))
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
shortcut/disable-all-shortcuts
|
shortcut/disable-all-shortcuts
|
||||||
{:init (fn [state]
|
{:init (fn [state]
|
||||||
(let [block (second (:rum/args state))
|
(let [block (second (:rum/args state))
|
||||||
value (or (str (db-property/closed-value-name block)) "")
|
value (or (str (db-property/closed-value-content block)) "")
|
||||||
icon (:logseq.property/icon block)
|
icon (:logseq.property/icon block)
|
||||||
description (or (get-in block [:block/schema :description]) "")]
|
description (or (get-in block [:block/schema :description]) "")]
|
||||||
(assoc state
|
(assoc state
|
||||||
|
@ -116,7 +116,7 @@
|
||||||
(rum/local false ::hover?)
|
(rum/local false ::hover?)
|
||||||
[state item {:keys [toggle-fn delete-choice update-icon]} parent-opts]
|
[state item {:keys [toggle-fn delete-choice update-icon]} parent-opts]
|
||||||
(let [*hover? (::hover? state)
|
(let [*hover? (::hover? state)
|
||||||
value (db-property/closed-value-name item)
|
value (db-property/closed-value-content item)
|
||||||
page? (:block/original-name item)
|
page? (:block/original-name item)
|
||||||
property-block? (db-property/property-created-block? item)]
|
property-block? (db-property/property-created-block? item)]
|
||||||
[:div.flex.flex-1.flex-row.items-center.gap-2.justify-between
|
[:div.flex.flex-1.flex-row.items-center.gap-2.justify-between
|
||||||
|
@ -186,7 +186,7 @@
|
||||||
(for [value values]
|
(for [value values]
|
||||||
[:li (if (uuid? value)
|
[:li (if (uuid? value)
|
||||||
(let [result (db/entity [:block/uuid value])]
|
(let [result (db/entity [:block/uuid value])]
|
||||||
(db-property/closed-value-name result))
|
(db-property/closed-value-content result))
|
||||||
(str value))])]
|
(str value))])]
|
||||||
(ui/button
|
(ui/button
|
||||||
"Add choices"
|
"Add choices"
|
||||||
|
|
|
@ -439,7 +439,7 @@
|
||||||
items (if closed-values?
|
items (if closed-values?
|
||||||
(keep (fn [block]
|
(keep (fn [block]
|
||||||
(let [icon (pu/get-block-property-value block :logseq.property/icon)
|
(let [icon (pu/get-block-property-value block :logseq.property/icon)
|
||||||
value (db-property/closed-value-name block)]
|
value (db-property/closed-value-content block)]
|
||||||
{:label (if icon
|
{:label (if icon
|
||||||
[:div.flex.flex-row.gap-2
|
[:div.flex.flex-row.gap-2
|
||||||
(icon-component/icon icon)
|
(icon-component/icon icon)
|
||||||
|
@ -454,7 +454,7 @@
|
||||||
(map (fn [{:keys [value]}]
|
(map (fn [{:keys [value]}]
|
||||||
(if (and ref-type? (number? value))
|
(if (and ref-type? (number? value))
|
||||||
(when-let [e (db/entity value)]
|
(when-let [e (db/entity value)]
|
||||||
{:label (db-property/get-property-value-name e)
|
{:label (db-property/property-value-content e)
|
||||||
:value value})
|
:value value})
|
||||||
{:label value
|
{:label value
|
||||||
:value value})))
|
:value value})))
|
||||||
|
@ -584,7 +584,7 @@
|
||||||
(let [eid (if (de/entity? value) (:db/id value) [:block/uuid value])]
|
(let [eid (if (de/entity? value) (:db/id value) [:block/uuid value])]
|
||||||
(when-let [block (db/sub-block (:db/id (db/entity eid)))]
|
(when-let [block (db/sub-block (:db/id (db/entity eid)))]
|
||||||
(let [property-block? (db-property/property-created-block? block)
|
(let [property-block? (db-property/property-created-block? block)
|
||||||
value' (db-property/closed-value-name block)
|
value' (db-property/closed-value-content block)
|
||||||
icon (pu/get-block-property-value block :logseq.property/icon)]
|
icon (pu/get-block-property-value block :logseq.property/icon)]
|
||||||
(cond
|
(cond
|
||||||
icon
|
icon
|
||||||
|
@ -638,9 +638,9 @@
|
||||||
(closed-value-item value opts)
|
(closed-value-item value opts)
|
||||||
|
|
||||||
(de/entity? value)
|
(de/entity? value)
|
||||||
(when-some [content (if (some? (:property/value value))
|
(when-some [content (if (some? (:property.value/content value))
|
||||||
;; content needs to be a string for display purposes
|
;; content needs to be a string for display purposes
|
||||||
(str (:property/value value))
|
(str (:property.value/content value))
|
||||||
(:block/content value))]
|
(:block/content value))]
|
||||||
(inline-text-cp content))
|
(inline-text-cp content))
|
||||||
|
|
||||||
|
|
|
@ -168,7 +168,7 @@
|
||||||
_ (when db-graph?
|
_ (when db-graph?
|
||||||
(doseq [id values] (db/sub-block id)))
|
(doseq [id values] (db/sub-block id)))
|
||||||
values' (if db-graph?
|
values' (if db-graph?
|
||||||
(map #(db-property/get-property-value-name (db/entity repo %)) values)
|
(map #(db-property/property-value-content (db/entity repo %)) values)
|
||||||
values)
|
values)
|
||||||
values'' (cons "Select all" values')]
|
values'' (cons "Select all" values')]
|
||||||
(select values''
|
(select values''
|
||||||
|
|
|
@ -182,7 +182,7 @@
|
||||||
|
|
||||||
[:string
|
[:string
|
||||||
(if db-graph?
|
(if db-graph?
|
||||||
(db-property/get-property-value-names-from-ref db (get row column))
|
(db-property/ref->property-value-contents db (get row column))
|
||||||
(if comma-separated-property?
|
(if comma-separated-property?
|
||||||
;; Return original properties since comma properties need to
|
;; Return original properties since comma properties need to
|
||||||
;; return collections for display purposes
|
;; return collections for display purposes
|
||||||
|
|
|
@ -107,7 +107,7 @@
|
||||||
[(not= ?vid :logseq.property/empty-placeholder)]
|
[(not= ?vid :logseq.property/empty-placeholder)]
|
||||||
(or
|
(or
|
||||||
[?vid :block/content ?value]
|
[?vid :block/content ?value]
|
||||||
[?vid :property/value ?value]
|
[?vid :property.value/content ?value]
|
||||||
[?vid :block/original-name ?value])]
|
[?vid :block/original-name ?value])]
|
||||||
property-id
|
property-id
|
||||||
value)]
|
value)]
|
||||||
|
|
|
@ -26,9 +26,9 @@
|
||||||
[k
|
[k
|
||||||
(cond
|
(cond
|
||||||
(de/entity? v)
|
(de/entity? v)
|
||||||
(db-property/get-property-value-name v)
|
(db-property/property-value-content v)
|
||||||
(and (set? v) (every? de/entity? v))
|
(and (set? v) (every? de/entity? v))
|
||||||
(set (map db-property/get-property-value-name v))
|
(set (map db-property/property-value-content v))
|
||||||
:else
|
:else
|
||||||
v)]))
|
v)]))
|
||||||
(into {})))
|
(into {})))
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
"Get a property's name given its id"
|
"Get a property's name given its id"
|
||||||
[e]
|
[e]
|
||||||
(if-let [e (if (number? e) (db-utils/pull e) e)]
|
(if-let [e (if (number? e) (db-utils/pull e) e)]
|
||||||
(db-property/get-property-value-name e)
|
(db-property/property-value-content e)
|
||||||
e))
|
e))
|
||||||
|
|
||||||
(defn properties-by-name
|
(defn properties-by-name
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
[(if original-key? k (-> prop-ent :block/original-name keyword))
|
[(if original-key? k (-> prop-ent :block/original-name keyword))
|
||||||
(cond
|
(cond
|
||||||
(set? v)
|
(set? v)
|
||||||
(set (map db-property/get-property-value-name v))
|
(set (map db-property/property-value-content v))
|
||||||
|
|
||||||
(sequential? v)
|
(sequential? v)
|
||||||
(map #(get-property-value (or (:db/id %) %)) v)
|
(map #(get-property-value (or (:db/id %) %)) v)
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
2
|
2
|
||||||
(every? keyword? (map first properties))
|
(every? keyword? (map first properties))
|
||||||
true
|
true
|
||||||
(db-property/get-property-value-name (second (second properties)))
|
(db-property/property-value-content (second (second properties)))
|
||||||
1)))
|
1)))
|
||||||
|
|
||||||
(testing "Update property value"
|
(testing "Update property value"
|
||||||
|
@ -89,7 +89,7 @@
|
||||||
(are [x y] (= x y)
|
(are [x y] (= x y)
|
||||||
(count properties)
|
(count properties)
|
||||||
2
|
2
|
||||||
(db-property/get-property-value-name (second (second properties)))
|
(db-property/property-value-content (second (second properties)))
|
||||||
2)))
|
2)))
|
||||||
|
|
||||||
(testing "Wrong type property value shouldn't transacted"
|
(testing "Wrong type property value shouldn't transacted"
|
||||||
|
@ -105,7 +105,7 @@
|
||||||
(are [x y] (= x y)
|
(are [x y] (= x y)
|
||||||
(count properties)
|
(count properties)
|
||||||
2
|
2
|
||||||
(db-property/get-property-value-name (second (second properties)))
|
(db-property/property-value-content (second (second properties)))
|
||||||
2)))
|
2)))
|
||||||
|
|
||||||
(testing "Add a multi-values property"
|
(testing "Add a multi-values property"
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
3
|
3
|
||||||
(count properties)
|
(count properties)
|
||||||
#{1 2 3}
|
#{1 2 3}
|
||||||
(set (map db-property/get-property-value-name (get properties :user.property/property-3)))))))
|
(set (map db-property/property-value-content (get properties :user.property/property-3)))))))
|
||||||
|
|
||||||
(testing "Remove a property"
|
(testing "Remove a property"
|
||||||
(outliner-property/remove-block-property! (db/get-db false) fbid :user.property/property-3)
|
(outliner-property/remove-block-property! (db/get-db false) fbid :user.property/property-3)
|
||||||
|
@ -273,7 +273,7 @@
|
||||||
(defn- get-closed-values
|
(defn- get-closed-values
|
||||||
"Get value from block ids"
|
"Get value from block ids"
|
||||||
[values]
|
[values]
|
||||||
(set (map #(db-property/closed-value-name (db/entity [:block/uuid %])) values)))
|
(set (map #(db-property/closed-value-content (db/entity [:block/uuid %])) values)))
|
||||||
|
|
||||||
;; closed values related
|
;; closed values related
|
||||||
;; upsert-closed-value
|
;; upsert-closed-value
|
||||||
|
@ -314,7 +314,7 @@
|
||||||
|
|
||||||
(testing "Add new value"
|
(testing "Add new value"
|
||||||
(let [_ (outliner-property/upsert-closed-value! conn (:db/id property) {:value 3})
|
(let [_ (outliner-property/upsert-closed-value! conn (:db/id property) {:value 3})
|
||||||
b (first (d/q '[:find [(pull ?b [*]) ...] :where [?b :property/value 3]] @conn))]
|
b (first (d/q '[:find [(pull ?b [*]) ...] :where [?b :property.value/content 3]] @conn))]
|
||||||
(is (contains? (set (:block/type b)) "closed value"))
|
(is (contains? (set (:block/type b)) "closed value"))
|
||||||
(let [values (get-value-ids k)]
|
(let [values (get-value-ids k)]
|
||||||
(is (= #{1 2 3}
|
(is (= #{1 2 3}
|
||||||
|
@ -326,7 +326,7 @@
|
||||||
:value 4
|
:value 4
|
||||||
:description "choice 4"})
|
:description "choice 4"})
|
||||||
b (db/entity [:block/uuid block-id])]
|
b (db/entity [:block/uuid block-id])]
|
||||||
(is (= 4 (db-property/closed-value-name b)))
|
(is (= 4 (db-property/closed-value-content b)))
|
||||||
(is (= "choice 4" (:description (:block/schema b))))
|
(is (= "choice 4" (:description (:block/schema b))))
|
||||||
(is (contains? (:block/type b) "closed value"))
|
(is (contains? (:block/type b) "closed value"))
|
||||||
(outliner-property/delete-closed-value! conn (:db/id property) (:db/id (db/entity [:block/uuid block-id])))
|
(outliner-property/delete-closed-value! conn (:db/id property) (:db/id (db/entity [:block/uuid block-id])))
|
||||||
|
|
Loading…
Reference in New Issue