Quellcode durchsuchen

fix: don't fix pages for whiteboards and hidden pages

Tienson Qin vor 1 Jahr
Ursprung
Commit
9f66e6d7e7

+ 15 - 34
deps/db/src/logseq/db.cljs

@@ -66,52 +66,33 @@
        (let [f (or @*transact-fn d/transact!)]
        (let [f (or @*transact-fn d/transact!)]
          (f conn tx-data tx-meta))))))
          (f conn tx-data tx-meta))))))
 
 
+(defn build-default-pages-tx
+  []
+  (let [time (tc/to-long (t/now))]
+    (map
+     (fn [m]
+       (-> m
+           (assoc :block/created-at time)
+           (assoc :block/updated-at time)
+           (assoc :block/format :markdown)))
+     default-db/built-in-pages)))
+
 (defn create-default-pages!
 (defn create-default-pages!
   "Creates default pages if one of the default pages does not exist. This
   "Creates default pages if one of the default pages does not exist. This
    fn is idempotent"
    fn is idempotent"
-  [db-conn {:keys [db-graph?]}]
+  [db-conn _opts]
   (when-not (d/entity @db-conn [:block/name "card"])
   (when-not (d/entity @db-conn [:block/name "card"])
-    (let [time (tc/to-long (t/now))
-          built-in-pages (map
-                          (fn [m]
-                            (cond-> (-> m
-                                        (assoc :block/created-at time)
-                                        (assoc :block/updated-at time))
-                              db-graph?
-                              (assoc :block/format :markdown)))
-                          default-db/built-in-pages)]
+    (let [built-in-pages (build-default-pages-tx)]
       (transact! db-conn built-in-pages))))
       (transact! db-conn built-in-pages))))
 
 
-(defn create-built-in-properties!
-  [conn]
-  (let [txs (mapcat
-             (fn [[k-keyword {:keys [schema original-name] :as property-config}]]
-               (let [k-name (name k-keyword)]
-                 (if (:closed-values property-config)
-                   (db-property-util/build-closed-values
-                    (or original-name k-name)
-                    (assoc property-config :block/uuid (d/squuid))
-                    {})
-                   [(sqlite-util/build-new-property
-                     {:block/schema schema
-                      :block/original-name (or original-name k-name)
-                      :block/name (string/lower-case k-name)
-                      :block/uuid (d/squuid)})])))
-             db-property/built-in-properties)]
-    (when (seq txs)
-      (d/transact! conn txs))))
-
 (defn start-conn
 (defn start-conn
   "Create datascript conn with schema and default data"
   "Create datascript conn with schema and default data"
-  [& {:keys [create-default-pages? schema file-based?]
+  [& {:keys [create-default-pages? schema]
       :or {create-default-pages? true
       :or {create-default-pages? true
            schema db-schema/schema}}]
            schema db-schema/schema}}]
-  (let [db-conn (d/create-conn schema)
-        file-based? (or (= schema db-schema/schema) file-based?)]
+  (let [db-conn (d/create-conn schema)]
     (when create-default-pages?
     (when create-default-pages?
       (create-default-pages! db-conn {}))
       (create-default-pages! db-conn {}))
-    (when-not file-based?
-      (create-built-in-properties! db-conn))
     db-conn))
     db-conn))
 
 
 (defn sort-by-left
 (defn sort-by-left

+ 1 - 1
deps/db/src/logseq/db/frontend/property/util.cljs

@@ -19,7 +19,7 @@
   "Builds a closed value block to be transacted"
   "Builds a closed value block to be transacted"
   [block-uuid block-value page-id property {:keys [icon-id icon description]}]
   [block-uuid block-value page-id property {:keys [icon-id icon description]}]
   (cond->
   (cond->
-   (closed-value-new-block page-id (or block-uuid (d/squuid)) block-value property)
+    (closed-value-new-block page-id (or block-uuid (d/squuid)) block-value property)
     icon
     icon
     (assoc :block/properties {icon-id icon})
     (assoc :block/properties {icon-id icon})
 
 

+ 6 - 3
deps/db/src/logseq/db/sqlite/create_graph.cljs

@@ -4,7 +4,8 @@
             [logseq.db.frontend.schema :as db-schema]
             [logseq.db.frontend.schema :as db-schema]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.property :as db-property]
             [logseq.db.frontend.property.util :as db-property-util]
             [logseq.db.frontend.property.util :as db-property-util]
-            [datascript.core :as d]))
+            [datascript.core :as d]
+            [logseq.db :as ldb]))
 
 
 (defn build-db-initial-data
 (defn build-db-initial-data
   [config-content]
   [config-content]
@@ -22,6 +23,7 @@
                         :file/path (str "logseq/" "custom.js")
                         :file/path (str "logseq/" "custom.js")
                         :file/content ""
                         :file/content ""
                         :file/last-modified-at (js/Date.)}]
                         :file/last-modified-at (js/Date.)}]
