Selaa lähdekoodia

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
Gabriel Horner 3 kuukautta sitten
vanhempi
sitoutus
bb6ed709e5

+ 9 - 1
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?)

+ 2 - 0
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]

+ 2 - 5
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)))))))]"}

+ 2 - 2
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/<create! journal {:redirect? false}))
                (when (fn? on-change)
-                 (let [value (if datetime? (tc/to-long d) (db/get-page journal))]
+                 (let [value (if datetime? (tc/to-long d) (model/get-journal-page journal))]
                    (on-change value)))
                (when-not datetime?
                  (shui/popup-hide! id)

+ 2 - 1
src/main/frontend/components/quick_add.cljs

@@ -3,6 +3,7 @@
   (:require [frontend.components.page :as page]
             [frontend.date :as date]
             [frontend.db :as db]
+            [frontend.db.model :as model]
             [frontend.handler.editor :as editor-handler]
             [frontend.state :as state]
             [frontend.util :as util]
@@ -20,7 +21,7 @@
                    (state/clear-selection!)
                    state)}
   []
-  (when (db/get-page (date/today))
+  (when (model/get-journal-page (date/today))
     (when-let [add-page (ldb/get-built-in-page (db/get-db) common-config/quick-add-page-name)]
       (let [mobile? (util/mobile?)
             add-button [:div

+ 5 - 0
src/main/frontend/db/model.cljs

@@ -324,6 +324,11 @@ independent of format as format specific heading characters are stripped"
   (when page-id-name-or-uuid
     (ldb/get-page (conn/get-db) page-id-name-or-uuid)))
 
+(defn get-journal-page
+  [page-name]
+  (when page-name
+    (ldb/get-journal-page (conn/get-db) page-name)))
+
 (defn get-case-page
   [page-name-or-uuid]
   (when page-name-or-uuid