Răsfoiți Sursa

refactor: make journal-day page's uuid like this

00000001-2024-0620-0000-000000000000
rcmerci 1 an în urmă
părinte
comite
dc785a92a7

+ 15 - 0
deps/common/src/logseq/common/uuid.cljs

@@ -0,0 +1,15 @@
+(ns logseq.common.uuid
+  "uuid generators"
+  (:require [datascript.core :as d]))
+
+(defn- gen-journal-page-uuid
+  [journal-day]
+  {:pre [(int? journal-day)]}
+  (let [journal-day-str  (str journal-day)
+        part1 (subs journal-day-str 0 4)
+        part2 (subs journal-day-str 4 8)]
+    (uuid (str "00000001-" part1 "-" part2 "-0000-000000000000"))))
+
+(defn gen-uuid
+  ([] (d/squuid))
+  ([journal-day] (gen-journal-page-uuid journal-day)))

+ 10 - 9
deps/db/src/logseq/db.cljs

@@ -1,16 +1,17 @@
 (ns logseq.db
   "Main namespace for public db fns. For DB and file graphs.
    For shared file graph only fns, use logseq.graph-parser.db"
-  (:require [datascript.core :as d]
-            [clojure.string :as string]
-            [logseq.common.util :as common-util]
+  (:require [clojure.string :as string]
+            [datascript.core :as d]
+            [datascript.impl.entity :as de]
             [logseq.common.config :as common-config]
-            [logseq.db.frontend.rules :as rules]
+            [logseq.common.util :as common-util]
+            [logseq.common.uuid :as common-uuid]
+            [logseq.db.frontend.delete-blocks :as delete-blocks]
             [logseq.db.frontend.entity-plus :as entity-plus]
-            [logseq.db.sqlite.util :as sqlite-util]
+            [logseq.db.frontend.rules :as rules]
             [logseq.db.sqlite.common-db :as sqlite-common-db]
-            [logseq.db.frontend.delete-blocks :as delete-blocks]
-            [datascript.impl.entity :as de]))
+            [logseq.db.sqlite.util :as sqlite-util]))
 
 ;; Use it as an input argument for datalog queries
 (def block-attrs
@@ -365,7 +366,7 @@
 
 (defn new-block-id
   []
-  (d/squuid))
+  (common-uuid/gen-uuid))
 
 (defn get-tag-blocks
   [db tag-name]
@@ -468,7 +469,7 @@
   (transact!
    repo
    [(sqlite-util/block-with-timestamps
-     {:block/uuid (d/squuid)
+     {:block/uuid (common-uuid/gen-uuid)
       :block/name common-config/favorites-page-name
       :block/original-name common-config/favorites-page-name
       :block/type #{"hidden"}

+ 12 - 10
deps/graph-parser/src/logseq/graph_parser/block.cljs

@@ -4,18 +4,19 @@
             [clojure.string :as string]
             [clojure.walk :as walk]
             [datascript.core :as d]
+            [datascript.impl.entity :as de]
             [logseq.common.config :as common-config]
-            [logseq.common.util.date-time :as date-time-util]
-            [logseq.graph-parser.mldoc :as gp-mldoc]
-            [logseq.graph-parser.property :as gp-property]
-            [logseq.graph-parser.text :as text]
-            [logseq.graph-parser.utf8 :as utf8]
             [logseq.common.util :as common-util]
             [logseq.common.util.block-ref :as block-ref]
+            [logseq.common.util.date-time :as date-time-util]
             [logseq.common.util.page-ref :as page-ref]
-            [datascript.impl.entity :as de]
+            [logseq.common.uuid :as common-uuid]
             [logseq.db :as ldb]
-            [logseq.db.frontend.order :as db-order]))
+            [logseq.db.frontend.order :as db-order]
+            [logseq.graph-parser.mldoc :as gp-mldoc]
+            [logseq.graph-parser.property :as gp-property]
+            [logseq.graph-parser.text :as text]
+            [logseq.graph-parser.utf8 :as utf8]))
 
 (defn heading-block?
   [block]
@@ -321,12 +322,13 @@
         (merge
          {:block/name page-name
           :block/original-name original-page-name}
-         (let [new-uuid (if skip-existing-page-check?
-                          (d/squuid)
+         (let [new-uuid* (if journal-day (common-uuid/gen-uuid journal-day) (common-uuid/gen-uuid))
+               new-uuid (if skip-existing-page-check?
+                          new-uuid*
                           (or
                            (cond page-entity       (:block/uuid page-entity)
                                  (uuid? page-uuid) page-uuid)
-                           (d/squuid)))]
+                           new-uuid*))]
            {:block/uuid new-uuid})
          (when namespace?
            (let [namespace (first (common-util/split-last "/" original-page-name))]

+ 5 - 5
src/main/frontend/components/file.cljs

@@ -2,13 +2,13 @@
   (:require [cljs-time.coerce :as tc]
             [cljs-time.core :as t]
             [clojure.string :as string]
-            [datascript.core :as d]
             [frontend.components.lazy-editor :as lazy-editor]
             [frontend.components.svg :as svg]
             [frontend.config :as config]
             [frontend.context.i18n :refer [t]]
             [frontend.date :as date]
             [frontend.db :as db]
+            [frontend.db.async :as db-async]
             [frontend.fs :as fs]
             [frontend.state :as state]
             [frontend.ui :as ui]
@@ -16,12 +16,12 @@
             [goog.object :as gobj]
             [goog.string :as gstring]
             [logseq.common.config :as common-config]
+            [logseq.common.path :as path]
             [logseq.common.util :as common-util]
+            [logseq.common.uuid :as common-uuid]
             [promesa.core :as p]
             [reitit.frontend.easy :as rfe]
-            [rum.core :as rum]
-            [logseq.common.path :as path]
-            [frontend.db.async :as db-async]))
+            [rum.core :as rum]))
 
 (defn- get-path
   [state]
@@ -115,7 +115,7 @@
 
                     :else
                     path)
-        random-id (str (d/squuid))
+        random-id (str (common-uuid/gen-uuid))
         content (rum/react (::file-content state))]
     [:div.file {:id (str "file-edit-wrapper-" random-id)
                 :key path}

+ 8 - 7
src/main/frontend/extensions/pdf/utils.cljs

@@ -1,12 +1,12 @@
 (ns frontend.extensions.pdf.utils
-  (:require [promesa.core :as p]
+  (:require ["/frontend/extensions/pdf/utils" :as js-utils]
             [cljs-bean.core :as bean]
-            [frontend.util :as util]
+            [clojure.string :as string]
             [frontend.config :as config]
             [frontend.state :as state]
-            ["/frontend/extensions/pdf/utils" :as js-utils]
-            [datascript.core :as d]
-            [clojure.string :as string]))
+            [frontend.util :as util]
+            [logseq.common.uuid :as common-uuid]
+            [promesa.core :as p]))
 
 (defonce MAX-SCALE 5.0)
 (defonce MIN-SCALE 0.25)
@@ -124,8 +124,9 @@
   (when (sequential? its)
     (mapv #(if (map? %) % (bean/->clj %)) its)))
 
-(defn gen-uuid []
-  (d/squuid))
+(defn gen-uuid
+  []
+  (common-uuid/gen-uuid))
 
 (defn load-base-assets$
   []