mirror of https://github.com/logseq/logseq
Merge pull request #6214 from logseq/fix/hidden-properties-in-autocompletion
Fix: Property completion for hidden properties and property orderingpull/6199/head
commit
49fbdd0244
|
@ -198,7 +198,6 @@
|
||||||
[format properties user-config]
|
[format properties user-config]
|
||||||
(when (seq properties)
|
(when (seq properties)
|
||||||
(let [properties (seq properties)
|
(let [properties (seq properties)
|
||||||
properties (into {} properties)
|
|
||||||
page-refs (get-page-ref-names-from-properties format properties user-config)
|
page-refs (get-page-ref-names-from-properties format properties user-config)
|
||||||
properties (->> properties
|
properties (->> properties
|
||||||
(map (fn [[k v]]
|
(map (fn [[k v]]
|
||||||
|
@ -512,7 +511,7 @@
|
||||||
:content content
|
:content content
|
||||||
:level 1
|
:level 1
|
||||||
:properties properties
|
:properties properties
|
||||||
:properties-order properties-order
|
:properties-order (vec properties-order)
|
||||||
:refs property-refs
|
:refs property-refs
|
||||||
:pre-block? true
|
:pre-block? true
|
||||||
:unordered true
|
:unordered true
|
||||||
|
@ -548,7 +547,7 @@
|
||||||
(assoc :properties (:properties properties))
|
(assoc :properties (:properties properties))
|
||||||
|
|
||||||
(seq (:properties-order properties))
|
(seq (:properties-order properties))
|
||||||
(assoc :properties-order (:properties-order properties)))
|
(assoc :properties-order (vec (:properties-order properties))))
|
||||||
block (if (get-in block [:properties :collapsed])
|
block (if (get-in block [:properties :collapsed])
|
||||||
(-> (assoc block :collapsed? true)
|
(-> (assoc block :collapsed? true)
|
||||||
(update :properties (fn [m] (dissoc m :collapsed)))
|
(update :properties (fn [m] (dissoc m :collapsed)))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
(ns logseq.graph-parser-test
|
(ns logseq.graph-parser-test
|
||||||
(:require [cljs.test :refer [deftest testing is]]
|
(:require [cljs.test :refer [deftest testing is]]
|
||||||
|
[clojure.string :as string]
|
||||||
[logseq.graph-parser :as graph-parser]
|
[logseq.graph-parser :as graph-parser]
|
||||||
[logseq.db :as ldb]
|
[logseq.db :as ldb]
|
||||||
[logseq.graph-parser.block :as gp-block]
|
[logseq.graph-parser.block :as gp-block]
|
||||||
|
@ -41,3 +42,29 @@
|
||||||
(catch :default _)))
|
(catch :default _)))
|
||||||
(is (= nil @deleted-page)
|
(is (= nil @deleted-page)
|
||||||
"Page should not be deleted when there is unexpected failure"))))
|
"Page should not be deleted when there is unexpected failure"))))
|
||||||
|
|
||||||
|
(defn- test-property-order [num-properties]
|
||||||
|
(let [conn (ldb/start-conn)
|
||||||
|
properties (mapv #(keyword (str "p" %)) (range 0 num-properties))
|
||||||
|
text (->> properties
|
||||||
|
(map #(str (name %) ":: " (name %) "-value"))
|
||||||
|
(string/join "\n"))
|
||||||
|
;; Test page properties and block properties
|
||||||
|
body (str text "\n- " text)
|
||||||
|
_ (graph-parser/parse-file conn "foo.md" body {})
|
||||||
|
properties-orders (->> (d/q '[:find (pull ?b [*])
|
||||||
|
:in $
|
||||||
|
:where [?b :block/content] [(missing? $ ?b :block/name)]]
|
||||||
|
@conn)
|
||||||
|
(map first)
|
||||||
|
(map :block/properties-order))]
|
||||||
|
(is (every? vector? properties-orders)
|
||||||
|
"Order is persisted as a vec to avoid edn serialization quirks")
|
||||||
|
(is (= [properties properties] properties-orders)
|
||||||
|
"Property order")))
|
||||||
|
|
||||||
|
(deftest properties-order
|
||||||
|
(testing "Sort order and persistence of a few properties"
|
||||||
|
(test-property-order 4))
|
||||||
|
(testing "Sort order and persistence of 10 properties"
|
||||||
|
(test-property-order 10)))
|
||||||
|
|
|
@ -1845,8 +1845,8 @@
|
||||||
[config block]
|
[config block]
|
||||||
(let [properties (walk/keywordize-keys (:block/properties block))
|
(let [properties (walk/keywordize-keys (:block/properties block))
|
||||||
properties-order (:block/properties-order block)
|
properties-order (:block/properties-order block)
|
||||||
properties (apply dissoc properties (property/built-in-properties))
|
properties (apply dissoc properties (property/hidden-properties))
|
||||||
properties-order (remove (property/built-in-properties) properties-order)
|
properties-order (remove (property/hidden-properties) properties-order)
|
||||||
pre-block? (:block/pre-block? block)
|
pre-block? (:block/pre-block? block)
|
||||||
properties (if pre-block?
|
properties (if pre-block?
|
||||||
(let [repo (state/get-current-repo)
|
(let [repo (state/get-current-repo)
|
||||||
|
|
|
@ -177,7 +177,7 @@
|
||||||
result
|
result
|
||||||
{:on-chosen chosen-handler
|
{:on-chosen chosen-handler
|
||||||
:on-enter non-exist-block-handler
|
:on-enter non-exist-block-handler
|
||||||
:empty-placeholder [:div.text-gray-500.pl-4.pr-4 "Search for a block"]
|
:empty-placeholder [:div.text-gray-500.pl-4.pr-4 (t :editor/block-search)]
|
||||||
:item-render (fn [{:block/keys [page uuid]}] ;; content returned from search engine is normalized
|
:item-render (fn [{:block/keys [page uuid]}] ;; content returned from search engine is normalized
|
||||||
(let [page (or (:block/original-name page)
|
(let [page (or (:block/original-name page)
|
||||||
(:block/name page))
|
(:block/name page))
|
||||||
|
|
|
@ -1431,7 +1431,6 @@
|
||||||
(->> (map keys properties)
|
(->> (map keys properties)
|
||||||
(apply concat)
|
(apply concat)
|
||||||
distinct
|
distinct
|
||||||
(remove #{:id})
|
|
||||||
sort)))
|
sort)))
|
||||||
|
|
||||||
(defn get-property-values
|
(defn get-property-values
|
||||||
|
|
|
@ -384,7 +384,7 @@
|
||||||
block (update block :block/refs remove-non-existed-refs!)
|
block (update block :block/refs remove-non-existed-refs!)
|
||||||
block (attach-page-properties-if-exists! block)
|
block (attach-page-properties-if-exists! block)
|
||||||
new-properties (merge
|
new-properties (merge
|
||||||
(select-keys properties (property/built-in-properties))
|
(select-keys properties (property/hidden-properties))
|
||||||
(:block/properties block))]
|
(:block/properties block))]
|
||||||
(-> block
|
(-> block
|
||||||
(dissoc :block/top?
|
(dissoc :block/top?
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
[frontend.search.protocol :as protocol]
|
[frontend.search.protocol :as protocol]
|
||||||
[frontend.state :as state]
|
[frontend.state :as state]
|
||||||
[frontend.util :as util]
|
[frontend.util :as util]
|
||||||
|
[frontend.util.property :as property]
|
||||||
[goog.object :as gobj]
|
[goog.object :as gobj]
|
||||||
[promesa.core :as p]))
|
[promesa.core :as p]))
|
||||||
|
|
||||||
|
@ -169,7 +170,9 @@
|
||||||
([q limit]
|
([q limit]
|
||||||
(when q
|
(when q
|
||||||
(let [q (clean-str q)
|
(let [q (clean-str q)
|
||||||
properties (map name (db-model/get-all-properties))]
|
properties (->> (db-model/get-all-properties)
|
||||||
|
(remove (property/hidden-properties))
|
||||||
|
(map name))]
|
||||||
(when (seq properties)
|
(when (seq properties)
|
||||||
(if (string/blank? q)
|
(if (string/blank? q)
|
||||||
properties
|
properties
|
||||||
|
|
Loading…
Reference in New Issue