+        default-pages (ldb/build-default-pages-tx)
         default-properties (mapcat
         default-properties (mapcat
                             (fn [[k-keyword {:keys [schema original-name closed-values]}]]
                             (fn [[k-keyword {:keys [schema original-name closed-values]}]]
                               (let [k-name (name k-keyword)]
                               (let [k-name (name k-keyword)]
@@ -35,5 +37,6 @@
                                      :block/original-name (or original-name k-name)
                                      :block/original-name (or original-name k-name)
                                      :block/name (sqlite-util/sanitize-page-name k-name)
                                      :block/name (sqlite-util/sanitize-page-name k-name)
                                      :block/uuid (d/squuid)})])))
                                      :block/uuid (d/squuid)})])))
-                            db-property/built-in-properties)]
-    (concat initial-data initial-files default-properties)))
+                            db-property/built-in-properties)
+        ]
+    (concat initial-data initial-files default-pages default-properties)))

+ 2 - 6
src/main/frontend/db/conn.cljs

@@ -90,16 +90,12 @@
 (defn start!
 (defn start!
   ([repo]
   ([repo]
    (start! repo {}))
    (start! repo {}))
-  ([repo {:keys [listen-handler db-graph?]}]
+  ([repo {:keys [listen-handler]}]
    (let [db-name (datascript-db repo)
    (let [db-name (datascript-db repo)
          db-conn (ldb/start-conn :schema (get-schema repo) :create-default-pages? false)]
          db-conn (ldb/start-conn :schema (get-schema repo) :create-default-pages? false)]
      (swap! conns assoc db-name db-conn)
      (swap! conns assoc db-name db-conn)
      (when listen-handler
      (when listen-handler
-       (listen-handler repo))
-     (when db-graph?
-       (transact! db-name [(kv :db/type "db")])
-       (transact! db-name [(kv :schema/version db-schema/version)]))
-     (ldb/create-default-pages! db-conn {:db-graph? db-graph?}))))
+       (listen-handler repo)))))
 
 
 (defn destroy-all!
 (defn destroy-all!
   []
   []

+ 2 - 1
src/main/frontend/handler/db_based/property.cljs

@@ -738,6 +738,7 @@
           page (get-property-hidden-page property)
           page (get-property-hidden-page property)
           page-tx (when-not (e/entity? page) page)
           page-tx (when-not (e/entity? page) page)
           page-id (:block/uuid page)
           page-id (:block/uuid page)
+          values' (remove string/blank? values)
           closed-value-blocks (map (fn [value]
           closed-value-blocks (map (fn [value]
                                      (db-property-util/build-closed-value-block
                                      (db-property-util/build-closed-value-block
                                       (db/new-block-id)
                                       (db/new-block-id)
@@ -745,7 +746,7 @@
                                       [:block/uuid page-id]
                                       [:block/uuid page-id]
                                       property
                                       property
                                       {}))
                                       {}))
-                                   (remove string/blank? values))
+                                values')
           value->block-id (zipmap
           value->block-id (zipmap
                            (map #(get-in % [:block/schema :value]) closed-value-blocks)
                            (map #(get-in % [:block/schema :value]) closed-value-blocks)
                            (map :block/uuid closed-value-blocks))
                            (map :block/uuid closed-value-blocks))

+ 0 - 1
src/main/frontend/handler/draw.cljs

@@ -29,7 +29,6 @@
         (->
         (->
          (p/do!
          (p/do!
           (create-draws-directory! repo)
           (create-draws-directory! repo)
-          (fs/write-file! repo repo-dir path data nil)
           (db/transact! repo
           (db/transact! repo
                         [{:file/path path
                         [{:file/path path
                           :block/name (util/page-name-sanity-lc file)
                           :block/name (util/page-name-sanity-lc file)

+ 15 - 12
src/main/frontend/worker/db/fix.cljs

@@ -158,15 +158,18 @@
                       replace-tx? false}
                       replace-tx? false}
                  :as _opts}]
                  :as _opts}]
   (let [db @conn
   (let [db @conn
-        transact-opts (if replace-tx? {:replace? true} {})
-        *fix-tx-data (atom [])]
-    (when fix-parent-left?
-      (loop-fix-conflicts conn page-id transact-opts *fix-tx-data))
-    (when fix-broken-chain?
-      (let [db' @conn
-            parent-left->es' (build-parent-left->es db page-id)
-            fix-broken-chain-tx (fix-broken-chain db' parent-left->es')]
-        (when (seq fix-broken-chain-tx)
-          (let [tx-data (:tx-data (ldb/transact! conn fix-broken-chain-tx transact-opts))]
-            (swap! *fix-tx-data (fn [old-data] (concat old-data tx-data)))))))
-    @*fix-tx-data))
+        page (d/entity db page-id)]
+    (when-not (or (ldb/whiteboard-page? db page)
+                  (ldb/hidden-page? page))
+      (let [transact-opts (if replace-tx? {:replace? true} {})
+            *fix-tx-data (atom [])]
+        (when fix-parent-left?
+          (loop-fix-conflicts conn page-id transact-opts *fix-tx-data))
+        (when fix-broken-chain?
+          (let [db' @conn
+                parent-left->es' (build-parent-left->es db page-id)
+                fix-broken-chain-tx (fix-broken-chain db' parent-left->es')]
+            (when (seq fix-broken-chain-tx)
+              (let [tx-data (:tx-data (ldb/transact! conn fix-broken-chain-tx transact-opts))]
+                (swap! *fix-tx-data (fn [old-data] (concat old-data tx-data)))))))
+        @*fix-tx-data))))