mirror of https://github.com/logseq/logseq
enhance: remove :object type as gabriel suggested
parent
3781c8a0ca
commit
47f906ff16
|
@ -132,7 +132,7 @@
|
||||||
(let [type (keyword (string/lower-case v))]
|
(let [type (keyword (string/lower-case v))]
|
||||||
(swap! *property-schema assoc :type type))))])]
|
(swap! *property-schema assoc :type type))))])]
|
||||||
|
|
||||||
(when (= :object (:type @*property-schema))
|
(when (= :page (:type @*property-schema))
|
||||||
[:div.grid.grid-cols-4.gap-1.leading-8
|
[:div.grid.grid-cols-4.gap-1.leading-8
|
||||||
[:label "Specify classes:"]
|
[:label "Specify classes:"]
|
||||||
(class-select *property-schema (:classes @*property-schema) opts)])
|
(class-select *property-schema (:classes @*property-schema) opts)])
|
||||||
|
|
|
@ -100,8 +100,8 @@
|
||||||
opts {:items options
|
opts {:items options
|
||||||
:dropdown? true
|
:dropdown? true
|
||||||
:input-default-placeholder (if multiple-values?
|
:input-default-placeholder (if multiple-values?
|
||||||
(str "Choose " (if (= type :object) "objects" "pages"))
|
"Choose pages"
|
||||||
(str "Choose " (if (= type :object) "object" "page")))
|
"Choose page")
|
||||||
:on-chosen (fn [chosen]
|
:on-chosen (fn [chosen]
|
||||||
(let [page (string/trim (if (string? chosen) chosen (:value chosen)))
|
(let [page (string/trim (if (string? chosen) chosen (:value chosen)))
|
||||||
id (:block/uuid (db/entity [:block/name (util/page-name-sanity-lc page)]))
|
id (:block/uuid (db/entity [:block/name (util/page-name-sanity-lc page)]))
|
||||||
|
@ -339,14 +339,11 @@
|
||||||
(list :number :url)
|
(list :number :url)
|
||||||
[:div.h-6 (select block property select-opts)]
|
[:div.h-6 (select block property select-opts)]
|
||||||
|
|
||||||
:object
|
:page
|
||||||
[:div.h-6 (select-page block property (assoc select-opts
|
[:div.h-6 (select-page block property (assoc select-opts
|
||||||
:classes (:classes schema)
|
:classes (:classes schema)
|
||||||
:multiple? multiple-values?))]
|
:multiple? multiple-values?))]
|
||||||
|
|
||||||
:page
|
|
||||||
[:div.h-6 (select-page block property select-opts)]
|
|
||||||
|
|
||||||
:block
|
:block
|
||||||
nil
|
nil
|
||||||
|
|
||||||
|
@ -361,7 +358,7 @@
|
||||||
:class class
|
:class class
|
||||||
:style {:min-height 24}
|
:style {:min-height 24}
|
||||||
:on-click (fn []
|
:on-click (fn []
|
||||||
(let [ref? (contains? #{:page :block :object} type)]
|
(let [ref? (contains? #{:page :block} type)]
|
||||||
(when (or (not ref?)
|
(when (or (not ref?)
|
||||||
(and (string/blank? value) ref?))
|
(and (string/blank? value) ref?))
|
||||||
(when-not (and (= type :block) (string/blank? value))
|
(when-not (and (= type :block) (string/blank? value))
|
||||||
|
@ -374,16 +371,10 @@
|
||||||
(if (string/blank? value)
|
(if (string/blank? value)
|
||||||
[:div.opacity-70.text-sm
|
[:div.opacity-70.text-sm
|
||||||
(case type
|
(case type
|
||||||
:object
|
|
||||||
(if multiple-values? "Choose objects" "Choose object")
|
|
||||||
:page
|
:page
|
||||||
(if multiple-values? "Choose pages" "Choose page")
|
(if multiple-values? "Choose pages" "Choose page")
|
||||||
"Input something")]
|
"Input something")]
|
||||||
(case type
|
(case type
|
||||||
:object
|
|
||||||
(when-let [object (db/entity [:block/uuid value])]
|
|
||||||
(page-cp {:disable-preview? true} object))
|
|
||||||
|
|
||||||
:page
|
:page
|
||||||
(when-let [page (db/entity [:block/uuid value])]
|
(when-let [page (db/entity [:block/uuid value])]
|
||||||
(page-cp {:disable-preview? true} page))
|
(page-cp {:disable-preview? true} page))
|
||||||
|
@ -472,7 +463,7 @@
|
||||||
type (:type schema)
|
type (:type schema)
|
||||||
block? (= type :block)
|
block? (= type :block)
|
||||||
default? (= type :default)
|
default? (= type :default)
|
||||||
row? (contains? #{:page :object} type)
|
row? (contains? #{:page} type)
|
||||||
items (if (coll? v) v (when v [v]))]
|
items (if (coll? v) v (when v [v]))]
|
||||||
[:div.relative
|
[:div.relative
|
||||||
{:class (cond
|
{:class (cond
|
||||||
|
@ -546,7 +537,7 @@
|
||||||
multiple-values?
|
multiple-values?
|
||||||
(multiple-values block property v opts dom-id schema editor-id editor-args)
|
(multiple-values block property v opts dom-id schema editor-id editor-args)
|
||||||
|
|
||||||
(contains? #{:page :object} type)
|
(contains? #{:page} type)
|
||||||
[:div.flex.flex-1.items-center.property-value-content
|
[:div.flex.flex-1.items-center.property-value-content
|
||||||
(item-with-close block property v
|
(item-with-close block property v
|
||||||
(merge
|
(merge
|
||||||
|
|
|
@ -26,12 +26,6 @@
|
||||||
(and (uuid? id)
|
(and (uuid? id)
|
||||||
(some? (db/entity [:block/uuid id]))))
|
(some? (db/entity [:block/uuid id]))))
|
||||||
|
|
||||||
(defn- logseq-object?
|
|
||||||
[id]
|
|
||||||
(and (uuid? id)
|
|
||||||
(when-let [e (db/entity [:block/uuid id])]
|
|
||||||
(seq (:block/tags e)))))
|
|
||||||
|
|
||||||
(def builtin-schema-types
|
(def builtin-schema-types
|
||||||
{:default string? ; refs/tags will not be extracted
|
{:default string? ; refs/tags will not be extracted
|
||||||
:number number?
|
:number number?
|
||||||
|
@ -48,10 +42,6 @@
|
||||||
:block [:fn
|
:block [:fn
|
||||||
{:error/message "should be a block"}
|
{:error/message "should be a block"}
|
||||||
logseq-block?]
|
logseq-block?]
|
||||||
:object [:fn
|
|
||||||
{:error/message "should be an object"}
|
|
||||||
logseq-object?]
|
|
||||||
|
|
||||||
;; internal usage
|
;; internal usage
|
||||||
:keyword keyword?
|
:keyword keyword?
|
||||||
:map map?
|
:map map?
|
||||||
|
@ -60,7 +50,7 @@
|
||||||
:any some?})
|
:any some?})
|
||||||
|
|
||||||
(def internal-builtin-schema-types #{:keyword :map :coll :any})
|
(def internal-builtin-schema-types #{:keyword :map :coll :any})
|
||||||
(def user-face-builtin-schema-types [:default :number :date :checkbox :url :page :block :object])
|
(def user-face-builtin-schema-types [:default :number :date :checkbox :url :page :block])
|
||||||
|
|
||||||
;; schema -> type, cardinality, object's class
|
;; schema -> type, cardinality, object's class
|
||||||
;; min, max -> string length, number range, cardinality size limit
|
;; min, max -> string length, number range, cardinality size limit
|
||||||
|
@ -71,7 +61,7 @@
|
||||||
(cond
|
(cond
|
||||||
(parse-long v-str) :number
|
(parse-long v-str) :number
|
||||||
(parse-double v-str) :number
|
(parse-double v-str) :number
|
||||||
(util/uuid-string? v-str) :object
|
(util/uuid-string? v-str) :page
|
||||||
(gp-util/url? v-str) :url
|
(gp-util/url? v-str) :url
|
||||||
(contains? #{"true" "false"} (string/lower-case v-str)) :boolean
|
(contains? #{"true" "false"} (string/lower-case v-str)) :boolean
|
||||||
:else :default)
|
:else :default)
|
||||||
|
@ -98,9 +88,6 @@
|
||||||
:block
|
:block
|
||||||
(uuid v-str)
|
(uuid v-str)
|
||||||
|
|
||||||
:object
|
|
||||||
(uuid v-str)
|
|
||||||
|
|
||||||
:date
|
:date
|
||||||
v-str ; uuid
|
v-str ; uuid
|
||||||
)))
|
)))
|
||||||
|
|
Loading…
Reference in New Issue