chore: rename property node/type to node/display-type

node can be a block or page and type is a general enough word that
it could refer to one of those. Use a more specific name so we
don't confuse ourselves or our users
enhance/code-type-block
Gabriel Horner 2024-09-26 22:22:36 -04:00
parent 41554646de
commit 476e641c1a
8 changed files with 42 additions and 19 deletions

View File

@ -38,11 +38,11 @@
:cardinality :many :cardinality :many
:public? true :public? true
:classes #{:logseq.class/Root}}} :classes #{:logseq.class/Root}}}
:logseq.property.node/type {:title "Node type" :logseq.property.node/display-type {:title "Node Display Type"
:schema {:type :keyword :schema {:type :keyword
:public? false :public? false
:hide? true :hide? true
:view-context :block}} :view-context :block}}
:logseq.property.code/mode {:title "Code mode" :logseq.property.code/mode {:title "Code mode"
:schema {:type :string :schema {:type :string
:public? false :public? false

View File

@ -2,7 +2,7 @@
"Main datascript schemas for the Logseq app" "Main datascript schemas for the Logseq app"
(:require [clojure.set :as set])) (:require [clojure.set :as set]))
(def version 27) (def version 28)
;; A page is a special block, a page can corresponds to multiple files with the same ":block/name". ;; A page is a special block, a page can corresponds to multiple files with the same ":block/name".
(def ^:large-vars/data-var schema (def ^:large-vars/data-var schema
{:db/ident {:db/unique :db.unique/identity} {:db/ident {:db/unique :db.unique/identity}

View File

@ -187,14 +187,14 @@
[[:editor/input "" {:last-pattern command-trigger}] [[:editor/input "" {:last-pattern command-trigger}]
[:editor/set-property :block/tags :logseq.class/Query] [:editor/set-property :block/tags :logseq.class/Query]
[:editor/set-property :logseq.property/query ""] [:editor/set-property :logseq.property/query ""]
[:editor/set-property-on-block-property :logseq.property/query :logseq.property.node/type :code] [:editor/set-property-on-block-property :logseq.property/query :logseq.property.node/display-type :code]
[:editor/set-property-on-block-property :logseq.property/query :logseq.property.code/mode "clojure"]] [:editor/set-property-on-block-property :logseq.property/query :logseq.property.code/mode "clojure"]]
(->block "query"))) (->block "query")))
(defn db-based-code-block (defn db-based-code-block
[] []
[[:editor/input "" {:last-pattern command-trigger}] [[:editor/input "" {:last-pattern command-trigger}]
[:editor/set-property :logseq.property.node/type :code] [:editor/set-property :logseq.property.node/display-type :code]
[:codemirror/focus]]) [:codemirror/focus]])
(defn file-based-code-block (defn file-based-code-block
@ -214,14 +214,14 @@
[] []
(if (config/db-based-graph? (state/get-current-repo)) (if (config/db-based-graph? (state/get-current-repo))
[[:editor/input "" {:last-pattern command-trigger}] [[:editor/input "" {:last-pattern command-trigger}]
[:editor/set-property :logseq.property.node/type :quote]] [:editor/set-property :logseq.property.node/display-type :quote]]
(->block "quote"))) (->block "quote")))
(defn math-block-steps (defn math-block-steps
[] []
(if (config/db-based-graph? (state/get-current-repo)) (if (config/db-based-graph? (state/get-current-repo))
[[:editor/input "" {:last-pattern command-trigger}] [[:editor/input "" {:last-pattern command-trigger}]
[:editor/set-property :logseq.property.node/type :math]] [:editor/set-property :logseq.property.node/display-type :math]]
(->block "export" "latex"))) (->block "export" "latex")))
(defn get-statuses (defn get-statuses

View File

@ -2138,7 +2138,7 @@
(defn build-block-title (defn build-block-title
[config block] [config block]
(let [node-type (:logseq.property.node/type block)] (let [node-type (:logseq.property.node/display-type block)]
(case node-type (case node-type
:code :code
[:div.flex.flex-1.w-full [:div.flex.flex-1.w-full
@ -2411,7 +2411,7 @@
:block-content-slotted :block-content-slotted
(-> block (dissoc :block/children :block/page)))] (-> block (dissoc :block/children :block/page)))]
(when-not (contains? #{:code :math} (:logseq.property.node/type block)) (when-not (contains? #{:code :math} (:logseq.property.node/display-type block))
(let [title-collapse-enabled? (:outliner/block-title-collapse-enabled? (state/get-config))] (let [title-collapse-enabled? (:outliner/block-title-collapse-enabled? (state/get-config))]
(when (and (not block-ref-with-title?) (when (and (not block-ref-with-title?)
(seq body) (seq body)
@ -2725,7 +2725,7 @@
table? (:table? config)] table? (:table? config)]
[:div.block-content-or-editor-wrap [:div.block-content-or-editor-wrap
{:class (when (:page-title? config) "ls-page-title-container") {:class (when (:page-title? config) "ls-page-title-container")
:data-node-type (some-> (:logseq.property.node/type block) name)} :data-node-type (some-> (:logseq.property.node/display-type block) name)}
(when (and db-based? (not table?)) (block-positioned-properties config block :block-left)) (when (and db-based? (not table?)) (block-positioned-properties config block :block-left))
[:div.block-content-or-editor-inner [:div.block-content-or-editor-inner
[:div.flex.flex-1.flex-row.gap-1.items-center [:div.flex.flex-1.flex-row.gap-1.items-center

View File

@ -750,7 +750,7 @@
(ui-outliner-tx/transact! (ui-outliner-tx/transact!
{:outliner-op :save-block} {:outliner-op :save-block}
(db-property-handler/set-block-properties! (:db/id block) (db-property-handler/set-block-properties! (:db/id block)
{:logseq.property.node/type :code {:logseq.property.node/display-type :code
:logseq.property.code/mode "clojure"}) :logseq.property.code/mode "clojure"})
(outliner-op/save-block! {:db/id (:db/id block) :block/title ""})) (outliner-op/save-block! {:db/id (:db/id block) :block/title ""}))

View File

@ -27,7 +27,7 @@
;; update default value for the editor initial state ;; update default value for the editor initial state
(set! ds -v value) (set! ds -v value)
(cond (cond
(= :code (:logseq.property.node/type block)) (= :code (:logseq.property.node/display-type block))
(editor-handler/save-block-if-changed! block value) (editor-handler/save-block-if-changed! block value)
;; save block content ;; save block content

View File

@ -845,7 +845,7 @@
db-based? (config/db-based-graph? repo) db-based? (config/db-based-graph? repo)
delete-prev-block? (and db-based? delete-prev-block? (and db-based?
(empty? (:block/tags block)) (empty? (:block/tags block))
(not (:logseq.property.node/type block)) (not (:logseq.property.node/display-type block))
(seq (:block/properties block)) (seq (:block/properties block))
(empty? (:block/properties prev-block)) (empty? (:block/properties prev-block))
(not (:logseq.property/created-from-property block)))] (not (:logseq.property/created-from-property block)))]
@ -3360,7 +3360,6 @@
(and (seq (:block/tags block)) (and (seq (:block/tags block))
(some (fn [t] (some (fn [t]
(let [properties (map :db/ident (:logseq.property.class/properties t))] (let [properties (map :db/ident (:logseq.property.class/properties t))]
(prn :tags (:block/title t) properties)
(and (seq properties) (and (seq properties)
(not (db-pu/all-hidden-properties? properties))))) (:block/tags block)))))) (not (db-pu/all-hidden-properties? properties))))) (:block/tags block))))))

View File

@ -9,7 +9,8 @@
[frontend.worker.search :as search] [frontend.worker.search :as search]
[cljs-bean.core :as bean] [cljs-bean.core :as bean]
[logseq.db.sqlite.util :as sqlite-util] [logseq.db.sqlite.util :as sqlite-util]
[logseq.common.config :as common-config])) [logseq.common.config :as common-config]
[logseq.common.util :as common-util]))
;; TODO: fixes/rollback ;; TODO: fixes/rollback
@ -96,6 +97,28 @@
[:db/add id new prop-value]])))) [:db/add id new prop-value]]))))
old-new-props))) old-new-props)))
(defn- rename-properties
[props-to-rename]
(fn [conn _search-db]
(when (ldb/db-based-graph? @conn)
(let [props-tx (mapv (fn [[old new]]
(merge {:db/id (:db/id (d/entity @conn old))
:db/ident new}
(when-let [new-title (get-in db-property/built-in-properties [new :title])]
{:block/title new-title
:block/name (common-util/page-name-sanity-lc new-title)})))
props-to-rename)]
;; Property changes need to be in their own tx for subsequent uses of properties to take effect
(ldb/transact! conn props-tx {:db-migrate? true})
(mapcat (fn [[old new]]
;; can't use datoms b/c user properties aren't indexed
(->> (d/q '[:find ?b ?prop-v :in $ ?prop :where [?b ?prop ?prop-v]] @conn old)
(mapcat (fn [[id prop-value]]
[[:db/retract id old]
[:db/add id new prop-value]]))))
props-to-rename)))))
(defn- update-block-type-many->one (defn- update-block-type-many->one
[conn _search-db] [conn _search-db]
(let [db @conn (let [db @conn
@ -276,7 +299,8 @@
[25 {:properties [:logseq.property/query] [25 {:properties [:logseq.property/query]
:fix add-query-property-to-query-tag}] :fix add-query-property-to-query-tag}]
[26 {:properties [:logseq.property.node/type]}] [26 {:properties [:logseq.property.node/type]}]
[27 {:properties [:logseq.property.code/mode]}]]) [27 {:properties [:logseq.property.code/mode]}]
[28 {:fix (rename-properties {:logseq.property.node/type :logseq.property.node/display-type})}]])
(let [max-schema-version (apply max (map first schema-version->updates))] (let [max-schema-version (apply max (map first schema-version->updates))]
(assert (<= db-schema/version max-schema-version)) (assert (<= db-schema/version max-schema-version))