From bb6ed709e50eb698309ef216b4245bccc41e2321 Mon Sep 17 00:00:00 2001 From: Gabriel Horner Date: Wed, 9 Jul 2025 13:52:52 -0400 Subject: [PATCH] refactor: use get-journal-page for finding a journal page Only updated this in DB graph files since this is where they are the most useful --- deps/db/src/logseq/db.cljs | 10 +++++++++- deps/db/src/logseq/db/common/initial_data.cljs | 2 ++ scripts/src/logseq/tasks/dev/db_and_file_graphs.clj | 7 ++----- src/main/frontend/components/property/value.cljs | 4 ++-- src/main/frontend/components/quick_add.cljs | 3 ++- src/main/frontend/db/model.cljs | 5 +++++ 6 files changed, 22 insertions(+), 9 deletions(-) diff --git a/deps/db/src/logseq/db.cljs b/deps/db/src/logseq/db.cljs index a67c275ab5..56a1833c6b 100644 --- a/deps/db/src/logseq/db.cljs +++ b/deps/db/src/logseq/db.cljs @@ -251,7 +251,7 @@ (d/entity db [:block/name (common-util/page-name-sanity-lc page-name)])))) (defn get-page - "Get a page given its unsanitized name" + "Get a page given its unsanitized name or uuid" [db page-id-name-or-uuid] (when db (if (number? page-id-name-or-uuid) @@ -261,6 +261,14 @@ (d/entity db [:block/uuid id]) (d/entity db (get-first-page-by-name db (name page-id-name-or-uuid))))))) +(defn get-journal-page + "Get a journal page given its unsanitized name. + This will be useful for DB graphs later as we can switch to a different lookup + approach for journals e.g. like get-built-in-page" + [db page-name] + (when db + (d/entity db (get-first-page-by-name db page-name)))) + (def get-built-in-page db-db/get-built-in-page) (def library? db-db/library?) diff --git a/deps/db/src/logseq/db/common/initial_data.cljs b/deps/db/src/logseq/db/common/initial_data.cljs index ab5b29869f..a0a8a3b546 100644 --- a/deps/db/src/logseq/db/common/initial_data.cljs +++ b/deps/db/src/logseq/db/common/initial_data.cljs @@ -18,6 +18,8 @@ [db page-name] (d/datoms db :avet :block/name (common-util/page-name-sanity-lc page-name))) +;; FIXME: For DB graph built-in pages, look up by name -> uuid like +;; get-built-in-page instead of this approach which is more error prone (defn get-first-page-by-name "Return the oldest page's db id for :block/name" [db page-name] diff --git a/scripts/src/logseq/tasks/dev/db_and_file_graphs.clj b/scripts/src/logseq/tasks/dev/db_and_file_graphs.clj index f80055e130..8f98a10614 100644 --- a/scripts/src/logseq/tasks/dev/db_and_file_graphs.clj +++ b/scripts/src/logseq/tasks/dev/db_and_file_graphs.clj @@ -44,7 +44,6 @@ ["deps/db/src/logseq/db/frontend" "deps/db/src/logseq/db/sqlite" "deps/outliner/src/logseq/outliner/property.cljs" - "src/main/frontend/components/quick_add.cljs" "src/main/frontend/worker/handler/page/db_based"]) (def db-graph-paths @@ -58,6 +57,7 @@ "src/main/frontend/components/property.cljs" "src/main/frontend/components/property" "src/main/frontend/components/objects.cljs" + "src/main/frontend/components/quick_add.cljs" "src/main/frontend/components/db_based" "src/main/frontend/components/query/view.cljs" "src/electron/electron/db.cljs" @@ -134,13 +134,10 @@ ;; For now use the whole code line. If this is too brittle can make this smaller allowed-exceptions #{":block/pre-block? :block/scheduled :block/deadline :block/type :block/name :block/marker" "(dissoc :block/format))]" + "{:block/name page-title})" ;; TODO: Mv these 2 file-based ns out of db files "(:require [logseq.db.file-based.rules :as file-rules]))" "[logseq.db.file-based.schema :as file-schema]))" - ;; The next 3 are from components.property.value - "{:block/name page-title})" - "(when-not (db/get-page journal)" - "(let [value (if datetime? (tc/to-long d) (db/get-page journal))]" ;; :block/name ones from src/main/mobile "(if-let [journal (db/get-page page-name)]" "(p/then #(mobile-state/open-block-modal! (db/get-page page-name)))))))]"} diff --git a/src/main/frontend/components/property/value.cljs b/src/main/frontend/components/property/value.cljs index 4f3a03f289..53c3771464 100644 --- a/src/main/frontend/components/property/value.cljs +++ b/src/main/frontend/components/property/value.cljs @@ -367,10 +367,10 @@ (when d (let [journal (date/js-date->journal-title d)] (p/do! - (when-not (db/get-page journal) + (when-not (model/get-journal-page journal) (page-handler/