Browse Source

fix: class properties order

Tienson Qin 1 year ago
parent
commit
5660d420fb

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

@@ -241,7 +241,7 @@
 
 (defn property?
   [k]
-  (let [k-name (name k)]
+  (let [k-name (namespace k)]
     (or (string/starts-with? k-name "logseq.property")
         (string/starts-with? k-name "user.property"))))
 
@@ -256,3 +256,9 @@
       (->
        (str "user.property/" n)
        keyword))))
+
+(defn get-class-ordered-properties
+  [class-entity]
+  (let [properties (map :db/ident (:class/schema.properties class-entity))
+        ordered (get-in class-entity [:block/schema :properties])]
+    (concat ordered (remove (set ordered) properties))))

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

@@ -701,8 +701,8 @@
         block (resolve-linked-block-if-exists target-block)
         block-properties (:block/properties block)
         properties (if (and class-schema? page-configure?)
-                     (let [properties (:class/schema.properties block)]
-                       (map (fn [p] [(:db/ident p) nil]) properties))
+                     (->> (db-property/get-class-ordered-properties block)
+                          (map #(vector % %)))
                      (sort-by first block-properties))
         alias (set (map :db/id (:block/alias block)))
         alias-properties (when (seq alias)
@@ -751,7 +751,7 @@
                                  properties #{}
                                  result []]
                             (if-let [class (first classes)]
-                              (let [cur-properties (->> (:class/schema.properties class)
+                              (let [cur-properties (->> (db-property/get-class-ordered-properties class)
                                                         (remove properties)
                                                         (remove hide-with-property-id))]
                                 (recur (rest classes)