Browse Source

fix: schema && built-in properties

Tienson Qin 1 year ago
parent
commit
98d2b92ab1

+ 1 - 1
deps.edn

@@ -4,7 +4,7 @@
   rum/rum                               {:mvn/version "0.12.9"}
 
   datascript/datascript                 {:git/url "https://github.com/logseq/datascript" ;; fork
-                                         :sha     "dacbd712aa98f6e57323e379352ea8d35e4b0e73"}
+                                         :sha     "60913cd47c38713c29ef540c9e87cf058a411c16"}
 
   datascript-transit/datascript-transit {:mvn/version "0.3.0"}
   borkdude/rewrite-edn                  {:mvn/version "0.4.7"}

+ 1 - 1
deps/db/deps.edn

@@ -1,7 +1,7 @@
 {:deps
  ;; External deps should be kept in sync with https://github.com/logseq/nbb-logseq/blob/main/bb.edn
  {datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
-                         :sha     "dacbd712aa98f6e57323e379352ea8d35e4b0e73"}
+                         :sha     "60913cd47c38713c29ef540c9e87cf058a411c16"}
   datascript-transit/datascript-transit {:mvn/version "0.3.0"
                                          :exclusions [datascript/datascript]}
   cljs-bean/cljs-bean         {:mvn/version "1.5.0"}

+ 3 - 1
deps/db/src/logseq/db/frontend/property.cljs

@@ -18,11 +18,13 @@
    * :visible - Boolean to indicate user can see and use this property"
   {:alias {:original-name "Alias"
            :attribute :block/alias
+           :db-ident :block/alias
            :visible true
            :schema {:type :page
                     :cardinality :many}}
    :tags {:original-name "Tags"
           :attribute :block/tags
+          :db-ident :block/tags
           :visible true
           :schema {:type :page
                    :cardinality :many
@@ -242,4 +244,4 @@
     (some (fn [id]
             (let [e (d/entity db [:block/uuid id])]
               (when (= (closed-value-name e) value-name)
-                e))) values)))
+                e))) values)))

+ 1 - 1
deps/db/src/logseq/db/sqlite/common_db.cljs

@@ -117,7 +117,7 @@
 
 (defn get-structured-blocks
   [db]
-  (let [special-pages (map #(d/pull db '[*] %) #{:logseq.property/tags})
+  (let [special-pages (map #(d/pull db '[*] %) #{:block/tags})
         structured-blocks (->> (d/datoms db :avet :block/type)
                                (keep (fn [e]
                                        (when (contains? #{"closed value" "property" "class"} (:v e))

+ 7 - 1
deps/db/src/logseq/db/sqlite/util.cljs

@@ -76,7 +76,13 @@
      :block/original-name (name prop-name)
      :block/name (common-util/page-name-sanity-lc (name prop-name))}
      (and db-ident (keyword? db-ident))
-     (assoc :db/ident db-ident))))
+     (assoc :db/ident db-ident)
+     (= :many (:cardinality prop-schema))
+     (assoc :db/index true
+            :db/cardinality :db.cardinality/many)
+     (contains? #{:page :block} (:type prop-schema))
+     (assoc :db/index true
+            :db/valueType :db.type/ref))))
 
 
 (defn build-new-class

+ 1 - 1
deps/outliner/deps.edn

@@ -1,7 +1,7 @@
 {:deps
  ;; External deps should be kept in sync with https://github.com/logseq/nbb-logseq/blob/main/bb.edn
  {datascript/datascript {:git/url "https://github.com/logseq/datascript" ;; fork
-                         :sha     "dacbd712aa98f6e57323e379352ea8d35e4b0e73"}
+                         :sha     "60913cd47c38713c29ef540c9e87cf058a411c16"}
   logseq/db             {:local/root "../db"}
   logseq/graph-parser   {:local/root "../db"}
   com.cognitect/transit-cljs {:mvn/version "0.8.280"}

+ 1 - 1
deps/publishing/src/logseq/publishing/db.cljs

@@ -55,7 +55,7 @@
         tag-pages (concat tag-pages*
                           ;; built-in property needs to be public to display tags
                           (when (seq tag-pages*)
-                            (some-> (d/entity db :logseq.property/tags) :db/id vector)))
+                            (some-> (d/entity db :block/tags) :db/id vector)))
         property-pages (mapcat (fn [ent]
                                  (let [props (:block/properties ent)]
                                    (->> (keys props)

+ 3 - 3
src/main/frontend/components/property/value.cljs

@@ -157,7 +157,7 @@
         [_ page inline-class] (or (seq (map string/trim (re-find #"(.*)#(.*)$" page*)))
                                   [nil page* nil])
         id (pu/get-page-uuid page)
-        class? (= :logseq.property/tags (:block/ident property))]
+        class? (= :block/tags (:block/ident property))]
     (if (nil? id)
       (let [inline-class-uuid
             (when inline-class
@@ -209,8 +209,8 @@
   [property
    {:keys [block classes multiple-choices? dropdown? input-opts on-chosen] :as opts}]
   (let [repo (state/get-current-repo)
-        tags? (= :logseq.property/tags (:db/ident property))
-        alias? (= :logseq.property/alias (:db/ident property))
+        tags? (= :block/tags (:db/ident property))
+        alias? (= :block/alias (:db/ident property))
         tags-or-alias? (or tags? alias?)
         selected-choices (when block
                            (->>